2016-08-05 1 views
0

Вот фрагмент моей программы, с последней строкой, отправляющей сообщение TB_LOADIMAGES на вновь созданную панель инструментов.Получает ли сообщение TB_LOADIMAGES действительный счет?

hWndToolbar = CreateWindowEx(0, TOOLBARCLASSNAME, TEXT("This is the toolbar"), WS_CHILD | TBSTYLE_TOOLTIPS, 
    0, 500, 200, 32, hWndMain, (HMENU) ID_TOOLBAR, hInstance, NULL); 
if (!hWndToolbar) return false; 

const int numButtons = 3; 
TBBUTTON tbButtonsAdd[numButtons] = { 
    {MAKELONG(HIST_BACK,0), IDM_ABOUT, TBSTATE_ENABLED, BTNS_AUTOSIZE, {0}, 0, (INT_PTR) TEXT("junk")}, 
    {MAKELONG(HIST_FORWARD,0), IDM_ABOUT, TBSTATE_ENABLED, BTNS_AUTOSIZE, {0}, 0, (INT_PTR) TEXT("two")}, 
    {MAKELONG(HIST_FAVORITES,0), IDM_ABOUT, TBSTATE_ENABLED, BTNS_AUTOSIZE, {0}, 0, (INT_PTR) TEXT("three")} 
}; 

debugInt = SendMessage(hWndToolbar, TB_LOADIMAGES, (WPARAM)IDB_HIST_SMALL_COLOR, (LPARAM)HINST_COMMCTRL); 

Согласно тому, что я прочитал here возвращаемое значение из SendMessage() должно быть количество изображений в списке изображений, но я всегда видеть 0. Am I неверного прочтение документации? Я бы прочитал 0 как неудачу.

Панель инструментов в противном случае работает нормально, а загруженные изображения действительно присутствуют.

ответ

1

Документация является вводящей в заблуждение. Возвращаемое значение фактически указывает индекс первого изображения, добавленного в список изображений (т. Е. Количество изображений, которые существовали до, были добавлены новые).

Итак, при первом отправке этого сообщения (при условии, что вы ранее не назначили свой собственный непустой список изображений на панели инструментов), 0 - ожидаемый возврат к успеху. Если вы снова отправите сообщение, чтобы добавить больше изображений, вы увидите другое возвращаемое значение.

+0

Спасибо, это имеет смысл. Я вижу, что возвращаемое значение будет полезно в качестве основы для ссылки на изображения позже. –

 Смежные вопросы

  • Нет связанных вопросов^_^