MFCコントロール - メニュー

2019年8月18日 (日) 14:21時点における192.168.1.23による版 (ページの作成:「== サンプルコード == <source lang="c++"> // CApp.cpp #include "CApp.h" // CApp_クラス #include "CMainFrame.h" // CMainFrameクラス #include "resource…」)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

サンプルコード

 // CApp.cpp
 #include "CApp.h"    // CApp_クラス
 #include "CMainFrame.h"  // CMainFrameクラス
 #include "resource.h"    // リソースID
 
 // CAppのメンバの定義
 // メンバ関数InitInstance()
 BOOL CWinApp_::InitInstance()
 {
    // インスタンスの初期化処理
    // 構造体の宣言
    CFrameWnd_ *pFrameWnd;                // CFrameWnd_のオブジェクトポインタ
 
    // CFrameWnd_のインスタンス作成
    pFrameWnd  = new CFrameWnd();         // CFrameWndのインスタンスを作成し, pFrameWndに格納
    m_pMainWnd = pFrameWnd;               // m_pMainWndにpFrameWndをセット
 
    // フレームをリソースからロードしてウィンドウを作成
    pFrameWnd->LoadFrame(IDR_MAINFRAME);  // LoadFrameで共有リソースIDがIDR_MAINFRAMEとなるフレームをロード
 
    // CFrameWndの表示
    pFrameWnd->ShowWindow(m_nCmdShow);    // ShowWindowでウィンドウを表示
 
    // CFrameWnd_の更新
    pFrameWnd->UpdateWindow();            // UpdateWindowでウィンドウを更新
 
    // 初期化成功
    return TRUE;	// 初期化成功ならTRUEを返す.
 }
 
 
 // CApp.h
 #pragma once   // VisualC++独自のプリプロセッサで二重インクルード防止
 
 #include "stdafx.h"
 
 class CApp : public CWinApp
 {
    public:
       virtual BOOL InitInstance();  // インスタンスの初期化処理
 };
 
 // アプリケーションインスタンスの宣言
 CWinApp_ theApp;


 // CMainFrame.cpp
 #include "stdafx.h"
 #include "CMainFrame.h"
 
 // CMainFrameのメッセージマップ
 BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
    ON_UPDATE_COMMAND_UI(ID_ITEM_1, OnUpdateItem1)	// メニュー項目のUI更新マクロ
 END_MESSAGE_MAP()
 
 // CMainFrameのメンバの定義
 CMainFrame::CMainFrame()
 {
 }
 
 // メニュー項目Item1のUI更新ハンドラ
 void CMainFrame::OnUpdateItem1(CCmdUI* pCmdUI)
 {  // メニュー項目Item1のUI更新ハンドラ
    // メニュー項目Item1のUI更新
    if(pCmdUI)
    {
       // メニュー項目Item1の有効化
       pCmdUI->Enable();
    }
 }
 
 
 // CMainFrame.h
 #pragma once	// VisualC++独自のプリプロセッサで二重インクルード防止
 
 #include "stdafx.h"
 
 class CMainFrame : public CFrameWnd
 {  // フレームウィンドウクラス
    public:
       CMainFrame();  // デフォルトコンストラクタ
 
       void OnUpdateItem1(CCmdUI* pCmdUI);  // メニュー項目Item1_1のUI更新ハンドラ

       // メッセージマップ
       DECLARE_MESSAGE_MAP()  // メッセージマップの利用を宣言
 };