MFC编程的问题

我在创建一个组合框以后,为组合框增加变量的时候,为什么在变量类型那儿只能选string型的而不能选int行的呢?可是我参考的例程上怎么可以呢?是不是哪儿我选错了还是怎么的... 我在创建一个组合框以后,为组合框增加变量的时候,为什么在变量类型那儿只能选string型的而不能选int行的呢?可是我参考的例程上怎么可以呢?
是不是哪儿我选错了还是怎么的?
展开
 我来答
烂笔小心
2010-10-28 · TA获得超过793个赞
知道小有建树答主
回答量:290
采纳率:0%
帮助的人:377万
展开全部
因为组合框是静态的。也就是说:StaticText和GroupBox自动生成的句柄都是IDC_STATIC。一般用来放在对话框做用户的静态文字或框体。
StaticText和GroupBox的区别就是后者比前者多了个框。
一个只做输出的文字控件没必要有int型。
针对你的问题:
第一,需要动态改变它们,首选把句柄修改掉,IDC_什么都行,不要默认的IDC_STATIC,因为这个句柄是留给不变的控件,不能添加变量,更不能动态修改。简单点的话就是:SetWindowText(_T("修改了"));或者添加CString变量m_mystr;然后m_mystr=_T("修改了");当然你要改数字的话,肯定行的。
第二,对于楼上的说的可以输入int的问题,我纠正一下。如果添加了变量后手动把它改成int型,后果就是CDialog::DoDataExchange(pDX);这里出错,MFC本身没有这个重载。如果你要返回int型,只能CString型转int。用 CString mystr=_T("123");
char mych[32];
WideCharToMultiByte(CP_ACP,0,str,-1,mych,32,NULL,NULL);
int myint=strtoul(pch,NULL,10);//16进制就参数3为16
对于一个静态控件,你硬要它返回int值,还不如利用让改变静态控件的输入传值,这样更简单,更直接!

PS:专业不代表一切……
严635241
2010-10-24 · TA获得超过110个赞
知道答主
回答量:324
采纳率:0%
帮助的人:74.5万
展开全部
这样的问题都是不小心而造成的,建议再认真看一下。
祝你好运!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
297095637
2010-10-24 · TA获得超过506个赞
知道小有建树答主
回答量:483
采纳率:0%
帮助的人:341万
展开全部
可以直接输入int的。

有什么不懂得可以问我,账号就是QQ,我是计算机专业的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
436009511
2010-10-24 · 超过15用户采纳过TA的回答
知道答主
回答量:49
采纳率:0%
帮助的人:0
展开全部
可能是你看错了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式