1、先创建一个MFC工程,NEWProject--MFC--MFCApplication--name:“CustomCtr”--ApplicationType选择“Dialogbased”。
2、在窗口中添加一个自定义控件,Toolbox--“CustomControl”--属性--class随便填写一个控件类名“CMyWin”,这个名字用于以后注册控件用的,注册函数为RegisterWindowClass。
3、创建一个类在窗口中,右击customcontrol控件--ClassWizard--ClassWizard--AddClass--类名CMyTest(以C开头)--Baseclass:CWnd。
4、注册自定义控件MyWin,在MyTest类.h文件中声明注册函数BOOLRegisterWindowClass(HINSTANCEhInstance=NULL)。
最近在做MFC开发的过程中,由于对MFC的不熟悉,让我遇到了一些坑,也不能算是坑吧,本质上还是自己太菜了,我遇到的问题描述如下: 我的目的是继承一个树控件的类,在派生类中实现一些自己想要添加的方法.我的遇到的问题是:基于对话框的MFC程序->转到对话框->拖入TreeControl控件->右键树控件添加类(我以为这样的类是继承自CTreeCtrl的)->对应类的头文件查看
过程如下:
跟我的预期并不相符,基类中没有我想要的CTreeCtrl类,后面我发现在对话框的任意位置右键添加类都是这样的情况,所以我下结论:在对话框中右键添加类其基类都是和对话框相关的类(如CDialogEx之类).
后面经过请教,找到了正确添加MFC类的方法:右键项目名->类向导->添加类右边的下拉框选择MFC类->此时查看基类就可以看到所有的MFC类,添加的新类也就继承自想要继承的类.
归根结底还是对MFC和VS的用法不熟悉.
在做DLL库的时候经常会通过printf打印一些调试信息,但是MFC项目引用后printf信息是无法输出到调试窗口的,网上一些说通过AllocConsole()打开命令窗口在VS2017中竟然不好用,最终经过网络寻找到可用方法:
在vs中打开你的解决方案。
鼠标移动到你的项目名称上,点击鼠标右键,再点击属性,此刻会此项目的属性页。
在配置属性中,找到生成事件,在找到后期生成事件。
在命令行的右边空白处添加“editbin /SUBSYSTEM:CONSOLE $(OUTDIR)$(ProjectName).exe”,点击确定。
以上4步就已经ok了,此时运行你的程序,会多d出一个黑色命令行的提示框,用来输出你的打印信息。
VS2017 显示控制台窗口
1. 在vs中打开你的解决方案。
2. 鼠标移动到你的项目名称上,点击鼠标右键,再点击属性,此刻会此项目的属性页。
3. 在配置属性中,找到生成事件,在找到后期生成事件。
4. 在命令行的右边空白处添加:editbin /SUBSYSTEM:CONSOLE $(OUTDIR)\$(ProjectName).exe,点击确定。
5. 以上4步就已经ok了,此时运行你的程序,会多d出一个黑色命令行的提示框,用来输出你的打印信息
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)