共 13 篇文章 |
|
WM_NULL 0x0000 空消息,此消息将被接收窗口忽略WM_CREATE 0x0001 应用程序创建一个窗口 WM_DESTROY 0x0002 一个窗口被销毁WM_MOVE 0x0003 移动一个窗口WM_SIZE 0x0005 改变一个窗口的大小。当系统... 阅990 转10 评0 公众公开 12-09-11 10:11 |
假如想拦截自定义消息“WM_USER_MYMESSAGE”和系统消息“WM_SIZE”:#define WM_USERMESSAGE_NULL WM_USER+32 // 自定义消息。重载WindowProc函数,在函数中实现消息的拦截LRESULT CMyMessageDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) {假如接到消息“WM_USER_MYMESSAGE1”后,需要根据条件来判断是否需要变更消息:#def... 阅1243 转9 评0 公众公开 12-09-11 10:05 |
MFC常用消息-处理函数-映射。windows消息和控件通知都有默认的处理函数,这些函数在CWnd类中进行了预定义,MFC类库以消息名为基础形成这些处理函数的名称,这些处理函数的名称都以前缀"On"开始。windows消息常见的有鼠标消息(如WM_LBUTTONDOWN)消息)、键盘字符消息(WM_CHAR消息)、键盘按键消息(WM_KEYDOWN)、窗口重画消息WM_PAI... 阅1631 转6 评0 公众公开 12-09-11 10:01 |
创建完成端口时指定2个并发,创建了4个工作线程加入线程池中等待完成I/O请求,且完成端口队列(先入先出)中有3个完成I/O的请求的情况: 工作线程运行, 创建了4个工作线程,调用GetQueuedCompletionStatus时,该调用线程就进入了睡眠状态,假设这个时候,I/O完成队列出现了三项,调用线程的ID就被放入该等待线程队列中, (如图):等待线程队列... 阅54 转0 评0 公众公开 12-08-29 14:48 |
线程中CreateEvent和SetEvent及WaitForSingleObject的用法CEvent事件分 人工事件和自动事件:当使用人工事件方式时,需要手动设置ResetEvent 为无信号状态,及表示资源被占用中。如果是WAIT_OBJECT_0的话就是事件对象变成激发态了,此函数也被激活 SetEvent()是使事件对象有信号,变成激发态 ResetEvent()是使事件对象无信号,变成非激发态... 阅276 转2 评0 公众公开 12-08-29 11:22 |
WaitForMultipleObjects,CreateEvent()函数在线程通信中的...ReadFile( m_hCommPort, cTemp, READ_BLOCK_SIZE,&dwBytesRead,NULL);串口(硬件接收器)接收到数据后会置位串口的状态位(状态寄存器)----->接着串口驱动程序(C++类实现的串口驱动程序)中的读写线程使用if( GetCommMask( m_hCommPort, &dwMask ) )取得当前串口的状态... 阅472 转2 评0 公众公开 12-08-19 20:23 |
参数3指定线程的堆栈大小,如果为0,则与创建该线程的线程相同;当然你可以定义自己的认为合适的值来代表线程成功执行.在线程内调用AfxEndThread将会直接结束线程,此时线程的一切资源都会被回收. 2 : 如果你想让别一个线程B来结束线程A,那么,你就需要在这两个线程中传递信息.不管是工作者线程还是界面线程,如果你想在线程结束后得到它的确... 阅1039 转3 评0 公众公开 12-08-19 20:07 |
n为数字到少大于100或者用 const UINT WM_MYMESSAGE = WM_USER + n一般可以加在stdafx.h 或resource.h 或*.app.h中。afx_msg LRESULT OnMyMessage(WPARAM wParam, LPARAM lParam);BEGIN_MESSAGE_MAP(CChildView,CWnd )//{{AFX_MSG_MAP(CChildView)也就是说WM_MyMessage消息对应OnMyMessage函数。LRESULT 类名::OnMyMessage(WPARAM wParam, LPAR... 阅157 转0 评0 公众公开 12-08-10 10:22 |
LRESULT SendMessage(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);(5)在testMessageDlg.cpp中写发送消息的函数,如下:UINT _SendMsg(LPVOID lparam) { CTest1 *p=(CTest1 *)lparam; char *ch=NULL; ch="hello"; while(1) { SendMessage(p->m_h... 阅1306 转7 评0 公众公开 12-08-10 10:22 |
CWinThread* pThread = DEBUG_NEW CWinThread(pfnThreadProc, pParam);1.在heap中配置一个新的CWinThread对象(worker线程)代码如:CWinThread* pThread = DEBUG_NEW CWinThread(pfnThreadProc, pParam);调用CRuntimeClass结构中的CreateObject函数创建CWinThread对象CWinThread* pThread = (CWinThread*)pThreadClass->CreateObject();CRunti... 阅67 转0 评0 公众公开 12-07-20 17:23 |