康臭一康臭二在前一次线上的时候,用来在微信里批阅图片,表现得很不错。左手CTRL+1、CTRL+2等切换自如,右手用手写笔写字画勾,很舒服。
因为比较匆忙的原因,电脑里没有保存源码——这还是我2020年8月用delphi 7写的——幸亏当时有人需要,我就把它放在蓝奏云上了——这些天又把它下载回来——蓝奏云做得绝对比中国知网有良心,最起码作者自己下载自己的作品,有权限,且不收费。
匆匆那年,是个Think Pad联想阉割版,屏幕1024*768不用动,缩放100%。后来Think Pad实在慢得让人无法忍受,已经远远超出了影响生产力的程度;只好自掏腰包买了一个DELL游戏本。但这DELL的屏幕是1920*1080,不缩放到125%会把眼球直接抵在屏幕上摩擦。于是康臭一康臭二出现问题了。
打开康臭一康臭二,准备按下CTRL+1:
按下CTRL+1后,参考线没了!
于是想解决办法。一个办法是自动判断,程序起来后,还没show窗体时就把系统的缩放率Scale拿到,然后每次CTRL+1时,把Scale除在HDC上。这么做显然要琢磨好多东西。另一个办法,是直接拿到Scale后,强制问用户:改成100%,改不改?不改不和你玩了。
就找了找代码,别碰注册表,直接拿像素判断:
procedure TForm1.Button1Click(Sender: TObject);
var
dc: HDC;
Scale: Double;
begin
dc := GetDC(0);
Scale := GetDeviceCaps(dc, LOGPIXELSX) / 0.96 / 100;
if (Scale > 1) then
begin
Showmessage('当前屏幕缩放设置为 ' + FloatToStr(Scale) + #10#13 +
'去设置成100%吧,不和你玩了也!');
Application.Terminate;
end;
end;
运行:
联系客服