setwindows函数怎么使用?

zz1001 2009-12-06 03:06:38
在delphi中如何写呢?举个例子出来
...全文
411 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zz1001 2009-12-07
  • 打赏
  • 举报
回复
恩,不错的方法!
dinoalex 2009-12-07
  • 打赏
  • 举报
回复
很多人在用百度和谷歌.... 你也可以用吖....
yumenyoudian 2009-12-06
  • 打赏
  • 举报
回复
用这个函数吧
TForm.SetBounds(ALeft, ATop, AWidth, AHeight: Integer);
zz1001 2009-12-06
  • 打赏
  • 举报
回复
不对呀,是错的?我想让第2个窗体只显示图标,结果以下代码是错的?

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;

type
TForm1 = class(TForm)
procedure SetWindows(WindowCount,SubHeight,SubWidth:integer);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

uses Unit2;

{$R *.dfm}
ShowWindow(form2.Handle, SW_HIde);
end.


[Quote=引用 2 楼 gyk120 的回复:]
procedure  SetWindows(WindowCount,SubHeight,SubWidth:integer); 
[/Quote]
hjkto 2009-12-06
  • 打赏
  • 举报
回复
SetWindowPos  函数功能:该函数改变一个子窗口,弹出式窗口式顶层窗口的尺寸,位置和Z序。子窗口,弹出式窗口,及顶层窗口根据它们在屏幕上出现的顺序排序、顶层窗口设置的级别最高,并且被设置为Z序的第一个窗口。
  函数原型:BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Flags);
  参数:
  hWnd:窗口句柄。
  hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。该参数必须为一个窗口句柄,或下列值之一:
  HWND_BOTTOM:将窗口置于Z序的底部。如果参数hWnd标识了一个顶层窗口,则窗口失去顶级位置,并且被置在其他窗口的底部。
  HWND_NOTOPMOST:将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。如果窗口已经是非顶层窗口则该标志不起作用。
  HWND_TOP:将窗口置于Z序的顶部。
  HWND_TOPMOST:将窗口置于所有非顶层窗口之上。即使窗口未被激活窗口也将保持顶级位置。
  查看该参数的使用方法,请看说明部分。
  x:以客户坐标指定窗口新位置的左边界。
  Y:以客户坐标指定窗口新位置的顶边界。
  cx:以像素指定窗口的新的宽度。
  cy:以像素指定窗口的新的高度。
  uFlags:窗口尺寸和定位的标志。该参数可以是下列值的组合:
  SWP_ASNCWINDOWPOS:如果调用进程不拥有窗口,系统会向拥有窗口的线程发出需求。这就防止调用线程在其他线程处理需求的时候发生死锁。
  SWP_DEFERERASE:防止产生WM_SYNCPAINT消息。
  SWP_DRAWFRAME:在窗口周围画一个边框(定义在窗口类描述中)。
  SWP_FRAMECHANGED:给窗口发送WM_NCCALCSIZE消息,即使窗口尺寸没有改变也会发送该消息。如果未指定这个标志,只有在改变了窗口尺寸时才发送WM_NCCALCSIZE。
  SWP_HIDEWINDOW;隐藏窗口。
  SWP_NOACTIVATE:不激活窗口。如果未设置标志,则窗口被激活,并被设置到其他最高级窗口或非最高级组的顶部(根据参数hWndlnsertAfter设置)。
  SWP_NOCOPYBITS:清除客户区的所有内容。如果未设置该标志,客户区的有效内容被保存并且在窗口尺寸更新和重定位后拷贝回客户区。
  SWP_NOMOVE:维持当前位置(忽略X和Y参数)。
  SWP_NOOWNERZORDER:不改变z序中的所有者窗口的位置。
  SWP_NOREDRAW:不重画改变的内容。如果设置了这个标志,则不发生任何重画动作。适用于客户区和非客户区(包括标题栏和滚动条)和任何由于窗回移动而露出的父窗口的所有部分。如果设置了这个标志,应用程序必须明确地使窗口无效并区重画窗口的任何部分和父窗口需要重画的部分。
  SWP_NOREPOSITION;与SWP_NOOWNERZORDER标志相同。
  SWP_NOSENDCHANGING:防止窗口接收WM_WINDOWPOSCHANGING消息。
  SWP_NOSIZE:维持当前尺寸(忽略cx和Cy参数)。
  SWP_NOZORDER:维持当前Z序(忽略hWndlnsertAfter参数)。
  SWP_SHOWWINDOW:显示窗口。
  返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误消息,请调用GetLastError函数。

例子:让你的程序窗口永远在最前面
SetWindowPos(Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOACTIVATE);
skertone 2009-12-06
  • 打赏
  • 举报
回复
可能没错哦,是楼主打错了吧,

Delphi->Help->Windows SDK
hjkto 2009-12-06
  • 打赏
  • 举报
回复
居然看错啦
gyk120 2009-12-06
  • 打赏
  • 举报
回复
procedure SetWindows(WindowCount,SubHeight,SubWidth:integer);

1,184

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧