Framework

MFC入门之 Ribbon界面设计

这一生的挚爱 提交于 2020-11-20 01:42:57
Ribbon是类似于office2007样 式的界面,它替代了传统的MFC程序里的菜单和工具栏MFC默认生成的Ribbon功能少,需要我们自己添加一些控件和图片等元素使界面好看。看下面的一个界面,是示例里的   看到它与默认Ribbon样式的区别:   工具自己设计,MFC提供的Ribbon控件基本都用上了;图片(位图)也是原资源没有的   那到底怎么实现呢?   可以注意到的是:类别由面板组成,面板由按钮或文本编辑框或进度条等控件组成   按钮都是有图片和文字组成,按钮通过按钮集合可以产生类似于下拉菜单的作用   观察这些按钮,可以发现有两类:小图标的按钮和大图标的按钮   小图标:像素16×16,32位   大图标:像素32×32,32位   关键问题是如何制作这些BitMap以及如何将他们加载到Ribbon界面中。 有两个方法: 一是自己动手制作,二是利用现成的组件ToolKit Pro,BCGControlBar,QitanRibbon后文会有详细介绍!  一、 制作工具栏BitMap   在网上找了IconWorkshop这个软件,很好用,可以制作icon图标,也可以用多个icon图标制作位图BitMap。这正是我想要的功能   自己不会美工,所以在网上找了些素材,做了以下一个工具栏样的32×32像素32位的BitMap   看到木有,跟程序默认生成的几个位图很像啊

[ASP.NET]Net Framework环境问题的一种修复方案

六眼飞鱼酱① 提交于 2020-11-19 02:52:07
一、情况介绍 造价软件基于.net framework 4.0开发,要成功运行需要在目标电脑上安装4.0版本以上的framework。一般情况下xp是没有的,win7系列自带3.5,都需要手动安装4.0;;win10就是自带4.7了,但某些精简过的win10的4.7的文件是缺失的。 这些精简过的win10系统,比如一些纯净版或者ghost系统;或者装了一些安全软件的win7、xp,哪怕在注册表里看到是高于4.0版本的,造价软件运行起来之后也是磕磕绊绊的,有时报异常、有时软件无响应,有时需要退出某些安全软件才能运行。一般的处理方法是首先清空系统中的framework然后重新安装,这需要重启数次,而且卸载安装可能还会失败,处理起来耗时还不一定能解决。 甚至在win10系统中,自带的4.7采用清理工具还无法清除,导致无法安装较低版本的framework。 二、尝试解决 根据某些客户电脑上运行某些安全软件,壁纸软件就会导致软件无响应问题,在开发电脑上安装并尝试重现,最终发现无法复现。 既然开发电脑不重现,那就只能在客户电脑上模拟成开发环境调试了 https://www.microsoft.com/net/download/visual-studio-sdks 先安装一个framework 4.6的开发包,就发现问题解决不再复现。 之后搜索了下,开发包还有一个好处

跨平台技术演进及Flutter未来

扶醉桌前 提交于 2020-11-18 18:28:09
一、移动跨平台技术演进 1. 引言 移动互联网发展十余年,伴随着 Android、iOS 等智能手机的不断普及,移动端已逐步取代 PC 端,成为兵家必争之地。正所谓“得移动端者得天下”,移动端已成为互联网领域最大的流量分发入口,一大批互联网公司正是在这大趋势下崛起。 2. 为什么需要跨平台技术 伴随着移动互联网的高速发展,公司间竞争越来越激烈,如何将好想法快速落地、快速试错,成为备受关注的问题。提升研发效率、缩短研发周期,保障产品快速试错并能快速迭代新功能,让新产品新功能以最快的速度同时抵达 Android、iOS 等多端用户。 众所周知,Android 应用采用 Java 或 Kotlin 编写,iOS 应用采用 Objective-C 或 Swift 编写,Web 端采用 HTML /CSS/JavaScript 编写。当需要开发支持多端的应用,每一端都需要独立研发、测试,一直到上线,以及后续的维护工作,工作量成倍增涨,势必延长研发周期。 为了解决多端独立开发的问题,跨平台技术便应运而生,各大互联网公司为此都投入大量人力,于是出现了各种跨平台技术框架, 面对移动领域的跨平台技术方案的层出不穷,又该如何做技术选型呢? 3. 移动端技术选型 作为移动端的跨端技术方案,所关注无外乎以下这4个方面:研发效率、动态性、多端一致性、性能体验。 研发效率:最大化代码复用

Flutter-Android-Embedder启动流程

谁说胖子不能爱 提交于 2020-11-18 17:55:31
概述 Flutter的启动包括Embedder、Engine、Framework三部分,本文仅描述Android平台的Embdder模块的启动流程。Flutter通常通过启动一个FlutterActivity启动,纯Flutter App则通过FlutterApplication启动。本文以后一种情况为例分析。 FlutterApplication#onCreate // io/flutter/app/FlutterApplication.java @Override @CallSuper public void onCreate() { super.onCreate(); FlutterInjector.instance().flutterLoader().startInitialization(this); } 实际是调用 FlutterLoader#startInitialization 进行初始化。 FlutterLoader#startInitialization public void startInitialization(@NonNull Context applicationContext) { startInitialization(applicationContext, new Settings()); } public void

知乎1578赞:Android 中为什么需要 Handler?

我们两清 提交于 2020-11-18 17:43:45
要理解 Handler,就得先理解 Android 的 Message 机制. 这里以用户滑动微信朋友圈为例,讲解一下 Android 的 Message 机制是怎么运行的,Message 机制中的各个核心组件都做了什么 Message 产生 用户滑动屏幕,产生了一系列 input 事件 (一个 Down 事件,若干个 Move 事件,一个 Up 事件),这些事件被系统包装成了一系列 Message(一个 Down Message,若干个 Move Message,一个 Up Message) Message 是用来传递信息的,上述 Message 中就包含了这些 input 事件的信息,比如 x 坐标,y 坐标。 MessageQueue 存放 Message Message 产生后,有一个问题就是这些 Message 怎么发给应用?我要滑动朋友圈,那么这些个 Message 就得传给微信,让微信去处理,微信将这些事件给到朋友圈的 List 控件,让 List 产生新内容,并且实现上下滑动。 首先想到的能不能直接把这些 Message 给到朋友圈的 List 控件(SystemServer 可以直接 Binder 发给 List 控件),可以是可以,但是麻烦;SystemServer 直接给朋友圈的 List 控件发 input message,那 SystemServer

CVPR2020丨SPSR:基于梯度指导的结构保留超分辨率方法

痞子三分冷 提交于 2020-11-17 03:55:59
点击上方“ 迈微AI研习社 ”,选择“ 星标★ ”公众号 重磅干货,第一时间送达 作者 | Alan 授权转载自 | https://zhuanlan.zhihu.com/p/121721537 CVPR2020:Structure-Preserving Super Resolution with Gradient Guidance 论文:https://arxiv.org/pdf/2003.13081.pdf 代码:https://github.com/Maclory/SPSR 我们知道,结构信息在超分辨率问题中相当重要。目前已经有很多感知驱动的方法(SRGAN、ESRGAN、EnhanceNet)使用 GAN Loss 和 Perceptual Loss 生成较为逼真,且细节丰富的超分图像。然而,在这些恢复的图像中总是存在一些我们并不希望它出现的结构变形,如下图1所示。 仅仅使用 L1 Loss 的RCAN生成图像的轮廓边缘虽然相对规则,但是整体较为模糊。SRGAN、ESRGAN、NatSR等生成的图像则存在明显的结构变形。 图 1. 局部图像细节对比 因此,论文提出了结构保留超分辨率方法 SPSR,以缓解结构变形的同时,保留 GAN 方法生成丰富纹理细节的优点。特别的是,论文使用了图像的梯度信息去指导图像复原。 如何通过梯度信息指导图像复原? 主要有两点: 1.SPSR

3分钟短文:Laravel模板,也支持一般编程语言的语法结构了

北城以北 提交于 2020-11-15 20:21:24
引言 从控制器内组装好的数据渲染到视图文件,上一章我们演示了简单的单变量数值访问。 laravel的模板系统,还提供了很多常用的编程语言的语法结构,其实是PHP的变体, 可以让编程人员更好地掌控HTML输出。 本期就来说说模板内的程序结构的高阶用法。 转义 or 不转义 首先是单变量的值,我们在控制器内有可能并没有为该变量赋值,或者并未声明和传递该变量, 在模板内直接引用,会抛出 变量未定义 的异常,造成无法渲染。 laravel给了一个简洁的判空的方式,就是 or 语法,很直观,代码用起来如下: Welcome , {{ $name or 'Laravel Member' }} ! 我们上一章介绍过,使用双大括号会在模板解析的时候,生成下面的PHP代码: <? php echo $variable ; ?> 这对常规变量无害,可是对于非法的操作,比如是用户输入的内容,直接展示的话,有可能造成文件和数据库等等的风险, 所以对变量要做一次转义,将其内容原封不动地用字符串的方式展现出来,这样做其实非常有必要。 对变量结果进行转义,使用如下的语法: { !! 'My list <script>alert("spam spam spam!")</script>' !! } 大家看到了,如果上面的内容直接输出到HTML,就会触发js的注入。可是,使用转义之后,就是原文输出,不会被浏览器解析。

Cocos Creator 通用框架设计 —— 资源管理

情到浓时终转凉″ 提交于 2020-11-15 18:17:32
如果你想使用Cocos Creator制作一些规模稍大的游戏,那么资源管理是必须解决的问题,随着游戏的进行,你可能会发现游戏的内存占用只升不降,哪怕你当前只用到了极少的资源,并且有使用cc.loader.release来释放之前加载的资源,但之前使用过的大部分资源都会留在内存中!为什么会这样呢? cocos creator 资源管理存在的问题 资源管理主要解决3个问题,资源加载,资源查找(使用),资源释放。这里要讨论的主要是资源释放的问题,这个问题看上去非常简单,在Cocos2d-x中确实也很简单,但在js中变得复杂了起来,因为难以跟踪一个资源是否可以被释放。 在Cocos2d-x中我们使用引用计数,在引用计数为0的时候释放资源,维护好引用计数即可,而且在Cocos2d-x中我们对资源的管理是比较分散的,引擎层面只提供如TextureCache、AudioManager之类的单例来管理某种特定的资源,大多数的资源都需要我们自己去管理,而在cocos creator中,我们的资源统一由cc.loader来管理,大量使用prefab,prefab与各种资源复杂的引用关系增加了资源管理的难度。 资源依赖 资源A可能依赖资源B、C、D,而资源D又依赖资源E,这是非常常见的一种资源依赖情况,如果我们使用 cc.loader.loadRes("A") 加载资源A,B~E都会被加载进来

android monkey压力测试(二)

假如想象 提交于 2020-11-15 18:17:10
一、什么是Monkey 顾名思义,Monkey就是猴子, Monkey测试,就像一只猴子, 在电脑面前,乱敲键盘在测试。 猴子什么都不懂, 只知道乱敲 通过Monkey程序模拟用户触摸屏幕、滑动Trackball、 按键等操作来对设备上的程序进行压力测试,检测程序多久的时间会发生异常。 二、Monkey简介 monkey官方文档 (需要翻墙) monkey源码 monkey程序由Android系统自带,使用java语言写成,在Android文件系统中存放路径:/system/framework/monkey.jar; monkey.jar程序由一个名为“monkey”等shell脚本来启动执行,shell脚本在Android文件系统中的存放路径:/system/bin/monkey; 因为monkey测试是一种为了测试软件的稳定性、健壮性(是否会发生闪退、崩溃和无响应问题)的快速有效方法 基本语法 $adb shell monkey [option] <event-count> 如果不指定options,即类似于使用adb shell monkey 1000,那么将会对整个系统中安装的package发送事件流,换种说法就是对整个Android系统进行monkey压力测试 这是一个对指定应用(Android自带的系统设置应用)进行monkey测试的栗子,发送的事件流数量为1000:

win7/win10下KiWi Syslog服务器的安装与配置

我的梦境 提交于 2020-11-12 23:24:48
文章转自:https://www.cr173.com/soft/20677.html 功能介绍: Kiwi Syslog Server是最值得信赖的基于 Windows 的 syslog 服务器解决方案之一。这些产品的安装与配置非常简单,提供功能丰富的解决方案来接收、记录、显示并转发各种网络设备(例如路由器、交换机、Unix 主机以及其它启用 syslog 的设备)的 syslog 消息。 •Kiwi Syslog Server接收并管理您网络设备中的 syslog 消息 •同时显示多个窗口中的 syslog 消息 •Kiwi Syslog Server按主机名称、主机 IP 地址、优先级、消息文本关键字或时间来过滤消息 •提供基于消息内容、消息量或元数据的高级警报 •Kiwi Syslog Server自动执行基于警报的操作,包括发送邮件、转发消息、触发声音警报、发送 SNMP 陷阱消息与寻呼 IT 人员 •生成趋势分析图表与电子邮件 syslog 流量统计 以下是KiWi syslog服务端安装配置教程(Win10亲测可用) ============================================================================================ 首先,所需文件有以下2个: 1、Kiwi_Syslog_Server