改动Dialog窗口的类名



VS2013 的MFC project(project名: 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: 在此放置处理何时用“取消”来关闭  
    //  对话框的代码  
}  


posted @ 2017-04-30 13:45  yfceshi  阅读(406)  评论(0编辑  收藏  举报