
消息处理
tobealv
这个作者很懒,什么都没留下…
展开
-
进度条,message
1.在线程中临近结束线程的地方不要使用PostMessage,因为由于线程马上结束,这个消息可能会得不到响应,应该用SendMessage.2.进度条的数范围尽量不要太大,否则它会引起程序执行速度变慢(不知道为什么),如果数比较大的话,可以分成块.取块数.原创 2010-11-29 16:43:00 · 508 阅读 · 0 评论 -
WM_DESTROY 和 WM_NCDESTROY
<br /> 在窗口销毁时有两个紧密关联的 windows 消息, 就是 WM_DESTROY 和 WM_NCDESTROY. 它们有何区别? <br /><br />区别就是 WM_DESTROY 消息是在窗口销毁动作序列中的开始被发送的, 而 WM_NCDESTROY 消息是在结尾. 这在你的窗口拥有子窗口时是个重大区别. 如果你有一个带子窗口的父窗口, 那么消息的发送序列 (在没有怪诞行为影响的前提下) 就像这样: <br /><br />hwnd = parent, uMsg转载 2011-05-07 20:58:00 · 1193 阅读 · 0 评论 -
WM_COPYDATA
WM_COPYDATA是一种非常简单的进程间通信的方式,很容易实现。下面是一个使用WM_COPYDATA来实现进程间通信的一个例子。发送端,接收端的例子代码摘自 http://blog.youkuaiyun.com/111222/archive/2001/10/10/7241.aspx发送端转载 2011-07-07 10:36:07 · 838 阅读 · 0 评论 -
自定义消息函数的增加位置
无论头文件还是源文件,都加在宏外面原创 2011-09-03 09:33:25 · 342 阅读 · 0 评论 -
如何添加WM_SYSCOMMAND消息处理函数
以VC6.0为例,在ClassView中选中要添加此消息处理函数的类,然后右键选择Add Windows Message Handler,在弹出的对话框中将Filter for message available 选中下拉框中的window选项即可,然后在New Windows message/event中即可找到WM_SYSCOMMAND此消息,双击即可添加处理函数。原创 2011-06-21 14:50:00 · 1361 阅读 · 0 评论 -
WM_NOTIFY
1、WM_NOTIFY的由来。对于窗口上的控件。控件上的行为会交由窗口处理,也就是控件(或者说系统为控件)发送一个消息通知窗口,这个消息就是WM_NOTIFY.其对应的处理函数是虚函数OnNotify,所以可以在窗口的OnNotify中给出处理。如果想让控件自己处理,可以重载控件的OnChildNotify函数。即:窗口实现OnNotify控件派生类,并重载OnChildN原创 2011-11-01 15:38:27 · 1846 阅读 · 0 评论 -
PreTranslateMessage 和 windowProc
CWnd::PreTranslateMessage Used by class CWinApp to translate window messages before they are dispatched to the TranslateMessage and DispatchMessage Windows functi原创 2011-06-21 15:01:00 · 761 阅读 · 0 评论 -
通过消息传输字符串
char *szUser = new char[32]; ...... PostMessage(WM_SETUSERSELECTED,0,(LPARAM)szUser); ...... char *szUser= (char *)lParam; CString strUser; strUser.原创 2010-12-14 14:35:00 · 433 阅读 · 0 评论 -
PreTranslateMessage的一点注意
.................... if (pMsg->message == WM_LBUTTONDOWN || pMsg->message == WM_NCLBUTTONDOWN) { HWND hWndEdit = m_list_ctrl.m_editCtrl.GetSafeHwnd(); if (::IsWindow(hW原创 2012-03-13 09:27:44 · 741 阅读 · 0 评论 -
windows消息机制
程序建立的每一个窗口都有相关的窗口消息处理程序。Windows程序开始执行后,Windows为该程序建立一个「消息队列」。这个消息队列用来存放该程序可能建立的各种不同窗口的消息。程序中有一小段程序代码,叫做「消息循环」,用来从队列中取出消息,并且将它们发送给相应的窗口消息处理程序。有些消息直接发送给窗口消息处理程序,不用放入消息队列中。程序通常不直接原创 2014-03-04 13:01:31 · 562 阅读 · 0 评论 -
VC通过消息传递结构体
<br />消息传的是指针,并不会复制数据.<br />使用LPARAM参数传.<br />为保证消息处理函数在访问参数时,参数仍存在,最好使用SendMessage.<br /> <br />::SendMessage(hWnd, WM_XX, 0, (LPARAM)&struct);原创 2011-02-22 13:44:00 · 1133 阅读 · 0 评论 -
通过消息映射自定义消息
<br />在头文件中声明消息处理函数时,也可以,而且最好把函数放在注释外面.<br /> <br />如果放在注释里面,则之后再通过右键增加消息处理函数的时候,它会覆盖手动加上的函数.原创 2011-02-22 14:20:00 · 470 阅读 · 0 评论 -
view类也可以自定义消息
<br />view类也可以自定义消息原创 2010-12-14 16:12:00 · 426 阅读 · 0 评论 -
VC如何通过消息驱使鼠标按下
<br />PostMessage(WM_COMMAND,IDC_STOP,0); // IDC_STOP 为按钮ID原创 2010-12-16 09:38:00 · 516 阅读 · 0 评论 -
如何手动触发"ComboBox选择改变"消息
/* 消息触发CBN_SELCHANGE事件 */ WPARAM wParam = MAKELPARAM(IDC_COMBO_USER, CBN_SELCHANGE); CSDJMDlg *pDlg = &(pView->m_Page_SDJMDLG); HWND hWnd = ( (CComboBox *)( pDlg->GetDlgItem(IDC_COMBO_USER) ) )->m_hWnd;原创 2010-12-16 19:26:00 · 4780 阅读 · 0 评论 -
如何在VC++6中实现窗口最大化、最小化的设置
ShowWindow( SW_SHOWMAXIMIZED ); ShowWindow( SW_SHOWMINIMIZED );原创 2010-12-29 18:18:00 · 2174 阅读 · 0 评论 -
SendMessage()传递字符串
<br />SendMessage函数的原型为<br />LRESULTSendMessage(<br /> HWNDhWnd, <br /> UINTMsg, <br /> WPARAMwParam, <br /> LPARAMlParam <br />);<br />用于消息传递,其中有WPARAM 和 LPARAM 两个附加参数,可以传递一些附加信息,由于它们是long 型的,所以只能<br />传递数字,如果想要传递字符串之类的则需要使用指针,即字符串的地址。<br />转载 2010-11-07 18:35:00 · 1018 阅读 · 0 评论 -
深度剖析消息反射机制
<br />什么是消息反射?<br /> 在windows里面,子控件经常向父控件发送消息,例如很多子控件要绘制自己的背景,就可能向父窗口发送消息WM_CTLCOLOR。对于从子控件发来的消息,父控件有可能在处理之前,把消息返还给子控件处理,这样消息看起来就想是从父窗口反射回来一样,故此得名:消息反射。<br /> 消息反射的由来<br /> 在windows和MFC4.0版本一下,父窗口(通常是一个对话框)会对这些消息进行处理,换句话说,自控件的这些消息处理必须在父窗转载 2010-11-07 18:40:00 · 487 阅读 · 0 评论 -
VC消息机制(控件通知消息)
<br />控件通知消息<br /> 在《深度解析VC中的消息(上)》中,我们提到了消息的分类有3种:窗口消息、命令消息和控件通知消息,我们这里要谈的是最后一种:控件通知消息。<br /> 控件通知消息,是指这样一种消息,一个窗口内的子控件发生了一些事情,需要通知父窗口。通知消息只适用于标准的窗口控件如按钮、列表框、组合框、编辑框,以及Windows公 共控件如树状视图、列表视图等。例如,单击或双击一个控件、在控件中选择部分文本、操作控件的滚动条都会产生通转载 2010-11-07 18:41:00 · 730 阅读 · 0 评论 -
请问在VC中CListCtrl的LVN_GETDISPINFO消息怎么发送?
两种方法:<br />一,已知具体的插入项目<br />m_pList->InsertItem (iIndex, LPSTR_TEXTCALLBACK); <br /><br />二,只知道项目总数,iCount为列表项目总数<br />SetItemCountEx (iCount, LVSICF_NOINVALIDATEALL);<br />或者<br />SendMessage(LVM_SETITEMCOUNT, (WPARAM)iCount, (LPARAM)LVSICF_NO转载 2010-11-07 18:43:00 · 3252 阅读 · 0 评论 -
windows消息处理机制
<br />消息队列中的本窗口大量消息并不会被自动取出,也没有自动地调用WinProc函数对消息加以处理,但是,Window系统提供了三个API函数给我们,让我们自己去完成这件事。看吧!<br />GetMessage( …);<br />TranslateMessage(…);<br />DispatchMessage(…);<br /> 下面就让我分别对这三个函数解释解释。<br /><br />1 GetMessage( …)<br />原型如下:<br />BOOL G转载 2010-11-12 16:53:00 · 377 阅读 · 0 评论 -
深入探讨MFC消息循环和消息泵
首先,应该清楚MFC的消息循环(::GetMessage,::PeekMessage),消息泵(CWinThread::PumpMessage)和MFC的消息在窗口之间的路由是两件不同的事情。在MFC的应用程序中(应用程序类基于CWinThread继承),必须要有一个消息循环,他的作用是从应用程序的消息队列中读取消息,并把它派送出去(::DispatchMessage)。而消息路由是指消息派送出去转载 2014-03-13 14:13:42 · 512 阅读 · 0 评论