VC++MFC 窗口最大化、最小化的实现!

VC++MFC 窗口最大化、最小化的实现!
    当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。
    但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。
    在指定的消息处理函效中加入下列语句,则程序在收到该条消息后即执行窗口最小化。


WINDOWPLACEMENT lwndpl;
WINDOWPLACEMENT * lpwndpl;

lpwndpl = &lwndpl;
GetWindowPlacement(lpwndpl);
lpwndpl->showCmd = SW_SHOWMINIMIZED;
SetWindowPlacement(lpwndpl);

BOOL GetWindowPlacement(WINDOWPLACEMENT * lpwndpl) const
函数的作用为获取表示当前窗口的布局的结构WINDOWPLACEMENT的结构变量指针。


结构WINDOWPLACEMENT定义为:
typedef struct tagWINDOWPLACEMENT { /* wndpl * / UINT length;
 UINT flags;
 UINT showCmd;
 POINT ptMinPosition;
 POINT ptMaxPosition;
 RECT rcNormalPosition;
} WINDOWPLACEMENT;

 
其中的成员变量showCmd确定当前窗口的状态。其取值一般为:
SW_HIDE      隐藏窗口。
SW_MINIMIZE     最小化指定的窗口。
SW_RESTORE     将最大化或最小化的窗口恢复原来大小。
SW_SHOW      以原来的大小激话并显示窗口。
SW_SHOWMAXIMIZED    激活并最大化窗口。

函数BOOL SetWindowPlacement(const WINDOWPLACEMENT * lpwndpl)作用为按结构MENT的设置显示窗口。
 

MFC中的CWnd类提供了下面两个函数用于判断窗口的最大化、最小化状态,其子类继承了这些函数:
IsZoomed:判断窗口是否处于最大化状态。
IsIconic:判断窗口是否处于最小化状态。

可以使用CWnd::ShowWindow函数设置窗口的显示状态,其函数原型如下:

BOOL CWnd::ShowWindow( int nCmdShow );

其中nCmdShow常用值有:

SW_HIDE:     隐藏窗口
SW_SHOW:     激活并以当前的大小在当前位置显示窗口
SW_SHOWMAXIMIZED:    最大化窗口
SW_SHOWMINIMIZED:    最小化窗口
SW_SHOWNORMAL:     激活并显示窗口,如果窗口处于最大化或最小化的状态时,将其恢复到原始窗口状态

 

 

 

你可能感兴趣的:(框架,struct,mfc,vc++)