2009-09-17 6 views
0

Сегодня у меня есть еще один конкретный вопрос о новой функции в 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(); 

Я был бы признателен за любой полезный ответ до тех пор, как в контексте этого вопроса.

С уважением

ответ

1

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

0

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