MFCのダイアログでツールバーを表示する。MFCのダイアログでツールバーを表示する。2019-02-03MFCのダイアログでツールバーを表示する。MFCこの記事は2019年02月03日に投稿しました。はじめにこんにちは、iOSのエディタアプリPWEditorの開発者の二俣です。今回は業務で使用しているMFCのダイアログでツールバーを表示する方法についてです。MFCのダイアログでツールバーを表示するMFCのダイアログでツールバーを表示する方法ですが、ウィザード等ではできないようです。そのため自力でコーディングする必要があります。以下が、MFCのダイアログでツールバーを表示する手順です。ダイアログクラスのOnInitDailog関数等で、ツールバーを生成します。ツールバーに表示するイメージとボタンのサイズを設定します。設定しない場合、デフォルトでは16x15ピクセルになります。ツールバーに、ボタンで表示するイメージを設定します。ボタンが有効時と無効時のイメージを設定できます。無効時は有効時のイメージと同じでも構いません。ツールバーにボタンを設定します。今回はボタンと区切り線を設定しました。その他チェックボックなども設定できるようですが、今回は省略します。ツールバーのサイズを設定します。サイズを設定しないと、サイズ0で表示されません。ツールバーのボタンが押下された時のイベントハンドラを追加します。今回はON_COMMAND_RANGEマクロで、ツールバーの各ボタンイベントを1つのイベントハンドラで処理するようにしました。ON_COMMANDマクロで、ツールバーの各ボタン毎にイベントハンドラを追加してもよいです。初期化時に呼出されます。マージを取らないとクラッシュします。幅方向、縦方向のマージンの値は、Widowsの指定値です。初期化時に呼出されます。親クラスの関数を呼び出します。ツールバーを生成します。ツールバーが生成できない場合、終了します。ツールバーのイメージとボタンのサイズを設定します。ツールバーのボタンが有効な場合に表示するイメージを設定します。ビットマップは8bit(256色)を想定しているため、Create関数の第3引数は"ILC_COLOR8"としています。ビットマップの色数により、第3引数の設定値は変更して下さい。ツールバーのボタンが無効な場合に表示するイメージを設定します。イメージは有効な場合のイメージを流用しても構いません。ビットマップは8bit(256色)を想定しているため、Create関数の第3引数は"ILC_COLOR8"としています。ビットマップの色数により、第3引数の設定値は変更して下さい。ツールバーのボタンを設定します。SetButtons関数の第2引数に項目数を設定します。ツールバーの各ボタンを設定します。SetButtons関数で指定した項目数分設定する必要があります。区切り線の場合、ダミー値の-1を設定しています。ボタンとイメージを紐づけます。そのためSetImageList/SetDisabledImageListで設定したイメージのインデックスを合わせます。区切り線の場合、ダミー値の-1を設定しています。ツールバーのサイズを設定します。サイズを設定しないとサイズ0となり、表示されません。幅はダイアログの幅、高さはイメージの高さにします。イベントハンドラを設定します。ウィザードが使えないため、手動で設定して下さい。ツールバーのボタンが押下された時に呼出されます。ボタンのイベントIDにより処理を振り分けます。AfxMessageBox(_T("ツールバーのボタンAが押下されました。AfxMessageBox(_T("ツールバーのボタンBが押下されました。AfxMessageBox(_T("ツールバーのボタンCが押下されました。上記以外、何もしません。おわりにダイアログにツールバーを表示する方法は他にもあります。今回の要件で動的にツールバーの数が変わるため、ImageListを使った方法で実装しました。ダイアログの場合、標準ではツールバーは表示されないため全てコードで書くことになります。見る紹介している一部の記事のコードはGitlabで公開しています。興味のある方は覗いてみてください。目次へ私が勤務しているニューラルでは、主に組み込み系ソフトの開発を行っております。Bi-OSは高い技術力を評価されており、特に制御系や通信系を得意としています。私自身はiOSモバイルアプリやウィンドウズアプリを得意としております。ソフトウェア開発に関して相談などございましたら、お気軽にご連絡ください。一緒に働きたい技術者の方も随時募集中です。興味がありましたらご連絡ください。08:02MFCのダイアログでツールバーを表示する。Tweet関連記事2019-07-07WPFで画面のタイトルバーを表示しない。この記事は2019年07月07日に投稿しました。WPF...2019-03-08MFCのメッセージ通信でデータを渡す。この記事は2019年03月08日に投稿しました。MFC...2019-02-04MFCでスクロールバーを使用する。この記事は2019年02月04日に投稿しました。MFC...2018-12-28MFCでコントロールの表示/非表示を設定する。この記事は2018年12月28日に投稿しました。MFC...2018-11-05SwiftでXLFormのボタンを使用する。この記事は2018年11月05日に投稿しました。MFCでスクロールバーを使用する。(3)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。