如今显示器的分辨率是越来越大,2K,4K分辨率的都很常见了。在高分屏下,我们必须对DPI进行缩放,要不显示字体会很小。一般系统默认DPI缩放级别为100%。如果改成150%,200%或者其他,我们会发现部分程序界面显示错乱,这是因为这些程序没有对高DPI进行处理。在VS中编写程序时可以很容易的做到支持DPI。
第一种方法是修改程序的Mainfest,如下图,我用的是VS2015,在属性页的Mainfest Tool中进行修改。
第二种方法是使用SetProcessDpiAwareness函数:
1 2 3 |
HRESULT WINAPI SetProcessDpiAwareness( _In_ PROCESS_DPI_AWARENESS value ); |
传入的参数有三个取值选择:
1 2 3 4 5 |
typedef enum _PROCESS_DPI_AWARENESS { PROCESS_DPI_UNAWARE = 0, PROCESS_SYSTEM_DPI_AWARE = 1, PROCESS_PER_MONITOR_DPI_AWARE = 2 } PROCESS_DPI_AWARENESS; |
对应前面VS设置中的三个选项,具体使用可以参考SetProcessDpiAwareness function
文章评论