菜鸟请教:mfc中form简单遮盖重绘

linuxlsx 2013-01-23 01:39:30
MFC中,我有两个FORM form1里面有些按钮什么的,form2一样
form2是在单击form1中的按钮后触发创建的 是完全遮盖住form1
代码如下
CFormDLg1::onbuttonclick()
{
CFormDlg2 m_Dlg=new CFormDlg2();
m_Dlg->Create(IDD_FV,this);
CRect rect;
this->GetWindowRect(&rect);
ScreenToClient(&rect);
m_addDopeLibDlg->MoveWindow(&rect);//遮盖当前form1
//this->ShowWindow(SW_HIDE);
this->EnableWindow();
m_addDopeLibDlg->ShowWindow(SW_SHOW);//显示form2
}
问题是 form2出现后开始能完全遮盖form1,但鼠标在form2上拖动时候,会使得窗口重绘,结果将form1中的按钮什么都重绘出来了,怎么让当前只显示form1?我用this->ShowWindow(SW_HIDE);将form1隐藏结果就根本开不到form2了。
...全文
241 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
等明天看有没有人回,就结贴。
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
引用 16 楼 lsxjl 的回复:
主要是form2只有在form1中才会弹出来.按照逻辑也属于form1的子form。
只能说 点击form1的button -> 创建一个form2 ,form2不属于form1
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
主要是form2只有在form1中才会弹出来.按照逻辑也属于form1的子form。
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
引用 14 楼 lsxjl 的回复:
按照 主-->form1 主--->form2 这样可以达到目的。 不知按照主--form1-->form2可以达到目的不。
不行, 你这样破坏的 界面层次关系
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
按照 主-->form1 主--->form2 这样可以达到目的。 不知按照主--form1-->form2可以达到目的不。
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
引用 12 楼 lsxjl 的回复:
主dlg()-->form1--->form2 在按form1中的一个弹出menu后出现form2。form2完全遮盖住form1,且需要鼠标拖动,最小化等后重绘不出现form1的控件,(当前只显示form2)
为什么会这么设计?逻辑层过不去。 F1 addchild F2 , F1 -> hide ,F2 ->show 。至少我没用见过这样的需求。 这个应该需要你自己实现。 MFC的界面关系,应该是 parent ->hide ,allChild -> hide
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
主dlg()-->form1--->form2 在按form1中的一个弹出menu后出现form2。form2完全遮盖住form1,且需要鼠标拖动,最小化等后重绘不出现form1的控件,(当前只显示form2)
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
引用 9 楼 lsxjl 的回复:
CFormDLg1->ShowWindow(SW_HIDE);//这个不行? 是的,创建时候将form2作为form1的子类m_Dlg->Create(IDD_FV2,this); 隐藏form1了,form2也就看不到了。
那 form1又是基于谁? 你让form2创建的时候基于 form1的父类不行? 我MFC不熟悉...
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
我是需要form2作为form1的子form
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
CFormDLg1->ShowWindow(SW_HIDE);//这个不行? 是的,创建时候将form2作为form1的子类m_Dlg->Create(IDD_FV2,this); 隐藏form1了,form2也就看不到了。
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
.....坑我吧.. CFormDLg1->ShowWindow(SW_HIDE);//这个不行? CFormDLg1这是个控件吧? 应该有自身的隐藏函数吧
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
----------抱歉,写错了—————————————————— MFC中,我有两个FORM form1里面有些按钮什么的,form2一样 form2是在单击form1中的按钮后触发创建的 是完全遮盖住form1 代码如下 CFormDLg1::onbuttonclick() { CFormDlg2 m_Dlg=new CFormDlg2(); m_Dlg->Create(IDD_FV2,this); CRect rect; this->GetWindowRect(&rect); ScreenToClient(&rect); m_Dlg->MoveWindow(&rect);//form2遮盖当前form1 //this->ShowWindow(SW_HIDE); this->EnableWindow(); m_Dlg->ShowWindow(SW_SHOW);//显示form2 } 问题是 form2出现后开始能完全遮盖form1,但鼠标在form2上拖动时候,会使得窗口重绘,结果将form1中的按钮什么都重绘出来了,怎么让当前只显示form2,重绘时不出现form1的控件?我用this->ShowWindow(SW_HIDE);将form1隐藏结果就根本开不到form2了
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
引用 5 楼 lsxjl 的回复:
额,我是只需要当前只显示form2,让鼠标拖动时候form1一直看不到。
你的form2不是form1的子控件么? 你隐藏form1,那form2肯定看不到。 你想隐藏form1,而form2显示,那么form1和2 不能是父子关系
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
额,我是只需要当前只显示form2,让鼠标拖动时候form1一直看不到。
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
引用 3 楼 lsxjl 的回复:
如果隐藏form1: ShowWindow(SW_HIDE);也就看不到form2了,form2是form1的子form
怎么还这么设计 form1 -> button ↓ form2 -> button 这种关系?
linuxlsx 2013-01-23
  • 打赏
  • 举报
回复
如果隐藏form1: ShowWindow(SW_HIDE);也就看不到form2了,form2是form1的子form
赵4老师 2013-01-23
  • 打赏
  • 举报
回复
到VC/MFC论坛问问?
lee_鹿游原 2013-01-23
  • 打赏
  • 举报
回复
form1有按钮,form2也有按钮, form1隐藏了,form1的按钮怎么可能显示? form1的按钮,是form1的子控件。
内容概要:本文档是一份关于交换路由配置的学习笔记,系统地介绍了网络设备的远程管理、交换机与路由器的核心配置技术。内容涵盖Telnet、SSH、Console三种远程控制方式的配置方法;详细讲解了VLAN划分原理及Access、Trunk、Hybrid端口的工作机制,以及端口镜像、端口汇聚、端口隔离等交换技术;深入解析了STP、MSTP、RSTP生成树协议的作用与配置步骤;在路由部分,涵盖了IP地址配置、DHCP服务部署(接口池与全局池)、NAT转换(静态与动态)、静态路由、RIP与OSPF动态路由协议的配置,并介绍了策略路由和ACL访问控制列表的应用;最后简要说明了华为防火墙的安全区域划分与基本安全策略配置。; 适合人群:具备一定网络基础知识,从事网络工程、运维或相关技术岗位1-3年的技术人员,以及准备参加HCIA/CCNA等认证考试的学习者。; 使用场景及目标:①掌握企业网络常见的交换与路由配置技能,提升实际操作能力;②理解VLAN、STP、OSPF、NAT、ACL等核心技术原理并能独立完成小型网络搭建与调试;③通过命令示例熟悉华为设备CLI配置逻辑,为项目实施和故障排查提供参考。; 阅读建议:此笔记以实用配置为主,建议结合模拟器(如eNSP或Packet Tracer)动手实践每一条命令,对照拓扑理解数据流向,重点关注VLAN间通信、路由选择机制、安全策略控制等关键环节,并注意不同设备型号间的命令差异。

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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