VC++开发GIS系统(39)对话框模块的建立

在上一篇文章《VC++开发GIS系统(38)添加响应输入点消息》中已经成功的在malagis的主工程中调用了点模块,并且响应了输入点的消息。既然已经可以响应输入点的命令了,下面要做的工作就是要获取到点的参数,然后就是画点了。

为什么要建立对话核模块

之前的malaBase模块定义了点、线、面的基类,而malaPoints模块则从此基类派生出来,用来负责关于点的相关操作。在所有的操作中都要弹出相应的对话框,不知道大家想过没有如果每个模块都去绘制自己的对话框,那样每个模块都要添加自己的资源,这样资源的管理是分散的,并且不利于分工。所以这里将所有的资源集中管理,这样也可以在一定程度上增加开发效率。比如一个开发工作中可以找一个人专门来画对话框,并且写相应的调用接口。

新建malaDialogs模块

新建dll模块的方法这文章《VC++开发GIS系统(1)使用DLL导出类编程示例》中有过介绍,也可以参考《VC++开发GIS系统(35)点要素的模块建立 | 麻辣GIS

如下图:

添加导出dll的_malaDialogs.h和_malaDialogs.cpp文件

这里要说明一个问题就是,_malaDialogs.h和_malaDialogs.cpp都是新建的文件,并不是原来自带的文件。这里加下划线也是为了以示区别,所有用于导出的头文件和源文件在本工程中都以下划线开头。

_malaDialogs.h
    #ifndef _MALADIALOGS_H_
    #define _MALADIALOGS_H_

    #ifndef _MALADIALOGS_EXPORT
    #define maladialogsdll  __declspec(dllimport)
    #else
    #define maladialogsdll  __declspec(dllexport)
    #endif

    #include "malaStruct.h"

/*
*输入点的对话框
*/
bool maladialogsdll dlgInputPoint(malaPointPro& paramPointPro);

#ifndef _MALADIALOGS_EXPORT
#ifdef _DEBUG
#pragma comment(lib,"malaDialogs.lib")
#else
#pragma comment(lib,"malaDialogs.lib")
#endif
#endif

#endif

这里添加了一个函数dlgInputPoint,是用来弹出设置点属性的对话框的,参数为malaPointPro对象的引用,作用是将点的属性返回给传入的点属性对象。(这里有点绕,后面会胡示例)

_malaDialogs.cpp
#include "stdafx.h"
#include "_malaDialogs.h"
#include "DialogPointInput.h"

/*
* 输入点的对话框实现
*/
bool maladialogsdll dlgInputPoint(malaPointPro& paramPointPro)
{
    
    return true;
}

这里只是一个没有实现的函数,具体的实现过程后面会说。

DLL工程设置

这里的设置要和上文VC++开发GIS系统(34)解决鼠标左键的冲突的设置一样,一定要设置正确!!!如果不知道怎么设置的,可以参考我的开源项目:GitHub,下载下来,用vs打开就可以看到了!

接下来介绍怎么导出一个对话框。

官方60天免费的ArcGIS要不要来一发? VC++开发GIS系统(40)画一个输入点的对话框

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论