MFC

CMenu::AppendMenu

MFC

CMenu::AppendMenuは、メニューにメニュー項目を追加するメンバ関数・・・。CMenu::AppendMenu前回は、ポップアップメニューハンドルhPopupMenu1にWindowsAPIのAppendMenuを使って、メニュー項目を追加していたが、今回はCMenuのAppendMenuを使う・・・。CFr…

CMenu

MFC

CMenuはメニューを扱うクラス・・・。CMenu クラス前回、CFrameWndのGetMenuを使って、CMenuオブジェクトのポインタを取得し、m_hMenuにメニューハンドルが格納されていることがわかった・・・。今回は、メニューm_hMenuの1つ目のポップアップメニューにメニ…

CWnd::GetMenu

MFC

CWnd::GetMenuは、ウィンドウにセットされているメニューを取得するメンバ関数・・・。CWnd::GetMenuウィンドウにセットされているメニュー項目を途中で増やしたり、削除したりなど、メニューに動的変更を加える場合などには、GetMenuでCMenuオブジェクトの…

ON_COMMAND

MFC

OnCommandで、メニュー項目が選択された時、ボタンが押された時などの処理を書くことができた・・・。 しかし、LOWORD(wParam)でリソースIDごとに割り振ったり、コードが長くなったりして、不便である・・・。ON_COMMANDマクロを使うと、リソースIDごとにハ…

CWnd::OnCommand

MFC

CWnd::OnCommandは、メニューが選択された時、ボタンが押されたりなどの子コントロールが操作された時、アクセラレータキーが実行された時の処理を記述するためのメンバ関数・・・。 つまり、WM_COMMANDが発生したときのメッセージハンドラ・・・。CWnd::OnC…

ON_UPDATE_COMMAND_UI

MFC

CFrameWnd::LoadFrameで、リソースからフレームをロードして、フレームウィンドウを作成できた・・・。 しかし、 ウィンドウのタイトルが表示されない メニューが有効になっていない という2つの問題が発生したので、これを解決していこう・・・。まず、ウィ…

CFrameWnd::LoadFrame

MFC

CFrameWnd::LoadFrameは、リソースファイルからフレームの情報をロードし、それを元にウィンドウを作成するメンバ関数・・・。CFrameWnd::LoadFrameフレームとは、フレームウィンドウを構成するメニュー、アイコン、アクセラレータキーなどの情報・・・。 CF…

CFrameWnd::Create

MFC

CFrameWnd::Createは、フレームウィンドウを作成するメンバ関数・・・。CFrameWnd::CreateWindowsAPIのCreateWindowで指定するような引数が大半だが、ほとんどはデフォルト引数が設定されているので、ウィンドウクラス名とウィンドウ名だけ指定すればウィン…

AfxRegisterClass

MFC

AfxRegisterClassは、ウィンドウクラスを登録するMFCのグローバル関数・・・。AfxRegisterClassWindowsAPIのRegisterClassのラッピング関数・・・。これを使って独自のウィンドウクラスを登録し、それを使ったウィンドウを表示する・・・。ウィンドウクラス…

CWinApp::OnIdle

MFC

CWinApp::OnIdleは、アイドル状態の時の処理を記述するためのメンバ関数・・・。CWinApp::OnIdleWindowsAPIのPeekMessageの頁で、アイドル状態の時にTextOutでウィンドウメッセージが来なかった回数(アイドル処理の回数)を表示した・・・。 MFCにおいてCWinA…

CClientDC

MFC

CClientDCは、クライアント領域のデバイスコンテキストクラス・・・。CClientDC クラスOnPaint内では、CPaintDCを使って描画を行った・・・。 CPaintDCのコンストラクタとデストラクタはWindowsAPIのBeginPaintとEndPaintの役割にあたる・・・。 OnPaint以外…

CWnd::OnLButtonDown

MFC

CWnd::OnLButtonDownは、ウィンドウ上でマウスの左ボタンが押された時(WM_LBUTTONDOWN)の処理を記述するためのメンバ関数(メッセージハンドラ)・・・。CWnd::OnLButtonDown1つ目の引数nFlagsには合わせて押されたボタンや仮想キーの情報、2つ目の引数pointに…

CPaintDC

MFC

CPaintDCは、描画用のデバイスコンテキストクラス・・・。CPaintDC クラスデバイスコンテキスト基底クラスCDCから派生したクラスで、OnPaint内での描画に使う・・・。前回、WindowsAPIで描画した文字列をCPaintDCで描画する・・・。修正するのは、CFrameWnd_…

CWnd::OnPaint

MFC

CWnd::OnPaintは、ウィンドウの描画を要求された時(WM_PAINT)の処理を記述するためのメンバ関数(メッセージハンドラ)・・・。CWnd::OnPaint引数、戻り値は無く、ここにWM_PAINTに対する処理を書く・・・。今回は、OnPaintが呼ばれた時、文字列を描画する・・…

CWnd::OnCreate

MFC

CWnd::OnCreateは、ウィンドウが作成された時(WM_CREATEが来た時)の処理を記述するためのメンバ関数・・・。 このようなウィンドウメッセージに対する処理を書くメンバ関数をメッセージハンドラという・・・。CWnd::OnCreateCWndのメンバ関数ではあるが、当…

CWnd

MFC

CWndは、あらゆるウィンドウのベースとなるウィンドウ基底クラス・・・。CWnd クラスCFrameWndもCWndの派生クラス・・・。CFrameWndの項では、CFrameWnd_のコンストラクタでウィンドウ作成のCreateを呼んでいたが、それだとCWinApp_クラスから自由に使えない…

CWinApp::ExitInstance

MFC

CWinApp::ExitInstanceは、アプリケーションの終了処理を行うメンバ関数・・・。CWinApp::ExitInstanceで、このメンバ関数はRun内部から呼ばれる・・・。 正常なら0、エラーなら0より大きい値を返す・・・。今回は、InitInstanceでTRUEの時と、FALSEの時に、…

CWinApp::Run

MFC

CWinApp::Runは、メッセージループ処理を行うメンバ関数・・・。CWinApp::Runこれに任せれば、メッセージループは勝手にやってくれる・・・。 そのため、これを普段オーバーライドすることはないが、今回は、派生クラスCWinApp_のInitInstanceでフレームウィ…

CWinApp::InitInstance

MFC

CWinApp::InitInstanceは、アプリケーションの初期化を行うメンバ関数・・・。CWinApp::InitInstanceCWinAppの派生クラスを定義し、CWinAppからこのメンバ関数をオーバーライドして、独自の初期化処理を書く・・・。 初期化成功ならTRUEを返し、失敗ならFALS…

CFrameWnd

MFC

CFrameWndは、一般的なSDI(シングルドキュメントインターフェイス)形式のオーバーラップフレームウィンドウのクラス・・・。CFrameWnd クラスMFCの一般的なウィンドウはこれで作ることができる・・・。今回は、CWinAppベースなアプリケーションクラスCWinApp…

CWinApp

MFC

CWinAppは、Windowsアプリケーションの基本クラス・・・。CWinApp クラスMFCアプリケーションでは、WinMainではなく、このクラスのオブジェクト生成からWindowsアプリケーションの動作が始まる・・・。 ただ、今回もMFCアプリケーションではなく、空のWin32…

CString

MFC

CStringは文字列を扱うATL/MFC共有クラス・・・。CStringT クラス正確にはCStringTだが、CStringでもTCHAR対応で自動で切り替わるようになってて普通に使えるので、これで・・・。今回は、C++標準ライブラリのstring(std::string)の頁で作ったプログラムのCS…

AfxMessageBox

MFC

MFCはWindowsAPIのラッピングクラスライブラリ・・・。 C/C++標準ライブラリや素のWindowsAPIと組み合わせて使う・・・。AfxMessageBoxはMessageBoxのラッピング関数で、MFCのグローバル関数としてどこでも使える・・・。AfxMessageBoxWindowsAPIでは、Messa…