时 间:2009-04-06 08:47:17
作 者: ID:1294 城市:厦门
摘 要:窗体函数
正 文:
SetForegroundWindow
函数功能:该函数将创建指定窗口的线程设置到前台,并且激活该窗口。键盘输入转向该窗口,并为用户改各种可视的记号。系统给创建前台窗口的线程分配的权限稍高于其他线程。
函数原型:BOOL SetForegroundWindow(HWND hWnd)
参数:
hWnd:将被激活并被调入前台的窗口句柄。
返回值:如果窗口设入了前台,返回值为非零;如果窗口未被设入前台,返回值为零。
备注:前台窗口是z序顶部的窗口,是用户的工作窗口。在一个多任务优先抢占环境中,应让用户控制前台窗口。
Windows NT
5.0:当用户在另一个窗口中工作时,应用程序不能强行设置一个窗口到前台。相反,SetForeground函数将会激活窗口并且调用FlashWindowEx函数通知用户。
Windows CE:拥有窗口的线程不具有优先启动权。
速查:Windows NT;3.1以上版本;Windows;95以上版本;Windows
CE:1.0以上版本;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetPalrent
函数功能:该函数改变指定子窗口的父窗口。
函数原型:HWND SetPalrent(HWND hWndChild,HWND hWndNewParent);
参数:
hWndChild:子窗口句柄。
hWndNewParent:新的父窗口句柄。如果该参数是NULL,则桌面窗口就成为新的父窗口。在WindowsNT5.0中,如果参数为HWND_MESSAGE,则子窗口成为消息窗口。
返回值:如果函数成功,返回值为子窗口的原父窗口句柄;如果函数失败,返回值为NULL。若想获得多错误信息,请调用GetLastError函数。
备注:应用程序可以使用SetParent函数来设置弹出式窗口,层叠窗口或子窗口的父窗口。新的窗口与窗口必须属于同一应用程序。
如果参数hWndChild标识的窗口是可见的,系统将执行适当的重画和刷新动作。
由于兼容的原因,对于将改变父窗口的子窗口,SetParent函数并不改变该子窗口的WS_CHILO
WS_POPUP风格。所以,如果hWndNewParent参数为NULL,就应在调用SetParent函数之后清空WS_CHILD位并且设置为WS_POPUP风格。相反的,如果hWndNewParent参数不为NULL并且在此之前窗口是桌面窗口的子窗口,就应在调用SetParent函数之前清空WS_POPUP位井设置WS_CHILD风格。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetWindowLong
函数功能:该函数改变指定窗口的属性。函数也将在指定偏移地址的一个32位值存入窗口的额外窗口存。
函数原型:LONG SetWindowLong(HWN hWnd,int nlndex.LONG dwNewLong);
参数:
hWnd:窗口句柄,及间接声明的该窗口所属的类。
nlndex:给出了要设置的值的零起点的偏移地址。有效值为从0到额外窗口存储空间的字节数一4。例如
如果指定了12位或更多位字节的额外内存,则32位值的索引值应为第3个32位值的索引位8。设置其他值,要指定下列中的一个值:
GWL_EXSTYLE;设置一个新的扩展窗口风格。GWL_STYLE:设置一个新的窗口风格。
GWL_WNDPROC:为窗口过程设置一个新的地址。
GWL_HINSTANCE:设置一个新的应用程序事例句柄。GWL_ID:为窗口设置一个新的标识。
GWL_USERDATA:设置与窗口有关的32位值。每个窗口都有一个对应的32位值供创建该窗口的应用程序使用。
当hWnd参数标识了一个对话框是可使用下列值的:
DWL_DLGPROC:设置对话框过程的新地址。
DWL_MSGRESULT:设置在对话框过程中处理的消息返回值。
DWL_USER:设置新的额外信息,该信息仅为应用程序所有,例如句柄或指针。
dWNewLong:指定替换值。
返回值:如果函数成功,返回值为给定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
如果给定的32位值的原来的值是0,并且函数成功,则返回值为0。但是这时函数并不清除最后的错误信息,这就很难判断函数成功与否。这时,就应在调用SetWindowLong之前调用calingsetLastEm函数清除最后的错误信息。这样,如果函数失败就会返回0,并且GetLastError也返回一个非零值。
备注:如果由hWnd参数指定的窗口与调用线程不属于同一进程,将导致SetWindowLong函数失败。指定的窗日数据是在缓存中保存的,因此在调用SetWindowLong之后再调用SetWindowPos函数才O
SetWindowLong函数所作的改变生效。
如果使用带GWL_WNDPROC索引值的SetWindowLong函数替换窗口过程,则该窗日过程必须WindowProc回调函数说明部分指定的指导行一致。
如果使用带DWL_MSGRESULT索引值的SetWlndowLong函数来设置由一个对话框处理的消息的和值,应在此后立即返回TRUE。否则,如果又调用了其他函数而使对话框过程接收到一个窗口消息,返回值:如果函数成功,返回值为给定的32位整数的原来的值。如果函数失败,返回值为0。若想获得更多错误信息,请调用GetLastError函数。
如果给定的32位值的原来的值是0,并且函数成功,则返回值为0。但是这时函数并不清除最后的错误信息,这就很难判断函数成功与否。这时,就应在调用SetWindowLong之前调用calingsetLastEm函数清除最后的错误信息。这样,如果函数失败就会返回0,并且GetLastError也返回一个非零值。
备注:如果由hWnd参数指定的窗口与调用线程不属于同一进程,将导致SetWindowLong函数失败。
指定的窗口数据是在缓存中保存的,因此在调用SetWindowLong之后再调用SetWindowPos函数才O
SetWindowLong函数所作的改变生效。
如果使用带GWL_WNDPROC索引值的SetWindowLong函数替换窗口过程,则该窗日过程必须WindowProc回调函数说明部分指定的指导行一致。
如果使用带DWL_MSGRESULT索引值的SetWlndowLong函数来设置由一个对话框处理的消息的和值,应在此后立即返回TRUE。否则,如果又调用了其他函数而使对话框过程接收到一个窗口消息,套的窗口可能消息可能改写使用DWL_MSGRESULT设定的返回值。
可以使用带GWL_WNDPROC索引值的SetWindowLohg函数创建一个窗口类的子类,该窗口类是用于创建该窗口的类。一个应用程序可以一个系统类为子类,但是不能以一个其他进程产生的窗口类为于类。
SetWindowLong函数通过改变与一个特殊的窗口类相联系的窗口过程来创建窗口子类。从而使系统调用新的窗口过程而不是以前定义的窗口过程。应用程序必须通过调用CallWindowProc函数向前窗口传递未被新窗口处理的消息。允许应用程序创建一个窗口过程链。可以通过对RegisterClassEx函数中使用的WNDCLASSEX结构的chWndExtra单元指定一个非零值来保留额外窗口内存。
不能通过调用带GWL_HWNDPARENT索引值的SetWindowLong的函数来改变子窗口的父窗口。应使用SetParent函数。
WindowsCE:nlndex参数必须是4个字节的倍数;不支持Unaligned access。
不支持下列nlndex参数值:
GWL_HINSTANCE;GWL_HWNDPARENT;GWL_USERDATA
WindowsCE2.0版支持在索引参数中的DWL_DLGPROC值,但是WindowsCE1.0不支持。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows CE:1.0以上版本:库文件:user32.lib;
Unicode;在Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetwlndowPlacement
函数功能:该函数设置指定窗口的显示状态和恢复,最大化,最小化位置。
函及原型;BOOL SetwlndowPlacement(HWND hWnd,CONST WINDOWPLACEMENT★lpwndpl);
参数:
hWnd:窗口句柄。
lpwndpl:指向一个WINDOWPLACEMWNT结构的指针,该结构给出了新的显示状态和窗口位置。
在调用函数SetWindowPlacement之前,将WINDOWPLACEMWNT结构的长度单元置为sizeof(WINDOWPLACEMENT)。如果lpwndpl->length设置不正确,函数SetWindowPlacement将失败。
返回值:如果函数成功,返回值为非零。如果函数失败,返回值为零。若想获得更多错误信息,请调用callGetLastErro函数。
备注:如果在WIDNOWPLACEMENT中指定的信息使窗口完全显示在屏幕之外,系统自动调整坐标以使窗口可见,兼顾屏幕设置和多种监视器配置。
WINDOWPLACEMENT的长度成员信息设置为sizeof(WINDOWPLACEMENT),如果设置不正确,函数将返回FLASE。查看窗口位置坐标的信息,参看WINDOWPLACEMENT。
速查:Windows NT:3.1以上版本;Windows;95以上版本;Windows
CE:不支持;头文件;winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
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_DOTTOPMOST:将窗口置于所有非顶层窗口之上(即在所有顶层窗口之后)。如果窗口己经是非顶层窗口则该标志不起作用。
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函数。
备注:如果设置了SWP_SHOWWINDOW和SWP_HIDEWINDOW标志,则窗口不能被移动和改变大小。如果使用SetWindowLoog改变了窗口的某些数据,则必须调用函数SetWindowPos来作真正的改变。使用下列的组合标志:SWP_NOMOVEISWP_NOSIZEISWP_FRAMECHANGED。
有两种方法将窗口设为最顶层窗口:一种是将参数hWndlnsertAfter设置为HWND_TOPMOST并确保没有设置SWP_NOZORDER标志;另一种是设置窗口在Z序中的位置以使其在其他存在的窗口之上。当一个窗口被置为最顶层窗口时,属于它的所有窗口均为最顶层窗口,而它的所有者的z序并不改变。
如果HWND_TOPMOST和HWND_NOTOPMOST标志均未指定,即应用程序要求窗口在激活的同时改变其在Z序中的位置时,在参数hWndinsertAfter中指定的值只有在下列条件中才使用:
在hWndlnsertAfter参数中没有设定HWND_NOTOPMOST和HWND_TOPMOST标志。
由hWnd参数标识的窗口不是激活窗口。
如果未将一个非激活窗口设定到z序的顶端,应用程序不能激活该窗口。应用程序可以无任何限制地改变被激活窗口在Z序中的位置,或激活一个窗口并将其移到最高级窗口的顶部或非最高级窗口的顶部。
如果一个顶层窗口被重定位到z序的底部(HWND_BOTTOM)或在任何非最高序的窗口之后,该窗口就不再是最顶层窗口。当一个最顶层窗口被置为非最顶级,则它的所有者窗口和所属者窗口均为非最顶层窗口。
一个非最顶端窗口可以拥有一个最顶端窗口,但反之则不可以。任何属于顶层窗口的窗口(例如一个对话框)本身就被置为顶层窗口,以确保所有被属窗口都在它们的所有者之上。
如果应用程序不在前台,但应该位于前台,就应调用SetForegroundWindow函数来设置。
Windows
CE:如果这是一个可见的顶层窗口,并且未指定SWP_NOACTIVATE标志,则这个函数将激活窗口、如果这是当前的激活窗口,并且指定了SWP_NOACTIVATE或SWP_HIDEWINDOW标志,则激活另外一个可见的顶层窗口。
当在这个函数中的nFlags参数里指定了SWP_FRAMECHANGED标志时,WindowsCE重画窗口的整个非客户区,这可能会改变客户区的大小。这也是重新计算客户区的唯一途径,也是通过调用SetwindowLong函数改变窗口风格后通常使用的方法。
SetWindowPos将使WM_WINDOWPOSCHANGED消息向窗口发送,在这个消息中传递的标志与传递给函数的相同。这个函数不传递其他消息。
Windows CE 1.0不支持在hWndlnsertAber参数中的HWND_TOPMOST和HWND_NOTOPMOST常量。
Windows CE1.0不支持在fuFags参数中的SWP_DRAWFRAME和SWP_NOCOPYBITS标志。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本;头文件:winuser.h库文件:eser32lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
SetWindowText
函数功能:该函数改变指定窗口的标题栏的文本内容(如果窗口有标题栏)。如果指定窗口是一个控制,则改变控制的文本内容。然而,SetWindowText函数不改变其他应用程序中的控制的文本内容。
函数原型:BOOL SetWindowText(HWND hwnd,LPCTSTR lpStrjng);
参数:
hWnd:要改变文本内容的窗口或控制的句柄。
lpString:指向一个空结束的字符串的指针,该字符串将作为窗口或控制的新文本。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:如果目标窗口属于当前进程,SetWindowText函数会使WM_SETTEXT消息发送给指定的窗口或控制。然而,如果控制是以WS_CAPTION风格创建的列表框控制,SetWindowText函数将为控制设置文本,而不是为列表项设置文本。
SetWindowText函数不扩展tab字符(ASCII代码0×09),Tab字符以字符‘}’来显示。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:1.0以上版本;头文件;winuser.h;库文件:user32.lib;Unicode:Windows NT上实现为Unicode和ANSI两种版本。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
ShowOwnedPopups
函数功能:该函数显示或隐藏属于指定窗口的所有弹出式窗口。
函数原型:BOOL ShowOwnedPopups(HWND hWnd;BOOL fshow);
参数:
hWnd:拥有弹出式窗口的窗口句柄,这些弹出式窗口将被显示或隐藏。
fShow:指明弹出式窗口是被显示还是隐藏。如果该参数为TRUE,则所有隐藏的弹出式窗口均被显示;如果该参数为FALSE,则所有显示的弹出式窗口均被隐藏。
返回值:如果函数成功,返回值为非零;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:ShowOwnedPopups函数仅显示由以前调用ShowOwnedPopups隐藏的窗口。例如,如果弹出式窗口由调用ShowWinodw函数隐藏,则在随后调用ShowOwnedPopups(将fShow参数置为TRUE)并不能使窗口显示出来。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:Winuser.h;库文件:user32.Lib
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
ShowWindow
函数功能:该函数设置指定窗口的显示状态。
函数原型:BOOL ShowWindow(HWND hWnd,int nCmdShow);
参数:
hWnd:窗口句柄。
nCmdShow:指定窗口如何显示。如果发送应用程序的程序提供了STARTUPINFO结构,则应用程序第一次调用ShowWindow时该参数被忽略。否则,在第一次调用ShowWindow函数时,该值应为在函数WinMain中nCmdShow参数。在随后的调用中,该参数可以为下列值之一:
SW_FORCEMINIMIZE:在WindowNT5.0中最小化窗口,即使拥有窗口的线程被挂起也会最小化。在从其他线程最小化窗口时才使用这个参数。
SW_MIOE:隐藏窗口并激活其他窗口。
SW_MAXIMIZE:最大化指定的窗口。
SW_MINIMIZE:最小化指定的窗口并且激活在Z序中的下一个顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口最小化或最大化,则系统将窗口恢复到原来的尺寸和位置。在恢复最小化窗口时,应用程序应该指定这个标志。
SW_SHOW:在窗口原来的位置以原来的尺寸激活和显示窗口。
SW_SHOWDEFAULT:依据在STARTUPINFO结构中指定的SW_FLAG标志设定显示状态,STARTUPINFO
结构是由启动应用程序的程序传递给CreateProcess函数的。
SW_SHOWMAXIMIZED:激活窗口并将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其最小化。
SW_SHOWMINNOACTIVATE:窗口最小化,激活窗口仍然维持激活状态。
SW_SHOWNA:以窗口原来的状态显示窗口。激活窗口仍然维持激活状态。
SW_SHOWNOACTIVATE:以窗口最近一次的大小和状态显示窗口。激活窗口仍然维持激活状态。
SW_SHOWNOMAL:激活并显示一个窗口。如果窗口被最小化或最大化,系统将其恢复到原来的尺寸和大小。应用程序在第一次显示窗口的时候应该指定此标志。
返回值:如果窗口以前可见,则返回值为非零。如果窗口以前被隐藏,则返回值为零。
备注:应用程序第一次调用ShowWindow时,应该使用WinMain函数的nCmdshow参数作为它的nCmdShow参数。在随后调用ShowWindow函数时,必须使用列表中的一个给定值,而不是由WinMain函数的nCmdSHow参数指定的值。
正如在nCmdShow参数中声明的,如果调用应用程序的程序使用了在STARTUPINFO结构中指定的信息来显示窗口,则在第一次调用ShowWindow函数时nCmdShow参数就被忽略。在这种情况下,ShowWindow函数使用STARTUPINFO结构中的信息来显示窗口。在随后的调用中,应用程序必须调用ShowWindow
函数(将其中nCmdShow参数设为SW_SHOWDEFAULT)来使用由程序调用该应用程序时提供的启动信息。这个处理在下列情况下发生:
应用程序通过调用带WS_VISIBLE标志的函数来创建它们的主窗口函数;
应用程序通过调用清除了WS_VISIBLE标志的CteateWindow函数来创建主窗口函数,并且随后调用带SW_SHOW标志的ShowWindow函数来显示窗口;
Windows CE:nCmdShow参数不支持下列值:
SW_MAXIMINZE;SW_MINIMIZE;SW_RESTORE;SW_SHOWDEFAULT
SW_SHOWMAXIMIZED;SW_SHOWMINIMIZED;SW_SHOWMININOACTIVATE
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows
CE:1.0以上版本;头文件:winuw库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
ShowWindowAsync
函数功能:该函数设置由不同线程产生的窗口的显示状态。
函数原型:BOOL ShowWindowAsync(HWND hWnd,int nCmdshow);
参数:
hWnd:窗口句柄。
nCmdShow:指定窗口如何显示。查看允许值列表,请查阅ShowWlndow函数的说明部分。
返回值:如果函数原来可见,返回值为非零;如果函数原来被隐藏,返回值为零。
备注:这个函数向给定窗口的消息队列发送show-window事件。应用程序可以使用这个函数避免在等待一个挂起的应用程序完成处理show-window事件时也被挂起。
速查:Windows NT:4.0以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
TileWindows
函数功能:该函数并到显示指定父窗口的各指定子窗口。
函数原型;WORD WINAPI TileWindows(HWND hWndParent,UNIT wHow,CONST RECT
★IpRect,UNIT cKidS;ConHWND FAR ★lpKidS);参数:
hWndParent: 窗口句柄。如果该参数为NULL,则假定为桌面窗口。
wHow:指定不参加安排的窗口类型,及是水平并到显示还是或垂直并到显示。该参数可以为下列值之一,可以选择与MDITILE_SKIPDISABLED组合以防止停用的的MDI的子窗口被并到显示:
MDITILE_HORIZONAL:水平并到显示窗口。MDITILE_VERTICAL:垂直并到显示窗口。
IpRect:指向RECT结构的指针,该结构以客户坐标定义矩形区域,在这个区域内排列窗口。如果该参数为NULL,则使用父窗口的客户区。
cKids:指出在lpKidS参数中给出的数组的成员个数。如果lpKids为NULL则该参数被忽略。
lpKids:指向被排列的子窗口的句柄数组的指针。如果该参数为NULL,则指定窗口(或桌面窗口)的所有子窗口均被排列。
返回值:如果函数成功,返回值是被安排的窗口数目;如果函数失败,返回值为零。若想获得更多错误信息,请调用GetLastError函数。
备注:调用TileWindows函数使所有最大化的窗口恢复到原来的尺寸。
速查:Windows NT:4.o以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
WindowFromPoint
函数功能:该函数获得包含指定点的窗口的句柄。
函数原型:HWND WindowFromPoint(POINT Point);
参数:
Point:指定一个被检测的点的POINT结构。
返回值S:返回值为包含该点的窗口的句柄。如果包含指定点的窗口不存在,返回值为NULL。如果该点在静态文本控制之上,返回值是在该静态文本控制的下面的窗口。
备注:WindowFromPoint函数不获取隐藏或禁止的窗口句柄,即使点在该窗口内。应用程序应该使用ChildWindowFromPoint函数进行无限制查询。
速查:Windows NT:3.1以上版本:Windows:95以上版本;Windows
CE:1.0以上版本:头文件:Winuser.h;库文件:user32.lib。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
WinMain
函数功能:该函数被系统调用,作为一个32位应用程序的入口点。
函数原型:int WINAPI WinMain(HINSTANCEE hlnstance,HINSTANCE hPrelnstance,LPSTR
lpCmdLine,int nCmdShow);
参数;
hinstance:应用程序当前事例的句柄。
hPrelnstance:应用程序的前事例的句柄。对于一个32的位程序,该参数总为NULL。
如果需要检测另外一个事例是否已经存在,则使用CreateMutex函数创建一个独一无二的名字。即使互斥名已经存在,CreateMutex函数也是成功的,但是GetLastError函数将返回
ERROR_ALREADY_EXISTS,这就表明在应用程序中有另外一个事例存在,因为它首先创建了互斥名。
lpCmdLine:指向应用程序命令行的空字符串的指针,不包括函数名。获得整个命令行,参看GetCommandLine。
nCmdShow:指明窗口如何显示。该参数可以是下列值之一:
SW_HIOE:隐藏窗口并且激活另外一个窗口。
SW_MINIMIZE:最小化指定的窗口,并且激活在系统表中的顶层窗口。
SW_RESTORE:激活并显示窗口。如果窗口已经最小化或最大化,系统将以恢复到原来的尺寸和位置显示窗口(与SW_SHOWNORMAL相同)。
SW_SHOW:激活一个窗口并以原来的尺寸和位置显示窗口。
SW_SHOWMAXIMIZED:激活窗口并且将其最大化。
SW_SHOWMINIMIZED:激活窗口并将其目标化。
SW_SHOWMINNOACTIVE:将一个窗口显示为图标。激活窗口维持活动状态。
SW_SHOWNA:以窗口的当前状态显示窗口。激活窗口保持活动状态。
SW_SHOWNOACTIVATE:以窗口的最近一次的尺寸和位置显示窗口。激活窗口维持激活状态。
SW_SHOWNORMAL:激活并显示窗口。如果窗口最大化或最小化,系统将其恢复到原来的尺寸和位置(与SW_RESTORE相同)。
返回值:如果函数成功,当它接收到一个WM_QUIT消息时就中止,函数应该返回在该消息的wParam参数的退出值。如果函数在进入消息循环时退出,应该返回零。
备注:WinMain函数应初始化应用程序,显示主窗口,进入一个消息接收一发送循环,这个循环是应用程序执行的其余部分的顶级控制结构。当接收到一个WM_QUIT消息时,程序就中止。这时,WinMain函数应退出应用程序,并且返回传递给WM_QUIT消息的wParam参数的值。如果由于调用PostQuitMessage函数而接收到WM_QUIT消息,wParam的值是PostQuiMessage函数的nExitCode的值。请参看“创建一个窗口循环”。
ANSI应用程序可以使用WinMain函数的lpCmdLine参数进入命令行字符串(除了程序名之外)。WinMain不能返回Unicode字符串的原因是IpCmdLine使用的是LPSTR数据类型,而不是LPTSTR类型。GetCommandLine函数可以用于进入命令行的Unicode字符串,因为它使用的是LPTSTR类型。
Windows CE:Windows CE不支持下列 nCmdLine参数值:
SW_MINIMIZE;SW_RESTORE;SW_RESTORE;SW_SHOWMAXMIZED
SW_SHOWMINIMIZED;SW_SHOWMINNOACTIVE
速查:Windows NT:3.1以上版本;Windows:95以上版本:Windows
CE:1.0以上版本;头文件:Winbase.h库文件:用户自定义。
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
= = = = = = = = = = = = = = = = = = = = = = = =
AnyPopup
函数功能:该函数指出一个被属窗口,可见窗口,顶级弹出窗口,或层叠窗日是否在屏幕上存在。这个函数搜索整个屏幕,而不仅仅搜索应用程序的客户区。
函数原型:BOOL AnyPopup(VOID)
参数:无。
返回值:如果一个弹出式窗口存在,返回值为非零,即使该窗口被其他窗口完全覆盖。如果弹出式窗口不存在,返回值为零。
备注:函数不检测无所属关系的弹出式窗口,或无WS_VISIBLE设置位的窗口。
速查:Windows NT:3.1以上版本;Windows:95以上版本;Windows
CE:不支持;头文件:winuser.h;库文件:USer32.lib。
|
Access软件网QQ交流群 (群号:54525238)
Access源码网店