CStaticは、スタティックテキストやピクチャーコントロールなどのスタティックコントロールを扱うクラス・・・。
今回は、スタティックテキストの文字列変更と、ピクチャーコントロールのビットマップ表示をしてみる・・・。
MFCアプリケーションでCStaticプロジェクトを作成・・・。
もともと配置されているスタティックテキスト("TODO: ダイアログ~")を下に移動し、その下にボタンを配置、上にはピクチャーコントロールを配置・・・。
ビットマップとアイコンを用意し、リソース追加する・・・。
スタティックテキストとピクチャコントロールのIDが両方とも、IDC_STATICになっていたので、
スタティックテキストのIDをIDC_STATICから、IDC_STATIC1に変更・・・。
ピクチャーコントロールのIDは、IDC_STATIC2に変更・・・。
(どちらもNameがIDC_STATIC11や、IDC_STATIC22となっているが、この部分は気にしない・・・。(VisualStudioのバグ?))
また、
ピクチャーコントロールの[Type]は[フレーム]だと、ビットマップが表示されないので、[ビットマップ]に変更・・・。
そうすると、
黒い枠線(フレーム)が消えて、小さなアイコンになった・・・。
ビットマップスタイルだというアイコン・・・。
さて、これでCStatic.rcは、
IDC_STATIC1は、"TODO: ダイアログのコントロールをここに配置"というテキストのセットされたCTEXT・・・。
IDC_STATIC2は、SS_BITMAPオプションの付いた"Static"なCONTROL・・・。
となった・・・。
OnInitDialogは、
Button1のハンドラは、
まず、pStatic1->SetWindowTextでIDC_STATIC1に、"Hello, world!"をセット・・・。
続いて、pStatic2->SetBitmapでIDC_STATIC2に、ロードしておいたIDB_BITMAP1(bitmap1.bmp)をセットする・・・。
最初はこう・・・。でもButton1を押すと、
こうなる・・・。
下のテキストも変わったし、ビットマップも表示された・・・。
(スタティックテキストの背景がグレーのままだったり、ビットマップがはみ出てるのは、気にしない・・・。これらの問題の解決についてはいずれ取り扱う・・・。)
Sample/CStatic.h at master · bg1bgst333/Sample · GitHub
Sample/CStatic.cpp at master · bg1bgst333/Sample · GitHub
Sample/CStaticDlg.h at master · bg1bgst333/Sample · GitHub
Sample/CStaticDlg.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/CStatic.rc at master · bg1bgst333/Sample · GitHub
Sample/stdafx.h at master · bg1bgst333/Sample · GitHub
Sample/stdafx.cpp at master · bg1bgst333/Sample · GitHub