欢迎来到天天文库
浏览记录
ID:57631609
大小:31.50 KB
页数:5页
时间:2020-08-29
《MFC中位图按钮的方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2010-11-3018:36MFC中位图按钮的方法 曾加两个按钮所需的按下、抬起、选中和禁止状态对应的位图及其ID标识。在本文中共增加了8个位图,它们的ID标识分别为”ImageDown”、”ImageUp”、”ImageFocus”、”ImgaeDis”、”CancelD”、”CancelU”、”CancelF”、“CancelX“。要注意这里的ID标识都要包含双引号,从而使得VisualC++不为它们生成标识符定义语句。 (1)利用LoadBitmaps函数绘制按钮 ①向CBMTestDlg类中添加成员变
2、量: protected: CBitmapButtonbutton1;//定义位图按钮 ②在CBMTestDlg类的构造函数CBMTestDlg::CBMTestDlg中添加如下代码: //调入按钮位图资源函数 if(!button1.LoadBitmaps(_T(“ImageUp",//按钮一所需位图 _T(“ImageDown",_T(“ImageFocus", _T(“ImageDis”))) //抬起、按下、选中和禁止 { TRACE("Fai
3、ledtoloadbitmapforbutton1"; AfxThrowResourceException(); } ③向类CBMTestDlg类的OnInitDialog成员函数中添加如下代码: //将对话框中按钮标识与位图连接 VERIFY(button1.SubclassDlgItem(IDOK,this)); button1.SizeToContent();//使按钮大小适应位图 (2)利用AutoLoad函数绘制按钮 ①向
4、CBMTestDlg类中添加成员变量: protected: CBitmapButtonbutton2;//定义位图按钮 ②向类CBMTestDlg类的OnInitDialog成员函数中添加如下代码: VERIFY(button2.AutoLoad(IDCANCEL,this));//调入位图///////////////////////////////////////////选定要使用位图的按钮(以OK按钮为例,假设其标识符为IDC_B
5、TONOK)选其属性中的Ownerdraw选项,此时,在对话框编辑器中就可看到原先显示在按钮上的字符都消失了。将按钮的Caption改为OK(必须为大写)。打开Insert菜单,单击其中的Resource选项,随后选择Bitmap。再按下Import(导入)按钮,将所需位图导入项目(Project)。可以在ResourceView窗口中通过右键单击刚才导入的位图,将其ID(标识符)改为"OKU",注意:字符必须为大写,双引号及字母U必不可少。字母U代表的按钮为按下状态时所显示的位图。此外还可使用后缀D、F、X,分别表示按
6、下、拥有输入焦点时、按钮处于无效状态时所显示的位图。通过对同一个按钮的不同状态使用不同的位图,很容易做出具有动态效果的按钮。 当将按钮所需使用的位图导入到项目中后,就应该在使用位图按钮的那个对话框的类声明文件中加入位图按钮变量的定义CBitmapButtonm_BtonOK。同时,在适当的位置(一般是在对话框的OnInitDialog()函数中)加入如下语句:m_BtonOK.AutoLoad(IDC_BTONOK),使程序在运行时将位图装入内存并显示。先把这个位图这个选项选上,然后在程序里加下面的代码:HBITMAP
7、 hBitmap; hBitmap=::LoadBitmap(::AfxGetResourceHandle(),MAKEINTRESOURCE(IDB_BITMAP_DRAW)); m_btn.SetBitmap(hBitmap);其中m_btn为按钮变量,IDB_BITMAP_DRAW为要加载的位图资源ID. QQ头像的那种列表框procedureTFrmPrint.UpdateImageList;varMyImage:TAllImage;MyLabel:TLabel;SPos,i,j:intege
8、r;NumOfDICOMFrame:integer;beginfori:=scbImageList.ComponentCount-1downto0doscbImageList.Components[i].free;//图象列表//FindFiles(sPath:string;varFileBuf:TStringLis
此文档下载收益归作者所有