VC6.0 SetWindowPos()
1.此函数利用的坐标参数用的是Client坐标,对于子窗口用的是其父窗口的坐标系。然而对于用DoModal()弹出的窗口,万一在资源属性里未曾抉择Child属性的话,它的父窗口是DeskTop,而不是调用DoModal()的窗口;
2.SetWindowPos详解函数名:
SetWindowPos
头文件:
winuser.h
函数原型:
BOOLSetWindowPos
(
HWNDhWnd,//窗口句柄
HWNDhWndInsertAfter,//编排次序的句柄
intX,//程度坐标
intY,//垂直坐标
intcx,//宽
intcy,//高
UINTuFlags//窗口定位标识
);
解释:
这个函数能改换窗口的大小、位置和设置子窗口、弹出窗口或顶层窗口的编排次序。
归来值:
BOOL,万一归来值非零表示获胜,归来零表示失利。讹谬消息请比照GetLastError函数。
参数表:
参数种类及解释
hwndHWND,欲定位的窗口句柄
hWndInsertAfterHWND,置于hwnd前面的窗口句柄。这个参数定然是窗口的句柄或是下面的值之一: HWND_BOTTOM将窗口置于其它所有窗口的底端
HWND_NOTOPMOST将窗口置于其它所有窗口的顶部,并位于任何最顶部窗口的后面。万一这个窗口非顶部窗口,这个符号对该窗口并不发生波及
HWND_TOP将窗口置于它所有窗口的顶部
HWND_TOPMOST将窗口置于其它所有窗口的顶部,并位于任何最顶部窗口的前面。即便这个窗口不是行动窗口,也坚持最顶部事态
x:
int,指定窗口新的X坐标
Y:
int,指定窗口新的Y坐标
cx:
int,指定窗口新的宽度
cy:
int,指定窗口新的高度
wFlags:
UINT,指定窗口事态和位置的符号。这个参数利用下面值的组合:SWP_DRAWFRAME环抱窗口画一个框
SWP_FRAMECHANGED发送一条WM_NCCALCSIZE消息进去窗口www.emi7.com,即便窗口的大小未曾发生改换。万一不指定这个参数,消息WM_NCCALCSIZE只有在窗口大小发生改换时才发送
SWP_HIDEWINDOW隐藏窗口
SWP_NOACTIVATE不激活窗口
SWP_NOCOPYBITS屏障客户区域
SWP_NOMOVE坚持目前位置(X和Y参数将被疏忽)
SWP_NOOWNERZORDER不改换所有窗口的位置和编排次序
SWP_NOREDRAW窗口不积极重画
SWP_NOREPOSITION与SWP_NOOWNERZORDER符号雷同
SWP_NOSENDCHANGING遏止这个窗口接受WM_WINDOWPOSCHANGING消息
SWP_NOSIZE坚持目前大小(cx和cy会被疏忽)
SWP_NOZORDER坚持窗口在列表的目前位置(hWndInsertAfter将被疏忽)
SWP_SHOWWINDOW揭示窗口
备注:
万一设置了SWP_SHOWWINDOW或SWP_HIDEWINDOW符号,这个窗口不发生挪动或改换大小。窗口成为最顶级窗口后,它的所有子窗口也会进去最顶级。一旦将其设为非最顶级,则它的所有子窗口也会转为非最顶级。
相干函数:
MoveWindow,SetActiveWindow,SetForegroundWindow
例子:
//设置顶层窗口
SetWindowPos(Handle23.sidchina.com,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE||SWP_NOSIZE);
//废止顶层窗口
SetWindowPos(Handle,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE||SWP_NOSIZE);不幸的是,随着工夫的挪动,客户代码可能会改换归来的Dimension对象的值,这个时候,追寻讹谬的起源是件枯燥且费时的事情,尤其是在多线程环境中。