if (pMsg->message == WM_LBUTTONDOWN){..........}
else if (pMsg->message == WM_LBUTTONUP)
{
if (pMsg->hwnd == GetDlgItem(IDC_BUTTON1_panleft)->m_hWnd)
{
.......
return TRUE;
}
}
return CDialog::PreTranslateMessage(pMsg);
按了IDC_BUTTON1_panleft這個按鈕抬起后 其他按鈕都不能用了,點擊界面任意一個地方,都是按IDC_BUTTON1_panleft的效果。請問怎么解決啊!!!!
uj5u.com熱心網友回復:
去 return TRUE;uj5u.com熱心網友回復:
我那個函式里有一個回圈 去掉確實可以 但是有個變數會變。這樣數值是對的 但是會造成這種情況。
uj5u.com熱心網友回復:
"有個變數會變" 上代碼uj5u.com熱心網友回復:
if (pMsg->hwnd == GetDlgItem(IDC_BUTTON1_panleft)->m_hWnd)里面就是有一個回圈 回圈里有個變數隨時間在變,設了斷點出來回圈是某一個值,但一運行return CDialog::PreTranslateMessage(pMsg)這個值就無緣無故改變了,不知道怎么回事。
uj5u.com熱心網友回復:
使用 afxDump << 變數 << "\n";uj5u.com熱心網友回復:
再加個判斷,用這個函式PtInRect看下pMsg里面的pt在不在按鈕的里面,在的話就是你現在的邏輯,不在的話return false。按下IDC_BUTTON1_panleft后這個按鍵句柄是激活的,在發訊息都是先發到這個句柄的,return ture之后其他句柄就收不到訊息了。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/65457.html
標籤:基礎類
上一篇:tcp 接收視頻模糊怎么改
下一篇:ffmepg 合并網上的ts 檔案的時候,有的會提示 MORE THAN 1000 frame duplicate,無法
