WinApi: GetParent、SetParent、MoveWindow - 获取、指定父窗口和移动窗口
2008-03-10 00:39
537 查看
提示: SetParent 应该 Windows.SetParent, 因为 TForm 的父类有同名方法.
//声明: {获取父窗口句柄} GetParent(hWnd: HWND): HWND; {指定父窗口} SetParent( hWndChild: HWND; {子句柄} hWndNewParent: HWND {父句柄} ): HWND; {成功返回原父窗口句柄; 失败返回 0} {移动窗口} MoveWindow( hWnd: HWND; {窗口句柄} X, Y: Integer; {位置} nWidth, nHeight: Integer; {大小} bRepaint: BOOL {True 表示刷新; False 表示不刷新} ): BOOL; //举例: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls; type TForm1 = class(TForm) Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin if GetParent(Edit1.Handle)=Handle then begin Windows.SetParent(Edit1.Handle, Button1.Handle); MoveWindow(Edit1.Handle, 0,0, Edit1.Width, Edit1.Height, True); end else begin Windows.SetParent(Edit1.Handle, Self.Handle); MoveWindow(Edit1.Handle, 0,0, Edit1.Width, Edit1.Height, True); end; end; end. //效果图:
相关文章推荐
- WinAPI: GetParent - 获取指定窗口的父窗口句柄
- WinAPI: GetClassName - 获取指定窗口的类名
- WinAPI: GetTopWindow - 获取指定窗口的子窗口中最顶层的窗口句柄
- WinAPI: GetClassName - 获取指定窗口的类名
- WinAPI: GetNextWindow - 获取指定窗口Z上或Z下的窗口的句柄
- WinAPI: GetWindowThreadProcessId - 获取指定窗口的进程 ID 或线程 ID
- WinAPI: GetClassName - 获取指定窗口的类名
- WinAPI: GetNextWindow - 获取指定窗口Z上或Z下的窗口的句柄
- WinAPI: WindowFromPoint- 获取指定点所在窗口的句柄
- WinAPI: GetWindow - 获取与指定窗口具有指定关系的窗口的句柄
- WinAPI: WindowFromPoint- 获取指定点所在窗口的句柄
- WinAPI: WindowFromPoint- 获取指定点所在窗口的句柄
- WinAPI: GetClassName - 获取指定窗口的类名
- WinAPI: GetWindow - 获取与指定窗口具有指定关系的窗口的句柄
- 使用MoveWindow()函数来移动指定句柄的窗口在屏幕中的显示位置及这个窗口的大小
- WinAPI: GetWindowText - 获取窗口标题
- 点击view上某个点,获取坐标让指定view移动过去
- 转:C# 获取指定目录下所有文件信息、移动目录、拷贝目录
- 动态获取指定窗口大小 获取鼠标所在窗口的位置,HWND
- 请问Winamp风格的一起移动窗口的实现,MoveWindow()/SetWindowPos()不完美