现在位置: 首页 > 消息机制
   因为以前都是在对话框里面使用CListCtrl控件,可以在VC6里面的ClassWizard里面直接就给该控件添加各种消息处理函数。但是到了Feature Pack里面,可以把CListCtrl放到一个CDockPane上面,这时就比较郁闷了,所以只能手工添加消息的处理。为此,我特意到VC6下新建了一个对话框,并加上一个CListCtrl控件,并添加了LVN_ITEMCHANGED消息,及其处理函数。   然后我就如法炮制,跑到VS2010的项目里面,到CList...
阅读全文
    在Windows平台上,鼠标左键的按下、松开、快速的两次点击会产生WM_LBUTTONDOWN、WM_LBUTTONUP和WM_LBUTTONDBLCLK消息,但是Windows根据什么来区分连续的两次鼠标按键操作,是两次独立的单击,还是一次双击呢?最近在解决一个问题时,通过使用Spy++和查阅MSDN,弄清楚了这个问题。简单总结如下:      Windows根据两个条件来做这个区分: (1)双击的时间间隔     ...
阅读全文
    用户单击关闭按钮(标题栏最右边)或者用鼠标或键盘选择系统菜单的“关闭”选项,直到窗口消失,应用程序结束。这期间到底发生了什么呢?这曾经是我百思不得其解的问题,我想也会有很多人和我一样会碰到这个问题。所以我要把我的一些学习心得写出来,与大家共享。      1、首先会产生一个WM_SYSCOMMAND消息,如果程序员没有对此消息进行拦截,则由缺省的窗口函数DefWindowProc进行处理,...
阅读全文
    了解MFC程序的启动过程,对于初学者来讲,了学习MFC很有帮助;对于不常用VC的人来说,过一段时间就会忘记。还是来记下来,方便以后查阅。 1、创建Application object对象theApp      程序一开始生产一个(且只有一个)Application object对象theApp,也即一个CWinApp对象,这个全局对象一产生,便执行其构造函数,因为并没有定义CMyWinApp构造函数,所以即执行CWinApp类的构造函数。该函...
阅读全文
2012-08-28 10:20 工业·编程 ⁄ 共 3048字 暂无评论
    任何事件的触发与响应均要通过消息的作用才能得以完成。在SDK编程中,对消息的获取与分发主要是通过消息循环来完成的,而在MFC编程中则是通过采取消息映射的方式对其进行处理的。 1、自定义消息及映射其流程     定义一个消息:一般在StdAfx.h 中声明一个消息.自定义消息一般从(VM_USER+100)开始,以免与系统定义的消息冲突:#define WM_MYMESSAGE (WM_USER+100)     在类的定...
阅读全文
2012-08-26 07:38 工业·编程 ⁄ 共 13341字 暂无评论
    首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的消息队列中读取消息,并把它派送出去(::DispatchMessage)。而消息路由是指消息派送出去之后,系统(USER32.DLL)把消息投递到哪个窗口,以及以后消息在窗口之间的传...
阅读全文
2012-08-25 23:51 工业·编程 ⁄ 共 12362字 暂无评论
    Windows编程和Dos编程,一个很大的区别就是,Windows编程是事件驱动,消息传递的。所以,要学好Windows编程,必须对消息机制有一个清楚的认识,本文希望能够对消息的传递做一个全面的分析。 什么是消息?     消息系统对于一个win32程序来说十分重要,它是一个程序运行的动力源泉。一个消息,是系统定义的一个32位的值,他唯一的定义了一个事件,向Windows发出一个通知,告诉应用程序某个事...
阅读全文
2012-08-25 23:46 工业·编程 ⁄ 共 432字 暂无评论
1、打印相关(CView类中实现)        ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)        ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)        ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview) 即打印,打印预览默认的是调用CView的对应的响应函数。 2、 文件的打开和新建(CApp类中实现)  &#...
阅读全文
2012-08-25 07:02 工业·编程 ⁄ 共 552字 暂无评论
说明:     此函数会检查调用者线程的消息队列并获取任意一个存在的消息。     返回值:     有消息可用时返回非0,无消息可用时返回0     其它需要注意的事项同GetMessage */ BOOL PeekMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax,    //前四个参数的用法可参照GetMessage; UINT wRemoveMsg   &...
阅读全文
2012-08-25 07:01 工业·编程 ⁄ 共 818字 暂无评论
说明:     此函数从调用其的线程的消息队列中读取一个消息。     当它成功取得一个消息时,它才会发送自己取到的消息并返回。     这一点不同于PeekMessage,PeekMessage不会等到取到消息之后再返回,     即如果此时没有消息,它便直接返回了。     返回值:     如果函数取到了非WM_QUIT消息,则返回为非0值;   &#...
阅读全文