VC++快捷键的使用

来源:互联网 发布:黄金烤鸡腿堡 知乎 编辑:程序博客网 时间:2024/06/03 09:24
WINUSERAPIHACCELWINAPILoadAcceleratorsA(    __in_opt HINSTANCE hInstance,    __in LPCSTR lpTableName);WINUSERAPIHACCELWINAPILoadAcceleratorsW(    __in_opt HINSTANCE hInstance,    __in LPCWSTR lpTableName);#ifdef UNICODE#define LoadAccelerators LoadAcceleratorsW#else#define LoadAccelerators LoadAcceleratorsA#endif // !UNICODE

hInstance是应用程序实例句柄,用来从程序的资源文件里查找到快捷键定义。
lpTableName是快捷键的定义表格。

MSG msg;    HACCEL hAccelTable;    // 初始化全局字符串    LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);    LoadString(hInstance, IDC_WIN32PROJECT1, szWindowClass, MAX_LOADSTRING);    MyRegisterClass(hInstance);    // 执行应用程序初始化:     if (!InitInstance (hInstance, nCmdShow))    {        return FALSE;    }    hAccelTable = LoadAccelerators(hInstance, MAKEINTRESOURCE(IDC_WIN32PROJECT1));    // 主消息循环:     while (GetMessage(&msg, NULL, 0, 0))    {        if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))        {            TranslateMessage(&msg);            DispatchMessage(&msg);        }    }    return (int) msg.wParam;

WIN32示例程序,其中编写快捷键有三个步骤:
(1)在键表中加入对应关系,ID对应键值
(2)在程序中编写响应函数
(3)在相应的消息响应机制中调用响应函数

最后,注意 MAKEINTRESOURCE(int) 这是一个宏,以INT值为索引去找资源文件中的定义。

原创粉丝点击