下面是我程序的一个片段,最后一行向新创建的工具栏发送一条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);根据我读取的这里,来自SendMessage()的返回值应该是图像列表中的图像数量,但我总是看到0。我看错文件了吗?我会把0读成失败。
否则,工具栏似乎工作良好,并且加载的图像确实在那里。
发布于 2016-08-05 04:35:48
这些文件有误导性。返回值实际上表示添加到图像列表中的第一个图像的索引(即添加新图像之前存在的图像数量)。
因此,当您第一次发送此消息时(假设您以前没有将自己的非空图像列表分配到工具栏上),0就是预期的成功回报。如果您再次发送消息来添加更多的图像,您将看到一个不同的值返回。
https://stackoverflow.com/questions/38781101
复制相似问题