麻辣GIS微信平台

更多 GIS 干货

微信关注不错过

VC++开发GIS系统(256)输入注释之类实现

前文《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;
    }
}

解释一下思路。

  1. 构造输入注释的类的时候调用getLabelPro 函数,(参考:VC++开发GIS系统(249)设置注释属性对话框),设置并记录注释的输入参数。
  2. 点击左键,在点击位置绘制注释(参考:《VC++开发GIS系统(250)绘制文字的函数》),并保存文件(参考:《VC++开发GIS系统(255)保存一条注释函数》)。

详细代码可以参考:GitHub

相关阅读

麻辣GIS-Sailor

作者:

GIS爱好者,学GIS,更爱玩GIS。

声明

1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。

2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。

手机阅读
公众号关注
知识星球
手机阅读
麻辣GIS微信公众号关注
最新GIS干货
关注麻辣GIS知识星球
私享圈子

留言板(小编看到第一时间回复)