ztlaputa 发表于 2016-4-24 14:13:15

mfc 在弹出的对话框中设置参数后,怎么利用参数再重新绘图

mfc 在弹出的对话框中设置参数后,怎么利用参数再重新绘图。
目前在用MFC调用openGL绘制几个图形。大致功能是这样的
MFC使用单文档的形式,在菜单栏中设置了几个绘图的选项,
然后点击这几个选项,弹出一个对话框设置参数,然后确定并绘图。

但是,在最后一步不太明白,在对话框中设置的参数怎么在主界面中被利用
,然后使用onDraw绘图?我需要在点击对话框的“确定”按钮时发出WM_PAINT消息吗?

落叶知秋 发表于 2016-4-24 16:34:36

提供一个想法:
1. 参数可以写入全局变量,这样所有界面都可以访问;
2. 点击参数对话框的【确定】后,可以发送一个消息到主界面,然后主界面刷新绘图控件。

spy2008 发表于 2016-4-24 16:47:09

本帖最后由 spy2008 于 2016-4-24 16:48 编辑

Dialog的控件可以映射成成员变量,view或者FRAME中得到后使用就是了。简单图形绘制用不着OpneGL, VIEW中自绘就行。

ztlaputa 发表于 2016-4-24 17:24:07

落叶知秋 发表于 2016-4-24 16:34
提供一个想法:
1. 参数可以写入全局变量,这样所有界面都可以访问;
2. 点击参数对话框的【确定】后,可以 ...

就是不知道该发什么消息,和怎么接收。

usecool 发表于 2016-4-24 17:27:30

如果初学mfc,建议赶快转其他的。

redroof 发表于 2016-4-24 19:20:27

usecool 发表于 2016-4-24 17:27
如果初学mfc,建议赶快转其他的。

强烈赞成!

ztlaputa 发表于 2016-4-25 01:53:41

usecool 发表于 2016-4-24 17:27
如果初学mfc,建议赶快转其他的。

MFC是坑吗?

john78 发表于 2016-4-25 06:35:54

usecool 发表于 2016-4-24 17:27
如果初学mfc,建议赶快转其他的。

现在学用那个?一直VC6,也想试下有前途的

ztlaputa 发表于 2016-4-25 08:28:43

john78 发表于 2016-4-25 06:35
现在学用那个?一直VC6,也想试下有前途的

也不是在学,只是想用下界面而已,网上看了下。QT还不错吧。

ztlaputa 发表于 2016-4-25 08:32:49

经过半天的奋战,终于有了结果。 大致上就是一个发消息,收消息的过程,消息可以自己定义的。之前一直是在对话框中取父窗口的句柄,结果一直是错的!对话框的父窗口句柄根本不是那个。最后改了一下就好了。

qinxg 发表于 2016-4-25 08:39:59

调用Cview类的Invalidate() 让其重绘.本质还是发送了PAINT消息.

mangocity 发表于 2016-4-25 09:00:27

按钮事件里面:
if(DoModal() == IDOK)
{
   用你的新参数重新 render 场景
   Invalidate();
}
OnPaint 里面
将 buffer 里的数据重新贴图到 DC 即可。

ztlaputa 发表于 2016-4-25 12:45:23

mangocity 发表于 2016-4-25 09:00
按钮事件里面:
if(DoModal() == IDOK)
{


谢谢,学习了

usecool 发表于 2016-4-26 09:25:26

john78 发表于 2016-4-25 06:35
现在学用那个?一直VC6,也想试下有前途的

看需求了,如果是win平台的话,C#之类的都可以,其实java还是最火的。如果考虑跨平台QT算是当前最合适的选择了

usecool 发表于 2016-4-26 09:26:06

ztlaputa 发表于 2016-4-25 01:53
MFC是坑吗?

MFC是坑,因为微软自己都不主推的。

redroof 发表于 2016-4-26 09:51:14

ztlaputa 发表于 2016-4-25 08:28
也不是在学,只是想用下界面而已,网上看了下。QT还不错吧。

如果非要c语法而且不装运行库,请用c++builder,分分钟上手。
页: [1]
查看完整版本: mfc 在弹出的对话框中设置参数后,怎么利用参数再重新绘图