2010-09-04 33 views
2

如何使用C#編寫或繪製Windows 7預覽區域的控件?有關我正在談論的示例,請在Windows 7中打開Windows Media Player並播放歌曲。播放歌曲時,儘量減少Windows Media播放器,然後將鼠標懸停在Windows Media Player圖標上,您會在實際的媒體播放器預覽窗口下方看到一個暫停,後退和快進按鈕。我如何在C#中複製這種行爲?寫入Windows 7「預覽」窗口區域

回答

4

您正在尋找Windows 7 Thumbnail Toolbars

縮略圖工具欄提供了一個迷你 「遠程控制」從它的縮略圖 機會窗口。例如,要切換到 的下一首歌曲,您不需要 使用笨拙的Media Player桌面樂隊 或切換到媒體播放器 應用程序。相反,您可以直接使用 縮略圖工具欄執行 此任務,而不必通過跳轉到另一個 應用程序來中斷您的工作流程 。

從MSDN文章無恥地複製:

//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; 
} 
1

因爲這有C#的標籤,我猜你會喜歡做這在託管代碼。請看Windows API Code Pack,其中包括實時縮略圖,縮略圖按鈕,剪輯縮略圖,選項卡式縮略圖等示例。它是您正在查找的縮略圖按鈕,兩三行代碼將負責處理它。

順便說一下,預覽區域是您在Windows資源管理器中獲得的內容,當您選擇說.txt文件並可以看到右側的內容時。大多數辦公文件都有預覽器,你也可以自己寫。