Einzelnen Beitrag anzeigen

Benutzerbild von Daniel Schuhmann
Daniel Schuhmann

Registriert seit: 16. Jul 2005
Ort: München
391 Beiträge
 
Turbo Delphi für Win32
 
#1

[NonVCL] Großes statt kleinem Programmicon in Titelleiste

  Alt 17. Sep 2006, 00:48
Servus!

Ich habe mal wieder ein kleines Problemchen

Wenn man ein NonVCL-Programm anhand der Dialogvorlage aus dem bekannten Tutorial beginnt, sieht das Laden des Anwendungsicons meist so aus:

Delphi-Quellcode:
  WM_INITDIALOG:
  begin
    SendMessage(hDlg, WM_SETICON, ICON_BIG,
      Integer(LoadIcon(hInstance, MAKEINTRESOURCE(100))));
    SendMessage(hDlg, WM_SETICON, ICON_SMALL,
      Integer(LoadIcon(hInstance, MAKEINTRESOURCE(100))));
    // [...]
  end;
Das PSDK sagt über WM_SETICON folgendes aus:
Zitat:
WM_SETICON Message

An application sends the WM_SETICON message to associate a new large or small icon with a window. The system displays the large icon in the ALT+TAB dialog box, and the small icon in the window caption.
So weit so gut. Das Problem ist nun, dass in der Titelleiste des Programms das große (32x32) Icon angezeigt wird. Besonders bei Icons mit wenigen Farben führt das dazu, dass es so zusammengestaucht wird, dass man kaum etwas vom Icon erkennen kann.
Bei VCL-Programmen funktioniert es jedoch so wie gewünscht, also muss der Fehler in der Programmierung und nicht im PSDK liegen.
Zur Verdeutlichung des Problems hab ich einen kleinen Screenshot hochgeladen. Im Explorer wird das richtige Icon (16x16) genommen, in der Titelleiste ist stattdessen die gestauchte 32x32-Version.

Vielleicht hat jemand eine Idee?
Miniaturansicht angehängter Grafiken
screenshot_782.gif  
Daniel Schuhmann
  Mit Zitat antworten Zitat