読者です 読者をやめる 読者になる 読者になる

MFC

CListCtrl::GetItemText

MFC

CListCtrl::GetItemTextは、指定されたアイテム(行)の指定されたカラム(列)のテキストを取得するメンバ関数・・・。CListCtrl::GetItemTextCListCtrl::GetNextItemで行インデックスが取得できたので、あとは列を指定すればテキストを取得できる・・・。Name…

CListCtrl::GetNextItem

MFC

CListCtrl::GetNextItemは、指定された条件に合うアイテムのインデックスを取得するメンバ関数・・・。CListCtrl::GetNextItem最初は第1引数に-1を指定すると、条件に合う最初のインデックスを返す・・・。 選択されているアイテムのインデックスを取得する…

CListCtrl::SetItem

MFC

CListCtrl::SetItemは、リストコントロールの1列目以降にアイテムをセットするメンバ関数・・・。CListCtrl::SetItemCListCtrl::InsertItemでは0列目しかセットできないので、これで1列目以降をセットする・・・。 CListCtrlの項ではLVITEMを使っていたが、…

CListCtrl::InsertItem

MFC

CListCtrl::InsertItemは、リストコントロールにアイテムを挿入するメンバ関数・・・。CListCtrl::InsertItemCListCtrlの項ではLVITEMをセットする形だったが、直接アイテムテキストをセットするオーバーロード関数のほうが簡単なのでそちらを使う・・・。 …

CListCtrl::InsertColumn

MFC

CListCtrl::InsertColumnは、リストコントロールにカラム(列)ヘッダを挿入するメンバ関数・・・。CListCtrl::InsertColumn前回は、LVCOLUMN構造体変数をセットする形式だったが、ヘッダ名などのパラメータを直接指定するもう一つのオーバーロード関数のほう…

CListCtrl

MFC

CListCtrlは、リストコントロールを扱うクラス・・・。CListCtrl クラスWin32でいうリストビュー(WC_LISTVIEW)のことだが、MFCにはCListViewというCListCtrlの機能を含む別のクラスがあるので、ここではリストコントロールと呼ぶ・・・。を選択し、このよう…

CProgressCtrl::SetPos

MFC

CProgressCtrl::SetPosは、現在位置をセットするメンバ関数・・・。CProgressCtrl::SetPos初期位置を50にセットする・・・。OnInitDialogで、IDC_PROGRESS1のCProgressCtrlオブジェクトポインタをpProgress1に格納・・・。 pProgress1->SetPosで50をセット・…

CProgressCtrl

MFC

CProgressCtrlは、プログレスバーを扱うクラス・・・。CProgressCtrl クラスボタンを押すごとにプログレスバーが進むようにしてみる・・・。を選択し、こう配置・・・。 ついでに、ボタンも下に配置した・・・。プログレスバーが1回進む度に、滑らかに動くよ…

CWnd::OnVScroll

MFC

縦方向のスクロールバーが操作されたとき、親ウィンドウのダイアログにWM_VSCROLLが送信される・・・。 (WM_VSCROLLの項を参照のこと・・・。) CWnd::OnVScrollは、WM_VSCROLLのイベントハンドラで、ここにスクロールバーの操作に対する処理を書く・・・。CW…

CScrollBar

MFC

CScrollBarは、スクロールバーを扱うクラス・・・。CScrollBar クラススクロールバーを配置して、変化する値の範囲、スクロールバーの現在位置をセットする・・・。縦方向のスクロールバー[Vertical Scroll Bar]を選択し、このように配置・・・。IDC_SCROLLB…

CComboBox::GetLBText

MFC

CComboBox::GetLBTextは、コンボボックスのリストボックス領域で選択されている項目のテキストを取得するメンバ関数・・・。CComboBox::GetLBTextGetLBTextLenで長さを取得したので、GetLBTextでテキストを取得する・・・。pComboBox1->GetLBTextLenでテキス…

CComboBox::GetLBTextLen

MFC

CComboBox::GetLBTextLenは、コンボボックスのリストボックス領域で選択されている項目のテキストの長さを取得するメンバ関数・・・。CComboBox::GetLBTextLenCListBoxはGetTextLenだったが、CComboBoxはGetLBTextLenで長さを取得・・・。追加ボタンButton1…

CComboBox

MFC

CComboBoxは、コンボボックスを扱うクラス・・・。CComboBox クラスコンボボックスは、エディットボックスとリストボックスの機能が一つになったもので、 リストボックスに選択したい項目が無い場合は、エディットボックス部分に指定した文字列を新しい項目…

CListBox::GetText

MFC

CListBox::GetTextは、リストボックスの選択されている項目のテキストを取得するメンバ関数・・・。CListBox::GetTextテキストの長さがわかったので、バッファを準備して、この関数でテキストを取得しバッファに格納する・・・。配置したら、Button2を押した…

CListBox::GetTextLen

MFC

CListBox::GetTextLenは、リストボックスの選択されている項目のテキストの長さを取得するメンバ関数・・・。CListBox::GetTextLen選択されている項目のテキストを取得したいが、その前にどれくらいの長さかわからないとバッファを作れないのでこれで長さを…

CListBox::GetCurSel

MFC

CListBox::GetCurSelは、リストボックスの選択されている項目のインデックスを取得するメンバ関数・・・。CListBox::GetCurSel項目を追加するボタンButton1に加えて、選択されている項目のインデックスをメッセージボックスで表示するボタンButton2を追加す…

CListBox::AddString

MFC

CListBox::AddStringは、文字列を項目としてリストボックスに追加するメンバ関数・・・。CListBox::AddString今回はエディットボックスを用意して、ボタンを押すと、エディットボックスの文字列をリストボックスに追加していくようにする・・・。このように…

CListBox

MFC

CListBoxは、リストボックスを扱うクラス・・・。CListBox クラススタティックコントロールを、上にずらす・・・。 ツールボックスから、ListBoxを選択し、真ん中に配置・・・。CListBoxDlg::OnInitDialogにて、pListBox1->AddStringで"Item1"~"Item3"とい…

CWnd::GetCheckedRadioButton

MFC

CWnd::GetCheckedRadioButtonは、どのラジオボタンがチェックされているかを返すメンバ関数・・・。CWnd::GetCheckedRadioButtonチェックボックスの場合は、CButtonクラスのインスタンスとして取得し、メンバ関数のGetCheckで確認した・・・。 ラジオボタン…

CButton::GetCheck

MFC

CButton::GetCheckは、チェックボックスがチェックされているかどうかを返すメンバ関数・・・。CButton::GetCheckチェックボックスもCButtonクラスで操作する・・・。これを選択して、上のほうに配置・・・。デフォルトでAutoプロパティがTrueになっているか…

CEdit

MFC

CEditは、エディットコントロールを扱うクラス・・・。CEdit クラスエディットコントロールに入力された文字列をメッセージボックスで表示してみる・・・。MFCでCEditプロジェクトを作成したら、このように、エディットコントロールとボタンを配置する・・・…

CStatic

MFC

CStaticは、スタティックテキストやピクチャーコントロールなどのスタティックコントロールを扱うクラス・・・。CStatic クラス今回は、スタティックテキストの文字列変更と、ピクチャーコントロールのビットマップ表示をしてみる・・・。MFCアプリケーショ…

CBitmap

MFC

CBitmapは、ビットマップを扱うクラス・・・。CBitmap クラスこれを使って、ビットマップの読み込みや描画などができる・・・。今回は、巨大なボタンが押されたら、巨大なビットマップをボタンに表示させる・・・。MFCアプリケーションでこれまでと同様にCBi…

CButton::SetIcon

MFC

CButton::SetIconは、ボタンにアイコンをセットするメンバ関数・・・。CButton::SetIconボタンが押されたら、アイコンが変わるようにしてみる・・・。今回はボタンは1つだけ・・・。ここで右下のプロパティでIconの項目をTrueにする・・・。 そうすると、ボ…

CWinApp::LoadIcon

MFC

CWinApp::LoadIconは、アイコンをロードするメンバ関数・・・。CWinApp::LoadIconこれまでWindowsAPIのLoadIconを使ってきたが、こちらはインスタンスハンドル不要で、リソース名またはリソースIDだけでいい・・・。CWinAppクラスメンバなので、CWinApp_プロ…

CWnd::SetIcon

MFC

CWnd::SetIconは、ウィンドウにアイコンをセットするメンバ関数・・・。CWnd::SetIconCDialogは当然CWndの派生クラスなので、これでダイアログにアイコンをセットする・・・。CWnd_プロジェクトを作成・・・。これまでと違うのはシステムメニューにチェック…

AfxGetApp

MFC

AfxGetAppは、現在のアプリケーションのCWinAppオブジェクトポインタを返すMFCグローバル関数・・・。AfxGetAppCWinApp派生のオブジェクトのInitInstance内でのthisの値と、CDialog派生のオブジェクト内のAfxGetApp()が返す値が同じかを確認してみる・・・。…

CButton

MFC

CButtonは、ボタンコントロールのクラス・・・。CButton クラス今回は、ボタンを2つ配置して、CButtonクラスのオブジェクトポインタを使って、ボタンを操作する・・・。ここからは、MFCアプリケーションウィザードを使ってプロジェクトを作る・・・。[Visual…

CDialog::DoModal

MFC

CDialog::DoModalは、モーダルダイアログを表示するメンバ関数・・・。CDialog::DoModal今回は、ダイアログ上でクリックしたら、DoModalの戻り値としてIDOKを返し、閉じるボタンが押したら、IDCANCELを返す・・・。 また、その辺の処理を実装するに当たって…

CDialog

MFC

CDialogはダイアログを扱うクラス・・・。CDialog クラスこれを使って、ダイアログを表示する・・・。メニュー項目Item1-1がクリックされた時、CDialogで作ったダイアログを表示してみる・・・。resource.hに、とリソースID"IDD_DIALOG"の番号を割り振り、CD…

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…