2010-04-16 33 views
3

我想制作一个自定义组件(折线图),这个组件可以用在其他应用程序中。
如何创建自定义组件并将其添加到基于对话框的应用程序(MFC)?

我不知道两两件事:

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

    或折线?在OnPaint处理程序中,我应该定义并将其映射到MESSAGE MAP中?将

    它(OnPaint处理)从应用

    或沿对话框的OnPaint处理叫什么名字?

  2. 如何连接组件,一旦做出,到测试应用,这将

    例如基于是Dialog?我应该在哪里实例化该组件?从MyAppDialog.cpp的

    onCreate方法?

我几天前开始在MFC中编写代码,对此我感到很困惑。

在此先感谢,

干杯。

回答

0

绘画控制的处理完全像这将是,如果它不是一个控制。考虑到你使用MFC,那(至少通常)意味着你在View类'OnDraw(MFC通常在内部处理OnPaint,所以你很少碰它)中做绘图。

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

+0

的事情是我使用一个基于对话框的应用程序,而且也没有在'它OnDraw'方法,导致没有myAppView和'myAppDocument classes'。我甚至不知道应该在组件类中继承哪个类。顺便说一句,我不是想制作ActiveX控件,而只是一个Cpp文件,稍后会用到它。 也许这里有什么我完全错了,如果我是,我提前抱歉。 感谢您为帮助我而付出的努力! – 2010-04-16 20:25:11

+1

如果你想在对话框中做自己的绘图,你真的*想要在一个控件中做到这一点。 – 2010-04-17 02:44:04

1

对于创建MFC新的组件,你必须创建从窗口类(CWND)一类,

之后,你可以有你的组件MessageMap和你的方法,也可以覆盖CWND :: OnDraw的方法画出你想要的东西。 ,我建议你之前去看一看到设备上下文

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

好运的朋友。

相关问题