SDI / MFC Anwendung (Icons)

paddy3k

Mitglied
Hi,

also ich bin bald am verzweifeln. Hab jetzt bestimmt schon 1 Stunde in der Suche verbracht und bin immer noch ned weiter. Es geht um folgendes.

Ich möchte das Symbol aus meiner SDI Anwendung was links oben in der Titelleiste
angezeigt wird entfernen und zudem das Icon was in der Taskleiste angezeigt wird ändern.

Es gibt genau eine Icon Datei in meinen Resourcen mit divesen Größen / Farbtiefen der
einzelnen Icons. Zu dem Titelleisten Icon -> das ist dort nicht drin, ich weiß auch nicht
woher er das nimmt oder wo es erstellt wird :/

und das Taskbar Icon, das dürfte 16x16px sein, da habe ich schon alle einzelnen Icons
aus der ico Datei verändert aber dennoch wird nur das dumme MFC Logo angezeigt.
Lediglich das Exe Icon ändert sich wenn ich das 48x48 Icon ändere :/

edit :

hm, habe die ico Datei im /res/ Ordner mal durch ne komplett andere mit nur einem Icon drin ausgetauscht. Das verwendet er jetzt als Exe Datei Icon... aber in der Taskbar
ist immer noch das MFC Icon und in der Titelleiste das komische Ding ist auch noch
da :/
 
Zuletzt bearbeitet:
Die Icons müssten alle vom Assistenten bei der MFC-Anwendung eingesetzt worden sein.
Eins für die Applikation selbst und eins für die Dokumentenfenster.

Es sollte doch reichen, diese zu editieren? (Wichtig ist, dass das ID-Define dieser Icons gleich bleibt). Wenn sich die ID geändert hat, für die Dokumentenfenster wird die ID beim Anlegen der CMultiDocTemplate in CDeineApp::InitInstance angegeben, das für das Hauptfenster sollte die ID IDR_MAINFRAME haben.

Bei einer SDI-Anwendung habe ich auch automatisch 2 Icons in den Ressourcen; da läuft das gleich ab. Hast du eventuell ein Icon zuviel rausgelöscht?
 
Also ich habe gerade mal ein neues SDI Projekt testweise angelegt und da befindet sich auch nur ein Element "IDR_MAINFRAME" unter Icon in den Resourcen (MFC Logo). Dieses scheint aber nur das Datei Icon zu sein. In der Titelleiste & Taskbar tut sich rein gar nix wenn ich das Icon ändere :/
 
ok das Titelleisten Icon hab ich wegbekommen, in dem ich folgenden Text in der PreCreateWindow der MainFrm.cpp eingefügt hab :


Code:
  cs.style = WS_OVERLAPPED | WS_CAPTION | FWS_ADDTOTITLE;


öh ok, jetzt sind aber auch meine Minimieren und Maximieren Schaltflächen weg, super.
Füge ich manuell WS_MAXIMIZEBOX und WS_MINIMIZEBOX hinzu fügt er sie nicht ein.
Nur wenn ich WS_SYSMENU benutze, dann ist aber auch das dumme Icon wieder da...
was ne Grütze dieser Mist >:-(
 
Zuletzt bearbeitet:
Das Problem mit dem Icons hab ich jetzt nach langer Internetrecherche lösen können ;)

in der MainFrame -> OnCreate() einfach folgendes rein :

Code:
  HICON hIcon = AfxGetApp()->LoadIcon(MAKEINTRESOURCEA(IDI_ICON1));
  AfxGetMainWnd()->SendMessage(WM_SETICON, TRUE, (LPARAM)hIcon);

damit setzt er das neue Icon in die Titelleiste & Taskbar :)
 
Hi,

hm, habe die ico Datei im /res/ Ordner mal durch ne komplett andere mit nur einem Icon drin ausgetauscht. Das verwendet er jetzt als Exe Datei Icon... aber in der Taskbar
ist immer noch das MFC Icon und in der Titelleiste das komische Ding ist auch noch
da :/

Das sind eigendlich 2 Icons. Eines ist 32x32 pix groß und das andere 16x16 glaub ich.
Was du geändert hast ist nur das 32x32.
Das 32x32 pix große ist für den Desktop und so und das kleine für die Taskleiste und den Windowsbalken.
Also das Icon in der Resource auf 16x16 umstellen und bearbeiten ,dann klapts.

Mfg Col.Blake
 
colblake hat gesagt.:
Was du geändert hast ist nur das 32x32.
Das 32x32 pix große ist für den Desktop und so und das kleine für die Taskleiste und den Windowsbalken.
Also das Icon in der Resource auf 16x16 umstellen und bearbeiten ,dann klapts.

Hi, nein bei mir eben nicht. Habe alle Größen geändert und es gab auch nur eine Ico Datei im Resourcen Ordner. Selbst wenn ich ein neues Projekt (SDI) erstelle befindet sich nur ein Icon im Res Ordner. Dort drin sind 9 Icons, habe ich alle schon bemalt, bringt leider rein gar nix, am Titelleisten & Taskleisten Icon ändert das nix. Irgendwas ist komisch an der Sache.

Na egal, trotzdem Danke für die Hilfe, mit den 2 Zeilen Code den ich oben gepostet hab
ist es ja zum Glück änderbar :)

Gruß
paddy
 
Zurück