用vc++6.0为对话框添加最小化按钮

用vc++6.0为对话框添加最小化按钮

ID:22791588

大小:63.50 KB

页数:7页

时间:2018-10-31

用vc++6.0为对话框添加最小化按钮_第1页
用vc++6.0为对话框添加最小化按钮_第2页
用vc++6.0为对话框添加最小化按钮_第3页
用vc++6.0为对话框添加最小化按钮_第4页
用vc++6.0为对话框添加最小化按钮_第5页
资源描述:

《用vc++6.0为对话框添加最小化按钮》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、用VC++6.0为对话框添加最小化按钮摘要本文通过实例介绍了用VC++6.0为对话框添加最小化按钮和提示条的和原理关键词对话框最小化按钮提示条我们在使用对话框窗体时,会有这样一种感受:当对话框窗体位于其它程序窗口界面上时,单击对话框外区域时,可使对话框窗体最小化;而当对话框窗体位于桌面上时,无论怎样单击对话框外区域,对话框均不能最小化,只能选择关闭。但有时我们在使用对话框时,还希望能根据需要使对话框具有最小化功能。本文的设计思想就是据此提出来的。1实例程序设计要点⑴取得对话框标题栏位置和大小,在标题栏的适当位置绘制最小化按钮,并记住按钮的位置。⑵在最小化按钮所在区域检测

2、鼠标是否在该区域内、是否按下,是否发送最小化消息使对话框最小化,否则不变。⑶将最小化按钮矩形区域向工具提示条控件注册,这样当鼠标在最小化按钮矩形区域时,显示提示文本。2实例程序实现的步骤及说明⑴准备二个位图,一个位图表示最小化按钮正常显示状态,另一个位图表示最小化按钮被按下时的状态。⑵使用MFCAppinButton的对话框窗体,如图所示,将二个按钮位图导入对话框的资源里。⑶在CMinButtonDlg对话框类中进行变量定义和函数声明。⑷利用Class_NCPAINT,_ACTIVATE和_NCMOUSEMOVE的消息处理函数,在这三个函数中调用成员函数Dra_NCLB

3、UTTONDOWN和消息处理函数OnNcLButtonDown(UINTnHitTest,CPointpoint)。⑹函数DrawButton()用于绘制按钮。由于最小化按钮并不是一个真实的按钮控件,而是一个画在标题栏上的位图。因此,为了在对话框窗体标题上绘画,必须创建一个窗口设备环境类(相当于创建一个画布,有了这个画布,才能在画布上绘画,也就是才能在标题栏上绘画。)②调用函数CreatepatibleDC(CDC*pDC)创建一个内存设备环境,以便在内存中保存位图,并与指定的窗口设备环境相兼容;③调用函数SelectObject(CBitmap*pBitmap),将位

4、图选入内存设备环境中;④调用函数BitBlt(intx,inty,intnFC中提供了工具提示条控件类CToolTipCtrl,由它来管理提示条。在这里,我们从CToolTipCtrl类派生子类CToolTips。在子类的定义中添加函数BOOLAddToolTip(UINTnID,LPRECTlpRect,LPCTSTRlpszText),该函数用于向工具提示条控件注册按钮区域和提示文本,当鼠标在最小化按钮区域时,显示提示文本。3主要的程序代码⑴在对话框类中定义相应的变量和函数声明classCMinButtonDlg:publicCDialog{public:CRect

5、m_rtButtMin;//记录最小化按钮位置(转载自中国评价网.nseac.)voidDra_BMPPressed;//最小化按钮状态标志CRectm_ButtMinTips;//记录最小化按钮区域protected:CToolTipsm_ToolTip;//定义工具提示条控件变量voidGetMinButRect();//获取最小化按钮所在区域//消息处理函数afx_msgvoidOnNcLButtonDosgvoidOnNcPaint();afx_msgvoidOnActivate(UINTnState,Cinimized);afx_msgvoidOnNcMous

6、eMove(UINTnHitTest,CPointpoint);};⑵对话框类中三个消息处理函数定义如下://对应消息_NCPAINT的消息处理函数voidCMinButtonDlg::OnNcPaint(){CDialog::OnNcPaint();Dra_ACTIVATE的消息处理函数voidCMinButtonDlg::OnActivate(UINTnState,Cinimized){CDialog::OnActivate(nState,pinimized);DraDC=neap*pBitmap1=neap;CBitmap*pBitmap2=neap;CBitma

7、p*pOldBitmap;CRectrtemDC->CreatepatibleDC(pDC);if(!pDC)return;Getetrics(SM_CXFRAME);rtTitle.top=GetSystemMetrics(SM_CYFRAME);rtTitle.right=rtetrics(SM_CXFRAME);rtTitle.bottom=rtTitle.top+GetSystemMetrics(SM_CYSIZE);//最小化按钮的位置,位图大小为15X15rtButtons.top=rtTitle.top+1;rtBut

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。