MFC消息种类
2015-10-29 17:42
190 查看
键盘消息: WM_CHAR:该消息的处理函数OnChar(),在用户输入有效的ASCII码时才会发生
WM_KEYDOWN :键盘按下事件
WM_KEYUP:键盘释放事件
键盘消息处理方式如下:
符号形式
十六进制形式 说明
VK_LBUTTON 01 鼠标左键
VK_RBUTTON 02 鼠标右键
VK_CANCEL 03 Control-break 过程
VK_MBUTTON 04 鼠标中键
VK_BACK 08 BACKSPACE 键
VK_TAB 09 TAB 键
VK_CLEAR 0C CLEAR 键
VK_RETURN 0D ENTER 键
VK_SHIFT 10 SHIFT 键
VK_CONTROL 11 CTRL 键
VK_MENU 12 ALT 键
VK_PAUSE 13 PAUSE 键
VK_CAPITAL 14 CAPS LOCK 键
VK_ESCAPE 1B ESC 键
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP 键
VK_NEXT 22 PAGE DOWN 键
VK_END 23 END 键
VK_HOME 24 HOME 键
VK_LEFT 25 LEFT ARROW 键
VK_UP 26 UP ARROW 键
VK_RIGHT 27 RIGHT ARROW 键
VK_DOWN 28 DOWN ARROW 键
VK_SELECT 29 SELECT 键
VK_EXECUTE 2B EXECUTE 键
VK_SNAPSHOT 2C PRINT SCREEN键(用于Windows 3.0及以后版本)
VK_INSERT 2D INS 键
VK_DELETE 2E DEL 键
VK_HELP 2F HELP键
VK_LWIN 5B Left Windows 键 (Microsoft自然键盘)
VK_RWIN 5C Right Windows 键 (Microsoft自然键盘)
VK_APPS 5D Applications 键 (Microsoft自然键盘)
VK_NUMPAD0 60 数字小键盘上的 0 键
VK_NUMPAD1 61 数字小键盘上的 1 键
VK_NUMPAD2 62 数字小键盘上的 2 键
VK_NUMPAD3 63 数字小键盘上的 3 键
VK_NUMPAD4 64 数字小键盘上的 4 键
VK_NUMPAD5 65 数字小键盘上的 5 键
VK_NUMPAD6 66 数字小键盘上的 6 键
VK_NUMPAD7 67 数字小键盘上的 7 键
VK_NUMPAD8 68 数字小键盘上的 8 键
VK_NUMPAD9 69 数字小键盘上的 9 键
VK_MULTIPLY 6A Multiply 键
VK_ADD 6B Add键
VK_SEPARATOR 6C Separator 键
VK_SUBTRACT 6D Subtract 键
VK_DECIMAL 6E Decimal 键
VK_DIVIDE 6F Divide 键
VK_F1 70 F1 键
VK_F2 71 F2 键
VK_F3 72 F3 键
VK_F4 73 F4 键
VK_F5 74 F5 键
VK_F6 75 F6 键
VK_F7 76 F7 键
VK_F8 77 F8 键
VK_F9 78 F9 键
VK_F10 79 F10 键
VK_F11 7A F11 键
VK_F12 7B F12 键
VK_F13 7C F13 键
VK_F14 7D F14 键
VK_F15 7 E F15 键
VK_F16 7F F16 键
VK_F17 80H F17 键
VK_F18 81H F18 键
VK_F19 82H F19 键
VK_F20 83H F20 键
VK_F21 84H F21 键
VK_F22 85H F22 键
VK_F23 86H F23 键
VK_F24 87H F24 键
VK_NUMLOCK 90 NUM LOCK 键
VK_SCROLL 91 SCROLL LOCK 键
VK_ATTN F6 Attn 键
VK_CRSEL F7 CrSel 键
VK_EXSEL F8 ExSel 键
VK_EREOF F9 Erase EOF 键
VK_PLAY FA Play 键
VK_ZOOM FB Zoom 键
VK_OEM_CLEAR FE Clear 键
鼠标消息:WM_MOUSEMOVE:用户将鼠标移进窗口或在窗口中移动
WM_LBUTTONDOWN:
WM_LBUTTONUP:
WM_LBUTTONDBCLICK:
窗口消息:WM_CREATE:窗口创建
WM_DESTROY:窗口销毁
WM_CLOSE:窗口关闭
WM_MOVE:窗口移动
WM_SIZE:窗口改变
WM_PAINT:窗口重绘
WM_SETFOCUS:窗口得到焦点
WM_KILLFOCU::窗口失去焦点
lpCreateStruct表示为 CREATESTRUCT 结构 的指针。
typedef struct tagCREATESTRUCT {
LPVOID lpCreateParams;//指向要使用的数据创建一个窗口。
HANDLE hInstance;//标识拥有新窗口模块的模块实例句柄。
HMENU hMenu;//标识新窗口将使用的菜单。 如果子窗口,包含整数 ID.
HWND hwndParent;//标识拥有新窗口的父窗口。 如果新窗口是顶级窗口,此成员是 NULL 。
int cy;//指定新窗口的高度。
int cx;//指定新窗口的宽度
int y;//指定新窗口的左上角的 y 坐标。 ,如果新窗口是子窗口,坐标系是相对于父窗口;否则坐标系是相对于屏幕的原点。
int x;//指定新窗口的左上角的 x 坐标。 ,如果新窗口是子窗口,坐标系是相对于父窗口;否则坐标系是相对于屏幕的原点
LONG style;//指定新窗口的 样式
LPCSTR lpszName;//指向指定新窗口的名称为 NULL 终止的字符串
LPCSTR lpszClass;//指向指定新窗口的窗口类名的一个 NULL 终止的字符串
DWORD dwExStyle;//为新窗口指定 扩展样式
} CREATESTRUCT;
定时器消息:WM_TIMER,其消息相应函数使OnTimer(UINT nIDEvent);\\nIDEvent表示定时器ID
对于定时器消息,通常都会和SetTimer配合使用。
void C**Dlg::OnTimer(UINT_PTR nIDEvent)//nIDEvent表示定时器ID
{
CDialogEx::OnTimer(nIDEvent);
}
SetTimer(1,2000,NULL);//表示ID为1的定时器2秒执行一次
命令消息:WM_COMMAND.命令消息是很常用的一个消息,命令消息是当用户选择某项菜单或单击某按钮时发送的消息
ON_COMMAND(ID_POP,&CHisCtrlDlg::ClickPop)//当点击名为ID_POP的控件后,执行ClickPop函数
WM_KEYDOWN :键盘按下事件
WM_KEYUP:键盘释放事件
键盘消息处理方式如下:
BOOL C**Dlg::PreTranslateMessage(MSG* pMsg)//pMsg表示消息类型 { //判断是否为键盘消息 if (WM_KEYFIRST <= pMsg->message && pMsg->message <= WM_KEYLAST) { //判断是否按下键盘Enter键 if(pMsg->wParam==VK_RETURN) { return TRUE; } } return CDialog::PreTranslateMessage(pMsg); }然后介绍虚拟键代码
符号形式
十六进制形式 说明
VK_LBUTTON 01 鼠标左键
VK_RBUTTON 02 鼠标右键
VK_CANCEL 03 Control-break 过程
VK_MBUTTON 04 鼠标中键
VK_BACK 08 BACKSPACE 键
VK_TAB 09 TAB 键
VK_CLEAR 0C CLEAR 键
VK_RETURN 0D ENTER 键
VK_SHIFT 10 SHIFT 键
VK_CONTROL 11 CTRL 键
VK_MENU 12 ALT 键
VK_PAUSE 13 PAUSE 键
VK_CAPITAL 14 CAPS LOCK 键
VK_ESCAPE 1B ESC 键
VK_SPACE 20 SPACEBAR
VK_PRIOR 21 PAGE UP 键
VK_NEXT 22 PAGE DOWN 键
VK_END 23 END 键
VK_HOME 24 HOME 键
VK_LEFT 25 LEFT ARROW 键
VK_UP 26 UP ARROW 键
VK_RIGHT 27 RIGHT ARROW 键
VK_DOWN 28 DOWN ARROW 键
VK_SELECT 29 SELECT 键
VK_EXECUTE 2B EXECUTE 键
VK_SNAPSHOT 2C PRINT SCREEN键(用于Windows 3.0及以后版本)
VK_INSERT 2D INS 键
VK_DELETE 2E DEL 键
VK_HELP 2F HELP键
VK_LWIN 5B Left Windows 键 (Microsoft自然键盘)
VK_RWIN 5C Right Windows 键 (Microsoft自然键盘)
VK_APPS 5D Applications 键 (Microsoft自然键盘)
VK_NUMPAD0 60 数字小键盘上的 0 键
VK_NUMPAD1 61 数字小键盘上的 1 键
VK_NUMPAD2 62 数字小键盘上的 2 键
VK_NUMPAD3 63 数字小键盘上的 3 键
VK_NUMPAD4 64 数字小键盘上的 4 键
VK_NUMPAD5 65 数字小键盘上的 5 键
VK_NUMPAD6 66 数字小键盘上的 6 键
VK_NUMPAD7 67 数字小键盘上的 7 键
VK_NUMPAD8 68 数字小键盘上的 8 键
VK_NUMPAD9 69 数字小键盘上的 9 键
VK_MULTIPLY 6A Multiply 键
VK_ADD 6B Add键
VK_SEPARATOR 6C Separator 键
VK_SUBTRACT 6D Subtract 键
VK_DECIMAL 6E Decimal 键
VK_DIVIDE 6F Divide 键
VK_F1 70 F1 键
VK_F2 71 F2 键
VK_F3 72 F3 键
VK_F4 73 F4 键
VK_F5 74 F5 键
VK_F6 75 F6 键
VK_F7 76 F7 键
VK_F8 77 F8 键
VK_F9 78 F9 键
VK_F10 79 F10 键
VK_F11 7A F11 键
VK_F12 7B F12 键
VK_F13 7C F13 键
VK_F14 7D F14 键
VK_F15 7 E F15 键
VK_F16 7F F16 键
VK_F17 80H F17 键
VK_F18 81H F18 键
VK_F19 82H F19 键
VK_F20 83H F20 键
VK_F21 84H F21 键
VK_F22 85H F22 键
VK_F23 86H F23 键
VK_F24 87H F24 键
VK_NUMLOCK 90 NUM LOCK 键
VK_SCROLL 91 SCROLL LOCK 键
VK_ATTN F6 Attn 键
VK_CRSEL F7 CrSel 键
VK_EXSEL F8 ExSel 键
VK_EREOF F9 Erase EOF 键
VK_PLAY FA Play 键
VK_ZOOM FB Zoom 键
VK_OEM_CLEAR FE Clear 键
鼠标消息:WM_MOUSEMOVE:用户将鼠标移进窗口或在窗口中移动
WM_LBUTTONDOWN:
WM_LBUTTONUP:
WM_LBUTTONDBCLICK:
void C**Dlg::OnMouseMove(UINT nFlags, CPoint point)//鼠标移动消息,nFlags表示传递回来的信息,point表示坐标 { CDialogEx::OnMouseMove(nFlags, point); if(nFlags & MK_LBUTTON) //表示移动的时候左键按下 { ... } }
void C**Dlg::OnLButtonDown(UINT nFlags, CPoint point)//鼠标左键单击消息 { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialogEx::OnLButtonDown(nFlags, point); } void C**Dlg::OnLButtonUp(UINT nFlags, CPoint point)//鼠标左键释放消息 { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialogEx::OnLButtonUp(nFlags, point); } void C**Dlg::OnLButtonDblClk(UINT nFlags, CPoint point)//鼠标左键双击消息 { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialogEx::OnMButtonDblClk(nFlags, point); }PS(右键消息与左键消息只是把L改成R)
窗口消息:WM_CREATE:窗口创建
WM_DESTROY:窗口销毁
WM_CLOSE:窗口关闭
WM_MOVE:窗口移动
WM_SIZE:窗口改变
WM_PAINT:窗口重绘
WM_SETFOCUS:窗口得到焦点
WM_KILLFOCU::窗口失去焦点
int C**Dlg::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CDialogEx::OnCreate(lpCreateStruct) == -1) return -1; return 0; } void C**Dlg::OnDestroy() { CDialogEx::OnDestroy(); // TODO: 在此处添加消息处理程序代码 } void C**Dlg::OnMove(int x, int y) { CDialogEx::OnMove(x, y); // TODO: 在此处添加消息处理程序代码 } void C**Dlg::OnClose() { // TODO: 在此添加消息处理程序代码和/或调用默认值 CDialogEx::OnClose(); } void C**Dlg::OnPaint() { CPaintDC dc(this); // 用于绘制的设备上下文 CDialogEx::OnPaint(); } void C**Dlg::OnSize(UINT nType, int cx, int cy)//nType表示调整的类型 { CDialogEx::OnSize(nType, cx, cy); }
lpCreateStruct表示为 CREATESTRUCT 结构 的指针。
typedef struct tagCREATESTRUCT {
LPVOID lpCreateParams;//指向要使用的数据创建一个窗口。
HANDLE hInstance;//标识拥有新窗口模块的模块实例句柄。
HMENU hMenu;//标识新窗口将使用的菜单。 如果子窗口,包含整数 ID.
HWND hwndParent;//标识拥有新窗口的父窗口。 如果新窗口是顶级窗口,此成员是 NULL 。
int cy;//指定新窗口的高度。
int cx;//指定新窗口的宽度
int y;//指定新窗口的左上角的 y 坐标。 ,如果新窗口是子窗口,坐标系是相对于父窗口;否则坐标系是相对于屏幕的原点。
int x;//指定新窗口的左上角的 x 坐标。 ,如果新窗口是子窗口,坐标系是相对于父窗口;否则坐标系是相对于屏幕的原点
LONG style;//指定新窗口的 样式
LPCSTR lpszName;//指向指定新窗口的名称为 NULL 终止的字符串
LPCSTR lpszClass;//指向指定新窗口的窗口类名的一个 NULL 终止的字符串
DWORD dwExStyle;//为新窗口指定 扩展样式
} CREATESTRUCT;
定时器消息:WM_TIMER,其消息相应函数使OnTimer(UINT nIDEvent);\\nIDEvent表示定时器ID
对于定时器消息,通常都会和SetTimer配合使用。
void C**Dlg::OnTimer(UINT_PTR nIDEvent)//nIDEvent表示定时器ID
{
CDialogEx::OnTimer(nIDEvent);
}
SetTimer(1,2000,NULL);//表示ID为1的定时器2秒执行一次
命令消息:WM_COMMAND.命令消息是很常用的一个消息,命令消息是当用户选择某项菜单或单击某按钮时发送的消息
ON_COMMAND(ID_POP,&CHisCtrlDlg::ClickPop)//当点击名为ID_POP的控件后,执行ClickPop函数
void C**Dlg::ClickPop() { }
相关文章推荐
- javascript组件开发方式(转载)
- 常用到的多种锁(随时可能修改)
- echarts
- 电梯女神
- Android中App安装位置
- mysql的安装
- 翻译歌曲1
- CSS3 Gradient
- 硬盘raid残留信息的擦除
- 关于Ehcache缓存数据到磁盘时的细节
- Docker loop volume VS direct LVM 选型和分析
- lua垃圾回收机制
- The setup controller has encountered a problem during install...
- Servlet过滤器--Filter
- 1029 C语言文法
- 1014 C语言文法定义与C程序的推导过程
- 在php添加mongo过程中出现的mongo.so: > undefined symbol: php_json_encode in Unknown on line 0. After installation mongo driver for php 的错误
- 每日积累
- OOXX Game
- 项目clean之后,R.java不见了