大神求教!

morebettercln 2019-05-17 08:48:09
MFC基于对话框编程,主对话框上面调用显示子对话框后,输入子对话框的可编辑控件数值,根据数值在子对话框上画曲线,但这时显示的确定按钮是主对话框上的。如何从主对话框上转到子对话框的OnPaint中?
...全文
136 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2019-05-17
  • 打赏
  • 举报
回复
你要得到真正的 CChild *plg;
而 不是 重新 定义一个 CChild *plg;

可以 创建 CChild 时 保存 ,或者 用 Findwindow 找到
morebettercln 2019-05-17
  • 打赏
  • 举报
回复
您好,plg->Invalidate(); plg->UpdateWindow()
这个我试了,提示指针出错了,跳到_AFXWIN_INLINE void CWnd::Invalidate(BOOL bErase); {ASSERT (::IsWindow(m_hWnd)); ::InvalidateRect(m_hWnd,lpRect,bErase);}
schlafenhamster 2019-05-17
  • 打赏
  • 举报
回复
PostMessage(plg->m_hwnd,WM_PAINT,0,0);
OnPaint 是 窗口 无效 后 调用, 所以要
plg->Invalidate();
plg->UpdateWindow();
morebettercln 2019-05-17
  • 打赏
  • 举报
回复
我的子对话框是非模态的,试过PostMessage和SendMessage没有成功,是不是因为该子对话框已经存在的原因?
morebettercln 2019-05-17
  • 打赏
  • 举报
回复
我是想在主对话框上添加一个响应,可以让子对话框画曲线。就是怎么可以从主对话框到子对话框。我的子对话框中画曲线是放在OnPaint函数中的。在主对话框中我用过

CChild *plg;
PostMessage(plg->m_hwnd,WM_PAINT,0,0)

其中CChild是子对话框的类。但是并没有进入到子对话框的OnPaint函数中。
Eleven 2019-05-17
  • 打赏
  • 举报
回复
你的子对话框是怎么创建的?模态/非模态?
模态的话,就修改你子对话框的构造函数,添加必要的参数
如果是非模态的话,可以直接利用消息转发PostMessage/SendMessage(...);
morebettercln 2019-05-17
  • 打赏
  • 举报
回复
我是想在主对话框上添加一个响应,可以让子对话框画曲线。就是怎么可以从主对话框到子对话框。我的子对话框中画曲线是放在OnPaint函数中的。在主对话框中我用过

CChild *plg;
PostMessage(plg->m_hwnd,WM_PAINT,0,0)

其中CChild是子对话框的类。但是并没有进入到子对话框的OnPaint函数中。
走好每一步 2019-05-17
  • 打赏
  • 举报
回复
引用 楼主 morebettercln 的回复:
MFC基于对话框编程,主对话框上面调用显示子对话框后,输入子对话框的可编辑控件数值,根据数值在子对话框上画曲线,但这时显示的确定按钮是主对话框上的。如何从主对话框上转到子对话框的OnPaint中?
直接说你的需求比较好,不用自己去添油加醋,把别人绕晕了,不知道你在说什么, 你就直接说你需要什么样的界面和交互就可以了,什么OnPaint这种话,谁知道你在说什么。
morebettercln 2019-05-17
  • 打赏
  • 举报
回复
谢谢!谢谢!问题解决了。我用创建时候的指针就对了。谢谢大家!

15,978

社区成员

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

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