gpt4 book ai didi

c++ - 调试断言失败的 InsertItem 函数

转载 作者:行者123 更新时间:2023-11-28 07:47:03 24 4
gpt4 key购买 nike

目前正在用 MFC 编写一个基于对话框的应用程序,当按下主对话框上的按钮时创建一个子对话框。子对话框然后有 3 个编辑控件框和一个按钮。当按下按钮时,来自三个编辑控制框的信息被检索并存储为单独的 CString。这些 CString 被传递给位于 Main Dlg.cpp 中的函数。该函数获取这些字符串并将它们插入到列表控件中。该程序构建良好并运行直到按下添加按钮(在子对话框上)。不确定程序崩溃的原因我似乎有正确的参数?我也不确定这是否是在两个对话框之间传递此类数据的最佳方式。任何更好的想法也将受到赞赏。

弹出添加按钮功能

 void Popup::OnBnClickedPopadd()
{
CString str1, str2, str3;
CThermotronDlg dlg;
GetDlgItemText(ID_RampEdit,str1);
GetDlgItemText(ID_DwellEdit,str2);
GetDlgItemText(ID_TempEdit,str3);

dlg.ReciveAndDisplay(str1,str2,str3);
}

接收显示功能

 void CThermotronDlg::ReciveAndDisplay(CString str1, CString str2,CString str3){

LPCTSTR ramp(str1),dwell(str2),temp(str3);

MyListEx.InsertItem(1,ramp);
MyListEx.SetItemText(0,1,dwell);
MyListEx.SetItemText(0,2,temp);


}

最佳答案

无需在弹出对话框中初始化变量CThermotronDlg dlg;,您需要找到主对话框的地址并直接调用此对话框的ReceiveAndDisplay 方法。一种方法是访问 m_pMainWnd您的应用程序对象 (theApp) 的公共(public)变量。 OnBnClickedPopadd() 的正确代码是:

 void Popup::OnBnClickedPopadd()
{
CString str1, str2, str3;
CThermotronDlg *pDlg = (CThermotronDlg*)theApp.m_pMainWnd;
GetDlgItemText(ID_RampEdit,str1);
GetDlgItemText(ID_DwellEdit,str2);
GetDlgItemText(ID_TempEdit,str3);

pDlg->ReciveAndDisplay(str1,str2,str3);
}

关于c++ - 调试断言失败的 InsertItem 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14718019/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com