从您创建的项目开始教程2:向量负载并保存。
采取以下步骤添加使用自动化编辑对象的功能。
在项目工作区中,单击“类视图”选项卡,然后单击以打开“ Vecaut类”分支。
右键单击“ CVECAUTAPP”类,然后选择“添加“添加变量...”
对于“可变类型”,输入l_bool。
对于“可变声明”,输入m_btoolbardrawing。使用自动化绘制时,此变量将设置为true,并在选择指针(无)时将其设置为False。
单击以打开“ CVECAUTAPP”类分支。
双击“ cvecautapp”构造函数。
最后一次通话后添加以下行lsettings :: setlicensefile():
m_btoolbardrawing = false;
有必要从Lcontainer得出类并覆盖“ ContainerCallback”功能。这用于设置m_btoolbardrawing变量。
右键单击“ Vecaut类”分支,然后选择添加“类...”
从“类别”中选择“ C ++类”。
对于“类名称”输入“ mycontainer”。
对于“基类”输入“ lcontainer”。
单击“完成”。
单击“类查看”选项卡。双击“ mycontainer”以转到类定义。然后添加以下行:
上市:
l_int containerCallback(containeReventType neventtype,l_void * peventdata);
用以下#include替换自动生成的#include Line(请记住,您可能必须将路径更改为标头文件的位置):
#包括“ .. \ .. \ .. \ .. \ .. \ includs \ classlib \ ltwrappr.h”
在“ mycontainer.cpp”中添加以下代码:
l_int mycontainer :: containerCallback(containeReventType neventtype,l_void * peventdata)
{
如果(neventtype == container_event_type_draw)
{
pcontainerobjectdata pcontainerobjectdata;
pcontainerObjectData =(pcontainerObjectData)peventdata;
转变(pcontainerobjectdata-> fstate)
{
案子container_state_begin://开始
theapp.m_btoolbardrawing = true;
休息;
案子container_state_process://绘画
//没做什么
休息;
案子container_state_end://完成的
theapp.m_btoolbardrawing = false;
休息;
}
}
返回lcontainer :: containerCallback(neventtype,peventdata);
}
转到mycontainer.cpp的顶部,然后在最后一个#include之后添加以下几行:
#包括“ vecaut.h”
外部cvecautapp theapp;
现在,有必要从lvectorwindow派生一类,并覆盖MSGProccallback()成员函数来处理鼠标消息。
右键单击“ Vecaut类”分支,然后选择添加“类...”
从“类别”中选择“ C ++类”。
对于“类名称”输入“ MyVectorWindow”。
对于“基类”输入“ lvectorwindow”。
单击“完成”。
您将获得一个对话框,指出“新类向导找不到适当的标题文件...”单击“确定”。
单击“类查看”选项卡。双击“ MyVectorWindow”以转到类定义。然后添加以下行:
上市:
lresult msgproccallback(HWND HWND,UINT UMSG,WPARAM WPARAM,LPARAM LPARAM);
用以下#include替换自动生成的#include Line(请记住,您可能必须将路径更改为标头文件的位置):
1)
双击“ msgproccallback”分支,添加以下代码:
lresult myVectorwindow :: msgproccallback(HWND HWND,UINT UMSG,WPARAM WPARAM,LPARAM LPARAM)
{
转变(UMSG)
{
案子wm_rbuttondown:
{
如果(theapp.m_btoolbardrawing == false)
{
lvectorObject myobject;
点点;
point.x = loword(lparam);
point.y = hiword(lparam);
Hittest(&Point,&MyObject);
theapp.m_automation.editvectorObject(&myObject);
}
}
}
返回lvectorwindow :: msgproccallback(HWND,UMSG,WPARAM,LPARAM);
}
单击“类查看”选项卡。然后单击以打开“ Vecaut类”分支。
单击以打开“ CVECAUTDOC”分支。
双击M_VectorWindow成员变量。
从以下方式更改声明:
lvectorwindow m_vectorwindow
至:
MyVectorWindow m_vectorwindow;
转到myVectorwindow.cpp的顶部,然后在最后一个#include之后添加以下几行:
#包括“ vecaut.h”
外部cvecautapp theapp;
打开vecautdoc.h,然后在#include“ ltwrappr.h”之后添加以下行:
#包括“ myVectorwindow.h”
现在添加代码以设置容器属性。这些影响选定的向量对象的外观。
单击“类视图”选项卡中的“ CVECAUTVIEW”分支。
双击“ OnCreate”成员函数,然后添加以下本地变量:
Containermetrics Containermetrics;
在“返回0”之前添加以下代码
//设置容器指标
containermetrics.dwmask =
CMF_BORDERCOLOR |
cmf_handlecolor |
cmf_handleheight |
cmf_handlewidth |
cmf_enablehandles;
containermetrics.crborder = rgb(255,0,0);
containermetrics.crhandle = rgb(0,255,0);
containermetrics.nhandleheight = 8;
contunermetrics.nhandlewidth = 8;
containermetrics.fenablehandles = true;
getDocument() - > m_container.setMetrics(&continerMetrics);
编译并运行程序。从菜单栏中选择File->新的。选择视图 - >向量工具栏。选择行工具并绘制几行。现在选择“无”工具(带有箭头图标)。右键单击矢量线之一。手柄出现。拖动一个手柄以旋转线路。拖动线的中心以移动整个线路。双击以结束“编辑模式”。