我必須創建一個頁面使用visual studio c + +不同的菜單有快捷鍵(關鍵加速器)。快捷方式應該像我們在Windows記事本中的方式例如。(alt + f for文件,alt + e編輯)等。我想知道如何實現我自己的頁面中的菜單項我自己的Alt鍵快捷鍵。請幫助。用戶定義的頁面菜單的Windows快捷方式
0
A
回答
0
首先,您需要在資源文件(* .rc)中定義ACCELERATORS資源。 MSDN docs給出了加速器表的這個例子。
1 ACCELERATORS
{
"^C", IDDCLEAR ; control C
"K", IDDCLEAR ; shift K
"k", IDDELLIPSE, ALT ; alt k
98, IDDRECT, ASCII ; b
66, IDDSTAR, ASCII ; B (shift b)
"g", IDDRECT ; g
"G", IDDSTAR ; G (shift G)
VK_F1, IDDCLEAR, VIRTKEY ; F1
VK_F1, IDDSTAR, CONTROL, VIRTKEY ; control F1
VK_F1, IDDELLIPSE, SHIFT, VIRTKEY ; shift F1
VK_F1, IDDRECT, ALT, VIRTKEY ; alt F1
VK_F2, IDDCLEAR, ALT, SHIFT, VIRTKEY ; alt shift F2
VK_F2, IDDSTAR, CONTROL, SHIFT, VIRTKEY ; ctrl shift F2
VK_F2, IDDRECT, ALT, CONTROL, VIRTKEY ; alt control F2
}
你會編譯資源文件(RC,微軟的資源編譯器)和鏈接即可* .RES與您的應用程序文件。
接下來,在您的WinMain
中,用您的資源表的標識符呼叫LoadAccelerators
(請參閱MSDN的語法),以便應用程序有權訪問它。對於上面的表格中,你可以做
HACCEL hAccel = LoadAccelerators(hInstance, 1);
其中hInstance
是應用程序的HINSTANCE
,和1
是表的標識符。
最後,在消息循環中調用TranslateAccelerator
(同樣請參閱MSDN的語法),以便在GetMessage
之後能夠處理加速器消息。同樣,在這個例子中,你可以做
TranslateAccelerator(hwnd, hAccel, &msg);
其中hwnd
是你的主窗口的HWND
和msg
是你的主窗口中定義的MSG
結構。
如果你做這一切正確,你的應用程序收到通過每當加速器事件發生WM_COMMAND消息,該消息的wParam
領域將包含被觸發(在IDD*
常數的例子中的關鍵事件的標識符表)。
相關問題
- 1. 菜單快捷方式
- 2. 菜單項快捷方式
- 3. HTML頁面的快捷方式圖片
- 4. Windows窗體中的菜單快捷方式和MDI
- 5. 自定義菜單快捷鍵
- 6. Flash自定義右鍵快捷菜單
- 7. 自定義快捷菜單4.0
- 8. Windows窗體桌面快捷方式
- 9. Atom:PHP定義的快捷方式
- 10. 的JavaScript - 快捷方式,它被定義
- 11. 在windows開始菜單中創建快捷方式
- 12. 綁定簡單addeventlistener的快捷方式
- 13. VB.NET Winforms菜單項快捷方式覆蓋默認快捷方式?
- 14. Windows自定義快捷鍵
- 15. Windows(.lnk)快捷方式API?
- 16. 不同用戶的Nsis快捷方式
- 17. 如何向所有用戶可用的'SendTo'菜單添加快捷方式
- 18. 添加快捷方式到應用程序的菜單
- 19. 自定義快捷方式firefox webextention
- 20. 自定義路線(URL快捷方式)
- 21. Default Vs自定義快捷方式
- 22. 自定義Mathematica快捷方式
- 23. 如何定義雙鍵快捷方式?
- 24. 在IntelliJ中「新分支」彈出式菜單的快捷方式
- 25. 在C中定義的Windows快捷鍵++
- 26. 可選用戶的桌面快捷方式的問題
- 27. .lnk Windows窗體中的快捷方式
- 28. NSIS - 適用於所有用戶的桌面快捷方式
- 29. 使用Python修改Windows快捷方式
- 30. 用於創建方法定義的Xcode快捷方式
任何鏈接,如果你們都可以提供? – user1335919 2012-04-16 10:22:12