关键函数:

1.LoadMap

void CTopology::LoadMap()
{
    //m_map.RemoveAllLayers();

    AddLayersBasemap();

    //AddLayerCell();
    AddLayerLine();
    AddLayerStation();

    m_map.ZoomToMaxExtents();
    m_map.Redraw();

}

包含5个函数

1.1 AddLayersBasemap();

  加载底图,暂时用不到

1.2//AddLayerCell();

  添加网图

1.3AddLayerLine();

  界面添加基线参数

1.4AddLayerStation();

  添加基站图层

1.5m_map.ZoomToMaxExtents();

void CMap1::ZoomToMaxExtents()
{
    InvokeHelper(0x1e, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

1.6m_map.Redraw();

void CMap1::Redraw()
{
    InvokeHelper(0x15, DISPATCH_METHOD, VT_EMPTY, NULL, NULL);
}

2.BOOL CTopology::OnInitDialog()  包括1的LoadMap

3.BOOL CTopology::PreTranslateMessage(MSG* pMsg)  包括1的LoadMap

4.很多函数的的初始化都调用了 CPropertyPage::OnInitDialog(); 其中包括前面的函数  CTopology::OnInitDialog() 

其在头文件afxwin.h的定义为:

// Overridables (special message map entries)  翻译为可重写项(特殊消息映射项)
    virtual BOOL OnInitDialog();

意思是初始化函数的作用是虚函数重写,实现对话框初始化。

实现函数是:

BOOL CDialog::OnInitDialog()
{
    // execute dialog RT_DLGINIT resource    执行对话资源
    BOOL bDlgInit;
    if (m_lpDialogInit != NULL)
        bDlgInit = ExecuteDlgInit(m_lpDialogInit);
    else
        bDlgInit = ExecuteDlgInit(m_lpszTemplateName);

    if (!bDlgInit)
    {
        TRACE(traceAppMsg, , "Warning: ExecuteDlgInit failed during dialog init.\n");
        EndDialog(-);
        return FALSE;
    }

    // transfer data into the dialog from member variables
    if (!UpdateData(FALSE))
    {
        TRACE(traceAppMsg, , "Warning: UpdateData failed during dialog init.\n");
        EndDialog(-);
        return FALSE;
    }

    // enable/disable help button automatically
    CWnd* pHelpButton = GetDlgItem(ID_HELP);
    if (pHelpButton != NULL)
        pHelpButton->ShowWindow(AfxHelpEnabled() ? SW_SHOW : SW_HIDE);

    return TRUE;    // set focus to first one
}

主要执行了三项操作:1、资源初始化;2、通过member数据初始化CEdit等,UpdateData(FLASE)3、就是Help按钮的处理,有此按钮就显示。

CPropertyPage 是一个从CDialog派生而来的一个类,基本功能与对话框类一样

关注:

EarthNet.h及对应cpp文件在全局中的重要性。

UI(四)之拓扑图创建的更多相关文章

  1. iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期

    iOS开发UI篇—使用storyboard创建导航控制器以及控制器的生命周期 一.基本过程 新建一个项目,系统默认的主控制器继承自UIViewController,把主控制器两个文件删掉. 在stor ...

  2. iOS开发UI篇—控制器的创建

    iOS开发UI篇—控制器的创建 说明:控制器有三种创建方式,下面一一进行说明. 一.第一种创建方式(使用代码直接创建) 1.创建一个空的IOS项目. 2.为项目添加一个控制器类. 3.直接在代理方法中 ...

  3. HTML5 UI框架Kendo UI Web教程:创建自定义组件(三)

    Kendo UI Web包 含数百个创建HTML5 web app的必备元素,包括UI组件.数据源.验证.一个MVVM框架.主题.模板等.在前面的2篇文章<HTML5 Web app开发工具Ke ...

  4. HTML5 UI框架Kendo UI Web中如何创建自定义组件(二)

    在前面的文章<HTML5 UI框架Kendo UI Web自定义组件(一)>中,对在Kendo UI Web中如何创建自定义组件作出了一些基础讲解,下面将继续前面的内容. 使用一个数据源 ...

  5. MFC原理第四讲.动态创建机制

    MFC原理第四讲.动态创建机制 一丶要学习的知识点以及简介 动态创建是什么意思? 动态创建其实就是跟C++的new一样.都是创建对象.但是规避了C++语法的缺陷. 例如: char * ClassNa ...

  6. “全栈2019”Java第四章:创建第一个Java程序

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  7. 关于如何在 Unity 的 UI 菜单中默认创建出的控件 Raycast Target 属性默认为 false

    关于如何在 Unity 的 UI 菜单中默认创建出的控件 Raycast Target 属性默认为 false 我们在 Unity 中通过 UI 菜单创建的各种控件,比如 Text, Image 等, ...

  8. Community Cloud零基础学习(四)Builder创建自定义的布局

    前几篇讲了Community Cloud权限配置等信息,但是没有太讲过 Community如何进行配置layout,本篇主要描述使用Builder去进行符合需求的Community Layout的构建 ...

  9. IOS第四天(5:创建备份区按钮和判断结果)

    创建备份区按钮和判断结果 /** 创建备选区按钮 */ - (void)createOptionButtons:(HMQuestion *)question { // 问题:每次调用下一题方法时,都会 ...

随机推荐

  1. C# ArrayList的使用方法小总结

    1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...

  2. TRIZ解决问题方法

    个人觉的成功是有规律的,那些成功的人士,都有一套处理事情的秘籍.只要我们的思维方式把那些秘籍融会贯通,并快速执行,我们有一天也会成功的. TRIZ解决问题的5点方法. 1.确定最终目标. 2.列出阻碍 ...

  3. VS - 未能找到与解决方案关联的源代码管理提供程序

    今天打开一个解决方案,Visual Studio出现了提示“未能找到与解决方案关联的源代码管理提供程序”,如图1所示:  图1 错误提示 单击“否”,发现解决方案已经不接受TFS的管理了. 注册表中H ...

  4. 撩课-Java每天5道面试题第19天

    126.Struts2中的拦截器有什么用?列举框架提供的拦截器名称? )拦截器是struts2核心组成部分, 它提供了一种机制,使得开发者 可以定义一个特定的功能模块, 这个模块会在Action执行之 ...

  5. Spring 概念

    spring概念 1.spring是一个开源的轻量级的开源框架. 2.spring的核心主要分为两部分: (1)aop:面向切面编程,扩展功能不是修改源代码实现. (2)ioc:控制反转,比如有一个类 ...

  6. linux新手向-文件的权限及修改

    如果访问或执行一个文件显示Permission deny,一般是权限问题. 使用"ls -l"可以查看该目录下文件的详细信息. 1.读懂权限 第一列就是权限信息,形如: drwxr ...

  7. 【代码笔记】iOS-自定义选择框(高底强弱)

    一,效果图 二,代码. ViewController.h #import <UIKit/UIKit.h> @interface ViewController : UIViewControl ...

  8. 【代码笔记】iOS-计算时间差

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, ...

  9. Java基础笔记(1) 语言 JAVA的历史 Java的搭建环境

    本文除了搭建是重点,其他的都当阅读小说一样去看就好了,不想看可以直接抓住重点,我会改变颜色勾出重点! 英语是人与人交流沟通的重要方式之一.JAVA:是人与计算机沟通交流重要方式之一.我们除了用java ...

  10. Hbase到Solr数据同步及Solr分离实战

    1. 起因 由于历史原因,公司的数据是持久化在HBase中,查询是通过Solr来实现,这这样的设计必然涉及到要把Hbase中的数据实时同步到Solr,但所有的服务都在一个同一个集群及每台机子都安装了很 ...