用MFC创建了一个窗口类,只有构造函数和析构函数

但是都是protected类型,无法在类外部调用,我想在MainFrame里调用这个窗口,怎么办?我说的不是对话框啊,大哥,大姐,你能不能认真点,我说的是CFrameWn... 但是都是protected类型,无法在类外部调用,我想在MainFrame里调用这个窗口,怎么办?
我说的不是对话框啊,大哥,大姐,你能不能认真点,我说的是CFrameWnd的子类啊,你看好题再答好不好,让我怎么给你分啊,sorry,你原谅我这人就这么直,我这人就是这么直,soory!期待回答!

我刚刚把protect改为public,可以在其他类中调用了,但是窗口显示不出来,我用ShowWindow(WM_SHOW),但是运行时弹出错误,什么assertion错误,不知道怎么回事。还有为什么构造函数和析构函数默认是protect的,他们生来就是为了被调用的,为什么是protected类型呢?

我的类是继承了CFrameWnd的。
展开
 我来答
软式曲奇饼
2010-06-27 · 超过25用户采纳过TA的回答
知道答主
回答量:40
采纳率:0%
帮助的人:70.7万
展开全部
1. 你的窗口不能被显示,可能的原因应该是调用创建窗口的函数参数有问题所致。
希望你能提供更多的信息,比如你是从哪个类继承的,创建窗口的代码是怎么写的。ASSERT错误附近3行代码。

2. 构造函数和析构函数是protect意为 不希望你使用new、delete来创建销毁对象。而是希望你能使用工厂函数来创建、通过销毁函数来销毁窗体对象。
MFC使用了动态创建对象技术。这样根据CRuntimeClass中的信息,调用CreateObject可以创建不同的对象。 你的窗体应该是使用了动态创建宏的类。
xjc_cd
2010-06-27 · TA获得超过413个赞
知道小有建树答主
回答量:445
采纳率:0%
帮助的人:438万
展开全部
在MainFrm .h文件中加入你对话框的对象。直接通过该对象调用即可。记得在该头文件中加入对话框的头文件

如:
CxxxDialog dlg;

//使用的地方:
dlg.成员变量等
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
离离原上花开
2010-06-27 · TA获得超过6856个赞
知道大有可为答主
回答量:1923
采纳率:0%
帮助的人:722万
展开全部
你把protect改为public,不就ok了,既然自己建的类,随便改。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
才涉隆晶
2019-06-29 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:35%
帮助的人:871万
展开全部
建议放到析构函数中,因为析构函数是自动调用的,不会漏掉。
wm_close:
  在系统菜单里选择了“关闭”或者点击了窗口右上角的“x”按钮,你的窗口过程就会收到wm_close。defwindowproc对wm_close的处理是调用destroywindow。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式