1 拖动一个Static到对话框上,如何在这个Static上添加资源中的位图?
为这个static控件关联一个变量: Cstatic m_static;
然后在对话框的初始化函数中:
//加载位图
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_static.SetBitmap(bmp);
效果没有
为什么呢?需要为这个static添加一个属性:SSBMP
//加载位图
CBitmap bmp;
bmp.LoadBitmap(IDB_BITMAP1);
m_static.ModifyStyle(0,SS_BITMAP);
m_static.SetBitmap(bmp);
还是没有,为什么呢?
因为bmp为局部变量,函数结束就销毁了。因此将之定义为类的成员变量,或全局变量。
就OK了。
2 如何动态的创建一个Cstatic 然后添加位图资源呢?
在类中定义 CStatic myStatic;//一定是在类中定义
然后在对话框的初始化函数中:
//加载位图
bmp.LoadBitmap(IDB_BITMAP1);
// m_static.ModifyStyle(0,SS_BITMAP);
// m_static.SetBitmap(bmp);
// Create a child static control that centers its text horizontally.
myStatic.Create(_T("my static"), WS_CHILD|WS_VISIBLE|SS_CENTER|SS_BITMAP,
CRect(10,10,150,50), this);
myStatic.SetBitmap(bmp);
没有位图出现,这是怎么回事呢?
去掉SS_CENTER就好了。为什么呢?
个人理解:一个现象,拖动一个Picture到对话框上,然后看看属性:
如果要为这个Picture关联变量,选择控件类型的话,只有Cstatic,因此Picture也是Cstatic,Picture属性有Frame Rectangle Icon Bitmap 和 Enhanced Metafile那么Cstatic也有这几个属性,如SS_BLACKFRAME SS_BLACKRECT SS_ICON SS_BITMAP.