代码之家  ›  专栏  ›  技术社区  ›  Zaid Amir

缩略图工具栏按钮

  •  0
  • Zaid Amir  · 技术社区  · 16 年前

    今天,我有另一个关于Windows7中的一个新功能的具体问题,称为缩略图工具栏或AeroPeek工具栏,如果有人愿意这样称呼它的话。我已经能够为我的应用程序创建一组新的工具栏按钮,每个按钮都有其独特的图标和行为,但我无法向新按钮添加功能,因为新的拇指按钮结构没有为按钮对象指定任何操作参数。

    下面是一段代码片段,向您展示我用来创建按钮的内容:

    ITaskbarList4* pitskbar;
    HRESULT hr = CoInitialize(NULL);
    hr = CoCreateInstance(CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pitskbar));
    
    
    HWND hwnd = AfxGetMainWnd()->GetSafeHwnd();
    
    DWORD dwMask = THB_BITMAP | THB_FLAGS;
    
    THUMBBUTTON thbButtons[3];
    thbButtons[0].dwMask = (THUMBBUTTONMASK)dwMask;
    thbButtons[0].iId = 0;
    thbButtons[0].iBitmap = 0;
    thbButtons[0].dwFlags = THBF_ENABLED;
    
    thbButtons[1].dwMask = (THUMBBUTTONMASK)dwMask;
    thbButtons[1].iId = 1;
    
        .
        .
       <More Button Params>
        .
        .
    
    CImageList m_imglst;
    m_imglst.Create(16, 16, ILC_COLOR16, 0, 4);
    
    HICON icon = (HICON)::LoadImage(theApp.m_hInstance, MAKEINTRESOURCE(IDI_ICON_ON), IMAGE_ICON, 16, 16, LR_SHARED);
    m_imglst.Add(icon);
    
        .
        .
       <More Images>
        .
        .
    
    hr = pitskbar->ThumbBarSetImageList(hwnd, m_imglst);
    
    if (SUCCEEDED(hr))
    {
    
        hr = pitskbar->ThumbBarAddButtons(hwnd, ARRAYSIZE(thbButtons), thbButtons);
    }
    
    
    
    pitskbar->Release();
    

    当做

    2 回复  |  直到 16 年前
        1
  •  1
  •   Jk.    16 年前

    这就是你要找的? 单击缩略图工具栏中的按钮时,与该缩略图关联的窗口将发送一条WM_命令消息,其中wParam参数的HIWORD设置为THBN_clicked,LOWORD设置为按钮ID http://msdn.microsoft.com/en-us/library/dd391703(VS.85).aspx

        2
  •  0
  •   rudigrobler    16 年前

    Here 是一篇关于如何使用托管包装器的文章。。。通过查看托管包装,您可以更容易地看到如何使用C++来完成它。

    推荐文章