標籤:使用 需要 滑鼠 客戶 訊息 pos windows編程 bsp int
相關函數:
setscrollrange,setscrollpos,getscrollrange,getscrollpos
使用捲軸時我們需要進行的操作:
1.初始化捲軸範圍和位置
在視窗建立時WM_CREATE響應時可以完成
SetScrollRange(hwnd, SB_VERT, 0, NUMLINES,FALSE);SetScrollPos(hwnd, SB_VERT, 0, TRUE);
2.處理視窗過程的捲軸訊息
在響應WM_VSCROLL時處理
switch(LOWORD(wParam)){ case SB_LINEUP: .... break; case SB_LINEDOWN: .... break; case SB_PAGEUP: .... break; case SB_PAGEDOWN: .... break; case SB_THUMBTRACK: .... break; case SB_THUMBPOSITION: .... break;}
注意在wParam參數中的低十六位中可以擷取滑鼠在捲軸上的動作使用LOWORD(wParam)
當捲軸動作為SB_THUMBPOSITION或SB_THUMBTRACK時,可以在wParam參數中的高十六位中擷取位置HIWORD(wParam)
3.更新滑塊位置
SetScrollPos(hwnd, SB_VERT, XXX, TRUE);
4.根據捲軸變化更新用戶端內容
可以在處理捲軸訊息是設定全域參數,在WM_PAINT響應時做出響應更新
為了及時更新用戶端內容
可以使用
InvalidateRect(hwnd, NULL, TRUE);
向訊息佇列中發送訊息WM_PAINT,此訊息會放在訊息佇列後面,知道其他訊息處理完畢才會響應
或者使用
UpdateWindow(hwnd);
非隊列化訊息,跳過訊息迴圈機制直接處理更新視窗
學習windows編程 day2 之捲軸使用