Ich habe ein CWnd-Fenster, das ich dynamisch erstellen, und es scheint, dass das Symbol für Titelleiste Bereich und Taskleiste zufällig oder etwas ausgewählt wird.Was passiert mit CWnd Symbol
das Symbol zu setzen, ich rufe:
// Set the icon for this dialog. The framework does this automatically when the application's main window is not a dialog
m_hIcon = AfxGetApp()->LoadIconW(IDI_ICON);
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
Wie in MFC-Proben, aber es scheint, dass das 32x32 icon immer gewählt und verkleinerter wird, obwohl es gibt auch andere, näher zur Verfügung Begegnungen. Das Symbol in der Titelleiste ist eigentlich nur 16x16, aber es wird von 32x32 Version erstellt.
Dies führt zu einem Durcheinander, wenn das 32x32-Symbol detaillierter als das 16x16-Symbol ist, da das herunterskalierte Symbol wie eine Unschärfe aussieht.
CFrameWnd Windows scheinen sich irgendwie anders zu benehmen, da sie eine engere Übereinstimmung zu wählen scheinen.
Kennt jemand eine Lösung zum Erzwingen kleiner Symbol in der Titelleiste, damit ich die größeren Symbole für W7-Taskleiste behalten konnte?
+1 Wenn Sie eher ein "Geben Sie mir den Codez" -Typ sind, lesen Sie [diesen Artikel] (http://www.borngeek.com/code/system-menu-icon-bug/). Obwohl ich anstelle von "16" vorschlage, empfehle ich 'GetSystemMetrics (SM_CXSMICON)', um die * korrekte * Größe zu bestimmen. –
Aber was ist mit diesen 256x256 PNG komprimierten Bildern oder 64x64 Icons, verwendet die 7 sie nicht in einigen anderen Fällen als in C (XY) ICON? Für exe scheint es das erste Symbol von Ressourcen, aber die Symbole werden an so vielen Orten verwendet, dass es scheint, 64x64 Symbol könnte irgendwo erscheinen (Alt Registerkarte, kleine/große Taskleiste, Infobereich), und wenn ich die laden werde CXICONxCYICON Symbol als das große Symbol und CXSMICONxCSMYICON als das kleine Symbol wird es in einigen anderen Fällen nicht brechen? – Coder
Es scheint auch, dass wenn das System C (XY) ICON als, sagen wir, 25x25, aber ich habe 16x16, 32x32, 64x64 und 256x256 Symbole, dann lädt das LoadImage das 64x64-Symbol? – Coder