1

MFC ツールバーに、押すことができるボタンを作成し、もう一度押すまでその状態を保持したい (チェック ボックスのように) が、チェック ボックスは必要ありません。2 つのアイコン間で変化し、押されたときに DDV を使用してブール値を変更するボタンが理想的です。これについてどうすればよいでしょうか。

副次的な質問として、私は MFC に関する良い本があれば本当にできると思います。Programming Windows with MFC 2nd edition を入手しましたが、もう少し詳しく説明されているものがあるかどうか疑問に思っていましたか?

4

3 に答える 3

1

ON_UPDATE_COMMAND_UIボタンの状態を設定するために使用します。たとえば、典型的なハンドラーは次のようになります。

BEGIN_MESSAGE_MAP(CMyView, CView)
    ON_UPDATE_COMMAND_UI(ID_MY_BUTTON, OnUpdateMyButton)
END_MESSAGE_MAP()

...

void CMyView::OnUpdateMyButton(CCmdUI* pCmdUI) 
{
    // TODO: Add your command update UI handler code here

    pCmdUI->SetCheck( isButtonPressed() );
}

優れた MFC ドキュメントに関しては、Professional MFC (Mike Blaszczak) をお勧めします。これは少し古いですが、非常に優れています。

于 2012-12-19T16:22:05.803 に答える
0

CToolBar Classのドキュメントから:

チェック ボックス ボタンを作成するには、スタイル TBBS_CHECKBOX を割り当てるか、ON_UPDATE_COMMAND_UI ハンドラーで CCmdUI オブジェクトの SetCheck メンバー関数を使用します。

于 2012-12-19T16:20:44.283 に答える
0

ダイアログ ボックスにラジオ ボタンを描画します。

ラジオボタンを選択し、ボタンのプロパティページに移動します。

Push Like プロパティを設定し、「True」に設定

同じコントロールのイベント ハンドラーを追加し、ブール変数を取得します。

API を使用 -> 「CheckDlgButton(IDC_RADIO1, 1);」ブール変数値ごとにステータスを設定します。

詳細については。以下のリンクにアクセスしてください。

https://www.codeproject.com/Articles/530/A-Better-Bitmap-Button-Class

于 2020-10-08T12:02:50.913 に答える