2018-12-04  09:48:25

1.SetWindowsHookEx  ·钩子实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。

2.LoadSysPolicies  

// This function is not exception safe - will leak a registry key if exceptions are thrown from some places
// To reduce risk of leaks, I've declared the whole function throw(). This despite the fact that its callers have
// no dependency on non-throwing.
BOOL CWinApp::_LoadSysPolicies() throw()
{
	HKEY hkPolicy = NULL;
	DWORD dwValue = 0;
	DWORD dwDataLen = sizeof(dwValue);
	DWORD dwType = 0;

3.extern使用。举个例子

在iniFile中定义:

extern CIniFile*   g_pConfig;  //声明一个全局对象

 同时,有在EarthNetUI.cpp中定义

CIniFile*   g_pConfig = NULL; //全局配置文件对象

  且未包含iniFile头文件,

如果去掉extern,报错重定义。

注释掉上面的话:会有一堆未定义的对象。试验后,include进iniFile之后也可以。

4.OnUpdateLayer

获取基站坐标并构建网图,刷新底图。

5.IMPLEMENT_DYNCREATE

IMPLEMENT_DYNCREATE(CMainFrame, CFrameWndEx)
IMPLEMENT_DYNCREATE(class_name,base_class_name)
说明:
通过DECLARE_DYNCREATE宏来使用IMPLEMENT_DYNCREATE宏,以允许CObject派生类对象在运行时自动建立。主机使用此功能自动建立对象,例如,当它在串行化过程中从磁盘读取一个对象时,它在类工具里加入IMPLEMENT_DYNCREATE宏。若用户使用DECLARE_DYNCREATE和IMPLEMENT_DYNCREATE宏,那么接着使用RUNTIME_CLASS宏和CObject::IsKindOf成员函数以在运行时确定对象类。若declare_dyncreate包含在定义中,那么IMPLEMENT_DYNCREATE必须包含在类工具中。

6.extern CEarthNetUIApp theApp;解释

extern CEarthNetUIApp theApp;
 extern 是说这个变量已在别处定义,
其实就是在 CEarthNetUIApp 中已定义

7.系统学习MFC程序运行结构。

参考:https://blog.csdn.net/aasmfox/article/details/52793213  https://www.cnblogs.com/xzxl/p/7930418.html (基础)  https://www.cnblogs.com/xzxl/category/1123449.html(系统学习)  https://blog.csdn.net/fanwenyuan_fwy/article/details/39926683(整体流程)

构造完theApp这个全局对象后,就进入WinMian函数,它的代码在mfc代码所在目录下的appmodul.cpp文件中,这个函数名为_tWinMain,咋一看与我们在Win32所用的WinMain函数的名字不一样,其实_tWinMain是一个宏,到它的定义处一看,就知道它代表的正是WinMain,它的写法与我们在Win32程序中的WinMain函数是一样的。这个_tWinMain会调用一个函数AfxWinMain,这个函数在文件winmain.cpp中定义,而这个函数会有一条语句pThread->InitInstance(),pThread是一个窗口线程的指针,它的值由函数AfxGetThread()所得,根据多态性的原理,pThread会获得一个指向子类的指针,(子类是EarthNetUI),所以它会调用EarthNetUI类的成员函数EarthNetUI::InitInstance(),子类的这个函数InitInstance()函数是对基类的虚函数重写,会初始化一些程序运行所需要的资源。
---------------------
作者:ljianhui
来源:CSDN
原文:https://blog.csdn.net/ljianhui/article/details/8781991
版权声明:本文为博主原创文章,转载请附上博文链接!

8.开启多虚拟用户

服务器上搜索“用户”

9.工程应用参照

搜:“工程化应用文档”

搜:“使用说明”,主要包括安装过程

搜:“UserManager”,用户管理软件

搜:“杨徉”

搜:“安装”,主要包括安装包

搜:“青岛”有测试文档、“重庆”有一系列数据、

搜:“计量”有大量数据。

搜:“Inertial explorer”高精度软件

搜:“pdf”和“doc”

搜:“开发”

搜:“K508”

最后:

UI需要改的部分:参考站坐标框架,参照基站部分增加放大缩小。

修改基站和添加基站的页面区分开

UI(二)之正式过程的更多相关文章

  1. Hadoop Mapreduce分区、分组、二次排序过程详解[转]

    原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动   (1)最简单的过程:  map - reduce   (2) ...

  2. (转)Java回收对象的标记 和 对象的二次标记过程

    Java回收对象的标记 和 对象的二次标记过程 二次标记 针对这个问题,虚拟机的做法是进行两次标记,即第一次标记不在“关系网”中的对象.第二次的话就要先判断该对象有没有实现finalize()方法了, ...

  3. 浅谈Java回收对象的标记和对象的二次标记过程_java - JAVA

    文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 一.对象的标记 1.什么是标记?怎么标记? 第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器的 ...

  4. Android UI 绘制过程浅析(二)onMeasure过程

    前言 View的绘制过程分为 measure.layout.draw三个步骤,接下来对这三个步骤逐一进行研究. measure方法的签名 public final void measure(int w ...

  5. Nutch学习笔记二——抓取过程简析

    在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程. 笔记中 通过配置抓取地址http://b ...

  6. Android在子线程中更新UI(二)

    MainActivity如下: package cc.testui2; import android.os.Bundle; import android.view.View; import andro ...

  7. ALSA声卡驱动的DAPM(二)-建立过程

    在上一篇文章中,我们重点介绍了widget.path.route之间的关系及其widget的注册: http://www.cnblogs.com/linhaostudy/p/8509899.html ...

  8. 知问前端——日历UI(二)

    datapicker外观选项 属性 默认值/类型 说明 disabled false/布尔值 禁用日历 numberOfMonths 1/数值 日历中同时显示的月份个数.默认为1,如果设置3就同时显示 ...

  9. Hadoop Mapreduce分区、分组、二次排序过程详解

    转载:http://blog.tianya.cn/m/post.jsp?postId=53271442 1.MapReduce中数据流动 (1)最简单的过程:  map - reduce (2)定制了 ...

随机推荐

  1. [Codeforces 925C]Big Secret

    Description 题库链接 给出 \(n\) 个数,让你生成这 \(n\) 个数的一个排列 \(A\) .定义 \(B_i = \bigoplus\limits_{j=1}^i A_j\) , ...

  2. ABP学习入门系列(六)(菜单和分页)

    1,菜单.在最新的abp3.1.2中 菜单栏是在左侧的如下图(上中下的结构),中间部分就是我们要添加菜单的地方. ABP集成了通用的创建和显示菜单的方式,在展示层web下的appstart文件夹下找到 ...

  3. [Linux] Linux系统(登陆、退出、修密码)

    登录linux系统,就是输入用户名,密码,回车就可以了 修改密码 使用命令passwd,输入新密码和确认密码,密码的规则要求较严,多试几次 使用命令whoami,查看当前用户信息 使用命令users或 ...

  4. 使用crontab调度任务

    复杂的.分布式的.工作流式的调度可以通过azkaban来进行调度,除了执行调度任务之外,它还能进行定时调度.而对于简单的服务器任务,如执行一个小脚本,发送邮件等,可以使用crontab命令直接进行,在 ...

  5. JDK安装与环境变量全过程-鹏鹏

    首先先讲下JDK的含义以及用处: JDK是 Java 语言的软件开发工具包,主要用于移动设备.嵌入式设备上的java应用程序.JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Jav ...

  6. centos7下更新firefox

    下载最新版firefox 1.点击三条线-问号-firefox帮助-安装和更新-linux安装-系统和语言下载 保存到指定目录,比如home下 2.解压 tar xjf firefox-*.tar.b ...

  7. LeetCode CombinationSum II

    class Solution { public: vector<vector<int> > combinationSum2(vector<int> &num ...

  8. javaweb jdbc实现简单的数据库基本操作和servlet的作用域以及jsp标签的使用

    一,工具类,分页类和连接数据库jdbc package com.direct.util; import java.sql.Connection; import java.sql.DriverManag ...

  9. windows下生成上传git时需要用的SSH密钥

    参考:Windows上传代码到Github 打开“Git Bash” 输入 ssh-keygen -C "your email" -t rsa 出现如下结果: 成功后,信息里会显示 ...

  10. adb调试桥(5037端口)

    path里添加路径:../platform 查看设备 adb devices 杀死adb:adb kill -server 启动adb:adb start- server adb不能启动解决办法: 1 ...