欢迎来到天天文库
浏览记录
ID:9776645
大小:60.50 KB
页数:4页
时间:2018-05-08
《用vc++6.0为对话框添加最小化按钮和提示条的论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、用VC++6.0为对话框添加最小化按钮和提示条的论文摘要本文通过实例介绍了用vc++6.0为对话框添加最小化按钮和提示条的方法和原理关键词对话框最小化按钮提示条我们在使用对话框窗体时,会有这样一种感受:当对话框窗体位于其它程序窗口界面上时,单击对话框外区域时,可使对话框窗体最小化;而当对话框窗体位于桌面上时,无论怎样单击对话框外区域,对话框均不能最小化,只能选择关闭。但有时我们在使用对话框时,还希望能根据需要使对话框具有最小化功能。本文的设计思想就是据此提出来的。1实例程序设计要点⑴取得对话框标题栏位置和大小,在标题栏的适当位置绘制最小化按钮,并记住按钮的位置。⑵在最小化按钮所在区域检
2、测鼠标是否在该区域内、是否按下,是否发送最小化消息使对话框最小化,否则不变。⑶将最小化按钮矩形区域向工具提示条控件注册,这样当鼠标在最小化按钮矩形区域时,显示提示文本。2实例程序实现的步骤及说明⑴准备二个位图,一个位图表示最小化按钮正常显示状态,另一个位图表示最小化按钮被按下时的状态。⑵使用mfcappinbutton的对话框窗体,如图所示,将二个按钮位图导入对话框的资源里。⑶在cminbuttondlg对话框类中进行变量定义和函数声明。⑷利用class_ncpaint,_activate和_ncmousemove的消息处理函数,在这三个函数中调用成员函数dra_nclbuttondo
3、ap*pbitmap),将位图选入内存设备环境中;④调用函数bitblt(intx,inty,intnap*poldbitmap)恢复原来的内存设备环境。⑺提示条实质上是一个小的弹出窗口,在窗口中显示一行文本,用来描述工具(或区域)的用途或其它信息。在mfc中提供了工具提示条控件类ctooltipctrl,由它来管理提示条。在这里,我们从ctooltipctrl类派生子类ctooltips。在子类的定义中添加函数booladdtooltip(uintnid,lprectlprect,lpctstrlpsztext),该函数用于向工具提示条控件注册按钮区域和提示文本,当鼠标在最小化按钮区
4、域时,显示提示文本。3主要的程序代码⑴在对话框类中定义相应的变量和函数声明classcminbuttondlg:publiccdialog{…………public:crectm_rtbuttmin;//记录最小化按钮位置voiddra_bmppressed;//最小化按钮状态标志crectm_buttmintips;//记录最小化按钮区域protected:ctooltipsm_tooltip;//定义工具提示条控件变量voidgetminbutrect();//获取最小化按钮所在区域//消息处理函数afx_msgvoidonnclbuttondosgvoidonncpaint();af
5、x_msgvoidonactivate(uintnstate,cinimized);afx_msgvoidonncmousemove(uintnhittest,cpointpoint);…………};⑵对话框类中三个消息处理函数定义如下://对应消息_ncpaint的消息处理函数voidcminbuttondlg::onncpaint(){cdialog::onncpaint();dra_activate的消息处理函数voidcminbuttondlg::onactivate(uintnstate,cinimized){cdialog::onactivate(nstate,pinimiz
6、ed);dra_ncmousemove的消息处理函数voidcminbuttondlg::onncmousemove(uintnhittest,cpointpoint){draousemove(nhittest,point);}⑶绘制最小化按钮的函数voidcminbuttondlg::draemdc=neap*pbitmap1=neap;cbitmap*pbitmap2=neap;cbitmap*poldbitmap;crectrtemdc->createpatibledc(pdc);if(!pdc)return;getp;rtmetrics(sm_cxframe);rttit
7、le.top=getsystemmetrics(sm_cyframe);rttitle.right=rtmetrics(sm_cxframe);rttitle.bottom=rttitle.top+getsystemmetrics(sm_cysize);//计算最小化按钮的位置,位图大小为15x15rtbuttons.top=rttitle.top+1;rtbuttons.bottom=rtbuttons.top+15;rtbuttons.ri
此文档下载收益归作者所有