急!急!不同类中数据访问问题

kone123 2009-12-28 09:05:19
MFC单文档应用程序,在一个对话框类中访问视图类中的一个变量(它的值是不断变化的),为什么对话框中的相应的值怎么不跟着变化,而一直为开始的那个值。怎么才能是对话框中的值跟着变化?
...全文
67 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ryanwen 2009-12-28
  • 打赏
  • 举报
回复
我只是举个例子,并不知道你是什么样的程序

上面哪个先要转化为FrameWnd的指针,再调用GetActiveView函数,这个函数是CFrameWnd的成员函数

CXXFrameWnd*pFrame = (CXXFrameWnd*)AfxGetApp()->m_pMainWnd;

CXXView *pView = (CXXView *) pChild->GetActiveView();
kone123 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ryanwen 的回复:]
......

你每次都重新定义一个view对象,然后读取这个对象的值

你读到的都是些未初始化的数据

你应该获先获得view对象指针,比如SDI里可以这样获取
(CPMACSView*)AfxGetMainWnd()->GetActiveView();
[/Quote]
不行,错误提示:
“GetActiveView”: 不是“CWnd”的成员
Ryanwen 2009-12-28
  • 打赏
  • 举报
回复
......

你每次都重新定义一个view对象,然后读取这个对象的值

你读到的都是些未初始化的数据

你应该获先获得view对象指针,比如SDI里可以这样获取
(CPMACSView*)AfxGetMainWnd()->GetActiveView();
kone123 2009-12-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ryanwen 的回复:]
你是怎么获取那个变量值的? 
[/Quote]

void CInternalLoad::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CPMACSView p2;
int b=p2.a;
CString str1;
char ab[4]={0};
_itoa(b,ab,10);
str1=(LPSTR)ab;
SetDlgItemTextW(IDC_ILOAD1,str1);

CDialog::OnTimer(nIDEvent);
}
  • 打赏
  • 举报
回复
视图类要去通知对话框该变量已发生变化并更新之
kone123 2009-12-28
  • 打赏
  • 举报
回复
CPMACSView p2;
int b=p2.a;
kone123 2009-12-28
  • 打赏
  • 举报
回复
主要是视图类中的变量在自己内部是变化的,而在对话框类中就没变化,所以值始终是开始的值,怎么解决?
Gushleo 2009-12-28
  • 打赏
  • 举报
回复
得看看你是否取到该视图对应文档的数据了
Ryanwen 2009-12-28
  • 打赏
  • 举报
回复
你是怎么获取那个变量值的?
kone123 2009-12-28
  • 打赏
  • 举报
回复
我用过,怎么也是不行
yxwsbobo 2009-12-28
  • 打赏
  • 举报
回复
用一个Timer,然后每次更新值

15,979

社区成员

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

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