WinAPI: SetWindowPos - 改变窗口的位置与状态

//声明:
SetWindowPos(
  hWnd: HWND;            {窗口句柄}
  hWndInsertAfter: HWND; {窗口的 Z 顺序}
  X, Y: Integer;         {位置}
  cx, cy: Integer;       {大小}
  uFlags: UINT           {选项}
): BOOL;

//hWndInsertAfter 参数可选值:
HWND_TOP       = 0;        {在前面}
HWND_BOTTOM    = 1;        {在后面}
HWND_TOPMOST   = HWND(-1); {在前面, 位于任何顶部窗口的前面}
HWND_NOTOPMOST = HWND(-2); {在前面, 位于其他顶部窗口的后面}

//uFlags 参数可选值:
SWP_NOSIZE         = 1;    {忽略 cx、cy, 保持大小}
SWP_NOMOVE         = 2;    {忽略 X、Y, 不改变位置}
SWP_NOZORDER       = 4;    {忽略 hWndInsertAfter, 保持 Z 顺序}
SWP_NOREDRAW       = 8;    {不重绘}
SWP_NOACTIVATE     = $10;  {不激活}
SWP_FRAMECHANGED   = $20;  {强制发送 WM_NCCALCSIZE 消息, 一般只是在改变大小时才发送此消息}
SWP_SHOWWINDOW     = $40;  {显示窗口}
SWP_HIDEWINDOW     = $80;  {隐藏窗口}
SWP_NOCOPYBITS     = $100; {丢弃客户区}
SWP_NOOWNERZORDER  = $200; {忽略 hWndInsertAfter, 不改变 Z 序列的所有者}
SWP_NOSENDCHANGING = $400; {不发出 WM_WINDOWPOSCHANGING 消息}
SWP_DRAWFRAME      = SWP_FRAMECHANGED; {画边框}
SWP_NOREPOSITION   = SWP_NOOWNERZORDER;{}
SWP_DEFERERASE     = $2000;            {防止产生 WM_SYNCPAINT 消息}
SWP_ASYNCWINDOWPOS = $4000;            {若调用进程不拥有窗口, 系统会向拥有窗口的线程发出需求}


//举例:
procedure TForm1.Button1Click(Sender: TObject);
begin
  SetWindowPos(Handle, HWND_TOPMOST, 0,0, 100,200, SWP_SHOWWINDOW);
end;
				
时间: 2024-07-30 06:00:24

WinAPI: SetWindowPos - 改变窗口的位置与状态的相关文章

win10用快捷键改变窗口位置的方法

win10用快捷键改变窗口位置的方法:按住键盘的win+向上组合键,可以把窗口放大. 02.我们可以看到窗口已经放大.如图所示: 03.按住键盘的win+向下组合键,可以把窗口放大.如图所示: 04.我们可以看到窗口已经缩小.如图所示: 05.按住键盘的win+向左组合键,可以把窗口放大.如图所示: 06.我们可以看到窗口放在左侧.如图所示: 07.按住键盘的win+向右组合键,可以把窗口放大.如图所示: 08.我们可以看到窗口放在右侧.

改变窗口中的光标形状

如何在注册表中查找默认浏览器信息? 如何改变窗口中的光标形状? 如何避免资源ID冲突? 如何在注册表中查找默认浏览器位置的定义?我需要知道EXE文件的路径和名称以便启动一个应用程序会话.我的目的很简单,就是打开默认的浏览器,这样用户能够象普通程序一样使用它,而不是在我设计的程序窗口内浏览因特网. Rolf Wenger 据我所知,在Window中没有专门指定默认浏览器的注册表键值或设定值.即使专家也很难弄清楚整个注册表,更何况常人.我知道可能存在这样一个键值, HKCU\System\Mumbl

javascript:window.open弹出窗口的位置问题

 这篇文章主要介绍了javascript:window.open弹出窗口的位置问题,需要的朋友可以参考下 window.open 弹出窗口的位置 问题.记录一下  代码如下: <SCRIPT LANGUAGE="javascript">  <!--  window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollba

关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教

问题描述 关于利用fgets()改变文件指针位置再利用fprintf()更新文件数据的一些小疑问求教 下面便是一个更新卡信息文件数据的函数updateCard int updateCard(const char* CardPath,const Card* pcard,int nIndex) {//更新卡信息文件中的数据,CardPath为文件路径,pcard为指向要更新的卡信息结点的指针,nIndex为卡信息在文件中的索引号(即在卡信息文件中的行数) FILE* fp = NULL; long

javascript:window.open弹出窗口的位置问题_javascript技巧

window.open 弹出窗口的位置 问题.记录一下 复制代码 代码如下: <SCRIPT LANGUAGE="javascript"> <!-- window.open ('page.html', 'newwindow', 'height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=n o, status=no') //这句要

panel-用API.SetWindowPos方法设置固定位置后,将第三方的应用程序嵌入到Panel控件中。

问题描述 用API.SetWindowPos方法设置固定位置后,将第三方的应用程序嵌入到Panel控件中. 在C# Winfrom项目中,有一个form窗体,一个panel控件. 通过Process.start方法打开第三方的应用程序,将第三方程序嵌入Panel控件中. 用API.SetWindowPos方法改变第三方的应用程序位置以及大小. 目前发现一个问题, 打开第三方的应用程序设置大小及位置,通过获取panel控件的位置可以显示嵌入到Panel控件中,代码如下: API.SetWindow

关于Form鼠标位置和状态捕捉

问题描述 想在form中捕捉鼠标的位置和状态.现在是这样做的:用了两个Button和两个Label来试验效果.在几个控件的MouseMove事件中读取鼠标的位置,然后显示在Label中.在几个控件的MouseDown事件中读取是左键还是右键按下.在几个控件的MouseUp事件中读取是左键还是右键松开.在几个控件的MouseEnter事件中将焦点设为自身.情况是这样的:鼠标的位置能捕捉到并显示出来.然后分别按下左右键能区分(左键按下.右键按下.左右按下.没有键按下)四中状态,显示出来.鼠标位置能区

在Canvas上根据变量改变Shape的位置

昨晚有朋友问: 引用 Hi,帮我讲解一下WPF怎样在Canvas或者Grid上根据变量改变 Shape的位置和形状吧- 没太理解问题在哪里,不过看样子是数据绑定方面不熟悉? 那 就写个用到Canvas和数据绑定的例子吧.在VS2008里新建一个WPF应用,然后把下面的Window1.xaml和 Window1.xaml.cs替换进去就行. 做出来的是像这样的一个界面(是很丑啦 T T) 把Window里 的根容器Grid分成上下两行:上半部分放置用于控制和显示坐标的控件:下半部分放置一个Canv

VC中自动改变控件位置和大小的对话框类

在用VC开发应用程序时,经常会要做一些可以改变大小的对话框,而这个时候就要求对话框上的控件会随着对话框大小的改变而改变自己的位置和大小.如果控件比较少,那可以在对话框的OnSize()事件里面添加代码,通过计算来调整各个控件的位置和大小:但是,如果对话框上的控件比较多的话,那这将是一件非常痛苦的事情!要是程序中又有很多可以改变大小的对话框,那一个一个的OnSize()写下来,那会使程序员崩溃的! 为了解决这个问题,我写了一个自动改变控件位置和大小的对话框类ClxDialog.从这个类继承的对话框