CenterWindow()的用法
生活随笔
收集整理的這篇文章主要介紹了
CenterWindow()的用法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
CenterWindow()的用法為:
void CenterWindow( CWnd* pAlternateOwner = NULL );
其中參數(shù)pAlternateOwner指向所想居中的窗口的指針。
然后利用函數(shù)GetSystemMetrics( int nIndex )得到系統(tǒng)當(dāng)前設(shè)置如屏幕分辨率等。
nIndexs= SM_CXSCREEN 時(shí)函數(shù)返回屏幕的寬度;返回值單位為像素點(diǎn)。
nIndexs= SM_CYSCREEN 時(shí)函數(shù)返回屏幕的高度;返回值單位為像素點(diǎn)。
函數(shù)BOOL GetWindowPlacement( WINDOWPLACEMENT* lpwndpl ) 是最重要的。他的參數(shù)為一個(gè)指向結(jié)構(gòu)變量WINDOWPLACEMENT的指針(lpwndpl);其中WINDOWPLACEMENT結(jié)構(gòu)變量數(shù)據(jù)結(jié)構(gòu)具體為:
typedef struct tagWINDOWPLACEMENT { /* wndpl */
UINT length;
UINT flags;
UINT showCmd;
POINT ptMinPosition;
POINT ptMaxPosition;
RECT rcNormalPosition;
} WINDOWPLACEMENT;
他包含了窗口在屏幕上的定位信息。其中成員變量的含義為:
length:指結(jié)構(gòu)變量的長(zhǎng)度,單位字節(jié)。
flags: 標(biāo)志值,控制窗口最小化或窗口還原的方法,可以取如下值:
WPF_SETMINPOSITION:指定窗口最小化時(shí)的x位置和y位置。
WPF_RESTORETOMAXIMIZED:指定窗口以最大化方式還原,盡管可能窗口并不是在最大化時(shí)最小化的。不改變窗口的缺省還原方式。
showCmd:指定窗口的當(dāng)前顯示狀態(tài)??梢匀≈?#xff1a;
SW_HIDE:隱藏窗口并激活另一窗口。
SW_MINIMIZE:最小化指定窗口并激活系統(tǒng)窗口列表中最頂層窗口。
SW_RESTORE:激活并顯示窗口,如果窗口處于最小化或最大化狀態(tài),則窗口還原到原始大小和位置。
SW_SHOW:以窗口的當(dāng)前大小和位置激活并顯示窗口。
SW_SHOWMAXIMIZED:以最大化方式激活并顯示窗口。
SW_SHOWMINIMIZED:以圖標(biāo)方式激活并顯示窗口。
SW_SHOWMINNOACTIVE:以圖標(biāo)方式窗口。 但不改變窗口的活動(dòng)狀態(tài)。
SW_SHOWNA:以窗口的當(dāng)前狀態(tài)顯示窗口。
SW_SHOWNOACTIVATE:以窗口最近一次的大小和位置顯示窗口。 但不改變窗口的活 動(dòng)狀態(tài)。
SW_SHOWNORMAL:激活并顯示窗口。如果窗口被最大化或最小化,則窗口還原到原始大小和位置。
ptMinPosition:指定窗口最小化時(shí)的左傷角坐標(biāo)。
ptMaxPosition:指定窗口最大化時(shí)的左傷角坐標(biāo)。
rcNormalPosition:指定窗口在還原時(shí)的坐標(biāo)。
通過靈活使用函數(shù)GetWindowPlacement()就可以得到窗口的配置信息。
看到這,可能有些讀者已經(jīng)想到了GetWindowPlacement()函數(shù)的姐妹函數(shù)SetWindowPlacement(),不用多說,其用法如下:
BOOL SetWindowPlacement( WINDOWPLACEMENT* lpwndpl );
顯然,通過函數(shù)SetWindowPlacement(),再加以簡(jiǎn)單的計(jì)算,我們就可以來設(shè)置窗口的位置、大小以及狀態(tài)等,從而可以自如地控制窗口顯示與否以及窗口的大小、位置等
void CenterWindow( CWnd* pAlternateOwner = NULL );
其中參數(shù)pAlternateOwner指向所想居中的窗口的指針。
然后利用函數(shù)GetSystemMetrics( int nIndex )得到系統(tǒng)當(dāng)前設(shè)置如屏幕分辨率等。
nIndexs= SM_CXSCREEN 時(shí)函數(shù)返回屏幕的寬度;返回值單位為像素點(diǎn)。
nIndexs= SM_CYSCREEN 時(shí)函數(shù)返回屏幕的高度;返回值單位為像素點(diǎn)。
函數(shù)BOOL GetWindowPlacement( WINDOWPLACEMENT* lpwndpl ) 是最重要的。他的參數(shù)為一個(gè)指向結(jié)構(gòu)變量WINDOWPLACEMENT的指針(lpwndpl);其中WINDOWPLACEMENT結(jié)構(gòu)變量數(shù)據(jù)結(jié)構(gòu)具體為:
typedef struct tagWINDOWPLACEMENT { /* wndpl */
UINT length;
UINT flags;
UINT showCmd;
POINT ptMinPosition;
POINT ptMaxPosition;
RECT rcNormalPosition;
} WINDOWPLACEMENT;
他包含了窗口在屏幕上的定位信息。其中成員變量的含義為:
length:指結(jié)構(gòu)變量的長(zhǎng)度,單位字節(jié)。
flags: 標(biāo)志值,控制窗口最小化或窗口還原的方法,可以取如下值:
WPF_SETMINPOSITION:指定窗口最小化時(shí)的x位置和y位置。
WPF_RESTORETOMAXIMIZED:指定窗口以最大化方式還原,盡管可能窗口并不是在最大化時(shí)最小化的。不改變窗口的缺省還原方式。
showCmd:指定窗口的當(dāng)前顯示狀態(tài)??梢匀≈?#xff1a;
SW_HIDE:隱藏窗口并激活另一窗口。
SW_MINIMIZE:最小化指定窗口并激活系統(tǒng)窗口列表中最頂層窗口。
SW_RESTORE:激活并顯示窗口,如果窗口處于最小化或最大化狀態(tài),則窗口還原到原始大小和位置。
SW_SHOW:以窗口的當(dāng)前大小和位置激活并顯示窗口。
SW_SHOWMAXIMIZED:以最大化方式激活并顯示窗口。
SW_SHOWMINIMIZED:以圖標(biāo)方式激活并顯示窗口。
SW_SHOWMINNOACTIVE:以圖標(biāo)方式窗口。 但不改變窗口的活動(dòng)狀態(tài)。
SW_SHOWNA:以窗口的當(dāng)前狀態(tài)顯示窗口。
SW_SHOWNOACTIVATE:以窗口最近一次的大小和位置顯示窗口。 但不改變窗口的活 動(dòng)狀態(tài)。
SW_SHOWNORMAL:激活并顯示窗口。如果窗口被最大化或最小化,則窗口還原到原始大小和位置。
ptMinPosition:指定窗口最小化時(shí)的左傷角坐標(biāo)。
ptMaxPosition:指定窗口最大化時(shí)的左傷角坐標(biāo)。
rcNormalPosition:指定窗口在還原時(shí)的坐標(biāo)。
通過靈活使用函數(shù)GetWindowPlacement()就可以得到窗口的配置信息。
看到這,可能有些讀者已經(jīng)想到了GetWindowPlacement()函數(shù)的姐妹函數(shù)SetWindowPlacement(),不用多說,其用法如下:
BOOL SetWindowPlacement( WINDOWPLACEMENT* lpwndpl );
顯然,通過函數(shù)SetWindowPlacement(),再加以簡(jiǎn)單的計(jì)算,我們就可以來設(shè)置窗口的位置、大小以及狀態(tài)等,從而可以自如地控制窗口顯示與否以及窗口的大小、位置等
轉(zhuǎn)載于:https://www.cnblogs.com/fwycmengsoft/archive/2013/04/08/3007401.html
總結(jié)
以上是生活随笔為你收集整理的CenterWindow()的用法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC学习资料 新增几个
- 下一篇: 线程同步之经典生产者-消费者模型