vc++编程技术600个大型项目源码(四).doc
上传人:qw****27 上传时间:2024-09-12 格式:DOC 页数:45 大小:158KB 金币:15 举报 版权申诉
预览加载中,请您耐心等待几秒...

vc++编程技术600个大型项目源码(四).doc

vc++编程技术600个大型项目源码(四).doc

预览

免费试读已结束,剩余 35 页请下载文档后查看

15 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

本资料由-HYPERLINK"http://www.chuangyw.com/"校园大学生创业网-提供http://www.chuangyw.com/HYPERLINK"http://www.dailiav.com/"在线代理http://www.dailiav.com/提供部分资料HYPERLINK"http://pigproxy.cn/"减肥药排行榜http://pigproxy.cn/提供部分资料自绘按钮一、位图按钮的实现方法:首先,我们创建一个基于对话框的应用程序CmyDialog;Ι.MFC的CBitmapButton类,这也是最简单的功能最强的位图按钮。我们可以采取如下的步骤:1.为按钮指定唯一的按钮标题(此例子为OK按钮,这里设置按钮标题为OK)并选中Ownerdraw属性,然后在项目中加一些位图资源,并用名字标示这些资源而不要用数字ID,其ID分别为”OKU”、”OKD”、”OKF”、”OKX”(一定要加双引号),分别对应于按钮的“松开(Up)”、“按下(Down)”、“获得输入焦点(focused)”和“禁止(Disable)”状态。2.我们还要在对话框类中加入CBitmapButtonm_aBmpBtn;数据成员。3.在初始化中为这个成员调用:…m_aBmpBtn.AutoLoad(IDOK,this);…点击编译按钮,成功后运行程序,哈哈,看看效果,我们的位图按钮已经建立了。/*如果以上方法不行请检查你的BITMAP资源,APPSTUDIO中,"OKU"和"OKD"等的资源名称都是需要用引号引起来的,AutoLoad不成功,很可能就是由此产生的。*/改变CANCLE按钮的标题,可以设置其标题为ICON或者BITMAP:(这里我们演示了bitmap的用法,Icon按钮读者可以按照下面的代码处理)Ⅱ.使用图标制作按钮1.打开ICON按钮的属性页,在Style中选中Icon。2.在对话框类的头文件中定义成员变量(使用ClassWizard加入这个成员变量)CButtonm_IconBtn;//对应于图标按钮3.创建相应的图标或者位图资源:图标资源:IDI_ICONBUTTON4.在初始化中加入如下代码:…//对应于图标按钮HICONhIcon=AfxGetApp()->LoadIcon(IDI_ICONBUTTON);m_IconBtn.SetIcon(hIcon);…重新编译运行我们的程序,奇妙的图像按钮呈现在我们的眼前了。Ⅲ.使用位图制作按钮1.打开BITMAP按钮的属性页,在Style中选中Bitmap。2.对话框类的头文件中定义成员变量(使用ClassWizard加入这个成员变量)CButtonm_IconBtn;3.创建位图资源:位图资源:IDB_BITMAPBUTTON4.在初始化中加入如下代码://对应于位图按钮…HBITMAPhBmp=::LoadBitmap(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDB_BITMAPBUTTON));m_BmpBtn.SetBitmap(hBmp);二、一,只加载一张位图的方法:1,装入bmp资源,id为IDB_BMP,按钮的bitmap属性设为true,icon属性为false。2,CButton*pBtn=(CButton*)GetDlgItem(IDB_BMP);CBitmapbitMap;HBITMAPhBit;if(bitMap.LoadBitmapW(IDB_NORMAL_BTN)){hBit=(HBITMAP)bitMap.Detach();pBtn->SetBitmap(hBit);}缺点:图片不会自动拉伸。二,为按钮的不同状态加载不同的位图:(使用CBitmapButton类)这种方法还可以。1,按钮属性OwnerDraw选上,按钮ID:IDC_BUTTON1为IDC_BUTTON1添加CButton变量m_button,2,然后手动将CButtonm_button改为CBitmapButtonm_button;3,在初始化里边m_button.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);//IDB_BITMAP1:平时;IDB_BITMAP2:按下m_button.SubclassDlgItem(IDC_BUTTON1,this);m_button.SizeToContent();或者用另一种方式,不必为IDC_BUTTON1添加关联的变量。直接声明CBitmapButtonm_button;,在初始化里边调用m_BitmapBtn.AutoLoad(IDC_BUTTON1_AREA,this);//把按钮和变量联系起来m_