由于picture控件是由CStatic创建而来的,所以
CStatic::Create
BOOL Create( LPCTSTR lpszText, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff );
返回值:如果成功则返回非零值;否则返回0;
参数:
lpszText | 指定要放置在控件中的文本。如果是NULL,则表示没有文本是可见的。 |
dwStyle | 指定静态控件的窗口风格。任何静态控件风格的组合都可以用于这个控件。 |
rect | 指定静态控件的位置和大小。它可以是一个RECT结构或一个CRect对象。 |
pParentWnd | 指定CStatic父窗口,通常是一个CDialog对象。它不能是NULL。 |
nID | 指定静态控件的控件ID。 |
说明:
可以将下列窗口风格用于一个静态控件:
· | WS_CHILD | 总要使用。 |
· | WS_VISIBLE | 经常使用。 |
· | WS_DISABLED | 很少使用。 |
· | SS_BITMAP | 此风格用于位图。 |
· | SS_ICON | 此风格用于光标和图标。 |
· | SS_ENHMETAFILE | 此风格用于增强的图元文件。 |
· | SS_CENTERIMAGE | 用来使静态控件中的图像居中。 |
所以实现方法如下:
//第一种办法
//之前要设置pictrue属性为bitmap;
CStatic *pStatic = (CStatic*)GetDlgItem(IDC_STATIC); //IDC_STATIC 图形控件的ID
if (pStatic != NULL){
CStatic *pStatic = (CStatic*)GetDlgItem(IDC_STATIC);
pStatic->SetBitmap(::LoadBitmap(AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP1)));
}
//第二种方法
可以定义一个成员变量CBitmap m_Bitmap;
然后再你添加SetBitmap的地方添加:
HBITMAP hBM;
m_bitmap.LoadBitmap(MAKEINTRESOURCE(IDB_BITMAP1));
hBM = (HBITMAP)m_bitmap.GetSafeHandle();
pStatic->SetBitmap(hBM);