注册 登录
编程论坛 VC++/MFC

怎么能在VIEW类中获取DIALOG类中的变量值

LexWang 发布于 2014-02-22 15:56, 575 次点击
14/2/22
今天试图从视类中获取对话框类中的非控件变量的值
没找到答案
程序代码:
void CSettingDlg::OnColor()

 {
     // TODO: Add your control notification handler code here
     CColorDialog dlg;
    COLORREF m_clr;
    if(IDOK==dlg.DoModal())
     {
         m_clr=dlg.m_cc.rgbResult;//想要在VIEW类中获取颜色对话框选中的颜色值【m_clr】 用了几种方法都没能实现
     }                           
     CString strBuffer;
    strBuffer.Format("RGB(%d,%d,%d)",GetRValue(m_clr), GetGValue(m_clr), GetBValue(m_clr));
     MessageBox(strBuffer,"color",MB_ICONASTERISK | MB_ICONINFORMATION);

 }
1.
   在DIALOG类中想实例化VIEW类的对象或者指针 但是很奇怪的报错了  蛋疼 可能是我别的地方出错
2.
   把m_clr定义成静态变量 然后在VIEW类中调用 但是还是没成功  疼。。
3.
   在VIEW类中实例化DIALOG类 调用OnColor(先把OnColor改成有返回值)  这种方法貌似行 但是 总是一直在弹出颜色对话框很是烦人

没办法了 我只是想获得颜色对话框返回的值而已 。。。。无奈·····
3 回复
#2
yuccn2014-02-23 09:06
1,不知道你说什么
2,类的静态变量要先初始化的
3,oncolor是不断的调用的,只要刷新都进入一次!你为什么不在init对话框时候做?
#3
LexWang2014-02-23 17:10
不好意思 可能我没说清楚 简单的概括的话就是   我想要在Dialog和View之间实现数值传递  而且消息响应的同时想引起窗口的重绘 。。。。
现在我已经解决前一部分了   窗口重绘的部分 我调用Invalidate()&UpdateWindow()都没起到效果 不知为何。
#4
LexWang2014-02-23 17:17
回复 2楼 yuccn
嘿嘿  我应经 解决了 不好意思  其实这两个问题 可以归到一个问题上 就是在一个类中对另一个类的成员的调用  具体一点就是在Dialog类中对
View类成员的调用更改 。  自己理解的比以前深一些了。 脑子可算是转过来了 一天都在迷糊 。。。。。
1