|
本帖最后由 阿弥陀佛 于 2022-4-25 08:54 编辑
dpi感知的api应该在窗口生成之前调用,窗口生成之后dpi感知模式就不能 改了。所以你可以在_SUB WIN1之前调用。然后窗口状态添加-scale:DPI 指定缩放DPI。DPI可以自己指定,或者可以用GetDeviceCaps函数获取显示器DPI。举个栗子
- @TEAM ENVI^ EnviMode=1| ENVI^ ForceLocal=1
- CALL $--ret:&DPIA user32.dll,SetProcessDPIAware //设置dpi感知模式
- CALL $--ret:&hdc user32.dll,GetDC,#0 //获取显示器的句柄
- CALL $--ret:&LOGPIXELSX Gdi32.dll,GetDeviceCaps,#%hdc%,#88 //获取显示器横向DPI,LOGPIXELSX为#88,纵向LOGPIXELSY为#90,两个值是一样的。
- CALL @WIN1
- _SUB WIN1,W492H254,新窗口1,,,,,-scale:%&LOGPIXELSX%
- ENVI @WIN1.Font=12:微软雅黑
- LABE LABE1,L100T50W160H30,标签测试测试测试,,
- ITEM ITEM1,L100T80W80H30,按钮测试,,
- _END
复制代码
|
|