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. 自定義Android操作系統構建
- 6. 將自定義請求添加到XML中的joomla菜單項
- 7. 將數據添加到TinyMCE中的自定義菜單按鈕
- 8. 如何將自定義操作系統移植到EC2?
- 9. 將python解釋器移植到自定義操作系統
- 10. 將自定義菜單項添加到角度ui網格中的列菜單
- 11. GWT將動態菜單項添加到自定義生成的菜單中
- 12. 1Password樣式自定義操作菜單
- 13. 將自定義屬性添加到系統類
- 14. 將自定義方法添加到系統類
- 15. 在Wix中添加系統變量後執行自定義操作
- 16. 預定義爲iPhone操作系統和Mac操作系統
- 17. 添加自定義菜單項的DataGrid
- 18. 添加操作菜單項
- 19. 將自定義操作添加到UserModel的管理頁面
- 20. 將操作的自定義數據添加到Application Insights遙測
- 21. 將操作欄添加到我的自定義主題活動
- 22. 添加到「選定的文本」操作菜單中
- 23. 如何通過Evolonix將插件添加到自定義菜單?
- 24. 將自定義菜單添加到Google文檔
- 25. jQuery mobile將自定義圖標添加到列表菜單
- 26. 將響應式自定義類添加到移動菜單
- 27. 將自定義帖子標題添加到wordpress菜單
- 28. 將自定義菜單添加到drupal 7
- 29. 將自定義菜單選項添加到JSQMessagesViewControllerCell
- 30. 將風格添加到自定義WordPress菜單
感謝您的回覆。讓我試試看。 – 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