如何创建自定义组件并将其添加到基于对话框的应用程序(MFC)?

时间:2010-04-16 19:50:27

标签: c++ mfc

我想制作一个可在其他应用程序中使用的自定义组件(折线图)。

我不知道两件事:

  1. 我应该在哪里使用(在组件类中!)绘制方法,如FillRect

    还是PolyLine?在OnPaint处理程序中,我应该在MESSAGE MAP中定义并映射它?将

    它(OnPaint处理程序)从应用程序对话框的OnPaint处理程序中调用

    或从哪里来?

  2. 如何将组件连接到测试应用程序(

    例如是基于对话的吗?我应该在哪里实例化该组件?来自

    MyAppDialog.cpp的OnCreate方法?

  3. 我几天前开始在MFC编码,我对它很困惑。

    提前致谢,

    干杯。

2 个答案:

答案 0 :(得分:0)

绘制控件的处理方式与它不是控件的情况完全相同。鉴于您正在使用MFC,(至少通常)意味着您在View类'OnDraw中进行绘制(MFC通常在内部处理OnPaint,因此您很少触摸它)。

在主机应用程序中插入生成的ActiveX控件将像插入任何其他ActiveX控件一样完成。假设您正在Visual Studio中进行开发,通常可以通过打开对话框,右键单击对话框内部,然后在弹出的菜单中单击“插入ActiveX控件...”来实现。从列表中选择您的控件,它将为控件和代码生成一个包装类,以根据需要创建该类的对象。从对话框代码的角度来看,它就在那里,你可以像任何其他控件那样使用它。

答案 1 :(得分:0)

要在MFC中创建新组件,必须从窗口类(CWND)

创建一个类

之后你可以拥有组件和方法的MessageMap,也可以覆盖CWND :: OnDraw方法来绘制你想要的东西。 在此之前,我建议您查看设备上下文

http://msdn.microsoft.com/en-us/library/azz5wt61(VS.80).aspx

好运的朋友。