您的位置:首页 > 其它

如何在static上显示位图

2014-12-09 12:34 211 查看
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.

http://blog.csdn.net/zlc19876/article/details/5355023
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: