当前位置:首页>开发>正文

static方法引用 VC Static显示图问题

2023-04-30 10:54:13 互联网 未知 开发

 static方法引用 VC Static显示图问题

static方法引用

static方法里不能用this,因为static方法是类方法,它一直存在,static方法存在时很可能还没有定义对象实体,所以不能用this。
这是最基础的JAVA知识了,你该好好看下JAVA的一些基本规范,很有好处!

VC Static显示图问题

因为在VC里 Static 控件的ID默认的都是 IDC_STATIC,所有的静态控件都是这个ID,因此若要为你的 Static 控件绑定一个变量的话就得改下它的 ID 才行。

你上面说的代码的问题在于你的 CStatic sta 与你的控件没有任何关系,另外要为你的这个Static 控件设置 SS_BITMAP 属性(默认的是一个框架,这个可以在控件属性里改,也可用函数来改)
HBITMAP bmp
bmp = LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(位图ID))

ModifyStyle(0,SS_BITMAP)//修改它的属性为位图
sta.SetBitmap(bmp)

如何在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了。在类中定义 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) 没有位图出现,这是怎么回事呢?个人理解:一个现象,拖动一个Picture到对话框上,然后看看属性:如果要为这个Picture关联变量,选择控件类型的话,只有Cstatic,因此Picture也是Cstatic,Picture属性有Frame Rectangle Icon Bitmap 和 Enhanced Metafile那么Cstatic也有这几个属性,如SS_BLACKFRAME SS_BLACKRECT SS_ICON SS_BITMAP.

最新文章