Delphi-Quellcode:
//______________________________________________________________________________
Procedure TDieComboBox.SetListHandle(_hHandle: HWND);
Var
R:TRect;
iX:integer;
Begin
If _hHandle<>ListHandle
Then Begin
If _hHandle<>0
Then Begin
hListHandle:=_hHandle;
pDefListProc := Pointer(GetWindowLong(hListHandle, GWL_WNDPROC));
SetWindowLong(hListHandle, GWL_WNDPROC, Longint(pListInstance));
Case LBShowState Of
lbsFullSizeLeft,
lbsFullSizeRight,
lbsFullSizeCenter: Begin
GetWindowRect(ListHandle,R);
R.Right:=R.Left+CellSize*11+2;
R.Bottom:=R.Top+CellSize*10+2;
iX:=0;
Case LBShowState Of
lbsFullSizeRight: iX:=Width-(R.Right-R.Left);
lbsFullSizeCenter: iX:=(Width-(R.Right-R.Left)) DIV 2;
End;
MoveWindow (ListHandle,R.Left+iX,R.Top,R.Right - R.Left,
R.Bottom - R.Top,TRUE );
End;
End;
End Else Begin
SetWindowLong(hListHandle, GWL_WNDPROC, Longint(pDefListProc));
hListHandle:=0;
End;
End;
End;
Die beiden Befehle, die Du hier brauchst sind 'GetWindowRect', um die Abmessungen der Liste zu bekommen und 'MoveWindow', um die neue Größe zu setzen. Ich hab den Code aus Faulheit nur aus einem Projekt von mir rauskopiert, aber ich denke, der Sinn wird deutlich.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>