MFC中如何在对话框关闭后刷新客户区?
mfc吧
全部回复
仅看楼主
level 1
etwll 楼主
我做的是一个单文档程序,客户区绘制一条线段,通过弹出的对话窗口,进行旋转,平移等变换。可是我点击确定键后直线还是原来的直线,数据应该是传出了,但是图形没有更新啊!
我的对话框按钮的响应函数是:
void Info_Dialog::OnOK()
{
UpdateData(TRUE);
CDialog::OnOK();
}
其中Info_Dialog是对话框类。
在view的ondraw中加有如下代码:
Info_Dialog a;
tx=a.m_x;//将参数传递出来,m_x为edit返回的参数
(本人新手菜鸟,求助啊,绘图函数没有写错,什么旋转平移都没有问题,已经调试过,唯独不能将对话框的返回参数联系起来!)
2014年03月16日 03点03分 1
level 1
etwll 楼主
2014年03月16日 03点03分 2
level 1
etwll 楼主
2014年03月16日 03点03分 3
level 9
举个例子主窗口传给子对话框的参数是整型,子对话框是CSubDlaiog.
在CSubDialog定义一成员指针,
int* m_pNew;
模式化弹出子对话框前:
如你本来主对话框要传入给子对话框的变量是 int m_Old =xxx;
CSubDiaog dlg;
dlg.m_pNew = &m_Old;
子对话框onok里updateData(true)后把编辑框关联的值赋回给m_pNew即可;
如果传入参数较多可定义结构体来传递
2014年03月16日 06点03分 4
方向反了啊。我的意思是对话框里的参数传给客户区域,就是View里面OnDraw里面需要用到。而且要的是对话框一关闭,客户区就能显示新的参数绘出的图形
2014年03月16日 14点03分
回复 etwll :一样道理啊,晕。。。相当于子对话框用一个指针接收父传进来的变量后再对其进行赋值等等,子对话框退出后你再根据更新后的变量值进行相关操作啊
2014年03月16日 14点03分
回复 89198408 :我要问的就是子对话框退出后如何立即更新啊
2014年03月16日 15点03分
回复 89198408 :要不我把源文件发给你帮我看看,大神
2014年03月16日 15点03分
level 7
invalidate()
   --来自OPPO Find5,发现记录你身边的美好。。。
2014年03月16日 13点03分 6
在onok这个里面用,还是在客户区的绘图函数里面用啊
2014年03月16日 14点03分
level 4
UpdateData(FLASE);
2014年07月01日 06点07分 7
level 6
看了百度发的。
有俩点需要注意,一个是需要全局公用变量,用来传值的。
另外一个是父窗口和子对话框的关系。
如果是Frame包含了对话框,则在Frame里调用子对话框的变量便可以。
打断点看,如果是变量未跟新值,你换个写法:
CString text;//定义字符串暂存变量
GetDlgItem(控件ID)->getWindowText(text);//获取指定控件的文字信息(caption)
float x=atof(text);//将字符串转成浮点型数传给X
这三句话能让指定控件的值传到X里
然后怎么用就随便了
2016年03月22日 05点03分 8
哥我好感动!虽然我现在完全不记得当年是遇到什么问题了,但是仍然要谢谢你!
2016年03月22日 11点03分
1