- 1、本文档共129页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
// 若是对话框控件的消息,将鼠标消息发送给 CToolTipCtrl 控件 // 然后由控件来处理这些消息,判断是否显示提示信息 if (msg.hwnd) { m_wndToolTip.RelayEvent(msg); } } return CDialog::PreTranslateMessage(pMsg); } 将前面添加对话框的对应类 CDlgExampleDlg 从 CToolTipDlg 中继承,在ResourceView 的 StringTable 中添加控件 ID 相对应的提示信息。编译、运行该应用程序,当鼠标停留在控件上时就会显示提示信息。 第七章 定制应用程序外观 自定义窗口大小 自定义窗口标题 定制窗口的图标,光标和背景 黑色画刷作为窗口背景 自定义光标 自定义图标 窗口背景仍然是白色,光标仍然是默认的光标,为何? 答:因为应用程序默认有两个窗口,一个是框架窗口,一个是视图窗口,视图窗口覆盖在框架窗口之上,我们只改变了框架窗口的背景和光标,但是被视图窗口给挡住了。因此应该在视图类的创建窗口之前,改变设置 如何动态显示应用程序的图标 预先准备好几幅图标资源,然后再程序中每隔一定的时间按顺序循环显示这几幅图标,从而就实现了一种动画的效果。编码时只要利用定时器和SetClassLong函数就可以完成这个功能。SetClassLong函数允许窗口在创建完成之后修改窗口的外观属性。因此只要每隔一定的时间调用一次这个函数即可。 1.准备好三幅图标,可以在网站下载;2.将资源编辑器中导入这三个图标,并定义其唯一的ID号,IDI_ICON1,IDI_ICON2,IDI_ICON3 3.在CMainFrame类中,定义一个图标句柄数组成员变量,用来存放这三幅图标的句柄,如: Private: HICON m_hIcons[3]; 4.在CMainFrame类的OnCreate函数中利用LoadIcon函数加载三个图标: 三种获得应用程序句柄的方法 MAKEINTRESOURCE()宏将资源ID号转换为资源表示字符串 在CMainFrame类中添加定时器响应函数 启动的时候就显示自定义的图标 * * 13周结束 * 下次课 * * 改到这里 * 通过VC中演示讲述,不在PPT中讲 * 通过VC中演示讲述,不在PPT中讲 * 通过VC中演示讲述,不在PPT中讲 * 通过VC中演示讲述,不在PPT中讲 * 通过VC中演示讲述,不在PPT中讲 * 通过VC中演示讲述,不在PPT中讲 * 通过VC中演示讲述,不在PPT中讲 * 介绍非模态对话框的创建过程和与模态对话框的区别 * UpdateData()的用法 当调用UpdateData(TRUE)时,MFC通过调用DDX函数将数据从控件传递到关联的成员变量; 当调用UpdateData(FALSE)时,MFC通过调用DDX函数将数据从成员变量传递到关联的的控件。 利用UpdateData()函数实现了在刷新后重新获取成员变量。 对话框中的成员变量 UpdateData(TRUE) UpdateData(FALSE) 初始化成员变量 更新后重新获取成员变量 注 意 当程序调用CDialog::DoModal()创建并显示对话框时,将自动调用CDialog::OnInitDialog()完成初始化的工作。在函数OnInitDialog()中,程序会自动调用UpdateData(FALSE),将数据从成员变量传递到关联的控件,从而显示在控件中。 单击OK按钮将调用CDialog::OnOk()函数,在OnOK()中程序会自动调用UpdateData(TRUE),将数据从控件传递到关联的成员变量。 DDX就如同一条双向通道,而方向控制开关就是UpdateData()函数中的BOOL类型参数是TRUE还是FALSE。 提示信息对话框 提示信息对话框也称消息对话框,用来显示有关的提示信息。 提示信息对话框是一种最简单的对话框,不需要用户自己创建它就可以直接使用,Visual C++提供了相应的函数实现这样的功能。 MFC全局函数: int AfxMessageBox(LPCTSTR lpText, UINT nType=MB_OK, UINT nlDHelp=0); API函数: int MessageBox(HWND hWnd, LPCTSTR lpText, LPCT
文档评论(0)