用MFC创建了一个窗口类,只有构造函数和析构函数
但是都是protected类型,无法在类外部调用,我想在MainFrame里调用这个窗口,怎么办?我说的不是对话框啊,大哥,大姐,你能不能认真点,我说的是CFrameWn...
但是都是protected类型,无法在类外部调用,我想在MainFrame里调用这个窗口,怎么办?
我说的不是对话框啊,大哥,大姐,你能不能认真点,我说的是CFrameWnd的子类啊,你看好题再答好不好,让我怎么给你分啊,sorry,你原谅我这人就这么直,我这人就是这么直,soory!期待回答!
我刚刚把protect改为public,可以在其他类中调用了,但是窗口显示不出来,我用ShowWindow(WM_SHOW),但是运行时弹出错误,什么assertion错误,不知道怎么回事。还有为什么构造函数和析构函数默认是protect的,他们生来就是为了被调用的,为什么是protected类型呢?
我的类是继承了CFrameWnd的。 展开
我说的不是对话框啊,大哥,大姐,你能不能认真点,我说的是CFrameWnd的子类啊,你看好题再答好不好,让我怎么给你分啊,sorry,你原谅我这人就这么直,我这人就是这么直,soory!期待回答!
我刚刚把protect改为public,可以在其他类中调用了,但是窗口显示不出来,我用ShowWindow(WM_SHOW),但是运行时弹出错误,什么assertion错误,不知道怎么回事。还有为什么构造函数和析构函数默认是protect的,他们生来就是为了被调用的,为什么是protected类型呢?
我的类是继承了CFrameWnd的。 展开
4个回答
展开全部
1. 你的窗口不能被显示,可能的原因应该是调用创建窗口的函数参数有问题所致。
希望你能提供更多的信息,比如你是从哪个类继承的,创建窗口的代码是怎么写的。ASSERT错误附近3行代码。
2. 构造函数和析构函数是protect意为 不希望你使用new、delete来创建销毁对象。而是希望你能使用工厂函数来创建、通过销毁函数来销毁窗体对象。
MFC使用了动态创建对象技术。这样根据CRuntimeClass中的信息,调用CreateObject可以创建不同的对象。 你的窗体应该是使用了动态创建宏的类。
希望你能提供更多的信息,比如你是从哪个类继承的,创建窗口的代码是怎么写的。ASSERT错误附近3行代码。
2. 构造函数和析构函数是protect意为 不希望你使用new、delete来创建销毁对象。而是希望你能使用工厂函数来创建、通过销毁函数来销毁窗体对象。
MFC使用了动态创建对象技术。这样根据CRuntimeClass中的信息,调用CreateObject可以创建不同的对象。 你的窗体应该是使用了动态创建宏的类。
展开全部
在MainFrm .h文件中加入你对话框的对象。直接通过该对象调用即可。记得在该头文件中加入对话框的头文件
如:
CxxxDialog dlg;
//使用的地方:
dlg.成员变量等
如:
CxxxDialog dlg;
//使用的地方:
dlg.成员变量等
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你把protect改为public,不就ok了,既然自己建的类,随便改。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议放到析构函数中,因为析构函数是自动调用的,不会漏掉。
wm_close:
在系统菜单里选择了“关闭”或者点击了窗口右上角的“x”按钮,你的窗口过程就会收到wm_close。defwindowproc对wm_close的处理是调用destroywindow。
wm_close:
在系统菜单里选择了“关闭”或者点击了窗口右上角的“x”按钮,你的窗口过程就会收到wm_close。defwindowproc对wm_close的处理是调用destroywindow。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询