複製鏈接
請複製以下鏈接發送給好友

SetWindowExtEx

鎖定
SetWindowExtEx,Windows函數名稱。該函數的作用是以指定的值為設備環境設置窗口的水平的和垂直的範圍。
中文名
設置窗口範圍Windows函數
外文名
SetWindowExtEx
學科領域
Windows程序設計

SetWindowExtEx語法

BOOL SetWindowExtEx( __in HDC hdc, __in int nXExtent, __in int nYExtent, __out LPSIZE lpSize);

SetWindowExtEx參數

HDC
設備環境句柄。
nXExtent
以邏輯單位給出的窗口的水平範圍
nYExtent
以邏輯單位給出的窗口的垂直範圍
lpSize[輸出]
一個指向SIZE結構的指針,該結構保存了先前的窗口的範圍,如果lpSize為NULL,那麼不返回值

SetWindowExtEx返回值

如果函數調用成功,返回值為非零。
如果函數調用失敗,返回值為零。

SetWindowExtEx參考信息

如SetWindowExtEx(hDC,600,400,NULL); //設置窗口區域,邏輯座標 把窗口大小設置為寬(X座標方向)600 (Y座標方向)高400 是程序把圖像映像成實物時採用的座標 是邏輯上的
SetViewportExtEx(hDC,300,200,NULL); //設置視圖區域,物理座標 把輸出時(程序運行時)看到的界面區域的座標為寬(X座標方向)300 高(Y座標方向)200 是實實在在的300 和200
他們的聯繫是他們的座標原點都是程序運行時窗口的左上角 他們的區域大小也是相同的(重合的 就像兩張大小相同的畫布重疊在一起)只是各自的座標不同罷了 即一個點在兩個座標系中的x,y參數大小不同 但他們彼此之間的比列是相同的
而且還要注意SetViewportExtEx就相當於在程序的窗口上從左上角開始畫一個(我的例子是300 和200)區域 若不進行設定 則視口區域就等於應用程序窗口大小
用GetWindowExtEx與GetViewportExtEx看一下原值,全是1,感覺SetWindowExtEx與SetViewportExtEx只設定了窗口(邏輯座標)與視口(設備座標)的比值。如上,SetWindowExtEx(hDC,600,400,NULL);SetViewportExtEx(hDC,300,200,NULL);只是把兩個邏輯映射成為一個物理單位。窗口大小超過(600,400),且做圖也超過(600,400)時,依然能顯示。當窗口小於(600,400)且在窗口外與(600,400)之間做圖,依然不顯示。所以感覺SetWindowExtEx與SetViewportExtEx只設置了一個比較,而不是真正窗口與視口的大小。 望高手指正!
SetWindowExtEx(hDC,600,400,NULL);設置窗口區域 為 600*400個單位;
SetViewportExtEx(hDC,300,200,NULL); 設置視圖區域 為300*200個單位,視圖區域是窗口區域的一半,即在窗口中顯示的內容 是窗口原內容的一半,這樣就實現了原圖的放大,就像作圖工具中的放大小效果。窗口區域不變時,視圖區域越小,就能看到更詳細的圖像細節。