翻新时间:2022-10-24
用VC 6.0为对话框添加最小化按钮和提示条(1)
摘 要 本文通过实例介绍了用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)恢复原来的内存设备环境。入侵检测系统研究
论国家信息化战略
下载文档
网友最新关注
- 青蛙搬家
- 小毛驴和牛大哥
- 快乐的冬令营
- 最好吃的苹果和梨
- 躲雨
- 可爱的小虾
- 续写课文《水乡歌》
- 一次特殊的期末考试
- 笋芽儿
- 美丽的星空
- 小熊拔牙
- 逛市场
- 我爱我的家乡
- 小鸡得救了
- 小猴结婚
- 迎新生标语
- 中学庆祝第26个教师节活动方案
- 迎新生晚会策划书
- 学校教师节活动方案《绿叶对根的情意》
- 2012年商场超市教师节促销活动方案
- 教师节活动方案:老师,节日快乐
- 向教师感恩教师节庆祝活动
- 校园迎新标语精选
- 2012年迎新生策划书
- 大学迎新生演讲稿
- 迎新生横幅
- 2012年迎新生欢迎词
- 小学教师节优秀教师表彰会活动方案
- 幼儿园庆祝教师节主题活动方案
- 2012年商场教师节活动方案
- 小议注册会计师审计失真的成因与对策(1)
- 减少审计风险的出路何在(1)
- 日本环境会计的新进展及对我国的启示(1)
- 管理会计的新阶段——战略管理会计(1)
- 浅谈如何加强政府投资项目审计监督(1)
- 探讨我国环境会计信息披露(1)
- 小企业会计电算化系统实施探讨(1)
- 激活审计机关人力资源浅探(1)
- 关于流动资产盘点结果会计处理的思考(1)
- 我国上市公司推行审计委员会制度的思考(1)
- 新准则下公允价值对纳税调整的影响(1)
- 关于如何提高会计信息质量的若干问题的探讨(1)
- 工程项目成本核算问题研究(1)
- 会计信息化时代的会计内部控制探讨(1)
- 论电算化会计系统的内部控制和会计网络化(1)
- 《北京》 教学设计一
- 《小柳树和小枣树》 教学设计三
- 《坐井观天》 教学设计一
- 《欢庆》 教学设计一
- 《风娃娃》 教学设计四
- 《坐井观天》 教学设计五
- 《坐井观天》 教学设计四
- 《坐井观天》 教学设计二
- 《看雪》 教学设计二
- 《看雪》 教学设计三
- 《小柳树和小枣树》 教学设计一
- 《欢庆》 教学设计二
- 《北京》 教学设计三
- 《小柳树和小枣树》 教学设计二
- 《北京》 教学设计二