控件变量能否做函数的参数?

elaine 2012-07-14 05:07:17
控件变量能否做函数的参数?
...全文
206 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
elaine 2012-07-16
  • 打赏
  • 举报
回复
我是这样写的:
void CVideoPage::InitValue(CString section,CComboBox combo)
{
int j=0;
CString str;
do
{
str.Format(L"value%d",j);
ConfigSet con(section,str);
str=con;
combo.InsertString(j,str);
j++;
}while(str!="");
}

但是他会报这样的错:d:\program files\microsoft visual studio 9.0\vc\atlmfc\include\afxwin.h(1936) : error C2248: “CObject::CObject”: 无法访问 private 成员(在“CObject”类中声明)

我把函数改成这样void CVideoPage::InitValueCombo(CString section)//,CComboBox combo)就可以了
elaine 2012-07-16
  • 打赏
  • 举报
回复
但是我做的时候,他会报错,难道是我写错了吗?能不能写个函数给我看看

elaine 2012-07-16
  • 打赏
  • 举报
回复
嗯,可以,谢谢各位!
baichi4141 2012-07-16
  • 打赏
  • 举报
回复
简单地说,函数传参是复制后传副本,控件变量将构造函数设为private就是为了禁止复制
将CComboBox combo换成CComboBox & combo吧
HandanXiaoliang 2012-07-16
  • 打赏
  • 举报
回复

void CVideoPage::InitValue(CString section,CComboBox* combo)
{
if(combo == NULL)
return;
int j=0;
CString str;
do
{
str.Format(L"value%d",j);
ConfigSet con(section,str);
str=con;
combo->InsertString(j,str);
j++;
}while(str!="");
}
HandanXiaoliang 2012-07-16
  • 打赏
  • 举报
回复
作为参数肯定是可以的,但是最好使引用或者指针类型的,要不然 只能获得控件参数属性,不能修改的
[Quote=引用 6 楼 的回复:]

我是这样写的:
void CVideoPage::InitValue(CString section,CComboBox combo)
{
int j=0;
CString str;
do
{
str.Format(L"value%d",j);
ConfigSet con(section,str);
str=con;
combo.InsertString(j,str);
j……
[/Quote]
qixing1115 2012-07-16
  • 打赏
  • 举报
回复
把它当作一个结构体吧,结构体当然可以作为参数
elaine 2012-07-16
  • 打赏
  • 举报
回复
怎么没有人进来啊????????
Gloveing 2012-07-14
  • 打赏
  • 举报
回复
q2920 2012-07-14
  • 打赏
  • 举报
回复
可以的亲 这是控件变量的一种使用方法嘛
pathuang68 2012-07-14
  • 打赏
  • 举报
回复
当然可以了。

64,282

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧