1
A
回答
2
在MSDN雜誌上的Introducing The Taskbar APIs中,它介紹瞭如何使用縮略圖工具欄。
受管理的等效代碼當前未出現在Windows API 代碼包中,但計劃在未來版本中出現。同時在 中,您可以使用Windows 7任務欄Interop Sample Library。它 包含ThumbButtonManager類以及用於控制 縮略圖工具欄的相應的 CreateThumbButton和AddThumbButtons方法,以及用於在運行時修改 縮略圖按鈕狀態的ThumbButton類。要接收通知,請 註冊ThumbButton.Clicked事件並覆蓋您的窗口 過程,以便將消息分發到爲您調度魔術的ThumbButtonManager類 。 (有關詳細信息,請參閱 博客文章Windows 7 Taskbar: Thumbnail Toolbars.)
ITaskbarList3* ptl;//Created earlier //In your window procedure:
switch (msg) {
case g_wmTBC://TaskbarButtonCreated
THUMBBUTTON buttons[2]; buttons[0].dwMask = THB_ICON|THB_TOOLTIP|THB_FLAGS; buttons[0].iId = 0;
buttons[0].hIcon = GetIconForButton(0); wcscpy(buttons[0].szTip, L"Tooltip 1"); buttons[0].dwFlags = THBF_ENABLED;
buttons[1].dwMask = THB_ICON|THB_TOOLTIP|THB_FLAGS;
buttons[1].iId = 1; buttons[1].hIcon = GetIconForButton(1);
wcscpy(buttons[0].szTip, L"Tooltip 2"); buttons[1].dwFlags = THBF_ENABLED; VERIFY(ptl->ThumbBarAddButtons(hWnd, 2,buttons));
break;
case WM_COMMAND:
if (HIWORD(wParam) == THBN_CLICKED) {
if (LOWORD(wParam) == 0)
MessageBox(L"Button 0 clicked", ...);
if (LOWORD(wParam) == 1) MessageBox(L"Button 1 clicked", ...);
}
break;
.
.
而在第二個環節是使用包裝庫顯示了一個C#示例:
與往常一樣,託管的包裝來救援。該 ThumbButtonManager類(在Windows7.DesktopIntegration項目)
_thumbButtonManager = this.CreateThumbButtonManager();
ThumbButton button2 = _thumbButtonManager.CreateThumbButton(102, SystemIcons.Exclamation, "Beware of me!");
button2.Clicked += delegate
{
statusLabel.Text = "Second button clicked";
button2.Enabled = false;
};
ThumbButton button = _thumbButtonManager.CreateThumbButton(101, SystemIcons.Information, "Click me");
button.Clicked += delegate
{
statusLabel.Text = "First button clicked";
button2.Enabled = true;
};
_thumbButtonManager.AddThumbButtons(button, button2);
Note that you have tooltips and icons at your disposal to personalize the thumbnail toolbar to your application’s needs. All you need to do now is override your windows’ window procedure and call the DispatchMessage method of the ThumbButtonManager, so that it can correctly route the event to your registered event handlers (and of course, don’t forget to call the default window procedure when you’re done!):
if (_thumbButtonManager != null)
_thumbButtonManager.DispatchMessage(ref m);
base.WndProc(ref m);
相關問題
- 1. C#win7中的任務欄工具欄
- 2. 針對任務欄的窗口
- 3. Captionless wxPython的窗口隱藏任務欄
- 4. 高於任務欄的窗口
- 5. 擺脫任務欄中的XAML窗口
- 6. 窗口出現在Windows任務欄設置窗口的後面
- 7. 如何在窗口的任務欄上方設置tkiner窗口
- 8. WPF子窗口 - Windows 7任務欄
- 9. 窗口任務欄通知像skype
- 10. 從任務欄隱藏窗口
- 11. PySide,將窗口對接到任務欄
- 12. 使tkinter窗口出現在任務欄
- 13. 使子窗口出現在任務欄
- 14. 設置任務欄位置Win7 C++
- 15. 從MS窗口任務欄隱藏窗口
- 16. Windows 7任務欄任務中沒有窗口.Net
- 17. 如何隱藏窗口,但在任務欄上顯示?
- 18. 任務欄工具欄(DeskBand)在VB.NET爲Win7的X64
- 19. Qt/win:showMaximized()在無框窗口上重疊任務欄
- 20. 如何創建沒有任何窗口的任務欄按鈕?
- 21. Windows:最大化/處理我的窗口像任務欄?
- 22. 沒有WindowStyle和最大化窗口狀態的窗口隱藏任務欄
- 23. 標誌的Windows 7窗口總是包括Win7的任務欄(自定義錯誤)
- 24. 當從任務欄中選擇子窗口時,將父窗口置於前面
- 25. 電子:最大化瀏覽器窗口重疊窗口任務欄
- 26. 當窗口狀態是最大化,則窗口在任務欄後面
- 27. 如何保持其他窗口的任務欄底部?
- 28. 獲取所有擁有任務欄圖標的窗口
- 29. 用WinAPI隱藏C#任務欄中的窗口
- 30. 窗口和任務欄的不同圖標