MFC對話方塊置頂 SetWindowPos()的用法(三)

來源:互聯網
上載者:User
當你建立了一個基本對話方塊應用程式時,設定對話方塊置頂,可以在初始化對話方塊函數或者在訊息響應函數裡添加以下語句設定置頂:
SetWindowPos(&wndTopMost,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);取消置頂:SetWindowPos(&wndNoTopMost,0,0,0,0, SWP_NOMOVE | SWP_NOSIZE);不需做任何修改即可完成。當建立的是單文檔應用程式時,要在前面多一個視窗控制代碼函數。下面是更詳細的說明:函數名:  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 將視窗置於其它所有視窗的頂部,並位於任何最頂部視窗的前面。即使這個視窗不是使用中視窗,也維持最頂部狀態 

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 顯示視窗 

相關函數:

  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);

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.