MFC-窗口-显示状态设置的三种方法

来源:互联网 发布:网络伤感情歌2016 编辑:程序博客网 时间:2024/06/04 19:10

窗口初始化状态设置
以下只示例了窗口最大化,其他窗口状态只替换相应参数即可,
窗口最大化/最小化/显示/隐藏等三种方法都可以实现,
第三种方法修改结构体内的参数可以指定窗口最大化最小化还原后显示的位置

MFC窗口最大化
方法1:
1.创建窗口,窗口类型中需要WS_MAXIMIZE
pC_Dlg = new CC_Dlg(); //给指针分配内存
pC_Dlg->Create(IDD_DIALOGC); //创建一个非模态对话框
2.在创建完窗口后调用ShowWindow,参数设置为:SW_SHOWMAXIMIZED
pC_Dlg->ShowWindow(SW_SHOWMAXIMIZED);//最大化显示
pC_Dlg->UpdateWindow();

方法2:
1.创建窗口,窗口类型中需要WS_MAXIMIZE
pC_Dlg = new CC_Dlg(); //给指针分配内存
pC_Dlg->Create(IDD_DIALOGC); //创建一个非模态对话框
2.在OnInitDialog()中调用 ShowWindow(SW_SHOWMAXIMIZED);
BOOL CC_Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
ShowWindow(SW_SHOWMAXIMIZED);
UpdateWindow();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

方法3:
1.创建窗口,窗口类型中需要WS_MAXIMIZE
pC_Dlg = new CC_Dlg(); //给指针分配内存
pC_Dlg->Create(IDD_DIALOGC); //创建一个非模态对话框
2.在OnInitDialog()中调用 SetWindowPlacement实现最大化;
BOOL CC_Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// TODO: 在此添加额外的初始化
WINDOWPLACEMENT wndpl;
GetWindowPlacement(&wndpl);
wndpl.showCmd = SW_SHOWMAXIMIZED;
SetWindowPlacement(&wndpl);
UpdateWindow();
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}

窗口状态参数
SW_HIDE 隐藏窗口并通过启动到另一个窗口。
SW_MINIMIZE 最小化指定的窗口和激活在系统的顶级窗口列表。
SW_RESTORE 激活并显示窗口。 如果窗口处于最小化或最大化,窗口还原为其原始大小和位置 (和 SW_SHOWNORMAL相同)。
SW_SHOW 激活窗口并显示在其当前大小和位置。
SW_SHOWMAXIMIZED 激活窗口并将其显示为最大化窗口的大小。
SW_SHOWMINIMIZED 激活窗口并将其显示为图标。
SW_SHOWMINNOACTIVE 显示窗口作为图标。 当前活动的窗口保持有效。
SW_SHOWNA 显示在其当前状态的窗口。 当前活动的窗口保持有效。
SW_SHOWNOACTIVATE 显示在其最近大小和位置的窗口。 当前活动的窗口保持有效。
SW_SHOWNORMAL 激活并显示窗口。 如果窗口处于最小化或最大化,窗口还原为其原始大小和位置 (和 SW_RESTORE相同)。

0 0
原创粉丝点击