C++ 如何禁用CBitmapButton?
如何禁用CBitmapButton?我尝试使用m_bitmapbutton.EnableWindow(false);但它不起作用。它仍然触发一个事件C++ 如何禁用CBitmapButton?,c++,visual-c++,button,mfc,C++,Visual C++,Button,Mfc,如何禁用CBitmapButton?我尝试使用m_bitmapbutton.EnableWindow(false);但它不起作用。它仍然触发一个事件 我试图做的是防止按钮A在事件B正在执行时触发事件A(从按钮B)。因此,在事件B中,我想禁用按钮A。以下是要检查的事项列表: 是否为位图按钮的禁用状态定义了图像 您确定事件已触发吗 事件B不在线程中,是吗 您是否在事件B的开头执行m_bitmapbutton.EnableWindow(FALSE)操作,在事件B的结尾执行m_bitmapbutton
我试图做的是防止按钮A在事件B正在执行时触发事件A(从按钮B)。因此,在事件B中,我想禁用按钮A。以下是要检查的事项列表:
- 是否为位图按钮的禁用状态定义了图像李>
- 您确定事件已触发吗
- 事件B不在线程中,是吗李>
- 您是否在事件B的开头执行m_bitmapbutton.EnableWindow(FALSE)操作,在事件B的结尾执行m_bitmapbutton.EnableWindow(TRUE)操作
- 您是否正在执行BN_单击通知()?或者它可能是一个不同的通知,比如WM_LBUTTONDOWN通知()
- 是否确定变量m_bitmapbutton与按钮A正确关联?您是否可以尝试使用GetDlgItem(IDC按钮)->EnableWindow(错误)李>
它可能更容易使用。我想问题是,当您参加活动B时,此窗口的消息没有被发送。因此,在您完成参加活动B并再次启用按钮A后,他们将排队并退出。诸如此类:
void CMyDlg::OnBnClickedButtonB()
{
m_buttonA.EnableWindow(FALSE);
//Process button B clicked event
MSG msg;
while(PeekMessage( &msg,
GetSafeHwnd(),
WM_MOUSEFIRST,
WM_MOUSELAST,
PM_REMOVE))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
m_buttonA.EnableWindow(TRUE);
}
希望这有帮助
哈维尔两个问题都是肯定的。这是虫子吗?除了使用这个类,还有其他选择吗?我认为你最好使用CodeProject按钮。B不是在线程中,是吗?您是否在事件B的开头执行m_bitmapbutton.EnableWindow(FALSE)操作,在事件B的结尾执行m_bitmapbutton.EnableWindow(TRUE)操作?是否在执行BN_单击通知()?或者它可能是一个不同的通知,例如WM_LBUTTONDOWN通知()。您确定变量m_bitmapbutton与您的按钮a正确关联吗?您是否可以尝试使用GetDlgItem(IDC按钮)->EnableWindow(错误);