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的【四个】参数。。。
小弟在此谢谢大家了!
展开
 我来答
see_ake
推荐于2016-10-20
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
这种方法我是没试出来,不过可以用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);
}
bbc032
2010-06-03 · TA获得超过112个赞
知道小有建树答主
回答量:166
采纳率:0%
帮助的人:161万
展开全部
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)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
piyanhongle
2012-04-24
知道答主
回答量:1
采纳率:0%
帮助的人:1632
展开全部
请问楼主你是怎么解决的,我现在也面临同样的问题,想在SetSetting()中用字符串,但也总是
invalid property value不知道怎么解决,希望楼主能够指点一下,先谢过了.............
追问
额,都是N年前的事了谁记得啊。另外,被选为正确答案那个号是我小号,问题是我自己解决的,答案应该也就是我小号回答的了,我不会那么无聊弄个错误答案上去的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式