VS2010 MFC一个界面A切换出新的界面B的同时,依据A中的变量提示,修改B界面中控件的caption参数时出错:

//为了方便说明问题,我截取了出问题的部分程序如下:出问题处有注释voidC视觉传感器控制台10Dlg::OnBnClickedSwitchbtn(){//TODO:在此... //为了方便说明问题,我截取了出问题的部分程序如下:出问题处有注释void C视觉传感器控制台10Dlg::OnBnClickedSwitchbtn(){ // TODO: 在此添加控件通知处理程序代码 CString strCaption; GetDlgItem(ModelSwitchBtn)->GetWindowText(strCaption); // OnCancel();//关闭原来的窗口 RunInterface RGBDlg; YesOrNoRunInterface YesOrNoDlg; if(strCaption == "RGB参数"||strCaption == "RGB Arguments") //RGB参数检测界面设置 { ShowWindow(SW_HIDE); //隐藏当前窗口。 RGBDlg.DoModal(); //显示另外一个窗口。 //RGBDlg.ChangeLanguage(); //法1:自己在新调出窗口的类中添加专门的修改窗口当中控件caption的函数,,,编译能通过,运行时也同样出错!!!!!!!!!!! /***********************法2:在这个触发另外一个窗口的函数中直接修改控件caption,也不行!!!!!!!!!!*****/ if(language == chinese) { RGBDlg.GetDlgItem(PercentOfPass)->SetWindowText(_T("合格率")); RGBDlg.GetDlgItem(Pass)->SetWindowText(_T("检测数")); RGBDlg.GetDlgItem(RGBValue)->SetWindowText(_T("RGB值")); RGBDlg.GetDlgItem(Score)->SetWindowText(_T("评分")); RGBDlg.GetDlgItem(RespondTime)->SetWindowText(_T("响应时间")); RGBDlg.GetDlgItem(SwitchBtnSet)->SetWindowText(_T("设置")); } else if(language == english) { RGBDlg.GetDlgItem(PercentOfPass)->SetWindowText(_T("Percent Of Pass")); RGBDlg.GetDlgItem(Pass)->SetWindowText(_T("Test Amount")); RGBDlg.GetDlgItem(RGBValue)->SetWindowText(_T("RGB Value")); RGBDlg.GetDlgItem(Score)->SetWindowText(_T("Score")); RGBDlg.GetDlgItem(RespondTime)->SetWindowText(_T("Respond Time")); RGBDlg.GetDlgItem(SwitchBtnSet)->SetWindowText(_T("Set")); } else { MessageBox(L"IDD_DIALOG1 LanguageSet error",L"error",MB_OKCANCEL); //错误提示框 } /*************************************************************************************/ }}
我要是把修改caption参数的部分注释掉,都能正常运行的,问题就处在修改caption参数的地方,应该是方式不对
展开
 我来答
百度网友2018359
2016-11-18 · TA获得超过3494个赞
知道大有可为答主
回答量:3486
采纳率:73%
帮助的人:1396万
展开全部
//不要用模态Dialog
CRGBDlg *rgb_dlg=new CRGBDlg();
rgb_dlg->Create(IDD_RGBDlG,NULL);
rgb_dlg->ShowWindow(SW_SHOWNORMAL);
rgb_dlg->SetWindowText("......."); //你要修改caption的代码
//试试
//另外你用的VS什么版本的啊? 竟然不用加_T("*****"),或SetWindowTextW( )
追问

为什么RGBDlg前边要加个C啊,我的有C出错,还有后边的new CRGBDlg();也有问题:

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式