TranslateMessage函数
来源:互联网 发布:lr软件安装 编辑:程序博客网 时间:2024/05/20 05:45
函数功能描述:将虚拟键消息转换为字符消息。字符消息被送到调用线程的消息队列中,在下一次线程调用函数GetMessage或PeekMessage时被读出。
.函数原型:
BOOL TranslateMessage( CONST MSG *lpMsg );
BOOL TranslateMessage( CONST MSG *lpMsg );
.参数:
lpMsg
指向一个含有用GetMessage或PeekMessage函数从调用线程的消息队列中取得消息信息的MSG结构的指针。
lpMsg
指向一个含有用GetMessage或PeekMessage函数从调用线程的消息队列中取得消息信息的MSG结构的指针。
.返回值:
如果消息被转换(即,字符消息被送到线程的消息队列中),返回非零值。
如果消息是 WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, 或 WM_SYSKEYUP,返回非零值,不考虑转换。
如果消息没有转换(即,字符消息没被送到线程的消息队列中),返回值是零。
如果消息被转换(即,字符消息被送到线程的消息队列中),返回非零值。
如果消息是 WM_KEYDOWN, WM_KEYUP, WM_SYSKEYDOWN, 或 WM_SYSKEYUP,返回非零值,不考虑转换。
如果消息没有转换(即,字符消息没被送到线程的消息队列中),返回值是零。
.备注:
TranslateMessage函数不修改由参数lpMsg指向的消息。
消息WM_KEYDOWN和WM_KEYUP组合产生一个WM_CHAR或WM_DEADCHAR消息。消息WM_SYSKEYDOWN和WM_SYSKEYUP组合产生一个WM_SYSCHAR或 WM_SYSDEADCHAR 消息。
TtanslateMessage仅为那些由键盘驱动器映射为ASCII字符的键产生WM_CHAR消息。
如果应用程序为其它用途而处理虚拟键消息,不应调用TranslateMessage函数。例如,如果TranslateAccelerator函数返回一个非零值,则应用程序将不调用TranslateMessage函数。
Windows CE:Windows CE不支持扫描码或扩展键标志,因此,它不支持由TranslateMessage函数产生的WM_CHAR消息中的lKeyData参数(lParam)16-24的取值。
TranslateMessage函数只能用于转换由GetMessage或PeekMessage函数接收到的消息。
TranslateMessage函数不修改由参数lpMsg指向的消息。
消息WM_KEYDOWN和WM_KEYUP组合产生一个WM_CHAR或WM_DEADCHAR消息。消息WM_SYSKEYDOWN和WM_SYSKEYUP组合产生一个WM_SYSCHAR或 WM_SYSDEADCHAR 消息。
TtanslateMessage仅为那些由键盘驱动器映射为ASCII字符的键产生WM_CHAR消息。
如果应用程序为其它用途而处理虚拟键消息,不应调用TranslateMessage函数。例如,如果TranslateAccelerator函数返回一个非零值,则应用程序将不调用TranslateMessage函数。
Windows CE:Windows CE不支持扫描码或扩展键标志,因此,它不支持由TranslateMessage函数产生的WM_CHAR消息中的lKeyData参数(lParam)16-24的取值。
TranslateMessage函数只能用于转换由GetMessage或PeekMessage函数接收到的消息。
一般与DispatchMessage函数配合使用,如下:
...
TranslateMessage(&Msg);
DispatchMessage(&Msg);
...
...
TranslateMessage(&Msg);
DispatchMessage(&Msg);
...
.使用环境:
Windows NT: 3.1及以上版本;
Windows:95及以上版本;
Windows CE:1.0及以上版本;
头文件:winuser.h;
输入库:user32.lib;
Windows NT: 3.1及以上版本;
Windows:95及以上版本;
Windows CE:1.0及以上版本;
头文件:winuser.h;
输入库:user32.lib;
.代码示例:
...
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
...
HACCEL hAccel ;
MSG msg ;
...
hAccel = LoadAccelerators (hInstance, szAppName) ;
while (GetMessage (&msg, NULL, 0, 0))
{
if (!TranslateAccelerator (hwnd, hAccel, &msg))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
}
return msg.wParam ;
}
...
...
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
PSTR szCmdLine, int iCmdShow)
{
...
HACCEL hAccel ;
MSG msg ;
...
hAccel = LoadAccelerators (hInstance, szAppName) ;
while (GetMessage (&msg, NULL, 0, 0))
{
if (!TranslateAccelerator (hwnd, hAccel, &msg))
{
TranslateMessage (&msg) ;
DispatchMessage (&msg) ;
}
}
return msg.wParam ;
}
...
- TranslateMessage函数
- TranslateMessage函数
- TranslateMessage()函数
- TranslateMessage函数
- (13)TranslateMessage函数
- TranslateMessage
- TranslateMessage
- TranslateMessage
- 消息循环中的TranslateMessage函数
- 消息循环中的TranslateMessage函数
- 消息循环中的TranslateMessage函数
- duilib中TranslateMessage函数和DispatchMessage函数
- miniGUI的消息转换函数TranslateMessage
- 消息相关的函数TranslateMessage - 翻译消息
- 消息循环中的TranslateMessage函数和DispatchMessage函数
- 十五: TranslateMessage(&msg) 函数 和DispatchMessage(&msg)函数
- 消息循环中的TranslateMessage函数和DispatchMessage函数
- Windows API一日一练(13)TranslateMessage函数
- Asp.Net细节性问题精萃
- JVM启动参数
- FlyBean v2.0
- 领袖秘籍:现代企业应注重什么
- 制作GBK与Unicode的对照表
- TranslateMessage函数
- uClinux2.6入门(转贴)
- DispatchMessage函数
- javascript 的url编码
- 企业建站网站推广策略
- Hadoop Learning (1)
- 关于FlyBean v2.0
- Hadoop Learning (2)
- Hadoop Learning (3)