1. 程式人生 > >vc or ocx 改變窗體大小

vc or ocx 改變窗體大小

函式名:

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

相關推薦

vc or ocx 改變窗體大小

函式名:   SetWindowPos 標頭檔案:   winuser.h 函式原型:   BOOL SetWindowPos   (   HWND hWnd, //視窗控制代碼   HWND hWndInsertAfter, //排列順序的控制代碼   int X, //水平座標   int Y,

WPF 自定義窗體實現拖動邊框改變窗體大小(2種方法)

方式一:呼叫user32.dllAPI 這種方式在網上有很多,這裡只是按步驟重新建立一次。讀者只需要跟著做就行。 第一步:建立一個WPF專案:WpfResizeWithoutBorder,右鍵專案檔案---->新增----->資源字典,並命名為:WindowsResizeBord

禁止改變窗體大小

實現效果:    知識運用:   將窗體的FormBorderStyle屬性設定為FormBorderStyle.FixedDialog列舉值實現 實現程式碼:    private void button1_Click(object sender, EventArgs e)

vb.net禁止使用者改變窗體大小

這幾天正用到窗體大小的限制問題,解決了記錄下來,以備以後參考 Form.FormBorderStyle = Windows.Forms.FormBorderStyle.FixedSingle‘這個可以防止滑鼠更改窗體大小 Form.MaximizeBox = False

c#禁止通過拖動,雙擊標題欄改變窗體大小

最近寫windows窗體程式,發現一個煩人的問題。 窗體初始化時禁用了最大化按鈕,並使之最大化。本希望窗體一直保持最大化。但是拖動,雙擊標題欄時窗體就會縮小。煩死了+_+。 最後,終於找到了解決方法

winform 無邊框視窗 可改變窗體大小

最近專案需要做一個無邊框的懸浮窗,在網上搜索相關資料,大多都需要引入別的庫,或者語焉不詳或者程式碼不能執行。本文參考了以下文章實現改變窗體大小,原文程式碼直接使用會出現些狀況,比如說,往外拖動就再也不能往回拖動,等。因此使用本人修改過後的程式碼,記錄到部落格,方便日後查詢。

delphi實現窗體組建隨窗體大小改變改變

構造 解壓 Owner get sin flex set 點擊 file 在網上查了許多資料去論述如何在dephi中去實現組件隨窗口大小的變化而變化,然都不盡如人意。有人說用組件的align + anchors 這兩個屬性去控制,但是我用了之後,讓我大驚失色。把anchor

【PyQt5】(02)改變窗體的位置和大小

blank font .com python core www. geo target elf 特別說明 為了直接展示本篇的重點,往期內容將不再寫入代碼中,讀者可按需自行編碼組合 為了更好的展示效果,代碼段將以圖片的形式上傳,若想復制代碼可移步筆者的Github 為了便於

在MFC中怎麼樣讓控制元件的大小隨著主窗體大小改變改變

轉載:https://blog.csdn.net/business122/article/details/11611421 MFC 控制元件隨著視窗大小變化 VC++ 剛接觸MFC不久,對MFC的許多函式和功能還不是很瞭

VC中自動改變控制元件位置和大小的對話方塊類

lxDialog.h檔案: ///////////////////////////////////////////////////////////////////////////////////// // 自動改變控制元件位置和大小的對話方塊類 // 檔名:lxDialog.h //

rem自適應 窗體大小自動 rem設定 改變rem來完成等比例縮放

<body onresize="phoneResize()" onload="phoneResize()"> 當視窗大小發生改變時 </body> // 設

在.Net的WinForm開發中如何實現控制元件隨窗體大小改變而自動適應其改變

在設計可供使用者調整大小的窗體時,如何實現該窗體上的控制元件也應能正確地隨窗體的改變而自動調整大小並且能重新定位?此時就要藉助控制元件的.Anchor屬性。Anchor屬性定義控制元件的定位點位置。當控制元件錨定到某個窗體時,如果該窗體的大小被調整,那麼該控制元件維持它與定位

C#當窗體大小改變時,窗體中的控制元件大小也隨之改變

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.For

C#當窗體大小改變時,控制元件的位置和大小隨之改變

using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.For

C#中WinForm實現控制元件隨窗體大小自適應改變

.NET框架允許你對子控制元件設定屬性,命令在調整父窗體大小時,它們應該如何運作。用來命令控制元件在調整大小時動作的兩個屬性就是“Dock”和“Anchor”。 Dock和Anchor通過將控制元件連線到它們父窗體的某個位置,而免除了使應用程式具有不可預知介面的麻煩。最好的一點就是設立這些屬性不需要任何

[VB.NET]改變窗體的width或height屬性,程式執行後窗體大小卻不發生變化

<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script> 改變窗體的width或height屬性

MFC控制元件位置隨窗體大小改變

      因為在做上位機,需要MFC中的控制元件位置隨窗體大小而改變,以下是程式碼:     首先初始化CRect m_rect,該成員變數用來記錄窗體的當前大小。 void CTEST4View::OnSize(UINT nType, int cx, int cy)

c#如何保持控制元件位置與窗體同比例?C#實現窗體控制元件隨窗體大小改變(包括字型大小)

可以通過Dock屬性和Anchor屬性來控制 設定控制元件的 Anchor屬性 如果要隨著窗體變化而變化 則設定為Top, Bottom, Left, Right 當然也可以只設定期中幾個值 左邊的設定TOP,LEFT,中間設NONE,右邊的設right,bottom

Ext3.2.2 表格隨視窗改變動態適應窗體大小

首先是要有個表格物件var grid = new Ext.grid.GridPanel({ bodyStyle:'width:100%', store: store, columns: columns, stripeRows: true, au

【C#】窗體控制元件隨窗體大小改變(包括字型大小)

其實Anchor和Dock屬性也可以實現,但好象只對容器效果理想,而且字型大小也沒有變化.最近論壇上有好多這樣的貼子,具體實現程式碼如下: private void setTag(Control cons) { f