您的位置:首页 > 其它

MFC消息种类

2015-10-29 17:42 190 查看
键盘消息: WM_CHAR:该消息的处理函数OnChar(),在用户输入有效的ASCII码时才会发生

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()
{

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: