我做了一个CMyButton类,有两个消息.
void CMyButton::OnLButtonDown(UINT nFlags, CPoint point) 
{
do 
{
   //我的代码1

}while(CheckInt == 0);
CheckInt = 1;
}
}
void CMyButton::OnLButtonUp(UINT nFlags, CPoint point) 
{
// TODO: Add your message handler code here and/or call default
//我的代码2
CButton::OnLButtonUp(nFlags, point);
}
现在现象是,进入了OnLButtonDown后,do while一直循环,不能捕获OnLButtonUp了。我想把while的条件CheckInt == 0换成OnLButtonUp,或者在do while循环里捕获WM_LBUTTONUP。但是不会。请大家帮帮忙。

解决方案 »

  1.   

    就是我按下按钮,循环一直执行,到达一定条件while循环会停止,但是这不满足全部的需要,必须要实现按钮弹起之后运行代码2,但是循环的时候代码2是不执行的。我想把WM_LBUTTONUP做成while(代码A:用来判断WM_LBUTTONUP是否弹起),但是不会
      

  2.   

    MSG msg;
    while (!PeekMessage(&msg, NULL, WM_LBUTTONUP, WM_LBUTTONUP, PM_NOREMOVE));
      

  3.   

    lz这样已经将消息阻塞住了
    在同一线程中,down消息还没有返回,消息泵就没有将up消息发出来