關(guān)于setwindowpos用法,setwindowpos這個(gè)問題很多朋友還不知道,今天小六來為大家解答以上的問題,現(xiàn)在讓我們一起來看看吧!
1、SetWindowPos函數(shù)詳解WinAPI: SetWindowPos - 改變窗口的位置與狀態(tài)SetWindowPos(hWnd: HWND; {窗口句柄}hWndInsertAfter: HWND; {窗口的 Z 順序}X, Y: Integer; {位置}cx, cy: Integer; {大小}uFlags: UINT {選項(xiàng)}): BOOL;//hWndInsertAfter 參數(shù)可選值:HWND_TOP = 0; {在前面}HWND_BOTTOM = 1; {在后面}HWND_TOPMOST = HWND(-1); {在前面, 位于任何頂部窗口的前面}HWND_NOTOPMOST = HWND(-2); {在前面, 位于其他頂部窗口的后面}//uFlags 參數(shù)可選值:SWP_NOSIZE = 1; {忽略 cx、cy, 保持大小}SWP_NOMOVE = 2; {忽略 X、Y, 不改變位置}SWP_NOZORDER = 4; {忽略 hWndInsertAfter, 保持 Z 順序}SWP_NOREDRAW = 8; {不重繪}SWP_NOACTIVATE = $10; {不激活}SWP_FRAMECHANGED = $20; {強(qiáng)制發(fā)送 WM_NCCALCSIZE 消息, 一般只是在改變大小時(shí)才發(fā)送此消息}SWP_SHOWWINDOW = $40; {顯示窗口}SWP_HIDEWINDOW = $80; {隱藏窗口}--------------------------------------------------------------------------------------SetWindowPos()函數(shù)功能:該函數(shù)改變一個(gè)子窗口,彈出式窗口式頂層窗口的尺寸,位置和Z序。
2、子窗口,彈出式窗口,及頂層窗口根據(jù)它們?cè)谄聊簧铣霈F(xiàn)的順序排序、頂層窗口設(shè)置的級(jí)別最高,并且被設(shè)置為Z序的第一個(gè)窗口。
3、函數(shù)原型:BOOL SetWindowPos(HWN hWnd,HWND hWndlnsertAfter,int X,int Y,int cx,int cy,UNIT.Flags);參數(shù):hWnd:窗口句柄。
4、hWndlnsertAfter:在z序中的位于被置位的窗口前的窗口句柄。
5、該參數(shù)必須為一個(gè)窗口句柄,或下列值之一:HWND_BOTTOM:將窗口置于Z序的底部。
6、如果參數(shù)hWnd標(biāo)識(shí)了一個(gè)頂層窗口,則窗口失去頂級(jí)位置,并且被置在其他窗口的底部。
7、HWND_DOTTOPMOST:將窗口置于所有非頂層窗口之上(即在所有頂層窗口之后)。
8、如果窗口已經(jīng)是非頂層窗口則該標(biāo)志不起作用。
9、HWND_TOP:將窗口置于Z序的頂部。
10、HWND_TOPMOST:將窗口置于所有非頂層窗口之上。
11、即使窗口未被激活窗口也將保持頂級(jí)位置。
12、查看該參數(shù)的使用方法,請(qǐng)看說明部分。
13、x:以客戶坐標(biāo)指定窗口新位置的左邊界。
14、Y:以客戶坐標(biāo)指定窗口新位置的頂邊界。
15、cx:以像素指定窗口的新的寬度。
16、cy:以像素指定窗口的新的高度。
17、uFlags:窗口尺寸和定位的標(biāo)志。
18、該參數(shù)可以是下列值的組合:SWP_ASNCWINDOWPOS:如果調(diào)用進(jìn)程不擁有窗口,系統(tǒng)會(huì)向擁有窗口的線程發(fā)出需求。
19、這就防止調(diào)用線程在其他線程處理需求的時(shí)候發(fā)生死鎖。
20、SWP_DEFERERASE:防止產(chǎn)生WM_SYNCPAINT消息。
21、SWP_DRAWFRAME:在窗口周圍畫一個(gè)邊框(定義在窗口類描述中)。
22、SWP_FRAMECHANGED:給窗口發(fā)送WM_NCCALCSIZE消息,即使窗口尺寸沒有改變也會(huì)發(fā)送該消息。
23、如果未指定這個(gè)標(biāo)志,只有在改變了窗口尺寸時(shí)才發(fā)送WM_NCCALCSIZE。
24、SWP_HIDEWINDOW;隱藏窗口。
25、SWP_NOACTIVATE:不激活窗口。
26、如果未設(shè)置標(biāo)志,則窗口被激活,并被設(shè)置到其他最高級(jí)窗口或非最高級(jí)組的頂部(根據(jù)參數(shù)hWndlnsertAfter設(shè)置)。
27、SWP_NOCOPYBITS:清除客戶區(qū)的所有內(nèi)容。
28、如果未設(shè)置該標(biāo)志,客戶區(qū)的有效內(nèi)容被保存并且在窗口尺寸更新和重定位后拷貝回客戶區(qū)。
29、SWP_NOMOVE:維持當(dāng)前位置(忽略X和Y參數(shù))。
30、SWP_NOOWNERZORDER:不改變z序中的所有者窗口的位置。
31、SWP_NOREDRAW: 不重畫改變的內(nèi)容。
32、如果設(shè)置了這個(gè)標(biāo)志,則不發(fā)生任何重畫動(dòng)作。
33、適用于客戶區(qū)和非客戶區(qū)(包括標(biāo)題欄和滾動(dòng)條)和任何由于窗回移動(dòng)而露出的父窗口的所有部分。
34、如果設(shè)置了這個(gè)標(biāo)志,應(yīng)用程序必須明確地使窗口無效并區(qū)重畫窗口的任何部分和父窗口需要重畫的部分。
35、SWP_NOREPOSITION;與SWP_NOOWNERZORDER標(biāo)志相同。
36、SWP_NOSENDCHANG。
本文分享完畢,希望對(duì)大家有所幫助。
標(biāo)簽:
免責(zé)聲明:本文由用戶上傳,如有侵權(quán)請(qǐng)聯(lián)系刪除!