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打开就可以看到了!
接下来介绍怎么导出一个对话框。
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。