CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

vc++中,CMyView类中有一个公有成员变量m_code,如何才能把这个变量的值传给CMyDlg类中的编辑控件m_pCode(此类派生于CDialog类)

楼主jiach(夕飞云)2001-08-07 08:43:37 在 VC/MFC / 基础类 提问

vc++中,CMyView类中有一个公有成员变量m_code,如何才能把这个变量的值传给CMyDlg类中的编辑控件m_pCode(此类派生于CDialog类) 问题点数:20、回复次数:15Top

1 楼jiach(夕飞云)回复于 2001-08-07 08:51:13 得分 0

请问各位高手,对于上面的问题,或者直接一点于,对于别的类,如何引用view  
  类的变量,成员函数。  
          我试图用CMyview   *m_view;     来定义;  
  用m_pCode=m_view->m_code;   来符值;       嘻。。。。。。,,不行!!!Top

2 楼ruixp(锐剑)回复于 2001-08-07 08:56:09 得分 0

m_code必须在用之前已经复值  
  另外注意包含头文件Top

3 楼Elminster()回复于 2001-08-07 08:57:36 得分 10

 
  CMyView*   m_view   这个指针你赋值了没有啊?没有的话当然不能引用其中成员了。要解决你的问题,最简单的办法是在   stdafx.h   中定义一个   CMyView*   类型的全局变量,然后在   CMyView::OnInitialUpdate   中为之赋值,别处要用就可以用了。或者如果你在   CMainFrm   中可以调用其成员函数   GetActiveView   。  
  Top

4 楼ruixp(锐剑)回复于 2001-08-07 08:57:56 得分 0

还有在对话框类  
  用UpdateData(TRUE)Top

5 楼panda_w(好想睡啊!)回复于 2001-08-07 08:58:16 得分 0

怎么不用全局变量传递Top

6 楼hitpainter(勇敢的芯)回复于 2001-08-07 09:02:20 得分 0

给m_code复值  
  定义新的头文件a.h   ,定义:extern   xxx   m_code  
  在引用m_pCode变量的cpp文件中,#include   "a.h"  
  再用...m_pCode   =   ...m_code即可Top

7 楼yayj(扬帆)回复于 2001-08-07 09:05:20 得分 0

m_code的访问权限应该是public或者另外的那个类是CMyview的friend,而且m_view应该是个实例化了的指针,如果满足以上两条就肯定可以。Top

8 楼jiach(夕飞云)回复于 2001-08-07 09:07:13 得分 0

CMyView*   m_view   这个指针如何赋值呢?     难道用GetView不成?请指教!Top

9 楼jiach(夕飞云)回复于 2001-08-07 09:08:37 得分 0

如何实例化呢?Top

10 楼ydogg(灰毛兔频频)回复于 2001-08-07 18:48:48 得分 5

panda_w(好想睡啊!) 说的很明白啊。  
  一个全局变量就是最简单的解决办法。  
  1。在你的CXXXApp中  
  int   m_code;  
  2。在你的视类中  
  这样引用  
  CYourApp   *p=(CYourApp*)AfxGetApp();  
  m_viewcode=p->m_code;  
  3.在你的dlg中也是一样的使用。Top

11 楼zhang_qxian(blueman2001)回复于 2001-08-07 19:46:15 得分 0

是啊,尽管用全局变量不是很好的面向对象的编程风格,但有时候用它就很解决问题!Top

12 楼aileen_long(期待2002)回复于 2001-08-07 20:13:08 得分 5

为什么要用全局变量!在你的dlg头文件中定义CView   *pView;  
  修改它的构造函数,加一个参数(CView   *view...),在函数体中加一句:pView=view;  
  在CMyview中构造dlg的时候这样写:Dlg   dlg(this...)  
  这样你就可以在Dlg中利用pView使用CMyView中的任何公共成员了。Top

13 楼oldmonsterman(飞龙在天)回复于 2001-08-07 20:30:33 得分 0

用全局变量,我也做过类似的东西。在app中声明   m_code,在视类中取得app的引用,  
  再dlg中updatedata(false),即可Top

14 楼Suddy(风)回复于 2001-08-07 21:32:13 得分 0

在多窗口这样使用:  
  CChildFrame*   pActiveWnd   =   (CChildFrame*)((CMainFrame   *)AfxGetMainWnd())->MDIGetActive(&bMaximized);  
  CMYView   *pActiveView   =   NULL;  
  if   (!pActiveWnd)    
  {  
  return;  
  }  
  pActiveView   =   (CMYView   *)pActiveWnd->GetActiveView();  
   
  单个窗口更简单一些Top

15 楼jiach(夕飞云)回复于 2001-08-08 09:25:45 得分 0

成功了,  
  我是用GetActiveView()实现的,  
   
  不过这里有个问题就是在frame类里用了此法后,运行会出错,我在app的.h文件的开头加了一句:CMyView   view;   结果就没错了!!!  
   
  原因不清楚,哪位高手可否解释一下Top

相关问题

  • 为什么CDialog的m_hWnd值为0
  • m,m,m,m,m,m,m
  • 怎样可以让CMainFrame的成员m_cDialog,用ShowWindow(SW_SHOW)显示?
  • JI呀 !!! CMyDlg类中有一成员变量m_str(CString型),如何给使之能显示出"xxx"字符?
  • 很菜的问题:怎样在CMainFrame中访问CMyView中自定义成员变量m_nNum?
  • 如何在CMyView类中得到一个来自CMainFrame类的字符串指针m_mypapa的值?
  • 如何在CMyView类中得到一个来自CMainFrame类的成员变量m_mypa(public类型的)的值?
  • 為什麼會出現CDialog::PreModal()的函數體中Assert(m_hWnd==NULL)的錯誤!急!!急!!在線等!!
  • M$ COM
  • M$的XMLDOM

关键词

  • vc++
  • 函数
  • 指针
  • 文件
  • view
  • code
  • 解决
  • 变量
  • cmyview
  • 类

得分解答快速导航

  • 帖主:jiach
  • Elminster
  • ydogg
  • aileen_long

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo