case WM_VSCROLL:
switch (LOWORD(wParam))
{
case SB_LINEDOWN:
//請注意此處
MessageBox(hwnd, TEXT("linedown"), TEXT("scrollwindow"), MB_OK);
break;
default:
break;
}

這是處理WM_VSCROLL訊息的一段代碼,我的想法是滑鼠點擊如圖箭頭滾動條上的下移滑塊會彈出一個messagebox對話框,但是現在遇到一個問題:我滑鼠點擊一下滾動條上的下移滑塊的按鈕后再松開滑鼠左鍵,只要滑鼠再放在那個位置沒移走(此時并沒有按下滑鼠左鍵),就會一直彈出提示視窗,這點不解是為什么?用什么方法能實作我的想法

uj5u.com熱心網友回復:
滾動條觸發下下拉事件,是不是就是意味著滑鼠點擊了才往下的 應該是每次都觸發了WM_LBUTTONDOWN訊息了。uj5u.com熱心網友回復:
剛試了一下,確實有問題,而且出現這個問題的時候,滑鼠一拿開就不彈框了,再放回去又繼續彈框我的想法是,MessageBox是阻塞的,使得代碼無法繼續往下執行。
可以把你的MessageBox改成:
1.創建執行緒,改成AfxBeginThread(MessageProc, this); 然后執行緒函式就彈框就行
UINT MessageProc(LPVOID lpParam)
{
MessageBox(NULL, TEXT("linedown"), TEXT("scrollwindow"), MB_OK);
return 0;
}
2.往主界面發訊息,主界面收到該訊息后MessageBox
uj5u.com熱心網友回復:
見帖子http://bbs.csdn.net/topics/392264944
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/85594.html
標籤:界面
上一篇:求解這個程式的函式怎么寫
