STATIC
ダイアログテンプレートにコントロールを追加したとします。テンプレートエディタのすぐそこにあるコントロールプロパティで、識別子を割り当てることができますIDC_PICTURE
。そこから-コントロールは実行時にすでに作成されています。コードではCWindow
変数を追加し、OnInitDialog
ハンドラー(すでに持っていると思います-AFAIRはデフォルトで作成され、さまざまなサンプルが存在します)でメンバー変数の初期化を追加するので、コードでさらに使用できるようになりますメッセージ処理のように。
class CMainDialog :
public CDialogImpl<CMainDialog>
{
// ...
private:
CWindow m_PictureStatic;
HBITMAP m_hPictureBitmap;
// Window Message Handlers
LRESULT OnInitDialog(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
m_PictureStatic = GetDlgItem(IDC_PICTURE);
m_hPictureBitmap = LoadBitmap(_AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDB_PICTURE));
ATLASSERT(m_hPictureBitmap);
m_PictureStatic.SendMessage(STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) m_hPictureBitmap);
// ...
}
LRESULT OnDestroy(UINT nMessage, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
{
ATLVERIFY(DeleteObject(m_hPictureBitmap));
return 0;
}
画像自体は(このコードスニペットでは、他のオプションがある可能性があります)識別子を持つビットマップリソースIDB_PICTURE
です。コードはリソースからビットマップをロードし、それをコントロールに渡します。

PictureStaticを追加する前のソースコード+ソースコード。