VC++开发GIS系统(256)输入注释之类实现
发布时间: 2016-06-26
所属分类: VC++开发GIS系统
前文《VC++开发GIS系统(248)输入注释之类设计》设计了输入注释的类,一系列的准备工作,本文对这个类做一个实现。
类的实现
在_malaLabel.cpp中实现 CmalaLabelsInput
类,代码如下:
/*
* 输入注释
*/
CmalaLabelsInput::CmalaLabelsInput(CView* mView, malaScreen *pScreen, CString &fileFullPath)
{
mBaseView = mView;
mPath = fileFullPath;
mScreen = pScreen;
getLabelPro();
mIsInput = false;
}
CmalaLabelsInput::~CmalaLabelsInput()
{
}
void CmalaLabelsInput::LButtonDown(UINT nFlags, malaPoint point)
{
if (!mIsInput)
{
if (mLabelPro.textStr != L"")
{
malaCDC dc(mBaseView, *mScreen);
dc.textDraw(point, mLabelPro);
CLabelIO lio;
lio.labelAdd(point, mLabelPro,mPath);
}
else
{
MessageBox(mBaseView->m_hWnd, L"输入内容不得为空", L"提示", MB_ICONQUESTION);
}
mIsInput = true;
}
}
void CmalaLabelsInput::getLabelPro()
{
//字体对话框
if (dlgInputLabel(mLabelPro) == FALSE)
{
mLabelPro.labelHeight = 20; //字体高度
mLabelPro.labelHeight = 10; //字体宽度
mLabelPro.labelAngle = 0; //字体角度
mLabelPro.textAngle = 0; //文本角度
mLabelPro.textColor = RGB(0, 0, 0);//字体颜色
mLabelPro.textOff = 1; //字体间距
mLabelPro.textFont = L"华文楷体"; //字体类型
mLabelPro.fontWeight = 400;
}
}
解释一下思路。
- 构造输入注释的类的时候调用
getLabelPro
函数,(参考:VC++开发GIS系统(249)设置注释属性对话框),设置并记录注释的输入参数。 - 点击左键,在点击位置绘制注释(参考:《VC++开发GIS系统(250)绘制文字的函数》),并保存文件(参考:《VC++开发GIS系统(255)保存一条注释函数》)。
详细代码可以参考:GitHub
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
手机阅读
公众号关注
知识星球
手机阅读
最新GIS干货
私享圈子