//切换到别的窗口再返回后,出现全屏显示的问题,已解决。初始化中代码将窗口居中显示。
//实现方法:创建如下Dialog,继承它的Dialog都是非全屏窗口。
NonFSDialog.h
#pragma once
// CNonFSDialog dialog
class CNonFSDialog : public CDialog
{
DECLARE_DYNAMIC(CNonFSDialog)
public:
CNonFSDialog(UINT nIDTemplate,CWnd* pParent = NULL); // standard constructor
virtual ~CNonFSDialog();
// Dialog Data
enum { IDD = IDD_DIALOG_POPUP };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
DECLARE_MESSAGE_MAP()
public:
virtual BOOL OnInitDialog();
afx_msg void OnSettingChange(UINT uFlags, LPCTSTR lpszSection);
};
NonFSDialog.c
// NonFSDialog.cpp : implementation file
//
#include "stdafx.h"
#include "NonFSDialog.h"
// CNonFSDialog dialog
IMPLEMENT_DYNAMIC(CNonFSDialog, CDialog)
CNonFSDialog::CNonFSDialog(UINT nIDTemplate,CWnd* pParent /*=NULL*/)
: CDialog(/*CNonFSDialog::IDD*/nIDTemplate, pParent)
{
m_bFullScreen = FALSE; //文档中没有提到的
}
CNonFSDialog::~CNonFSDialog()
{
}
void CNonFSDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CNonFSDialog, CDialog)
ON_WM_SETTINGCHANGE()
END_MESSAGE_MAP()
// CNonFSDialog message handlers
BOOL CNonFSDialog::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
RECT Rect;
this->GetWindowRect(&Rect);
this->MoveWindow( (GetSystemMetrics(SM_CXSCREEN)-(Rect.right-Rect.left))/2,(GetSystemMetrics(SM_CYSCREEN)-(Rect.bottom-Rect.top))/2,Rect.right-Rect.left,Rect.bottom-Rect.top );
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CNonFSDialog::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
{
//zhaozm del for 切换到别的窗口再返回后,popup全屏显示的问题。
//CDialog::OnSettingChange(uFlags, lpszSection);
// TODO: Add your message handler code here
}