MFC编程的问题
我在创建一个组合框以后,为组合框增加变量的时候,为什么在变量类型那儿只能选string型的而不能选int行的呢?可是我参考的例程上怎么可以呢?是不是哪儿我选错了还是怎么的...
我在创建一个组合框以后,为组合框增加变量的时候,为什么在变量类型那儿只能选string型的而不能选int行的呢?可是我参考的例程上怎么可以呢?
是不是哪儿我选错了还是怎么的? 展开
是不是哪儿我选错了还是怎么的? 展开
4个回答
展开全部
因为组合框是静态的。也就是说: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:专业不代表一切……
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:专业不代表一切……
展开全部
这样的问题都是不小心而造成的,建议再认真看一下。
祝你好运!
祝你好运!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以直接输入int的。
有什么不懂得可以问我,账号就是QQ,我是计算机专业的。
有什么不懂得可以问我,账号就是QQ,我是计算机专业的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能是你看错了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询