高分求教:很专业的问题,小弟谢谢了

bdtian 2003-08-23 04:07:15
定义对话框 A,B,C
其中C是B的子对话框,B是A的子对话框,请问如何在对话框A中,修改C中的控件属性(比如说表格控件的行数)
...全文
34 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
tonybaobao 2003-08-26
  • 打赏
  • 举报
回复
不是什么大程序的话,用全局变量算了,方便!虽然不够面对对象。
awant2k 2003-08-26
  • 打赏
  • 举报
回复
通常2种方式
1) 分别在B和C中定义函数funcB和funcC,A调用B的函数funcB, funB负责调用funcC(funcB和funcC可以同名)

2) 在B和C中用自定义消息, 传递方式类似上面的函数传递

这2中方式可以结合使用, 不推荐用全局变量方式
Akagg 2003-08-26
  • 打赏
  • 举报
回复
和是不是子对话框没关系,
在A中定义一个C的类变量,
C rs;
使用 rs.相应控件名 对其做相应的改动便可。
commandconque 2003-08-26
  • 打赏
  • 举报
回复
我的办法:
b中设置一变量如 b1
一个c类的事例 如cc;
c中设置一个变量,如c1;
b中初始事件时
cc.c1=b1;
A中设置B的事例 bb
在A中调用b
bb.b1=xxx;
bb.DoModal;
这样xxx就传给c1 当cc启动时,c1就可以有值了
flinming 2003-08-26
  • 打赏
  • 举报
回复
搞个全局变量,怎么控制都可!
mero 2003-08-26
  • 打赏
  • 举报
回复
同意whoo(谁)的方法,但要保证b是活动的。
whoo 2003-08-26
  • 打赏
  • 举报
回复
class C{};
class B
{
C c;
}
class A
{
B b;
void foo();
}
A::foo()
{
b.c.theControl.DoSomething();
}

李秀国之印 2003-08-26
  • 打赏
  • 举报
回复
PostMessage(.....)
通知更新即可,当然,通知行数中,要有各种判断合保护
yinzhaohui 2003-08-26
  • 打赏
  • 举报
回复
首先你要对控件进行进行修改,一定要保证修改控件己建立,如你定义了一个对话框
CMyDialog m_mydlg;
m_mydlg没有建立,那么m_mydlg内部的控件也没有建立,只有你调用m_mydlg.DoModal()后未态对框话建立,或调用m_mydlg.create(....)非未态对框建立后才能对对话框所具有的控件进行操作,但是你可以在CMyDialog对话框中定义一个变量,这个变量表示你要修改的对话框中控件的值如(对于CComBoBox,你可使用一个整型来表示是那一个项,在对话框建立后的OnInitDialog(...)函数中再通过整型的值来操作对应控件

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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