VS2013 的MFC 工程(工程名: MobileLink),想要修改窗体的类名时,发现不是像设置窗口名一样调用一个函数可以实现的。
实现的注意问题,请看注释。
(1) 修改窗体资源 RC 文件:
// // Dialog // IDD_MOBILELINK_DIALOG DIALOGEX 0, 0, 320, 200 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU EXSTYLE WS_EX_APPWINDOW CAPTION "MobileLink" <span style="color:#ff0000;">CLASS "MobileLinkClass" // 增加的内容 </span> FONT 9, "宋体", 0, 0, 0x1 BEGIN EDITTEXT IDC_EDTRECV,68,148,245,14,ES_AUTOHSCROLL | ES_READONLY EDITTEXT IDC_EDIT_SEND,7,121,242,14,ES_AUTOHSCROLL PUSHBUTTON "Send Data",IDC_BTN_SEND,263,120,50,14,WS_DISABLED LTEXT "Received Data:",IDC_STATIC,7,151,57,8 PUSHBUTTON "Server Enable",IDC_BTN_SERVER_ENABLE,7,94,89,14 LTEXT "IP:",IDC_STATIC,111,98,13,8 LTEXT "Port:",IDC_STATIC,235,98,21,8 EDITTEXT IDC_EDIT2,130,95,88,14,ES_AUTOHSCROLL | ES_READONLY EDITTEXT IDC_EDIT3,262,95,40,14,ES_AUTOHSCROLL
(2) 修改 MobileLink.cpp 文件
SetRegistryKey(_T("应用程序向导生成的本地应用程序")); /* * * * * * * * * 增加的内容 start * * * * * * * * * */ <span style="color:#ff0000;">WNDCLASS wc; //获取窗口类信息。MFC默认的所有对话框的窗口类名为 #32770 if(::GetClassInfo(AfxGetInstanceHandle(), _T("#32770"), &wc)) { // 改变窗口类名 wc.lpszClassName = _T("MobileLinkClass"); // 特别注意: 此处的名称必须与修改 RC 时指定的 CLASS 相同。否则,程序启动时报错。 // 注册新窗口类,使程序能使用它 AfxRegisterClass(&wc); } </span>/* * * * * * * * * 增加的内容 end * * * * * * * * * */ CMobileLinkDlg dlg; m_pMainWnd = &dlg; INT_PTR nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: 在此处放置处理何时用“确定”来关闭 // 对话框的代码 } else if (nResponse == IDCANCEL) { // TODO: 在此放置处理何时用“取消”来关闭 // 对话框的代码 }