代码之家  ›  专栏  ›  技术社区  ›  Icemanind

写入Windows7“预览”窗口区域

  •  2
  • Icemanind  · 技术社区  · 15 年前

    如何使用C#将控件写入或绘制到Windows7预览区域?例如,在Windows7中打开WindowsMedia Player并播放一首歌曲。播放歌曲时,最小化Windows Media player,然后将鼠标悬停在Windows Media player图标上,您将看到在实际的Media player预览窗口下方有一个暂停、回放和快进按钮。如何在C#中复制这种行为?

    2 回复  |  直到 15 年前
        1
  •  4
  •   Michael Petrotta user3140870    15 年前

    你在找什么 Windows 7 Thumbnail Toolbars

    缩略图工具栏提供了一个迷你 “远程控制”的机会 从它的缩略图窗口。为了 不需要使用Windows 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;
    }
    
        2
  •  1
  •   Kate Gregory    15 年前

    Windows API Code Pack 其中包括现场缩略图,缩略图按钮,剪辑缩略图,标签缩略图等样品。它是缩略图按钮,你正在寻找和两三行代码将照顾它。

    顺便说一句,预览区是当你选择一个.txt文件时在Windows资源管理器中得到的,你可以看到右边的内容。大多数office文件都有预览器,您也可以编写自己的预览器。