VC++中关于MSCOMM控件中SetSettings属性的设置问题
voidCSerialTPDlg::OnSelchangeComboNumb(){//TODO:Addyourcontrolnotificationhandlercode...
void CSerialTPDlg::OnSelchangeComboNumb()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int nlndex=m_comboNumb.GetCurSel ();
CString strltem;
m_comboNumb.GetLBText (nlndex,strltem);//通过下拉列表框改变的值,然后传出到strltem.
strltem.GetBuffer (5);//将CString类型转到适合SetSetting的参数类型LPCTSTR。
m_ctrlComm.SetSettings(",,atoi(strltem),");//通过调用将参数传递给串口设置。
strltem.ReleaseBuffer ();
UpdateData(false);
}
Debug到m_ctrlComm.SetSettings(",,atoi(strltem),");这里就有问题了。。
请问这里的调用是否不合法呀?应该怎么修改呢?
补充:
我想实现的是,通过改变下拉列表框的值改变SetSetting的【四个】参数。。。
小弟在此谢谢大家了! 展开
{
// TODO: Add your control notification handler code here
UpdateData(true);
int nlndex=m_comboNumb.GetCurSel ();
CString strltem;
m_comboNumb.GetLBText (nlndex,strltem);//通过下拉列表框改变的值,然后传出到strltem.
strltem.GetBuffer (5);//将CString类型转到适合SetSetting的参数类型LPCTSTR。
m_ctrlComm.SetSettings(",,atoi(strltem),");//通过调用将参数传递给串口设置。
strltem.ReleaseBuffer ();
UpdateData(false);
}
Debug到m_ctrlComm.SetSettings(",,atoi(strltem),");这里就有问题了。。
请问这里的调用是否不合法呀?应该怎么修改呢?
补充:
我想实现的是,通过改变下拉列表框的值改变SetSetting的【四个】参数。。。
小弟在此谢谢大家了! 展开
3个回答
展开全部
这种方法我是没试出来,不过可以用switch语句分别对每个选项产生事件来对SetSetting赋值。
选择设置“奇偶校验”列表框来说明方法吧:
void CSerialTPDlg::OnSelchangeComboNoe()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int nlndex=m_comboNoe.GetCurSel ();
switch(nlndex)
{
case 1: m_ctrlComm.SetSettings(",N,,");
break;
case 2: m_ctrlComm.SetSettings(",O,,");
break;
case 3: m_ctrlComm.SetSettings(",E,,");
break;
default:
break;
}
UpdateData(false);
}
选择设置“奇偶校验”列表框来说明方法吧:
void CSerialTPDlg::OnSelchangeComboNoe()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int nlndex=m_comboNoe.GetCurSel ();
switch(nlndex)
{
case 1: m_ctrlComm.SetSettings(",N,,");
break;
case 2: m_ctrlComm.SetSettings(",O,,");
break;
case 3: m_ctrlComm.SetSettings(",E,,");
break;
default:
break;
}
UpdateData(false);
}
展开全部
m_ctrlComm.SetSettings(",,atoi(strltem),");
不合法。你这样其实设置的是
",,atoi(strltem),"这个串。
建议你参数值最后统一设置,而不要分开设置。改为:
CString myset;
myset.Format("%d,%s,%d,%d",atoi(strSpeed),strFlag,atoi(strBit),atoi(strStop));
m_ctrlComm.SetSettings(myset);
strFlag是校验标志(E、N或O)
不合法。你这样其实设置的是
",,atoi(strltem),"这个串。
建议你参数值最后统一设置,而不要分开设置。改为:
CString myset;
myset.Format("%d,%s,%d,%d",atoi(strSpeed),strFlag,atoi(strBit),atoi(strStop));
m_ctrlComm.SetSettings(myset);
strFlag是校验标志(E、N或O)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
请问楼主你是怎么解决的,我现在也面临同样的问题,想在SetSetting()中用字符串,但也总是
invalid property value不知道怎么解决,希望楼主能够指点一下,先谢过了.............
invalid property value不知道怎么解决,希望楼主能够指点一下,先谢过了.............
追问
额,都是N年前的事了谁记得啊。另外,被选为正确答案那个号是我小号,问题是我自己解决的,答案应该也就是我小号回答的了,我不会那么无聊弄个错误答案上去的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询