MFC
CFileDialog::GetOFNで、OPENFILENAME構造体を取得する。CFileDialog クラス | Microsoft LearnCFrameWnd_.cppは、こうする。 Item1-2を押すと、Item1-2を押すと、 "名前を付けて保存"なので"test2.txt"と指定。"名前を付けて保存"なので"test2.txt"と指定。…
CFileDialogはファイル選択ダイアログクラス。CFileDialog クラス | Microsoft Learnコンストラクタの第1引数がFALSEだと"名前を付けて保存"ダイアログになる。 resource.hは、ID_ITEM_1_2を追加。 CFileDialog.rcは、Item1-2を追加。 CFrameWnd_.hは、OnUpd…
MFCでは、CFileDialog::DoModalで、ファイル選択ダイアログを表示する。CFileDialog クラス | Microsoft LearnCFrameWnd_.cppで、OnItem1_1で、CFileDialogのコンストラクタ引数の最初をTRUEにすると、"ファイルを開く"ダイアログとして表示される。 Item1-1…
CMenu::DeleteTempMapで、CMenu::FromHandleの時に作成された一時オブジェクトマップを削除する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、こうすると、 この時点でハンドルはある。この時点でハンドルはある。 ここまで行くと、もうメニューハンド…
メニューのラジオ項目にチェックを付けるには、CMenu::CheckMenuRadioItemを使う。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、とする。 Item1-2を押すと、Item1-2を押すと、 チェックが付く。チェックが付く。Sample/mfc/CMenu/CheckMenuRadioItem/sr…
項目IDの連続した範囲を1つのハンドラ関数にマップするには、ON_COMMAND_RANGEを使う。メッセージ マップ マクロ (MFC) | Microsoft Learnメニューのラジオ項目とかのイベントを拾う時はこれを使う。 CFrameWnd_.hは、とする。 CFrameWnd_.cppは、とする。 …
CMenu::CheckMenuItemで、指定のメニュー項目にチェックを付けたり外したりできる。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、とする。 Item1-1を押すと、Item1-1を押すと、 チェックが付いて、また押すと、チェックが付いて、また押すと、 チェック…
CMenu::GetMenuStateで、メニュー項目の状態を取得する。CMenu クラス | Microsoft LearnCFrameWnd_.hは、とする。 CFrameWnd_.cppは、とする。 Item1-4押すと、Item1-4押すと、 これが出て、これが出て、 これが出て、これが出て、 これが出る。これが出る…
CMenu::ModifyMenuで、メニュー項目のテキストを指定した文字列に更新する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、とすると、 Item1-1を押すと、Item1-1を押すと、 こうなる。こうなる。Sample/mfc/CMenu/ModifyMenu/src/CMenu at master · bg1b…
CMenu::GetMenuStringで、指定の項目のテキストを取得する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、とする。 押したら、押したら、 こうなる。こうなる。Sample/mfc/CMenu/GetMenuString/src/CMenu at master · bg1bgst333/Sample · GitHub
CMenu::GetMenuItemIDで、指定位置の項目IDを取得する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、とする。 Item1-1を押すと、Item1-1を押すと、 0番目の項目IDはID_ITEM_1_1と同じ0番目の項目IDはID_ITEM_1_1と同じ。Sample/mfc/CMenu/GetMenuItemI…
CMenu::GetMenuItemCountで、メニュー項目数を取得する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、とする。 Item1-1を押すと、Item1-1を押すと、 項目数は4。項目数は4。Sample/mfc/CMenu/GetMenuItemCount/src/CMenu at master · bg1bgst333/Sampl…
CMenu::GetDefaultItemで、どれが既定のメニュー項目かを判定する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、とする。 そのままItem1-3を押すと、そのままItem1-3を押すと、 既定の項目がないのでこうなる。既定の項目がないのでこうなる。 Item1-1…
CMenu::SetDefaultItemで、既定のメニュー項目にする。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、Item1-1が押されたら、Item1-2を既定の項目にする。 押したら、押したら、 既定の項目の特徴である太字になるが、なんで文字列途中で切れるんだろ。既…
CMenu::EnableMenuItemで、メニュー項目の有効化や、無効化や、グレーアウトをセットする。CMenu クラス | Microsoft Learn EnableMenuItem: 日々題resource.hは、項目4つ。 CMenu.rcは、こうする。 CFrameWnd_.hは、こうして、CFrameWnd_.cppは、こうする。…
CMenu::DeleteMenuでメニュー項目を削除する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、Item1-3が押されたら、1番目を削除。 Item1-1を押すと、Item1-1を押すと、 Item1-2が挿入されたので、Item1-3を押すと、Item1-2が挿入されたので、Item1-3を押…
CMenu::InsertMenuで、メニュー項目を挿入する。CMenu クラス | Microsoft Learnresource.hは、ID_ITEM_1_1からID_ITEM_1_3の3つ。 CMenu.rcは、デフォルト表示は、Item1-1とItem1-3。 CFrameWnd_.hは、Item1-1からItem1-3までのハンドラ。 CFrameWnd_.cppは…
CMenu::GetSubMenuで、サブメニューを取得する。CMenu クラス | Microsoft Learnresource.hは、ID_ITEM_1_2だけ増えた。 CWinApp_.cppは、LoadFrameでIDM_MAINMENUをロード。 CFrameWnd_.hは、OnUpdateItem1_2や、OnItem1_2が追加。 CFrameWnd_.cppは、OnIte…
CMenu::CreatePopupMenuで、ポップアップメニュー(サブメニュー)を作成する。CMenu クラス | Microsoft Learnresource.hは、メニュー差し替え後は9つの項目。 CMenu.rcは、最初はItem1-1だけ。 CFrameWnd_.hは、ポップアップメニューはメンバーとして持って…
CWnd::DrawMenuBarで、メニューバーを描画する。CWnd クラス | Microsoft LearnCWinApp_.cppは、pFrameWnd_->LoadFrameでIDM_MAINMENUをロード。 CFrameWnd_.cppは、 // ハンドラOnItem1_1() void CFrameWnd_::OnItem1_1(){ // メニュー項目Item1_1のコマン…
CMenu::Detachで、メニューハンドルとCMenuオブジェクトの紐付けを解除する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、 // ハンドラOnItem1_1() void CFrameWnd_::OnItem1_1(){ // メニュー項目Item1_1のコマンドハンドラ // メニュー項目の追加. C…
CMenu::Attachで、メニューハンドルとCMenuオブジェクトを紐付ける。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、こういった場合は、Detachは不要。 破棄する前提というのもあるし、cMenu.DestroyMenuの中でDetachしてDestroyMenuしてm_hMenuはNULLに…
CMenu::FromHandleで、メニューハンドルからCMenuオブジェクトポインタを取得する。CMenu クラス | Microsoft LearnCWinApp_.cppは、CFrameWndには、m_hMenuDefaultというデフォルトメニューハンドルのメンバがあるが、LoadFrameじゃないとセットされない。 …
CWnd::Detachで、CWndオブジェクトとウィンドウハンドルの紐付けを解除する。CWnd クラス | Microsoft LearnCFrameWnd_.cppで、結局、メンバにしなくても、ローカルオブジェクトでAttachして、操作して、Detachすればいい。 Item1-1を押すと、Item1-1を押す…
CWnd::Attachで、CWndオブジェクトにウィンドウハンドルを紐付ける。CWnd クラス | Microsoft Learnこれでも操作できるがスコープを抜けると破棄されるので注意しないといけない。 子ウィンドウクラスCChildWndを定義。 CChildWnd.hは、CChildWnd.cppは、と…
CWnd::FromHandleで、ウィンドウハンドルからCWndオブジェクトポインタを一時的に取得できる。CWnd クラス | Microsoft LearnCWinApp_.cppで、ウィンドウクラスにメニューリソース指定有。 CFrameWnd_.hで、メンバに子ウィンドウハンドルm_hChildを追加。 CF…
CMenu::LoadMenuで、メニューリソースをロードする。CMenu クラス | Microsoft LearnCWinApp_.cppで、メニューリソース指定なし。 CFrameWnd_.hは、OnPaintを追加。 CFrameWnd_.cppは、今回も、ON_WM_PAINTマクロとOnPaintハンドラで無理矢理起点を作って、C…
CMenu::DestroyMenuで、メニューを破棄する。CMenu クラス | Microsoft LearnCFrameWnd_.cppで、こういう風に書くこともできる。 Item1-1を押して、Item1-1を押して、 Item2に差し替わる。Item2に差し替わる。Sample/mfc/CMenu/DestroyMenu/src/CMenu at mas…
CWnd::SetMenuで、ウィンドウにメニューをセットする。CWnd クラス | Microsoft LearnCWinApp_.cppで、またウィンドウクラスにメニューリソースを指定。 CFrameWnd_.hで、CMenuオブジェクトポインタm_pMenuを用意。 CFrameWnd_.cppで、CFrameWnd_::OnItem1_1…
CMenu::CreateMenuで、メニューを作成する。CMenu クラス | Microsoft Learnresource.hを、微妙に変えてる。 メニューそのもののIDは100, 110, 120としたほうがいいかな。でもこれ100とか許されるんかな。 CWinApp_.cppは、ウィンドウ作成時にメニューを指定…