- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
消息处理 VC++软件开发教材.ppt
* VC++软件开发 广州大学华软软件学院 * VC++软件开发 广州大学华软软件学院 消息处理 主要内容 Windows消息处理机制 鼠标消息 键盘消息 定时器 自定义消息 一、 Windows 消息处理机制 在Windows程序设计中,消息是一个极为重要的概念,用户通过窗口界面的各种操作最后转化为发送到程序中的各种消息。然后由Windows系统交由相应的函数处理。 1.1 Windows消息的发送 MFC封装后的消息由消息号,字参数(wParam),长整型参数(lParam)3部分组成。 消息号是每条消息的标识,同时包含了消息的意义和来源。 两部分的参数则根据需要传递不同的内容。 1.1.1 消息发送函数 PostMessage 在发送完消息之后就返回,而不去理会该消息是否被处理。 队列消息,大多数的用户动作的处理方式。如鼠标处理,键盘处理等。 SendMessage 在发送完消息后,直到等该消息被处理完毕后才返回。 非队列消息,系统特定的Windows操作。如窗口更新等。 1.2.2 命令消息 命令消息是一种特殊的窗口消息,它从一个窗口发送到另一个窗口,以处理来自用户的请求。 消息格式如下表: 消息 参数wParam 参数lParam WM_COMMAND 0 CommandID 0 1.2.3 控件通知 控件通知类似于命令消息,当用户与控件窗口交互时,这类消息从控件窗口发送到主窗口。该类消息不用于处理用户命令,而是为了让主窗口更新控件的状态。 控件通知的发送可以用窗口消息,命令消息的形式发送。命令消息结构改变如下: 消息 参数wParam 参数lParam WM_COMMAND XN_XXX 控件ID 窗口句柄 除此之外,新的控件可以支持发送WM_NOTIFY消息作为控件通知。标准Windows控件不会发送WM_NOTIFY消息。 1.3 消息映射 将一条消息翻译并交由相应函数去处理的过程就是消息映射。 操作系统 应用程序 应用程序 用户 1.4 消息映射处理结构 首先,每个需要相应消息的类的头文件中,必须声明在该类中将使用消息映射来向函数映射消息。 DECLARE_MESSAGE_MAP() 然后,在类定义(主文件)中添加映射表的内容。 BEGIN_MESSAGE_MAP(CDialogShowDlg, CDialog) ON_BN_CLICKED(IDC_BTN_MODAL, CDialogShowDlg::OnBnClickedBtnModal) END_MESSAGE_MAP() 二、鼠标消息处理 2.1 鼠标的消息 鼠标的消息一共只有11条,按键操作占了9条。 鼠标的大部分操作消息需要在特定的客户区域才有效。离开了窗口客户区就接收不到消息。 消息 触发条件 WM_LBUTTONDOWN 位于窗口客户区按下左键 WM_LBUTTONUP 左键释放 WM_LBUTTONDBLCLK 位于窗口客户区双击左键 WM_MBUTTONDOWN 位于窗口客户区按下中键 WM_MBUTTONUP 中键释放 WM_MBUTTONDBLCLK 位于窗口客户区双击中键 WM_RBUTTONDOWN 位于窗口客户区按下右键 WM_RBUTTONUP 右键释放 WM_RBUTTONDBLCLK 位于窗口客户区双击右键 WM_MOUSEMOVE 在窗口客户区移动 WM_MOUSEWHEEL 获取焦点情况下滚动滑轮 2.2 鼠标的响应函数 afx_msg void OnMouseMove( UINT nFlags,//事件发生时的状态 CPoint point//事件发生时鼠标的坐标 ); 常量名称 含义 MK_CONTRL Ctrl键被按住 MK_LBUTTON 左键被按住 MK_RBUTTON 右键被按住 MK_CONTROL Ctrl键被按住 MK_SHIFT Shift键被按住 2.2.1 nFlag参数的代表值意义 思考 在对话框范围内,如何让鼠标一边移动,静态文本一边显示其坐标数字。 2.3 鼠标的工作范围 鼠标的消息是根据当前所在的窗口位置发送的。鼠标在哪个窗体的范围之内,哪个窗体就会接收到鼠标的消息。 2.3.1 获取鼠标控制权 如果希望鼠标在离开本窗口范围后,仍然能够接收鼠标的消息,可以使用SetCapture函数继续接收鼠标消息。 使用完毕后,必须调用ReleaseCapture函数释放接收权。 2.3.2 限定鼠标活动范围 如果希望禁止鼠标离开本窗口范围,可以使用ClipCur
有哪些信誉好的足球投注网站
文档评论(0)