我建立了MFC的对话框,并自定义了基类是static的派生类,在派生类中有自定义了许多函数,我在对话框中要使用该自定义类,怎么才能使用呢?工具条上没有该自定义的控件啊
感觉你是想自定义控件,解决方法如下:
1、新建一个MFC Application,选择Dialog based,其他一路默认就行了。
2、把Custom Control 放到Dialog中。
3、把控件属性Class,写成“MFCDiagramCtrl”,这里很重要,如果不加,最后编译会出错的。到目前为止,工程还是编译不过的。
4、对工程右键,选择Class Wizard...,进入类向导,并选择Add Class,准备创建自定义的控件功能类。
5、输入类名(比如CGrap),以及选择基类,其他默认即可。
6、选中新加的类CGraph,选中Message 选项卡,添加WM_PAINT, WM_ERASEBKGND。其中WM_PAINT是绘图消息,WM_ERASEBKGND是清除背景消息。
7、选中Virtual Functions,添加PreSubclassWindow。此函数用于控件画出前调用的,可做控件功能的初始化。
8,、OK后,返回编辑器。在Graph.h中添加:
#define DIAGRAM_CLASSNAME _T("MFCDiagramCtrl")
BOOL RegisterWindowClass();
9、定义 BOOL RegisterWindowClass(); ,并在构造函数调用RegisterWindowClass()。 到此,工程终于可以编译成功了。
10、根据个人需要,在CGraph类进行添加功能。
包含类的头文件,然后定义类的对象实例,调用类的方法就可以了。类的h,cpp文件包含到你的工程中一起编译
如果你要自定义类,然后再控件上调用,可以像1楼说的,建立类之后 ,在工具栏中选择鼠标左键啊右键或者控制按钮之类的控件 ,双击控件,在控件的函数里面调用类或者调用类里面的函数,只要你包含了头文件就可以。似乎要加什么防止重复包含之类的语句,这样就没有生成头文件先后的问题了。
当然要是像二楼那样,就更方便了。不过有点点复杂的说