1)消息一共分为四类:
(1)标准消息-->以WM_ 开头的都是标准消息
(2)命令消息----> 菜单 工具条 快捷键(两个按键的组合是快捷键,一个按键是 WM_KEYDOWN(标准消息)
(3)控件或者 通知消息(如空间发送) ------>这个我不会
(4)用户自定义消息 一般是自己定义 宏以UM_ 开头
然后通过 SendMessage()和PostMessage() 来发送消息
2)情景说明:
我想在 中间空白的地方点击鼠标左键 然后弹出一个 信息框,那么该怎么添加代码?
3)分析:
首先 我是在VIEW区域添加动作 而且 通过要求可知道 消息是WM_LBUTTONDOWN
也就是在View类中添加代码,针对于 标准消息 下面的步骤基本都是固定的
4)先展示 当前的目录和类文档图:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
5)第一步
6)第二步
7)找到那个WM_LBUTTONDOWN
8) 看那个 VIew文件的变化:
10)我的代码添加:
1 void CAAAAAAAView::OnLButtonDown(UINT nFlags, CPoint point) 2 { 3 // TODO: 在此添加消息处理程序代码和/或调用默认值 4 ::MessageBox(AfxGetMainWnd()->m_hWnd,L"你敲下了鼠标的左键",L"Interact",MB_OK);
//上面的代码是调用是Win32的函数,我还可以调用当前这个类的自己的函数,其实他的父类 也就是VIEW给封装好了各种函数
//和上面的代码等效,要改变 "你按下了鼠标的左键"这句话的字节编码 这个的字节编码是多字节 但是 这个函数要求是 长字节 所以 加一个L 改变一下字节编码
//this->MessageBox(L"你按下了鼠标的左键");
5 CView::OnLButtonDown(nFlags, point); 6 }
11)我的结果展示:
12)
MessageBox();这个函数需要四个参数 第一个就是当前窗口的句柄 应该要Frame(也就是这个窗口的句柄)在 WinMain中 所以是
AfxGetMainWnd()->m_hWnd
13)具体怎么找别的句柄 比如 Frame View hInstance 这个应该总结一下 我还没弄呢