1
A
回答
2
不能使用Qt,因爲它是操作系統特定的做到這一點。但是,您可以在Windows中使用GetSystemMenu和AppendMenu函數修改菜單,然後捕獲單擊項目的事件。
下面是一個簡單的例子here。它附加了一個分隔符和一個關於項目的菜單:
#include "windows.h"
// IDM_ABOUTBOX must be in the system command range
// (IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX)
// and (IDM_ABOUTBOX < 0xF000)
#define IDM_ABOUTBOX 0x0010
MyWidget::MyWidget() : QMainWindow()
{
...
HMENU hMenu = ::GetSystemMenu(winId(), FALSE);
if (hMenu != NULL)
{
::AppendMenuA(hMenu, MF_SEPARATOR, 0, 0);
::AppendMenuA(hMenu, MF_STRING, IDM_ABOUTBOX, "About MyApp...");
}
...
}
bool MyWidget::winEvent(MSG *m, long *result)
{
if (m->message == WM_SYSCOMMAND)
{
if ((m->wParam & 0xfff0) == IDM_ABOUTBOX)
{
*result = 0;
// open About dialog
about();
return (true);
}
}
return (false);
}
PRO-file:
LIBS += -lUser32
相關問題
- 1. 如何將自定義項添加到C++的系統菜單中?
- 2. 如何自定義窗口菜單(Linux操作系統Ubuntu)
- 3. Excel VBA - 將子菜單添加到自定義右鍵菜單
- 4. 將自定義菜單項添加到WordPress菜單
- 5. Wordpress將子菜單添加到自定義菜單
- 6. 將自定義菜單項添加到Finder上下文菜單
- 7. 如何將自定義菜單項添加到X下的窗口系統菜單?
- 8. Cosmos自定義操作系統,addmapping?
- 9. 自定義Android操作系統構建
- 10. 如何將自定義操作系統移植到EC2?
- 11. 將python解釋器移植到自定義操作系統
- 12. 將自定義選項添加到wordpress中的菜單項
- 13. 將自定義請求添加到XML中的joomla菜單項
- 14. 將數據添加到TinyMCE中的自定義菜單按鈕
- 15. 將自定義元素添加到Joomla中的主菜單項
- 16. 將自定義菜單項添加到角度ui網格中的列菜單
- 17. 將自定義選項添加到Wordpress菜單管理器中的菜單項
- 18. GWT將動態菜單項添加到自定義生成的菜單中
- 19. 無法將itertools.so添加到操作系統的路徑中
- 20. 將自定義文件系統支持添加到Apache VFS
- 21. 將自定義方法添加到系統類
- 22. 將自定義常量添加到系統常量
- 23. 將自定義屬性添加到系統類
- 24. 將自定義首選項添加到系統設置
- 25. 1Password樣式自定義操作菜單
- 26. 自定義樹莓派操作系統文件系統
- 27. 預定義爲iPhone操作系統和Mac操作系統
- 28. 在Wix中添加系統變量後執行自定義操作
- 29. 不能添加更多菜單到wordpress自定義菜單
- 30. 添加自定義菜單項的DataGrid
感謝您的回覆。讓我試試看。 – Bharath 2014-09-08 12:01:47
提供的解決方案有效,但有以下更改。 'QE中不支持'winEvent',它被'QWidget :: nativeEvent'取代。參見[QWidget :: nativeEvent()](http://qt-project.org/doc/qt-5/qwidget的.html#nativeEvent)。 其他一切保持不變。 再次感謝。 – Bharath 2014-09-08 12:42:17
謝謝,這有很大的幫助。對於其他人,我可以添加:winEvent現在是nativeEvent(const QByteArray&eventType,void * m,long * result),並且您需要使用MSG投射m * msg = reinterpret_cast(m); –
jaba
2017-09-29 15:03:30