应用程序消息有三个来源:硬件消息(鼠标键盘等外设)、PostMessage消息、SendMessage消息,都可以发送消息事件来驱动程序执行。
消息流图如下。
硬件消息响应流程如下。
①消息进入系统消息队列。
②消息分发到应用程序消息队列。
③应用程序循环获取消息。
④消息处理函数执行。
PostMessage直接进入上述步骤②,将消息放入消息队列中,然后立刻返回。
Sen...
分类:
编程语言 时间:
2014-09-09 18:29:19
阅读次数:
310
接上篇日志。 在WM_LBUTTONUP消息响应函数中写入代码: POINT pnt; WCHAR wc_TargtWndTittle[200]; ::GetCursorPos(&pnt); HWND h_TargetWnd = ::WindowFromPoint(pnt) ; //取得鼠标指针处....
分类:
其他好文 时间:
2014-09-03 12:59:46
阅读次数:
162
功能实现:主窗口内有一CListBox,希望鼠标右键点击CListBox编辑框内时,实现响应。方法:1.新建一个CNewListBox类继承于CListBox,并添加右键响应。2.将主窗口的CListBox关联到CNewListBox类(即CNewListBox类的一个对象是主窗口的CListBox控件:CNewListBoxm_listbox,所以m_..
分类:
其他好文 时间:
2014-09-02 02:42:14
阅读次数:
152
一直有一个想法,没有实践来实践,现将调用测试代码贴出来,有需要的可以进一步完善.
步骤:
1. 创建MFC-窗口(本例为Mfc对话框)
2. 新建一个线程用以运行QT窗口(可扩展进行消息响应,以创建QT窗口)
3.构建全局QApplication对象(本例临时构建)
代码如下:
//包含必要头文件和库文件
本例:
#incl...
首先说明这四个类的执行顺序是:App->Doc->MainFrame->View消息响应顺序是:View->Doc->MainFrame->App 1 // App中获取其它三项指针 2 void CSDIApp::OnApp() 3 { 4 // App 5 // Doc 6 ...
分类:
移动开发 时间:
2014-08-26 01:48:25
阅读次数:
433
>__CreateIndirect()函数来间接创建。 7 */ 8 static const GUI_WIDGET_CREATE_INFO _aDialogCreate[] = { 9 { FRAMEWIN_CreateIndirect, "Dialog", 0, 10, 10, 180,...
分类:
其他好文 时间:
2014-08-23 03:32:39
阅读次数:
282
最开始的消息传递
1.AfxWndProc()
该函数负责接收消息,找到消息所属的CWnd对象,然后调用AfxCallWndProc
2.AfxCallWndProc()
该函数负责保存消息(保存的内容主要是消息标识符和消息参数)供应用程序以后使用,然后调用WindowProc()函数
3.WindowProc()
该函数负责发送消息到OnWndMsg()函数,如果未被处理,则调用De...
分类:
其他好文 时间:
2014-08-22 09:22:06
阅读次数:
170
上一章节说明了如何静态的分割窗口,分割后窗口的分割线是可以拖动的,有的时候我们需要固定分割线,那么如何实现固定分割呢?
我们需要构造出固定分割窗口类(CFixedSplitterWnd),来实现我们对窗口的固定分割,以上一章例来说明。
1。新创建MFC类,从CSplitterWnd继承,并重载WM_LBUTTONDOWN ,WM_MOUSEMOVE 和 WM_SETCURSOR消息响应...
新建一个基于对话框的工程,添加一个按钮,修改按钮ID,这里为ID_BTN_OPENFILE,为按钮添加消息响应事件,这里我打开文件保存对话框:
void CAccelDlg::OnBtnOpenfile()
{
// TODO: Add your control notification handler code here
CFileDialog dlg (TRUE);
dlg.DoMo...
分类:
其他好文 时间:
2014-08-05 22:44:20
阅读次数:
234
复习一下win32窗口程序设计一个窗口类; 注册窗口类; 创建窗口; 显示及更新窗口。 消息循环,去获取消息; 窗口过程函数的消息响应。 设计窗口类:typedef struct _WNDCLASS {UINT style; //窗口类的类型WN...