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?