2009-04-07 4 views
1

Wir haben einen Touchscreen, und die Symbolleiste ist zu klein, um mit meinen fleischigen Fingern zu treffen. Gibt es eine einfache Möglichkeit, die Symbolleistenschaltflächen größer und einfacher zu machen?Wie können Sie Schaltflächen auf einer MSVS C++ CToolBar zusammen mit ihren Bildern größer machen?

Bisher habe ich ein paar Dinge versucht:

m_toolbar.SetSizes(CSize(64,64), CSize(50,50)); 
m_toolbar.SetSizes(CSize(64,64), CSize(50,50)); 
m_toolbar.GetToolBarCtrl().SetButtonWidth(64, 64); 
m_toolbar.GetToolBarCtrl().SetButtonSize(CSize(64, 64)); 

Keiner dieser Ansätze dehnt die auch Bilder. Die Schaltflächen werden größer und sind voll funktionsfähig, aber die Bilder überlappen die Schaltflächen nicht so, wie sie es normalerweise tun würden. Ich würde es vorziehen, eine einzelne Bildliste für die Symbole zu behalten und die Bilder strecken zu lassen, um zu passen.

+0

Ich entschied mich, eine zweite TOOLBAR-Ressource zu verwenden und die Bilder manuell zu bearbeiten. Sie automatisch zu skalieren wäre eine bessere Lösung (skalieren Sie von groß nach klein), so dass Sie nicht zwei TOOLBARs aktualisieren müssen, wenn sich eine Änderung ergibt. – Kieveli

Antwort

1

Erstellen Sie eine leere CImageList mit der Größe 64x64 (nennen wir es große) zum Erstellen der Symbolleiste. Laden Sie die ursprüngliche Bildliste von Ressourcen (wir nennen es kleine).

Iterate über jedes Bild in kleinen und Kopieren/Größe verändern zu großen. Weisen Sie dann Ihrer Symbolleiste groß zu. Etwas umständlich bui sollte funktionieren.

HTH,

1

Soweit ich weiß, gibt es keine Möglichkeit, Bilder mit der Größe der Tasten der Größe zu machen. MFC-Anwendungen verwenden BMP- und keine Vektorbilder.

Sie müssen also ein bmp Bilder mit den gewünschten Größen liefern.

können Sie einen CImageList verwenden und SetImageList die Bilder zu setzen, aber dann müssen Sie
Bilder initialisieren es mit der disired Größe auch.