今天接到一个小单子,从TXT文件中读取数据并绘图,就想用网上的ChartCtrl控件来绘制,VS2010建立工程并调试过程中,发现加上了 Custom Ctrl 后程序 就不能正常调试。于是重新回到刚刚这个Code Project 下面看看具体操作:
以下操作均在VS2013中实现:
- 建立一个MFC对话框程序
- 首先设置工程信息,在工程设置->“C/C++”Tab ->”C++ Language” 下面把“Enable Run-Time Type Information(RTTI) ”启动运行时类信息 复选框选上
- 用资源编辑器的方式,首先在工具箱中拖入Custom Ctrl 控件到对话框
- 修改Custom Ctrl 的两个属性:(1)把Style或上 WS_CLIPCHILDREN (0x0200 0000L) (2)把类型信息填写为相应的类名,如此处即为 ChartCtrl,实则为类 CChartCtrl 去掉首字母(当然前提是环境中能识别到CChartCtrl这个类,要提前加好相应的源文件,保证类视图中能看到该类)
- 最后,一定要为这个控件关联一个其类型的变量
在VS2013环境下,按以上操作,即可正确编译并运行程序。最后再在对话框类中加上CChartCtrl类型的变量即可操作 CChartCtrl 控件。
设置工程属性,启用运行时类信息
设置Custom Ctrl 控件属性,添加 WS_CLIPCHILDREN 风格和类信息 [ChartCtrl]
添加关联类型变量 CChartCtrl m_chart,与控件关联
调试运行效果
经测试,在VS2010环境中也是遵循上面五个步骤即可使用Custom Ctrl 控件,最最重要的是最后一步,一定要添加关联变量,否则程序启动,控件未进行初始化,则仍不能使用。
另外一个使用方式,就是像ChartCtrl的作者介绍的手动插入的方式,直接添加相应的类型变量,在对话框的 OnInitDialog 中直接调用相关类的 Create 方法即可。用这种方法也要注意给Custom Ctrl控件添加类型信息,否则仍无法调试运行。