设为首页 加入收藏

TOP

15.13 判断窗口的最大化、最小化状态并进行控制
2013-10-07 00:34:30 来源: 作者: 【 】 浏览:68
Tags:15.13 判断 窗口 最大化 最小化 状态 进行 控制

15.13  判断窗口的最大化、最小化状态并进行控制

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

IsZoomed:判断窗口是否处于最大化状态。

IsIconic:判断窗口是否处于最小化状态。

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

BOOL CWnd::ShowWindow( int nCmdShow );

其中nCmdShow常用值有:

SW_HIDE:隐藏窗口。

SW_SHOW:激活并以当前的大小在当前位置显示窗口。

SW_SHOWMAXIMIZED:最大化窗口。

SW_SHOWMINIMIZED:最小化窗口。

SW_SHOWNORMAL:激活并显示窗口,如果窗口处于最大化或最小化的状态时,将其恢复到原始窗口状态。

下面的例子演示如何判断窗口的最大化、最小化状态并进行控制,该实例通过使用定时器,使得对话框不断地重复正常显示→最小化显示→最大化显示→正常显示这一过程。创建步骤如下:

(1)创建基于对话框的MFC应用程序。

(2)设置主对话框的风格为包含最大化、最小化按钮,如图15.14所示。

图15.14  设置主对话框风格

(3)在OnInitDialog函数中创建定时器,并使用向导添加WM_TIMER消息响应,代码省略。

(4)修改OnTimer函数,代码如下:

void CMFCDlg::OnTimer(UINT nIDEvent) 
{
// TODO: Add your message handler code here and/or call default
if(nIDEvent==0)
{
//如果窗口最大化则使其正常显示
if(this->IsZoomed())
{
this->ShowWindow(SW_SHOWNORMAL);

}
//如果窗口最小化则使其最大化显示
else if(this->IsIconic())
{
this->ShowWindow(SW_SHOWMAXIMIZED);
}
//如果窗口既不是最大化也不是最小化则使其最小化显示
else
{
this->ShowWindow(SW_SHOWMINIMIZED);
}
}
CDialog::OnTimer(nIDEvent);
}

【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇15.9 如何播放WAV文件 下一篇15.12 使用CToolTipCtrl类实现提..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: