どのようにCBitmapButtonを無効にしますか?私はm_bitmapbutton.EnableWindow(false)を使ってみました。それは動作しません。それでもイベントは発生します。CBitmapButtonをどのように無効にしますか?
私がしようとしているのは、イベントBが(ボタンBから)実行されている場合、ボタンAがイベントAを発生させないようにすることです。だから、イベントBには、私はボタンA.
どのようにCBitmapButtonを無効にしますか?私はm_bitmapbutton.EnableWindow(false)を使ってみました。それは動作しません。それでもイベントは発生します。CBitmapButtonをどのように無効にしますか?
私がしようとしているのは、イベントBが(ボタンBから)実行されている場合、ボタンAがイベントAを発生させないようにすることです。だから、イベントBには、私はボタンA.
を無効にしたいここでチェックするもののリストです:
ボタンAが無効であることを示すためにブール値のメンバー変数を設定するだけで、このブール値メンバーが設定されたときに送られるイベントは無視されます。
this class from CodeProjectの方が使いやすいかもしれません。
イベントBに参加している間に、このウィンドウのメッセージがディスパッチされないという問題があると思います。イベントBに出席してボタンAを再び有効にした後、キューに入れられてディスパッチされます。そのような何か:
これはCBitmapButtonの問題ではありません。他のボタン(私は自分自身を試していない)。
:私はthigsこの種の...多分誰かがあなたをよりよい解決策を与えることができないあまり好きではなかったものの可能な回避策は...もう一度ボタンを有効にする前に、このウィンドウのマウスイベントをディスパッチすることができ
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)を行い、最後にm_bitmapbutton.EnableWindow(TRUE)を実行していますか? –