Button Grösse ändern
-
Hallo zusammen,
ich habe nach der Anleitung http://www.c-plusplus.net/forum/viewtopic-var-t-is-111101.html eine Toolbar gebastelt, welche auch wunderbar läuft.Gibt es eine Möglichkeit, die Grösse der Buttons zu verändern?
Grüsse,
Thomas
-
SendMessage mit der Nachricht TB_SETBUTTONINFO.
Du setzt den Member dwMask der Struktur TBBUTTONINFO auf TBIF_SIZE, iniitialisierst cbSize mit der Größe der Struktur (sizeof-Operator) und gibst im Member cx Deine neue Größe (Breite) an.
-
Meinst du etwa so?
TBBUTTONINFO tbbi; ZeroMemory(&tbbi, sizeof(tbbutton)); tbbi.cbSize = sizeof(tbbutton); tbbi.dwMask = TBIF_SIZE; tbbi.cx = 100; SendMessage(hwnd_toolbar, TB_SETBUTTONINFO, TBIF_SIZE, (LPARAM)&tbbi);Dies hat keine Auswirkung.
Thomas
-
wParam muss die ID des Buttons sein!
-
CodeFinder, ich stehe wohl ein wenig auf dem Schlauch

Welches soll die ButtonID sein? bitid?
TB_SETBUTTONINFO muss doch auch nach TB_ADDBUTTONS kommen?Für ein wenig Licht bin ich dankbar.
Thomas
void tb_add_button(HWND hwnd_toolbar, int command, char* bitmap_filename, int style = TBSTYLE_BUTTON) { //Bitmap einladen HBITMAP h_bitmap; h_bitmap = (HBITMAP)LoadImage( NULL, bitmap_filename, // name or identifier of image IMAGE_BITMAP, // type of image 16, // desired width 16, // desired height LR_LOADFROMFILE // load flags ); //fill ADDBITMAP-Structur and overgive Bitmap-Handle TBADDBITMAP bitid; bitid.hInst = NULL; bitid.nID = (UINT)h_bitmap; TBBUTTON tbbutton; //Create TBBUTTON-Structur for saving infos about button which is to add tbbutton.iBitmap = SendMessage(hwnd_toolbar, TB_ADDBITMAP, 1, (long)&bitid); tbbutton.idCommand = command; //Command-Parameter to Command-Message to recognize clicks on Toolbar-Button tbbutton.fsState = TBSTATE_ENABLED; tbbutton.fsStyle = TBSTYLE_BUTTON; tbbutton.dwData = 0; tbbutton.iString = NULL; TBBUTTONINFO tbbi; ZeroMemory(&tbbi, sizeof(tbbutton)); tbbi.cbSize = sizeof(tbbutton); tbbi.dwMask = TBIF_SIZE; tbbi.cx = 100; //At last, add the button to the Toolbar SendMessage(hwnd_toolbar, TB_ADDBUTTONS, (WPARAM)1, (LPARAM) (LPTBBUTTON) &tbbutton); SendMessage(hwnd_toolbar, TB_SETBUTTONINFO, (WPARAM)???? , (LPARAM)&tbbi); }
-
Welches soll die ButtonID sein? bitid?
Jeder Button muss eine eigene Identität haben, damit er erkannt wird, bzw. es ist sowas wie sein eigener Name. Es sieht so aus, als würdest du die API - Basics leider nicht beherrschen. Lies dir doch einfach mal ein gutes Tutorial dazu durch, nimm z.B http://winprog.org/tutorial/ da wird auch das mit den Buttons erklärt. Ein nicht so ausführliches, aber trotzdem gutes Tut ist auch noch dieses hier: http://www.win-api.de/tutorials.php
Viel Spaß beim Durchlesen und Lernen

Mikey.
-
Die ID entspricht hier dem Parameter command (int) den Du 'Deiner' Funktion tb_add_button übergeben hast.
Du solltest Dir allerdings trotzdem mikey's Rat zu Herzen nehmen
.
-
Danke Euch beiden für die Hilfe.
So funktioniert es.Gruss,
Thomasvoid tb_add_button(HWND hwnd_toolbar, int command, int bitmap_name, char* text, int style = TBSTYLE_BUTTON) { TBBUTTON tbbutton; //Create TBBUTTON-Structur for saving infos about button which is to add tbbutton.iBitmap = bitmap_name; tbbutton.idCommand = command; //Command-Parameter to Command-Message to recognize clicks on Toolbar-Button tbbutton.fsState = TBSTATE_ENABLED; tbbutton.fsStyle = style; tbbutton.dwData = 0; tbbutton.iString = NULL; SendMessage(hwnd_toolbar, TB_ADDBUTTONS, (WPARAM) 1, (LPARAM) (LPTBBUTTON) &tbbutton); SendMessage(hwnd_toolbar, TB_ADDSTRING, (WPARAM) 1, (LPARAM) "0"); TBBUTTONINFO tbbi; ZeroMemory(&tbbi, sizeof(tbbi)); tbbi.cbSize = sizeof(tbbi); tbbi.dwMask = TBIF_SIZE; tbbi.cx = 200; SendMessage(hwnd_toolbar, TB_SETBUTTONINFO, (WPARAM)command, (LPARAM)&tbbi); TBBUTTONINFO tbbi1; ZeroMemory(&tbbi1, sizeof(tbbi1)); tbbi1.cbSize = sizeof(tbbi1); tbbi1.dwMask = TBIF_TEXT; tbbi1.pszText = text; SendMessage(hwnd_toolbar, TB_SETBUTTONINFO, (WPARAM)command, (LPARAM)&tbbi1); } int WINAPI WinMain(...) { tb_add_button(hwnd_toolbar,2, 6, "Create a new dataset",0); tb_add_button(hwnd_toolbar,1, 8, "Copy to clipboard", 0); }