假设您将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
。代码从资源加载位图并将其传递给控件。

源代码+添加图片静态之前的源代码。