rendered paste bodyfunction OnEvent_Initialize(MessengerStart){ wnd = MsgPlus.CreateWnd("GUI.xml", "main"); Debug.Trace('x'); childWnd = MsgPlus.CreateChildWnd(wnd, "GUI.xml", "childWindow", 50, 50); /* SCROLLINFO infoScroll; ZeroMemory(&infoScroll, sizeof(infoScroll)); infoScroll.cbSize = sizeof(SCROLLINFO); infoScroll.fMask = SIF_DISABLENOSCROLL|SIF_PAGE|SIF_POS|SIF_RANGE; infoScroll.nPage = rcOptionsArea.Height(); infoScroll.nMax = pOptionsWnd->m_nRealHeight; infoScroll.nPos = pOptionsWnd->m_nCurrentScrollPos; if(infoScroll.nMax <= (int)infoScroll.nPage) { ::EnableScrollBar(wndScroll, SB_CTL, ESB_DISABLE_BOTH); wndScroll.ShowWindow(SW_HIDE); } else { ::EnableScrollBar(wndScroll, SB_CTL, ESB_ENABLE_BOTH); wndScroll.ShowWindow(SW_SHOW); } :: SetScrollInfo(wndScroll, SB_CTL, &infoScroll, TRUE); */ var SB_CTL = 2; var SIF_DISABLENOSCROLL = 0x8; var SIF_PAGE = 0x2; var SIF_POS = 0x4; var SIF_RANGE = 0x1; var ESB_ENABLE_BOTH = 0x0; var ESB_DISABLE_BOTH = 0x3; var HWND = wnd.GetControlHandle("scrollBar"); var infoScroll = Interop.Allocate(512 +2); infoScroll.WriteDWORD(0, 28); //cbSize infoScroll.WriteDWORD(4, SIF_DISABLENOSCROLL|SIF_PAGE|SIF_POS|SIF_RANGE); //fMask infoScroll.WriteDWORD(8, 0); //nMin infoScroll.WriteDWORD(12, 150); //nMax infoScroll.WriteDWORD(16, 10); //nPage infoScroll.WriteDWORD(20, 50); //nPos infoScroll.WriteDWORD(24, 0); //nTrackPos var WM_VSCROLL = 0x115 wnd.RegisterMessageNotification(WM_VSCROLL, true); var EnableScrollBar = Interop.Call("User32", "EnableScrollBar", HWND, SB_CTL, ESB_ENABLE_BOTH); var SetScrollInfo = Interop.Call("User32", "SetScrollInfo", HWND, SB_CTL, infoScroll, true); Debug.Trace("EnableScrollBar : "+EnableScrollBar); Debug.Trace("SetScrollInfo : "+SetScrollInfo);}var SB_LINEUP = 0;var SB_LINEDOWN = 1;var SB_PAGEUP = 2;var SB_PAGEDOWN =3;var SB_THUMBPOSITION = 4;var SB_THUMBTRACK = 5;var SB_TOP = 6;var SB_BOTTOM =7;var SB_ENDSCROLL = 8;function OnmainEvent_MessageNotification(PlusWnd, Message, wParam, lParam){ //Debug.Trace(wParam); switch(wParam){ case SB_LINEDOWN : Debug.Trace("Line Down"); break; case SB_LINEUP : Debug.Trace("Line Up"); break; } return true}