MFC CDialogEx.DoModal 弹出Dialog显示图标

今天做MFC时,A画面弹出B画面,B画面的图标不显示。A画面是显示的。

但是B画面的图标就是不显示。查找了原因,终于明白了,记录一下。

原因一:Dialog的Border设置不正确,应该设置为Resizing。

原因二:没有添加设置的代码:

A画面是新建工程自动生成的代码,自动的添加了“OnInitDialog”方法,和“m_hIcon”变量。

而我们新建一个Dialog时,是不会,自动生成的。

所以只需要下面三步:

1)在Dialog.h文件添加m_hIcon变量

protected:
	HICON m_hIcon;


 

2)在Dialog.cpp文件构造方法里对m_hIcon变量进行赋值。

FaceImg::FaceImg(CWnd* pParent /*=NULL*/)
	: CDialogEx(FaceImg::IDD, pParent)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}


2)在Dialog.cpp文件里添加OnInitDialog方法设置显示图标

 

BOOL FaceImg::OnInitDialog()
{
	CDialogEx::OnInitDialog();

	// TODO:  Add extra initialization here
	// このダイアログのアイコンを設定します。アプリケーションのメイン ウィンドウがダイアログでない場合、
	//  Framework は、この設定を自動的に行います。
	SetIcon(m_hIcon, TRUE);			// 大きいアイコンの設定
	SetIcon(m_hIcon, FALSE);		// 小さいアイコンの設定

	return TRUE;  // return TRUE unless you set the focus to a control
	// EXCEPTION: OCX Property Pages should return FALSE
}


 

你可能感兴趣的:(MFC,vs2010)