wxWidgets Titelleiste-Symbol
Ich die Standardeinstellung ändern möchten-Symbol, das zeigt in der oberen linken Ecke des Rahmens.
Ich habe versucht, viele Ansätze - xpm, ico, bmp,
mit SetIcon(wxIcon(wxT("icon.xpm")));
wie vorgeschlagen hier.
Ich habe versucht, verschiedene icon-Größen 16x16, 24x24 und 32x32.
Ich habe auch versucht, indem MYICON1 ICON "Logo.ico"
in der Ressource.rc-Datei #define MYICON1 101
in der Ressource.h-Datei und SetIcon(wxIcon(MYICON1));
auf die frame-Konstruktor..
btw, ich bin mit wxwidgets 2.8 auf visual studio 2010
EDIT:
Habe ich auch versucht, indem
MYICON1 ICON "Logo.ico"
in der Ressource.rc-Datei#define MYICON1 101
in der Ressource.h-Datei undSetIcon(wxIcon(MYICON1));
auf die frame-Konstruktor..
Mit diesem Ansatz bekomme ich eine Fehlermeldung in der wxIcon(int) - Konstruktor..
1>xsframe.cpp(17): error C2248: 'wxString::wxString' : cannot access private member declared in class 'wxString'
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wx/string.h(682) : siehe Deklaration von 'wxString::wxString'
1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wx/string.h(659) : siehe Deklaration von 'wxString'
PS, xsframe ist mein main frame. deren Symbol ich bin versucht zu ändern.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich zitiere, Vaclav Antwort von hier:
Meisten Menschen in der Regel verpassen. Hoffe, dass Dinge repariert.
SetIcon(wxICON(MYICON1));
in der Datei gdicmn.h ,Zeile 166
Sie schrieb: MYICON1 SYMBOL " - Logo.ico" in die Ressource.rc-Datei, und SetIcon(wxIcon(MYICON1)); die frame-Konstruktor
Ist der Ansatz, den ich verwenden.
Gibt es ein extra-Schritt, den Sie tun müssen. In der Ressource.h-Datei, die Sie brauchen, um zu definieren MYICON1 so Etwas wie dieses:
Haben Sie, um sicherzustellen, dass die icon-Datei enthält ALLE erforderlichen Beschlüsse - ich immer sicher, es hat 16by16, 32by32 UND 256by256 je mehr desto besser!
Ist es eine gute Idee, wenn das Programm-icon ist das ERSTE icon in der resource-Datei.
Ich empfehlen ein Upgrade auf wxWidgets v2.9.4 - viele Dinge beginnen zu arbeiten besser.
MYICON1
in der Ressource.h-Datei. Ich bekomme eine Fehlermeldung in der seticon Funktion, in der wxIcon () - Konstruktor..1>xsframe.cpp(17): error C2248: 'wxString::wxString' : cannot access private member declared in class 'wxString' 1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wx/string.h(682) : see declaration of 'wxString::wxString' 1> C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\include\wx/string.h(659) : see declaration of 'wxString'
SetIcon(wxIcon(MYICON1));
auch ich habe versucht mit logo.ico mit anderen Größen 16x16, 32x32 und 256x256. aber klar, das problem ist bei der wxIcon(int) - Konstruktor aufrufen. Ich habe in der header-Datei, undwxString(int);
im privaten Bereich. also wie kann man darauf zugreifen?Verwenden Sie die string name des symbols, nicht die numerische id. Schauen Sie sich alle wxWidgets-Beispiel für ein Beispiel.
SetIcon(wxIcon(wxT("icon.xpm")));
Recht? das habe ich versucht.. hat nichts geholfen... kein Fehler, aber das Symbol ist das gleiche Standard.. und ich weiß nicht, ob es nötig ist, aber ich habe auch wxInitializedAllImageHandlers() vor dem aufrufen von set-icon.. hat nicht geholfen.. hat es etwas zu tun, bei mir läuft es auf windows 8?SetIcon()
funktioniert unter Windows 8. OTOH " - Symbol.xpm" ist kein gültiges icon-name. Wenn Sie XPMs, müssen Sie den Namen des symbols selbst zu wxIcon ctor, z.B.icon_xpm
(schauen Sie in Ihremicon.xpm
Datei, um sicher zu sein). Aber für das Symbol der Anwendung, Sie werden fast immer mit einem.ico
denn es muss in Ihre Ressourcen im ICO-format ohnehin. In diesem Fall müssen Sie "SYMBOL foo foo.ico" in die.rc
Datei, und Sie sollten verwendenwxIcon("foo")
im code..rc
- Datei habe ichMYICON ICON "Logo2.ico"
und in meinem frame-KonstruktorSetIcon(wxIcon(_("MYICON1")));
jedoch die.exe
im release-Ordner, zeigt das Symbol(explorer-Datei-Symbol). und es bleibt es auch, wenn ich entfernen Sie die seticon(). es scheint nur die Anwesenheit des symbols in der.rc
- Datei legt das Programm-icon.. also was kann ich tun, um die Titelleiste-Symbol?IDI_ICON1 ICON "logo.ico"
in meinemresource.rc
Datei und#define IDI_ICON1 106
in meinemresource.h
- Datei. als Nächstes öffnete ich meine frame-Konstruktor Hinzugefügt#include "resource.h"
zu dieser Seite und späterSetIcon(wxIcon(_("IDI_ICON1")));
an den Konstruktor, direkt vorCentre();
wohin gehe ich falsch?resource.rc
- Datei. Und Hier dieresource.h
- Datei.sample.rc
- Datei enthalten, in wxWidgets und von allen die Proben für die einfachste Weg, es zu schaffen, ohne sich mit numerischen IDs an alle.#include "logo.xpm"
dannwxicon(logo_xpm)
), aber ico ist viel viel besser. (alpha-Kanal und alle)Einen quick-and-dirty, non-portable, nur-Windows-Lösung (hat bei mir in Windows 7, wxWidgets 3.0.4, vc110):
Könnte nützlich sein, wenn Sie einige andere tricks auf dem Fenster?