Button Size



  • Hallo zusammen,
    Nachdem ich nun oft als Unregistrierter gepostet habe, entschied ich mich nun mal dazu mich anzumelden 🙂

    Ich habe nun folgendes Problem:
    Ich habe ein TBBUTTON Array mit einem Button drin. Diesem setze ich ein Bitmap sowie ein Text. Jedoch wird vom Text der letzte Teil immer abgeschnitten und durch ... ersetzt. Der Button hat die Attribute TBSTYLE_BUTTON und TBSTYLE_AUTOSIZE und befindet sich in der Toolbar.
    Wenn ich das Bitmap entferne bleibt das Problem bestehen, daran scheint es also nicht zu liegen.
    Gibt es eine Möglichkeit die grösse des Buttons anschliessend erneut zu setzen? Ansonsten wäre ich für jede Hilfe und jeden Hinweis dankbar.

    TBADDBITMAP tbab;
    	TBBUTTON tbb[] =
    	{
    		{745, 0, TBSTATE_ENABLED, TBSTYLE_SEP, 0, 0, 0},
    		{0,   ID_TB_UPDATE, TBSTATE_ENABLED, TBSTYLE_BUTTON | TBSTYLE_AUTOSIZE, 0, 0, 0}
    	};
    
        SendMessage(hwndToolbar, TB_BUTTONSTRUCTSIZE, (WPARAM)sizeof(TBBUTTON), 0);
    
        tbab.hInst = hInstance;
        tbab.nID = TB_BUTTONS;
    
    	//set button bitmap
        SendMessage(hwndToolbar, TB_ADDBITMAP, 1, (LPARAM)&tbab);
    	//set text for update button
    	tbb[1].iString = SendMessage(hwndToolbar, TB_ADDSTRING, 0, (LPARAM) TEXT("Update Users"));
        //add button to toolbar
    	SendMessage(hwndToolbar, TB_ADDBUTTONS, 2, (LPARAM)&tbb);
    

  • Mod

    Sende bitte noch zusätzlich TB_AUTOSIZE nach dem laden der Buttons!



  • Hallo, danke für deine Hilfe, ich habe nun nach dem laden ein TB_AUTOSIZE an das Toolbarwindow geschickt, jedoch tut sich da nichts.
    Muss ich das evtl. an ein anderes Window schicken?

    SendMessage(context->hwndToolbar, TB_AUTOSIZE, 0, 0);
    

  • Mod

    Nein! Der Bar wird dadurch neu kalkuliert.
    Bist Du auch sicher, dass der Toolbar selber groß genug erzeugt wurde?
    Wenn nicht mit TB_GETMAXSIZE die Größe holenund den Toolbar mit SetWindowPos resizen.



  • Habe ich mal gemacht aber in meinem LPSIZE struct steht für cx und cy nur ein ungültiger Pointer.
    Bedeuted das die Grösse meines Toolbars ist nirgendwo gesetzt?

    LPSIZE lpSize = NULL;
    
    	SendMessage(context->hwndToolbar, TB_GETMAXSIZE, 0, (LPARAM) &lpSize);
    

Anmelden zum Antworten