高DPI显示器越来越普及,软件自然也要适应这个变化,最近实习的时候也遇到了一个关于DPI缩放的问题.因为内部框架的一个控件有BUG,会导致内容的显示出问题,后来实在没办法改成了用Windows Native API来自己定义字体,但是这一写就出问题了,本来在内部开发机100%放缩下好好的,一跑到我自己的WIN10,在2K屏放上缩放125%就字体就显示不正常了(字体变得过大). Window Vista以后的系统可以直接来个SetProcessDpiAwareness来控制程序的DPI问题,但是这…
枚举所有句柄的方法 由于windows并没有给出枚举所有句柄所用到的API,和进程所拥有的句柄相关的只有GetProcessHandleCount这个函数,然而这个函数只能获取到和进程相关的句柄数,不能获取到实际的句柄,要获得句柄,我们必须使用未公开的Native API才可以.   PS:网上有很多关于这类的方法,但几乎都是抄来抄去,很多连编译都过不了就直接放上去了(囧).我整理了一下方法,实测在win10和win7都可以用. NTSTATUS WINAPI NtQuerySystemInfo…
http://en.wikipedia.org/wiki/Native_API Windows 的原生 API 函数通常在系统启动时(这里其他 Windows 组件还不可用).kernel32.dll 中的用以实现系统 API 的例程调用.ntdll.dll 的入口是 LdrInitializeThunk.大部分原生 API 函数通过 ntoskrnl.exe 实现,并通过 ntdll.dll 供用户态使用.有些原生 API 函数直接在用户态实现. 内核通过 SSDT 来处理原生 API 函数的…
本文将介绍 Windows 系统中高 DPI 开发的基础知识.由于涉及到坐标转换,这种转换经常发生在计算的不知不觉中:所以无论你使用哪种 Windows 下的 UI 框架进行开发,你都需要了解这些内容,以免不断踩坑. 本文内容 各种不同的 Windows 桌面 UI 框架 对普通用户而言的 DPI 级别 对 Windows 应用而言的 DPI 感知级别(Dpi Awareness) 不同 UI 框架对 DPI 的支持情况 UWP WPF Windows Forms 其他 UI 框架 混合 DPI…
文章目录:                   1. 引子: 2. Native Application Demo 展示: 3. Native Application 简介: 4. Native Application 有何妙用: 5. MJ0011 关于 Native Application 的文章整理: 6. 互联网上其他关于 Native Application 的文章整理: 7. 小结: 1. 引子: 其实在好久以前就看了 MJ0011 翻译的那个<Native 应用程序详细>系列的文…
[源码下载] 不可或缺 Windows Native (22) - C++: 多重继承, 虚基类 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 多重继承 虚基类 示例1.基类 1CppBase1.h #pragma once #include <string> #include "CppBaseVirtual.h" using namespace std; namespace NativeDll { // virtual 代表 CppBase…
[源码下载] 不可或缺 Windows Native (21) - C++: 继承, 组合, 派生类的构造函数和析构函数, 基类与派生类的转换, 子对象的实例化, 基类成员的隐藏(派生类成员覆盖基类成员) 作者:webabcd 介绍不可或缺 Windows Native 之 C++ 继承 组合 派生类的构造函数和析构函数 基类与派生类的转换 子对象的实例化 基类成员的隐藏(派生类成员覆盖基类成员) 示例1.基类CppAnimal.h #pragma once #include <string>…
[源码下载] 不可或缺 Windows Native (11) - C++: hello c++, C++ 与 C语言的区别小介 作者:webabcd 介绍不可或缺 Windows Native 之 C++ hello c++ C++ 与 C语言的区别小介 示例1.hello c++CppHello.h // 保证文件只被编译一次(即使被多次引用,也只被编译一次) /* * #ifndef 的方式依赖于宏名字不能冲突 * #pragma once 保证同一个文件不会被多次编译,这里的“同一个文件…
node-webkit教程(9)native api 之Tray(托盘) 文/玄魂 目录 node-webkit教程(9)native api 之Tray(托盘) 前言 9.1  Tray简介 9.2  tray的属性 9.3 tray 的构造函数 9.4  初始化一个tray 9.5 删除tray 9.6 小结 前言 几个月前,要开发一个简易的展示应用,要求支持离线播放(桌面应用)和在线播放(web应用). 当时第一想到的是flex,同一套代码(或者只需少量的更改)就可以同时运行在桌面和浏览器…
[源码下载] 不可或缺 Windows Native (9) - C 语言: 动态分配内存,链表,位域 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 动态分配内存 链表 位域 示例cMemory.h #ifndef _MYHEAD_MEMORY_ #define _MYHEAD_MEMORY_ #ifdef __cplusplus extern "C" #endif char *demo_cMemory(); #endif cMemory.c /* *…