1

我已经从应用程序创建了我的工具栏,只有 4 个按钮,每个按钮的大小为 80 x 64 像素。整个位图为 320 x 64。

const int numButtons     = 4;
const SIZE bitmapSize={80,64};
HIMAGELIST hImageList = ImageList_Create(bitmapSize.cx, bitmapSize.cy, ILC_COLOR16 | ILC_MASK,numButtons, 0);


HBITMAP hBitmap = LoadBitmap(hInst, MAKEINTRESOURCE(IDB_HOME));
int iImageList = ImageList_AddMasked(hImageList, hBitmap, 0);
SendMessage(hWndToolbar, TB_SETIMAGELIST, 0, (LPARAM)hImageList);

TBBUTTON tbButtons[numButtons] = 
{
    { 0, WM_BBBB1, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0, 0},
    { 1, WM_BBBB2, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0, 0},
    { 2, WM_BBBB3, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0, 0},
    { 3, WM_BBBB4, TBSTATE_ENABLED, TBSTYLE_BUTTON, {0}, 0, 0}
};

// Add buttons.
SendMessage(hWndToolbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
SendMessage(hWndToolbar, TB_ADDBUTTONS,(WPARAM)numButtons,(LPARAM)&tbButtons);
SendMessage(hWndToolbar, TB_AUTOSIZE, 0, 0); 

RECT _tbRect;
SendMessage(hWndToolbar, TB_GETITEMRECT, 0, (LPARAM)&_tbRect);//0,0,87,70

它说按钮的宽度为 87,高度为 70,如果我的位图有自己的边界大小并且我不希望控件为工具栏添加边界矩形,我该怎么办?

先感谢您!

4

1 回答 1

0

试着打电话

SendMessage(hWndToolbar, TB_SETBUTTONSIZE, 0, (LPARAM)MAKELONG(80,64)); // or some wanted values

TB_ADDBUTTONS

于 2012-07-24T19:46:42.917 回答