windowsapi函数:Windows API一日一练(10)LoadAccelerators函数

  当用户使用软件Software时往往有些功能是最常用功能作为开发人员就需要让用户感觉到这个软件Software好用这样就需要把他们最常用功能用起来最方便最快捷能提高生产效率在这方面微软是做到家了比如在键盘上有个Windows键Windows很多功能都可以通过这个键和其它键来组合成快捷键提高使用方便性现在就来介绍下如何样让你也方便使用就是使用快捷键

  LoadAccelerators声明如下:

WINUSERAPI
HACCEL
WINAPI
LoadAcceleratorsA(
    __in_opt HINSTANCE hInstance,
    __in LPCSTR lpTableName);
WINUSERAPI
HACCEL
WINAPI
LoadAcceleratorsW(
    __in_opt HINSTANCE hInstance,
    __in LPCWSTR lpTableName);
#def UNICODE
# LoadAccelerators LoadAcceleratorsW
#
# LoadAccelerators LoadAcceleratorsA
#end // !UNICODE


  hInstance是应用例子句柄用来从资源文件里查找到快捷键定义

  lpTableName是快捷键定义表格

  这个例子如下:

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


  第28行就是LoadAccelerators从资源里加载快捷键

  到这里就已经了解和使用LoadAccelerators但还有个问题就是快捷键资源是如何样定义呢?问得好下面就带你看下它定义:

#001 /////////////////////////////////////////////////////////////////////////////
#002 //
#003 // Accelerator
#004 //
#005 
#006 IDC_TESTWIN ACCELERATORS 
#007 BEGIN
#008      "?",            IDM_ABOUT,              ASCII, ALT
#009      "/",            IDM_ABOUT,              ASCII, ALT
#010 END
#011 


  这是从资源文件TestWin.rc里拷贝出来IDC_TESTWIN是快捷键表名称ACCELERATORS是快捷键定义关键字BEGIN是表示快捷键开始END是表示快捷键结束

  下面快捷键定义语法:

acctablename ACCELERATORS [optional-statements] {event, idvalue, [type] [options]... }

  [optional-statements]是可选选项

  event是必须有内容它是定义键码或者键ASCII码

  idvalue是快捷键响应ID命令

  type是类型选择

  上面第8行和第9行里就是设置ALT+‘?’或者ALT + ‘/’作为快捷键当用户按下ALT+‘?’或者ALT + ‘/’时就会弹出有关对话框 

Tags:  api函数 loadaccelerators windowsapi函数库 windowsapi函数

延伸阅读

最新评论

发表评论