- 1、本文档共6页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VC6.0_一个简单的图片按钮示例
VC++6.0 一个简单的图片按钮示例/blog/VC++ 2008-11-26 17:07:37 阅读621 评论0 字号:大中小 ?用以下例子,说明如何在VC++6的对话框中添加一个图片按钮。先给出运行的效果截图,图A为对话框最初加载,图B为鼠标单击时的效果。图一,初加载对话框图二,鼠标左键单击的效果?工程名为“TT”?此工程为基于对话框的,所以新建工程时,选择MFC AppWizard(exe)-基于对话框。?工程中有一个默认对话框,其ID为“IDD_TT_DIALOG”,其上有默认的“确定”“取消”按钮,在上面加一个按钮,ID就用默认的“IDC_BUTTON1”。??单击“样式”选项卡,修改其属性:“所有者绘制”与“位图”前的复选框必须打勾。?接下来制作两个图标,分别对应按钮的两种状态,一是初始状态,二是单击状态。从网上有哪些信誉好的足球投注网站两个图片,一般为jpg格式,先另保存为bmp,然后用PS进行处理,??将图片的模式改为索引模式,颜色为256,因为超过256将不能用VC++的图片编辑器加载。?将两个图片引入工程中,ID都采用默认的吧。??在对话框类中添加成员变量,类型为CBitmapButton ,变量名为m_BitmapBtn,全局变量或局部变量均可。!!不要这一行,删除!!!这个在对话框类的DoDataExchange函数中添加代码,DDX_Control( pDX, IDC_BUTTON1, m_BitmapBtn );在对话框类的初始化函数中添加代码,m_BitmapBtn.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);编译后运行,即成功。以下给出代码片段供参考。???void CTTDlg::DoDataExchange(CDataExchange* pDX){?CDialog::DoDataExchange(pDX);?DDX_Control( pDX, IDC_BUTTON1, m_BitmapBtn );//这句是我加的?//{{AFX_DATA_MAP(CTTDlg)?// NOTE: the ClassWizard will add DDX and DDV calls here?//}}AFX_DATA_MAP}?BOOL CTTDlg::OnInitDialog(){?CDialog::OnInitDialog();?// Set the icon for this dialog.? The framework does this automatically?//? when the applications main window is not a dialog?SetIcon(m_hIcon, TRUE);???// Set big icon?SetIcon(m_hIcon, FALSE);??// Set small icon??// TODO: Add extra initialization here?m_BitmapBtn.LoadBitmaps(IDB_BITMAP1,IDB_BITMAP2);//这句是我加的?return TRUE;? // return TRUE? unless you set the focus to a control}?注:在onInitDialog()的return之前加上m_BitmapBtn.SubclassDlgItem(IDC_BUTTON1,this);//关联到按钮m_BitmapBtn.SizeToContent();//函数使按钮适合图片大小才能实现讲的效果另外添加变量时在程序中定义一个CBitmapButton成员变量。 注意:不能使用ClassWizard为按钮映射一个CButton变量,然后改为CBitmapButton, 这么做并不能将按钮直接映射为CBitmapButton类的对象,反而会出现初始化错误CBitmapButton m_btnX1;定义变量,必须放在函数外面才能正常实现手动加入的话,应该在DoDataExchange里将手动的它与控件资源相联系起来,加入DDX_Control(pDX, ? IDC_BUTTON3, ? m_btnX); 如下所示: void ? CTestdlg1Dlg::DoDataExchange(CDataExchange* ? pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CTestdlg1Dlg) //}}AFX_DATA_MAP DDX_Control(pDX, ? IDC_BUTTON3, ? m_btnX); }
文档评论(0)