Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Comboliste klappt nicht auf

  Alt 17. Mai 2019, 17:27
Geht jetzt.. aber nicht mit dem CB_SHOWDROPDOWN denke das ist überflüssig.
Erste Problem war das die Weite der Combo 0 war wenn dem so ist wird die Liste nicht aufgeklappt warum auch immer

Delphi-Quellcode:
    HCombo := CreateWindowEx(0, 'COMBOBOX', PWideChar(ColorLabel), LStyle,
      Width - 24, 0, 0, 152, FHColorPicker, DlgItemID, SkinEngine.skInstance,
      nil);
zu
Delphi-Quellcode:
    HCombo := CreateWindowEx(0, 'COMBOBOX', PWideChar(ColorLabel), LStyle,
      Width - 24, 0, 1, 152, FHColorPicker, DlgItemID, SkinEngine.skInstance,
      nil);
Zweite Problem ich musste die alte Position der Combo wieder herstellen bevor sie erneut aufgeklappt wird.
Delphi-Quellcode:
procedure TSkinColorPicker.PutFocusOn(ObjectHandle: HWND);
begin

  PostMessage(ObjectHandle, WM_LBUTTONDOWN, 0, 0);
  PostMessage(ObjectHandle, WM_LBUTTONUP, 0, 0);
end;
Delphi-Quellcode:
WM_COMMAND:
  begin
    HCombo := SkinEngine.GetProperty(WinHandle, COLORPICK_COMBO);
    GetWindowRect(WinHandle, rc);
    SetWindowPos(HCombo, 0, rc.Left, 0, 1, 152, SWP_NOZORDER);
    SkinColorPicker.PutFocusOn(HCombo);
  end;
Ergebnis siehe shot!
Muss noch was an der Hintergrundfarbe machen sowie die Schrift der Combo mit der des Skins ersetzen verwende im Moment TextOut. Wird dann GDI+
Der ColorPicker ändert die Aero Farbe.

gruss

Geändert von EWeiss ( 9. Jul 2019 um 09:31 Uhr)
  Mit Zitat antworten Zitat