Picture Control
picture control就是简单在页面上放一个图片上去.默认支持的图片格式是Bitmap和Icon,如果想放其他的如jpg则需要写很多代码了啊.
静态添加图标
如果在Resource里面已经添加了Bitmap或Icon图标,那往picture中加入图标很简单,设几个属性就行
把Type设为Icon,然后在Image属性下面选择已经添加的Icon图标.
或者把Type设为Bitmap,然后在Image下选Bitmap图标
Type属性中还有两个常用的属性是
Etched Horz:显示一条横分割线,线的长短和宽度用鼠标拉动下去调.
Etched Vert:显示一条竖分割线
另外几种Type就不那么常用了
Rectangle:显示一个填充的矩形框,矩形颜色可通过Color属性的下拉列表设定
Enhanced Metafile:显示一个加强的元数据文件(Metafile)
Owner Draw:自绘
动态加载图标
静态加载图标是已经知道是显示个啥图片.但如果有时事先不知道要显示哪个图标,得根据一些判断条件然后才能确定显示啥.这时需要写代码实现
先给picture button绑定一个变量,不过由于它默认的ID跟Static Text一样,不管你添加几个都一直默认是IDC_STATIC,所以是这个ID时绑定变量会失败(因为多个控件时都默认的IDC_STATIC无法区分它们了),也不知道当初微软为啥要把ID都默认成一样的,不像其他控件一样自动在后面加后缀数字区分.这我猜是那些人偷懒的结果.
反正随便把ID改个名字就行.就改成IDC_PIC吧.
CStatic m_pic;
DDX_Control(pDX, IDC_PIC, m_pic);
//动态加载,这些代码要写在OnInitDialog中貌似不会生效,弄一个button,然后添加地个消息处理函数放进就会生效.原因还有待研究.
//另外如果要加载bitmap,得先把控件的Type设为Bitmap
CBitmap bp;
HBITMAP hBP;
bp.LoadBitmapW(IDB_BITMAP3);
hBP = (HBITMAP)bp.GetSafeHandle();
m_pic.SetBitmap(hBP);
补充:综合编程 , 其他综合 ,