我想制作一个可在其他应用程序中使用的自定义组件(折线图)。
我不知道两件事:
我应该在哪里使用(在组件类中!)绘制方法,如FillRect
还是PolyLine?在OnPaint处理程序中,我应该在MESSAGE MAP中定义并映射它?将
它(OnPaint处理程序)从应用程序对话框的OnPaint处理程序中调用
或从哪里来?
如何将组件连接到测试应用程序(
)例如是基于对话的吗?我应该在哪里实例化该组件?来自
MyAppDialog.cpp的OnCreate方法?
我几天前开始在MFC编码,我对它很困惑。
提前致谢,
干杯。
答案 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
好运的朋友。