toolbar mit bitmaps
-
Hi.
in anlehnung an "code_pilot" (http://www.c-plusplus.net/forum/viewtopic-var-p-is-595048.html) versuche ich ebenfalls meine eigenen bitmaps in die toolbar zu laden. es ist kein problem, wenn es ein button ist. ich bekomme es aber leider nicht hin, für den zweiten button ein anderes bild zu laden.
mein code sieht wie folgt aus. danke für hilfe.
STICK.TBADDBITMAP tbab;
TBBUTTON tbb [2];hTool = CreateWindowEx(0, TOOLBARCLASSNAME, NULL, WS_CHILD | WS_VISIBLE, 0, 0, 0, 0,hWnd, (HMENU)IDC_MAIN_TOOL, GetModuleHandle(NULL), NULL);
if(hTool == NULL)
MessageBox(hWnd, "Could not create tool bar.", "Error", MB_OK | MB_ICONERROR);SendMessage(hTool, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
tbab.hInst = HINST_COMMCTRL;
tbab.nID = IDB_STD_SMALL_COLOR;ZeroMemory(tbb, sizeof(tbb));
tbab.hInst = GetModuleHandle(NULL);
tbab.nID = (IDB_BITMAP1,IDB_BITMAP2);
tbb[0].iBitmap = SendMessage(hTool,TB_ADDBITMAP,0,(LPARAM)&tbab);
tbb[0].fsState = TBSTATE_ENABLED;
tbb[0].fsStyle = TBSTYLE_BUTTON;
tbb[0].idCommand = IDM_ZOOMIN;tbb[1].iBitmap = SendMessage(hTool,TB_ADDBITMAP,0,(LPARAM)&tbab);
tbb[1].fsState = TBSTATE_ENABLED;
tbb[1].fsStyle = TBSTYLE_BUTTON;
tbb[1].idCommand = IDM_ZOOMOUT;
SendMessage(hTool, TB_ADDBITMAP, 0, (LPARAM)&tbab);SendMessage (hTool, TB_ADDBUTTONS, (WPARAM)sizeof(tbb)/sizeof(tbb[0]), (LPARAM)(TBBUTTON*)&tbb);
SendMessage (hTool, TB_AUTOSIZE, 0, 0);
ShowWindow (hTool, SW_SHOW);
UpdateWindow (hTool);
-
vielleicht gibt es hier anregungen:
hem.passagen.se/sm3gsj/ programmering/gcmprogramming03.htmmeist werden die selbst gezeichneten bitmaps nicht einzeln
sondern als z.b. 16 mal (16 mal anzahl gezeichneter buttons)
bildpunkte gezeichnet.mfg f.-th.
-
servus.
danke für die antwort, habe aber das problem bereits durch geschicktes herumprobieren selber gelöst. mein code sieht jetzt so aus:
// erster button
tbab.hInst = GetModuleHandle(NULL);
tbab.nID = IDB_BITMAP1;
tbb[2].fsState = TBSTATE_ENABLED;
tbb[2].fsStyle = TBSTYLE_BUTTON;
tbb[2].idCommand = IDM_ZOOMIN;
tbb[2].iBitmap = SendMessage(hTool,TB_ADDBITMAP,1,(LPARAM)&tbab);//zweiter button
tbab.hInst = GetModuleHandle(NULL);
tbab.nID = IDB_BITMAP2;
tbb[3].iBitmap = 0;
tbb[3].fsState = TBSTATE_ENABLED;
tbb[3].fsStyle = TBSTYLE_BUTTON;
tbb[3].idCommand = IDM_ZOOMOUT;
tbb[3].iBitmap = SendMessage(hTool,TB_ADDBITMAP,2,(LPARAM)&tbab);grüsse. STICK