- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在测试一个旧的 MFC
应用程序,当在 Debug模式下运行时,断言总是在尝试向组合框添加新元素时触发。
我不太了解 MFC
但我看到在添加元素之前,调用了 DoDataExchange
并且可能在这里初始化了组合框?
DDX_Control(pDX, IDC_BAUDRATE, m_comboBaudRate);
然后,在执行此操作时在 OnInitDialog 中:
m_comboBaudRate.AddString((CString)port[0]);
这个断言被触发:
_AFXWIN_INLINE int CComboBox::AddString(LPCTSTR lpszString)
{
ASSERT(::IsWindow(m_hWnd));
.........................
}
任何人都知道为什么会这样,我有什么解决方案来解决这个问题?
编辑:添加 OnInitDialog 代码:
CDialogMgr::OnInitDialog();
//set the window text from message table
SetWindowText(theApp.GetAtlasCaptionOrMsg(IDD_PCCONFIGURATION_CAPTION));
///Adding data from message table
m_btnOk.SetWindowText(theApp.GetAtlasCaptionOrMsg(IDD_BTN_OK));
m_btnHelp.SetWindowText(theApp.GetAtlasCaptionOrMsg(IDD_BTN_HELP));
m_btnCancel.SetWindowText(theApp.GetAtlasCaptionOrMsg(IDD_BTN_CANCEL));
m_staticDeviceId.SetWindowText(theApp.GetAtlasCaptionOrMsg(IDD_PCCONFIGURATION_DEVICEID));
m_staticComPort.SetWindowText(theApp.GetAtlasCaptionOrMsg(IDD_PCCONFIGURATION_COMPORT));
m_staticBaudRate.SetWindowText(theApp.GetAtlasCaptionOrMsg(IDD_PCCONFIGURATION_BAUDRATE));
//For com port
TCHAR PortName[MAX_PORT_NO+1][MAX_COMPORT_STR_LEN]={0};
int portCount=0;
int NoPort=searchComPort(PortName);
if(NoPort==0)
{
AfxMessageBox(theApp.GetAtlasCaptionOrMsg(IDD_MSG_COMPORTNOTFOUND));
EndDialog(IDCANCEL);
return FALSE;
}
else
{
//For adding the com port in the combo box
while(PortName[portCount][0]!=0)
{
m_comboComPort.AddString(PortName[portCount]);
portCount++;
}
}
//For Adding baud rate
int iBaudRateInd=0;
char BaudRate[80];
CComBSTR ccmbstrBaudRate[10];
theApp.GetProductObject()->getBaudRate(&ccmbstrBaudRate[0]);
wcstombs(BaudRate,ccmbstrBaudRate[0],80);
char port[5][6];
int j;
int i;
for( i=0;i<5;i++)
for(j=0;j<6;j++)
port[i][j]='\0';
i=0;
j=0;
while(BaudRate[i]!=',')
{
port[0][j]=BaudRate[i];
i++;
j++;
}
i++;
j=0;
iBaudRateInd++;
m_comboBaudRate.AddString((CString)port[0]);
while(BaudRate[i]!=',')
{
port[1][j]=BaudRate[i];
i++;
j++;
}
i++;
iBaudRateInd++;
m_comboBaudRate.AddString((CString)port[1]);
j=0;
while(BaudRate[i]!=',')
{
port[2][j]=BaudRate[i];
i++;
j++;
}
i++;
iBaudRateInd++;
m_comboBaudRate.AddString((CString)port[2]);
j=0;
while(BaudRate[i]!=',')
{
port[3][j]=BaudRate[i];
i++;
j++;
if(BaudRate[i]=='\0')
break;
}
iBaudRateInd++;
m_comboBaudRate.AddString((CString)port[3]);
if(BaudRate[i]!='\0')
{
i++;
j=0;
while(BaudRate[i]!=',')
{
port[4][j]=BaudRate[i];
i++;
j++;
if(BaudRate[i]=='\0')
break;
}
iBaudRateInd++;
m_comboBaudRate.AddString((CString)port[4]);
}
GetPrivateProfileString("RS232_2","BaudRate","9600",BaudRate,sizeof(BaudRate),CONFIG_GENERIC_INI);
char ComPort[10];
GetPrivateProfileString("RS232_2","COMPort","COM1",ComPort,sizeof(ComPort),CONFIG_GENERIC_INI);
int indexBaudRate=m_comboBaudRate.FindString(-1,(CString)BaudRate);
m_comboBaudRate.SetCurSel(indexBaudRate);
int indexComPort=m_comboComPort.FindString(-1,(CString)ComPort);
m_comboComPort.SetCurSel(indexComPort);
//Getting the default value
char DeviceID[10];
GetPrivateProfileString("Secs1_1","DeviceId","251",DeviceID,sizeof(DeviceID),CONFIG_GENERIC_INI);
GetPrivateProfileString("SecsII_1","DeviceId","251",DeviceID,sizeof(DeviceID),CONFIG_GENERIC_INI);
m_lDeviceId=atoi(DeviceID);
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
最佳答案
您不会在 OnInitDialog 中从父类调用 OnInitDialog。添加 CDialog::OnInitDialog() 作为 OnInitDialog 中的第一行。 (我假设您的对话框继承自 CDialog)。
关于c++ - 将新字符串添加到 MFC 组合框时触发断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21991662/
我创建了一个用户可以添加测试的字段。这一切运行顺利我只希望当用户点击(添加另一个测试)然后上一个(添加另一个测试)删除并且这个显示在新字段中。 所有运行良好的唯一问题是点击(添加另一个字段)之前添加另
String[] option = {"Adlawan", "Angeles", "Arreza", "Benenoso", "Bermas", "Brebant
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎不是关于 a specific programming problem, a softwar
我正在努力将 jQuery 滚动功能添加到 nav-tab (Bootstrap 3)。我希望用户能够选择他们想要的选项卡,并在选项卡内容中有一个可以平滑滚动到 anchor 的链接。这是我的代码,可
我正在尝试在用户登录后再添加 2 个 ui 选项卡。首先,我尝试做一个之后。 $('#slideshow').tabs('remove', '4'); $("#slideshow ul li:last
我有一个包含选择元素的表单,我想通过选择添加和删除其中一些元素。这是html代码(这里也有jsfiddle http://jsfiddle.net/txhajy2w/):
正在写这个: view.backgroundColor = UIColor.white.withAlphaComponent(0.9) 等同于: view.backgroundColor = UICo
好的,如果其中有任何信息,我想将这些列添加到一起。所以说我有 账户 1 2 3 . 有 4 个帐户空间,但只有 3 个帐户。我如何创建 java 脚本来添加它。 最佳答案 Live Example H
我想知道是否有一种有效的预制算法来确定一组数字的和/差是否可以等于不同的数字。示例: 5、8、10、2,使用 + 或 - 等于 9。5 - 8 = -3 + 10 = 7 + 2 = 9 如果有一个预
我似乎有一个卡住的 git repo。它卡在所有基本的添加、提交命令上,git push 返回所有内容为最新的。 从其他帖子我已经完成了 git gc 和 git fsck/ 我认为基本的调试步骤是
我的 Oracle SQL 查询如下- Q1- select hca.account_number, hca.attribute3, SUM(rcl.extended_amou
我正在阅读 http://developer.apple.com/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingG
我正在尝试添加一个“加载更多”按钮并限制下面的结果,这样投资组合页面中就不会同时加载 1000 个内容,如下所示:http://typesetdesign.com/portfolio/ 我对 PHP
我遇到这个问题,我添加了 8 个文本框,它工作正常,但是当我添加更多文本框(如 16 个文本框)时,它不会添加最后一个文本框。有人遇到过这个问题吗?提前致谢。 Live Link: JAVASCRIP
add/remove clone first row default not delete 添加/删除克隆第一行默认不删除&并获取正确的SrNo(例如:添加3行并在看到问题后删除SrNo.2)
我编码this ,但删除按钮不起作用。我在控制台中没有任何错误.. var counter = 0; var dataList = document.getElementById('materi
我有一个类似数组的对象: [1:数组[10]、2:数组[2]、3:数组[2]、4:数组[2]、5:数组[3]、6:数组[1]] 我正在尝试删除前两个元素,执行一些操作,然后将它们再次插入到同一位置。
使用的 Delphi 版本:2007 你好, 我有一个 Tecord 数组 TInfo = Record Name : String; Price : Integer; end; var Info
我使用了基本的 gridster 代码,然后我声明了通过按钮添加和删除小部件的函数它工作正常但是当我将调整大小功能添加到上面的代码中时,它都不起作用(我的意思是调整大小,添加和删除小部件) 我的js代
title 323 323 323 title 323 323 323 title 323 323 323 JS $(document).keydown(function(e){
我是一名优秀的程序员,十分优秀!