UI(二)之正式过程
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)
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(二)之正式过程的更多相关文章
- Hadoop Mapreduce分区、分组、二次排序过程详解[转]
原文地址:Hadoop Mapreduce分区.分组.二次排序过程详解[转]作者: 徐海蛟 教学用途 1.MapReduce中数据流动 (1)最简单的过程: map - reduce (2) ...
- (转)Java回收对象的标记 和 对象的二次标记过程
Java回收对象的标记 和 对象的二次标记过程 二次标记 针对这个问题,虚拟机的做法是进行两次标记,即第一次标记不在“关系网”中的对象.第二次的话就要先判断该对象有没有实现finalize()方法了, ...
- 浅谈Java回收对象的标记和对象的二次标记过程_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习 一.对象的标记 1.什么是标记?怎么标记? 第一个问题相信大家都知道,标记就是对一些已死的对象打上记号,方便垃圾收集器的 ...
- Android UI 绘制过程浅析(二)onMeasure过程
前言 View的绘制过程分为 measure.layout.draw三个步骤,接下来对这三个步骤逐一进行研究. measure方法的签名 public final void measure(int w ...
- Nutch学习笔记二——抓取过程简析
在上篇学习笔记中http://www.cnblogs.com/huligong1234/p/3464371.html 主要记录Nutch安装及简单运行的过程. 笔记中 通过配置抓取地址http://b ...
- Android在子线程中更新UI(二)
MainActivity如下: package cc.testui2; import android.os.Bundle; import android.view.View; import andro ...
- ALSA声卡驱动的DAPM(二)-建立过程
在上一篇文章中,我们重点介绍了widget.path.route之间的关系及其widget的注册: http://www.cnblogs.com/linhaostudy/p/8509899.html ...
- 知问前端——日历UI(二)
datapicker外观选项 属性 默认值/类型 说明 disabled false/布尔值 禁用日历 numberOfMonths 1/数值 日历中同时显示的月份个数.默认为1,如果设置3就同时显示 ...
- Hadoop Mapreduce分区、分组、二次排序过程详解
转载:http://blog.tianya.cn/m/post.jsp?postId=53271442 1.MapReduce中数据流动 (1)最简单的过程: map - reduce (2)定制了 ...
随机推荐
- Resources in Visual Tracking
这个应该是目前最全的Tracking相关的文章了 一.Surveyand benchmark: 1. PAMI2014:VisualTracking_ An Experimental Sur ...
- C# 指针操作相关
C# 指针操作相关 ========================================= // ** 取int 地址 以指针访问指向值 ** // ...
- Head First Python学习笔记3——持久存储
经过上几章的学习,完成如下任务:读取一个文本文件里的内容,将每一行的内容按“:”分割成两部分,根据分割出第一项判断并分别放入两个列表里,去除首尾空白,在屏幕上打印. # 两个列表用于存储数据man=[ ...
- vue常见知识点整理
什么是 mvvm? MVVM 是 Model-View-ViewModel 的缩写.mvvm 是一种设计思想.Model 层代表数据模型,也可以在 Model 中定义数据修改和操作的业务逻辑:View ...
- 精尽 Kafka 学习指南【优秀学习指南汇总】
1. 视频 炼石成金 <中间件之 Kafka> 一共有 19P .概念部分讲的蛮细的. 尚硅谷 <大数据视频_Kafka视频教程> 一共 24P .讲的还不错的. 书生小四 & ...
- Servlet自动注入Spring容器中的Bean解决方法
很多情况在进行Web开发的时候需要自己手写Servlet来完成某些功能,而servlet有需要注入Spring容器中的某些bean,这是每次都要手动获取比较麻烦,这里有一个解决方案,只需要写一个ser ...
- java:tag 自定义标签应用
一,tag类 1.1 TagMy标签类,格式化当前日期并输出 package com.dkt.tag; import java.io.IOException; import java.text.Sim ...
- 移动端 vconsole 的使用
在微信和app里 我们没有办法使用谷歌提供的开发者工具,可以借助 vconsole 使用步骤如下 1.安装 npm install vconsole 2.app.js里引入 import VCons ...
- css清除浮动之天龙8步
1.父级div定义height. 2.结尾处加空div标签clear:both. 3.父级div定义伪类:after和zoom. 4.父级div定义overflow:hidden. 5.父级div定义 ...
- 使用IntelliJ IDEA配置Erlang开发环境
这篇文章比较详细,感谢作者,拷贝过来做个记录 ————————————————————————————————————————————————————————————————————————————— ...