Кнопка на панели миниатюр - PullRequest
       40

Кнопка на панели миниатюр

0 голосов
/ 17 сентября 2009

Сегодня у меня есть еще один конкретный вопрос о новой функции в Windows 7, которая называется панель миниатюр или панель инструментов Aero Peek, если некоторые захотят назвать ее так. Мне удалось создать новый набор кнопок панели инструментов для моего приложения, каждая кнопка со своим уникальным значком и поведением, но я не смог добавить функциональность к новым кнопкам, поскольку новая структура THUMBUTTON не задает никаких параметров действия для объект кнопки.

Вот фрагмент кода, чтобы показать вам, что я использовал для создания кнопок:

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 ]

1 голос
/ 23 октября 2009

это то, что вы ищете? «При нажатии кнопки на панели инструментов миниатюр в окне, связанном с этим эскизом, отправляется сообщение WM_COMMAND с HIWORD его параметра wParam, установленным в THBN_CLICKED, и LOWORD для идентификатора кнопки». источник: http://msdn.microsoft.com/en-us/library/dd391703(VS.85).aspx

0 голосов
/ 14 октября 2009

Здесь - статья о том, как сделать это с помощью управляемых оболочек ..., взглянув на управляемую оболочку, вы могли бы легче увидеть, как это сделать с помощью C ++ ...

...