用vc++6.0为对话框添加最小化按钮和提示条

用vc++6.0为对话框添加最小化按钮和提示条

ID:21023495

大小:57.50 KB

页数:4页

时间:2018-10-18

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

《用vc++6.0为对话框添加最小化按钮和提示条》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

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

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

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

4、Dlg:publicCDialog{…………public:CRectm_rtButtMin;//记录最小化按钮位置voidDra_BMPPressed;//最小化按钮状态标志CRectm_ButtMinTips;//记录最小化按钮区域protected:CToolTipsm_ToolTip;//定义工具提示条控件变量voidGetMinButRect();//获取最小化按钮所在区域//消息处理函数afx_msgvoidOnNcLButtonDosgvoidOnNcPaint();afx_msgvoidOnActivate(UINTnState,Cinimize

5、d);afx_msgvoidOnNcMouseMove(UINTnHitTest,CPointpoint);…………};⑵对话框类中三个消息处理函数定义如下://对应消息_NCPAINT的消息处理函数voidCMinButtonDlg::OnNcPaint(){CDialog::OnNcPaint();Draized){CDialog::OnActivate(nState,pinimized);DraDC=neap*pBitmap1=neap;CBitmap*pBitmap2=neap;CBitmap*pOldBitmap;CRectrtemDC->Cr

6、eatepatibleDC(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;rtButtons.bottom=rtButtons.top+15;rtButtons.r

7、ight=rtTitle.right-20;rtButtons.left=rtButtons.right-15;m_rtButtMin=rtButtons;pBitmap1->LoadBitmap(IDB_BITMAP1);//调入正常状态按钮的位图pBitmap2->LoadBitmap(IDB_BITMAP2);//调入按钮按下状态的位图m_rtButtMin.OffsetRect(rtPPressed为TRUE//调入正常状态按钮的位图pOldBitmap=pMemDC->SelectObject(m_BMPPressed?pBitma

8、p1:pBitmap2);//将按钮位

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

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

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