专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » windowsapi函数:Windows API一日一练(13)TranslateMessage函数 »正文

windowsapi函数:Windows API一日一练(13)TranslateMessage函数

来源: 发布时间:星期一, 2009年9月28日 浏览:3次 评论:0
  TranslateMessage是用来把虚拟键消息转换为消息由于Windows对所有键盘编码都是采用虚拟键定义这样当按键按下时并不得消息需要键盘映射转换为消息

  TranslateMessage用于将虚拟键消息转换为消息消息被投递到线程消息队列中当下GetMessage时被取出当我们敲击键盘上某个键时系统将产生WM_KEYDOWN和WM_KEYUP消息这两个消息附加参数(wParam和lParam)包含是虚拟键代码和扫描码等信息而我们在中往往需要得到某个ASCII码TranslateMessage这个就可以将WM_KEYDOWN和WM_ KEYUP消息组合转换为条WM_CHAR消息(该消息wParam附加参数包含了ASCII码)并将转换后新消息投递到线程消息队列中注意TranslateMessage并不会修改原有消息它只是产生新消息并投递到消息队列中

  也就是说TranslateMessage会发现消息里是否有消息如果有消息就会产生WM_CHAR消息如果没有就会产生什么消息

  TranslateMessage声明如下:

WINUSERAPI
BOOL
WINAPI
TranslateMessage(
    __in CONST MSG *lpMsg);


  lpMsg是检查需要转换消息

  这个例子如下:

#001 //主入口
#002 //
#003 // 蔡军生 2007/07/19
#004 // QQ: 9073204
#005 //
#006  APIENTRY _tWinMain(HINSTANCE hInstance,
#007                       HINSTANCE hPrevInstance,
#008                       LPTSTR    lpCmdLine,
#009                              nCmdShow)
#010 {
#011  UNREFERENCED_PARAMETER(hPrevInstance);
#012  UNREFERENCED_PARAMETER(lpCmdLine);
#013 
#014   //
#015  MSG msg;
#016  HACCEL hAccelTable;
#017 
#018  // 加载全局
#019  LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
#020  LoadString(hInstance, IDC_TESTWIN, szWindowClass, MAX_LOADSTRING);
#021  MyRegisterClass(hInstance);
#022 
#023  // 应用化:
#024   (!InitInstance (hInstance, nCmdShow))
#025  {
#026          FALSE;
#027  }
#028 
#029  hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_TESTWIN));
#030 
#031  // 消息循环:
#032  BOOL bRet;
#033  while ( (bRet = GetMessage(&msg, NULL, 0, 0)) != 0)
#034  {
#035           (bRet  -1)
#036         {
#037               //处理出错
#038 
#039         }
#040           (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
#041         {
#042               TranslateMessage(&msg);
#043               DispatchMessage(&msg);
#044         }
#045  }
#046 
#047   () msg.wParam;
#048 }
#049 


  第42行是TranslateMessage作消息转换工作 

0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: