MFC_消息处理

1、TRACE(L"%d", i);TRACE()函数可以帮我们进行调试,

2、

while(!GetMessage(&msg, NULL, 0, 0))
{
    TranslateMessage(&msg);
    DispatchMessage(&msg);            //调用消息处理函数
}

3、MFC中将这个消息循环隐藏了,给我们建立了一套更加方便的消息响应机制。

4、CRect类:这个类代表一个巨型

5、CPoint类:这个类代表一个点坐标

6、CSize类:这个类代表一个巨型区域大小

7、CRgn类:这个类代表一个规则形状区域(这个规则形状可能是一个多边形,可能是一个巨型,可能是一个椭圆)

8、OnLButtondown(UINT nFlags, CPoint point)

  point:鼠标点击左键时的坐标。

  nFlags:

    MK_CONTROL :点击鼠标左键的时候,Ctrl键为按下状态。

    MK_LBUTTON :鼠标左键被按下。

    MK_MBUTTON:鼠标中间键被按下。

    MK_RBUTTON:鼠标右键被按下。

    MK_SHIFT:shift键为按下状态。

9、不要使用框架窗口去响应大部分消息,因为,视图窗口将框架窗口的客户去遮盖起来了。所以,很多消息不能发送给框架窗口,导致框架窗口不能正常的响应消息。

时间: 2024-10-06 02:11:00

MFC_消息处理的相关文章

.Net WinForm 控件键盘消息处理剖析

在WinForm控件上我们可以看到很多关于键盘消息处理的方法,比如OnKeyDown, OnKeyPress, ProcessCmdKey, ProcessDialogKey,IsInputKey等等,那么这些方法是如何被组织的,每一个方法的具体含义又是什么哪?Win32的键盘消息又是如何到达控件上的这些方法的,本文将着重阐述这些问题,对.Net WinForm控件的键盘消息处理过程进行剖析.  1.      WinForm消息循环 大家都知道WinForm也是依赖于底层的消息机制的,通常我们

Android异步消息处理机制完全解析,带你从源码的角度彻底理解

转载于:http://blog.csdn.net/guolin_blog/article/details/9991569 之前也是由于周末通宵看TI3比赛,一直没找到时间写博客,导致已经有好久没更新了.惭愧!后面还会恢复进度,尽量保证每周都写吧.这里也是先恭喜一下来自瑞典的Alliance战队夺得了TI3的冠军,希望明年中国战队能够虎起! 开始进入正题,我们都知道,Android UI是线程不安全的,如果在子线程中尝试进行UI操作,程序就有可能会崩溃.相信大家在日常的工作当中都会经常遇到这个问题

深入源码分析Handler的消息处理机制

学习Android的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Android学习交流群,群号码:364595326  我们一起学Android! handler的消息处理有三个核心类:Looper,Handler和Message.其实还有一个Message Queue(消息队列),但是MessageQueue被封装到Looper里面了,我们不会直接与MessageQueue打交道,因此我没将其作为核心类.下面一一介绍: 线程的魔法师Looper Looper的字面意

13.安卓消息处理机制

1.Android消息处理机制(★★★★必会) 1.1.Looper.Message.Handler的关系 当我们的Android应用程序的进程一创建的时候,系统就给这个进程提供了一个Looper,Looper是一个死循环,它内部维护这个一个消息队列.Looper不停地从消息队列中取消息(Message),取到消息就发送给了Handler,最后Handler根据接收到的消息去修改UI.Handler的sendMessage方法就是将消息添加到消息队列中. 1.2.runOnUiThread Ac

Android Learning:多线程与异步消息处理机制

在最近学习Android项目源码的过程中,遇到了很多多线程以及异步消息处理的机制.由于之前对这块的知识只是浅尝辄止,并没有系统的理解.但是工程中反复出现让我意识到这个知识的重要性.所以我整理出这篇博客,主要介绍了线程和异步处理机制的意义和用法,目的在于帮助初学者能够加深对异步消息处理机制的理解,在实际Android工程中能够更多地使用AsyncTask工具类在子线程中进行UI更新. 一.Android当中的多线程[1] 在Android当中,当一个应用程序的组件启动的时候,并且没有其他的应用程序

mfc的 windows消息处理

消息处理函数: 2,消息处理 LRESULT CWork::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: Add your specialized code here and/or call the base class switch(message) { //如果是用户定义的消息 // case MY_WM_NOTIFYICON: // { // //鼠标左键单击时work窗口出现 // if(lParam=

Delphi中的消息处理

1.windows的消息驱动体系  在windows系统中,消息传递是实现对乡间通信和控制的主要手段.可以额系统都以消息驱动的方式工作.系统中发生的用户输入操作.显示信息的改变.系统环境参数变化等所有时间都以系统定义消息的形式出现在相关的应用程序和窗口.所以程序设计的主要任务就是为这些消息的处理设计代码. 在应用程序中,发送者可以通过发送消息要求接收者完成相应的处理.当程序运行时,windows系统为每个应用程序实例建立一个消息队列,一次保存发送给该程序实例的消息,在应用程序的主控部分,需要设置

Web Host消息处理管道

Web Host消息处理管道 前言 我们知道Web API本身是无法提供请求-响应的机制,它是通过Web Host以及Self Host的寄宿的宿主方式来提供一个请求-响应的运行环境.二者都是将请求和响应抽象成HttpResponseMessage和HttpRequesMessage对象,并将请求HttpRequestMessage传入到HttpMessageHandler进行处理最终将响应通过HttpResponseMessage逆向通过HttpMessageHandler返回到客户端,但是在

Android异步消息处理 Handler Looper Message关系源码分析

# 标签: 读博客 对于Handler Looper Message 之前一直只是知道理论,知其然不知所以然,看了hongyang大神的源码分析,写个总结帖. 一.概念.. Handler . Looper .Message 这三者都与Android异步消息处理线程相关的概念. 异步消息处理线程启动后会进入一个无限的循环体之中,每循环一次,从其内部的消息队列中取出一个消息,然后回调相应的消息处理函数,执行完成一个消息后则继续循环.若消息队列为空,线程则会阻塞等待. 说了这一堆,那么和Handle