- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用VC++6.0为对话框添加最小化按钮和提示条_计算机论文
用VC++6.0为对话框添加最小化按钮和提示条_计算机论文
摘 要 本文通过实例介绍了用VC++6.0为对话框添加最小化按钮和提示条的方法和原理
关键词 对话框 最小化按钮 提示条
我们在使用对话框窗体时,会有这样一种感受:当对话框窗体位于其它程序窗口界面上时,单击对话框外区域时,可使对话框窗体最小化;而当对话框窗体位于桌面上时,无论怎样单击对话框外区域,对话框均不能最小化,只能选择关闭。但有时我们在使用对话框时,还希望能根据需要使对话框具有最小化功能。本文的设计思想就是据此提出来的。
1 实例程序设计要点
⑴ 取得对话框标题栏位置和大小,在标题栏的适当位置绘制最小化按钮,并记住按钮的位置。
⑵ 在最小化按钮所在区域检测鼠标是否在该区域内、是否按下,是否发送最小化消息使对话框最小化,否则不变。
⑶ 将最小化按钮矩形区域向工具提示条控件注册,这样当鼠标在最小化按钮矩形区域时,显示提示文本。
2 实例程序实现的步骤及说明
⑴ 准备二个位图,一个位图表示最小化按钮正常显示状态,另一个位图表示最小化按钮被按下时的状态。
⑵ 使用MFC AppWizard(exe)创建工程名为MinButton的对话框窗体,如图所示,将二个按钮位图导入对话框的资源里。⑶ 在CMinButtonDlg对话框类中进行变量定义和函数声明。
⑷ 利用ClassWizard为对话框类添加消息WM_NCPAINT,WM_ACTIVATE和WM_NCMOUSEMOVE的消息处理函数,在这三个函数中调用成员函数DrawButton()来绘制按钮。
⑸ 利用ClassWizard为最小化按钮关联对应的消息WM_NCLBUTTONDOWN和消息处理函数OnNcLButtonDown(UINT nHitTest, CPoint point)。
⑹ 函数DrawButton()用于绘制按钮。由于最小化按钮并不是一个真实的按钮控件,而是一个画在标题栏上的位图。因此,为了在对话框窗体标题上绘画,必须创建一个窗口设备环境类(相当于创建一个画布,有了这个画布,才能在画布上绘画,也就是才能在标题栏上绘画。)
① 调用函数GetWindowDC()取得指向CDC的指针 CDC* pDC;
② 调用函数 CreateCompatibleDC(CDC* pDC)创建一个内存设备环境,以便在内存中保存位图,并与指定的窗口设备环境相兼容;
③ 调用函数SelectObject(CBitmap *pBitmap),将位图选入内存设备环境中;
④ 调用函数 BitBlt(int x, int y, int nWidth, int nHeight, CDC *pSrc, int xSrc, int ySrc, DWORD dwRop)将位图复制到实际设备环境中。其中,参数x, y 表示位图目标矩形左上角的x, y 逻辑坐标值;nWidth, nHeight 表示位图目标矩形的逻辑宽度和高度;pSrc 表示源设备环境CDC指针;xSrc, ySrc 表示位图源矩形的左上角的x, y 逻辑坐标值;dwRop 表示显示位图的光栅操作方式。光栅操作方式有多种,这里使用的是SRCCOPY,表示将位图直接复制到目标内存设备环境中。这里要说明一点:函数BitBlt()只能“一比一”的显示位图,如要任意缩放显示位图须使用函数StretchBlt(),该函数的使用方法,请参考相关书籍。
⑤ 位图选入内存环境中显示后,应调用函数SelectObject(CBitmap *pOldBitmap)恢复原来的内存设备环境。
⑺ 提示条实质上是一个小的弹出窗口,在窗口中显示一行文本,用来描述工具(或区域)的用途或其它信息。在MFC中提供了工具提示条控件类CToolTipCtrl,由它来管理提示条。在这里,我们从CToolTipCtrl类派生子类CToolTips。在子类的定义中添加函数BOOL AddToolTip( UINT nID, LPRECT lpRect, LPCTSTR lpszText),该函数用于向工具提示条控件注册按钮区域和提示文本,当鼠标在最小化按钮区域时,显示提示文本。
3 主要的程序代码
⑴ 在对话框类中定义相应的变量和函数声明
class CMinButtonDlg : public CDialog
{
…………
public:
CRect m_rtButtMin //记录最小化按钮位置
void DrawButton() //绘制最小化按钮
BOOL m_BMPPressed//最小化按钮状态标志
CRect m_ButtMinTips//记录最小化按钮区域
protected:
CToolTips m_ToolTip//
您可能关注的文档
- 热锻模具选材与制造工艺探讨_电子机械论文.doc
- 煤矿残煤开采研究_工程建筑论文.doc
- 照明理念:光·建筑·城市 _工程建筑论文.doc
- 燃气管线下穿地铁五号线注浆加固技术_工程建筑论文.doc
- 燃烧业锅炉节能减排技术的分析_电子机械论文.doc
- 牛岭界隧道过软基段的施工处理技术_工程建筑论文.doc
- 物探在南水北调中线天津干渠勘探中的应用_工程建筑论文.doc
- 物联网技术及其应用_计算机网络论文.doc
- 物资管理信息系统开发 _计算机论文.doc
- 特殊地段的盾构施工技术措施_工程建筑论文.doc
- 用Visual Basic 5.0开发无线通讯数据采集应用程序_计算机论文.doc
- 用VisualBasic实现多画面播放功能_计算机论文.doc
- 用Windows终端仿真程序实现微机远程文件传送 _计算机网络论文.doc
- 用Windows终端仿真程序实现微机远程文件传送1 _计算机论文.doc
- 用时程分析法对大坝进行动力分析_工程建筑论文.doc
- 用模糊综合评价方法进行网络安全风险评估_计算机网络论文.doc
- 用直接蒸发冷却提高风冷冷水机组性能的初步研究_工程建筑论文.doc
- 用计算机程序制作三维立体画_计算机论文.doc
- 用DSC测定兔主动脉血管冻结相变区间的表观比热容及其影响因素_工程建筑论文.doc
- 由北京财富大厦一期工程看智能火灾报警控制系统的特点_工程建筑论文.doc
文档评论(0)