Codejock Xtreme Toolkit 使用例子

来源:互联网 发布:手机mac地址重复 编辑:程序博客网 时间:2024/05/16 05:58

以Custom Control为例:

一、 使用前的准备

1 新建一个基于对话框的MFC程序ReportControlTest。

2 添加对XT Toolkit Pro 的引用。

添加对头文件“XTToolkitPro.h”的引用。假设Xtreme ToolkitPro的目录下的源文件夹的路径为“D:\Software\Software Development\vs6.0\Xtreme ToolkitPro v11.2.2-src\Source”,该目录下包含有文件“XTToolkitPro.h”和其他的一些源文件,然后右键单击工程ReportControlTest弹出右键菜单,选择Settings->c/c++->Catrgory:Preprocessor->Additional include directories: “D:\Software\Software Development\vs6.0\Xtreme ToolkitPro v11.2.2-src\Source”。

然后在StdAfx.h文件中添加对文件“XTToolkitPro.h”的引用,如:

#include <XTToolkitPro.h> // Codejock Software Components

在XTToolkitPro.h中包含了其他所有的.h头文件的调用,如

#if defined(_XTP_INCLUDE_DEPRECATED)

#include "Common/XTPDeprecated.h"

#endif

#if !defined(_XTP_EXCLUDE_COMMON)

#include "Common/Includes.h" // _XTP_INCLUDE_COMMON

#endif。

clip_image002

3 添加对.lib文件的调用

假设在debug 下需要ToolkitPro1122vc60D.lib 文件在“D:\Software\Software Development\vs6.0\Xtreme ToolkitPro v11.2.2-src\lib\vc60” 下,那么给工程添加lib路径:

Settings->Link-> Additional library path directories: “D:\Software\Software Development\vs6.0\Xtreme ToolkitPro v11.2.2-src\ lib\vc60”,在XTToolkitPro.h文件中添加了对该Lib文件的调用。

clip_image004

4 将ToolkitPro1122vc60D.dll拷到当前exe文件目下下,如debug文件夹下。

5 运行程序,如果出现编译错误:atal error C1076: compiler limit : internal heap limit reached; use /Zm to specify a higher limit,这是因为内存不够。/Zm指定预编译头的内存分配限制,可以修改内存分配。

Settings->c/c++->project options: 在最后有/c,在/c前添加一个/Zm200,200指定分配内存是100M。

6. 在窗体IDD_REPORTCONTROLTEST_DIALOG上添加一个 Custom Control


设置其属性如下:

ID: IDC_REPORTCTRL


clip_image008

7. 在源文件中将控件IDC_REPORTCTRL与实际的ReportControl 绑定。注意,由于在ClassWizard中不能识别CXTPReportControl类,所以必须手动修改。

a. 给窗体类添加一个CXTPReportControl类的变量 m_wndReportCtrl;

如在ReportControlTestDlg.h头文件中添加如下:

//{{AFX_DATA(CReportControlTestDlg)

enum { IDD = IDD_REPORTCONTROLTEST_DIALOG };

// NOTE: the ClassWizard will add data members here

CXTPReportControl m_wndReportCtrl;

//}}AFX_DATA

b. 将控件IDC_REPORTCTRL与变量m_wndReportCtrl 绑定,有两种方法:

(1)在ReportControlTestDlg.cpp文件的DoDataExchange()中修改如下:

void CReportControlTestDlg::DoDataExchange(CDataExchange* pDX)

{

CDialog::DoDataExchange(pDX);

//{{AFX_DATA_MAP(CReportControlTestDlg)

// NOTE: the ClassWizard will add DDX and DDV calls here

DDX_Control(pDX, IDC_REPORTCTRL, m_wndReportCtrl);

//}}AFX_DATA_MAP

}

(2)采用SubclassDlgItem子类化一个控件,将派生类的控件对象与对话框中的基类控件相连接

m_wndReportCtrl.SubclassDlgItem(IDC_REPORTCTRL, this);

//SubclassDlgItem子类化一个控件,将派生类的控件对象与对话框中的基类控件相连接

8. 开始使用m_wndReportCtrl。

原创粉丝点击