您的位置:首页 > 其它

如何在static上显示位图

2015-08-28 22:02 281 查看
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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  CStatic MFC 位图