gpt4 book ai didi

windows - 为什么我在纵向显示器设置上有鼠标光标伪影?

转载 作者:可可西里 更新时间:2023-11-01 09:33:44 26 4
gpt4 key购买 nike

我有一个 delphi 应用程序,它使用 LoadImage(Hinstance, PWideChar(Name), IMAGE_CURSOR, 0, 0, LR_DEFAULTCOLOR); 加载自定义鼠标光标。这些自定义光标的大小为 32x32、48x48 或 64x64,具体取决于用户的选择。如果我加载自定义光标并将鼠标移到应用程序之外,光标将更改为 Windows 默认(箭头)光标。但是这个箭头现在在光标的底部有瑕疵。此外,工件会根据先前加载的自定义光标及其包含在例如中的大小而变化。 64x64 矩形。

我试图截取屏幕截图,但上面没有出现伪影。所以我画了这个现象来给你一个线索它看起来像什么。

enter image description here

到目前为止我发现了什么。必须应用以下列表中的所有要点:

  • 只有当自定义鼠标光标大于 32x32 时才会发生。
  • 它只发生在纵向模式的显示器设置上。
  • 仅当鼠标阴影处于事件状态时才会发生。
  • 只有在鼠标轨迹关闭时才会发生。
  • 只有在拥有 NVIDIA 显卡时才会发生这种情况。
  • 仅当 DPI 设置为 100% 时才会发生。

以下代码示例显示了光标的问题。新建一个VCL Form工程,添加到对应单元即可。

unit Unit6;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs;

const
crMyCursor = 1;

type
TForm6 = class(TForm)
procedure FormShow(Sender: TObject);
end;

var
Form6: TForm6;

implementation

{$R *.dfm}

procedure TForm6.FormShow(Sender: TObject);
begin
Screen.Cursors[crMyCursor] := LoadImage(Hinstance, PWideChar('MAINICON'), IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR);
Screen.Cursor := crMyCursor;
end;

end.

更新:它曾经是与 NVIDIA 显卡相关的问题。以下显卡出现伪影:GeForce 9600 GT、GeForce GT 630 和 GeForce GTX 660。我还测试了 Intel 板载显卡和 ATI 显卡,这些设置没有出现伪影。

那么谁能告诉我为什么会出现这些工件以及我如何摆脱它们?

最佳答案

这是由于图形驱动程序中的错误和 similar things occur for some ATI users还有。
但是,这不是 Delphi 或自定义鼠标的问题。

我遇到了完全相同的现象(鼠标光标下有奇怪的线条伪影),但就在桌面上,在我这边,纵向翻转的显示器(注意我运行的是 gtx680,所以你的列表不是'也不详尽)。

问题与阴影有关。 answers here工作,但显然,如果您喜欢阴影,则当前最佳答案(将显示器翻转回横向,然后在 Keep these settings? 提示处恢复)会更适合您。

关于windows - 为什么我在纵向显示器设置上有鼠标光标伪影?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26910546/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com