更改MFC对话框默认的窗口类名

MFC窗口程序的默认类名是"#32770",而且MFC窗口程序不支持动态修改类名,也就是不能像窗口标题那样用this->SetWindowText(L"春哥纯爷们"); 来修改窗口类名。

在主程序窗口的属性中有"Class Name"属性,但是默认它是灰色的不可选状态,如图:

需要在资源视图窗口中在××××.rc(×是你的工程名),上右键,选择属性把Mfc Mode改成False,默认是True。
 

然后"Class Name"属性就可以编辑了。我们随便起一个名字比如至高神春哥,类名改为"ChunGe"。到这一步还没完,我们还需要在代码中注册新的窗口类名,在工程的构造函数也就是:

C×××Dlg::C×××Dlg(CWnd* pParent /*=NULL*/)

在构造函数内加入以下代码:

	WNDCLASS wc;
	// 获取窗口类信息。MFC默认的所有对话框的窗口类名为 #32770
	::GetClassInfo(AfxGetInstanceHandle(), _T("#32770"), &wc);
	// 改变窗口类名
	wc.lpszClassName = _T("ChunGe");
	// 注册新窗口类,使程序能使用它
	AfxRegisterClass(&wc);

编译后,用SPY++查看,就能看到修改后的窗口类名了。

参考文献:https://blog.csdn.net/qq_37032670/article/details/76977382

猜你喜欢

转载自blog.csdn.net/l198738655/article/details/84676962