setPos 詳解


etWindowPos 詳解

 
函數名:

  SetWindowPos

頭文件:

  winuser.h

函數原型:

  BOOL SetWindowPos
  (
  HWND hWnd, //窗口句柄
  HWND hWndInsertAfter, //排列順序的句柄
  int X, //水平坐標
  int Y, //垂直坐標
  int cx, //寬
  int cy, //高
  UINT uFlags //窗口定位標識
  );

說明:

  這個函數能改變窗口的大小、位置和設置子窗口、彈出窗口或頂層窗口的排列順序。 
  返回值:

  BOOL,如果返回值非零表示成功,返回零表示失敗。錯誤信息請參看GetLastError函數。

參數表:

  參數 類型及說明 
  hwnd HWND,欲定位的窗口句柄 
  hWndInsertAfter HWND,置於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消息進入窗口,即使窗口的大小沒有發生改變。如果不指定這個參數,消息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( Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE||SWP_NOSIZE);

  //取消頂層窗口
  SetWindowPos( Handle, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE||SWP_NOSIZE);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM