Einzelnen Beitrag anzeigen

Siegl

Registriert seit: 8. Apr 2010
18 Beiträge
 
#3

AW: Childfenster im Parentfenster an der rechten Seite ausrichten

  Alt 18. Mai 2014, 22:38
Frage: Ist die "Verankerung" Sache der Windows-API oder der Anwendung???


Hinweis zum Code:
ParentForm bzw. ParentWindow ist eine ControlBar einer fremden Windowsanwendung.
FormX ist hier eine ToolBar, welche am rechten Rand der ControlBar eingefügt/verankert werden soll.
UpdateWindowPos wird z.Z. durch eine allg. Updatemethode aufgerufen. Ich denke aber, WinProc wäre ggf. geeigneter.

Code:

FParentForm: HWnd;

TFormX.CreateParented(AParentForm);

...

constructor TFormX.CreateParented(ParentWindow: HWnd);
begin
  inherited CreateParented(ParentWindow);
  FParentForm := ParentWindow;
  SetWindowLong(ParentWindow,GWL_STYLE,GetWindowLong(ParentWindow,GWL_STYLE) or WS_CLIPCHILDREN or WS_CLIPSIBLINGS);
end;

...

procedure TFormX.UpdateWindowPos;
var R: TRect;
begin
  GetClientRect(FParentForm,R);
  SetWindowPos(Handle,HWND_TOP,R.Right - Width + 8,0,0,0,SWP_NOSIZE or SWP_NOACTIVATE);
end;
Siegl
  Mit Zitat antworten Zitat