none
表示スケールとDrawingについて RRS feed

  • 質問

  • お世話になります。

    表示スケーリングを100%→125%に変更

    GetDCでデスクトップのデバイスコンテキストを取得し、

    デスクトップのグラフィックスを取得して、画面上に円を描きます。

    IntPtr desktopDC = GetDC( IntPtr.Zero );

    Graphics gd = Graphics.FromHdc( desktopDC );

    gd.FillEllipse( Brushes.Red, x, y, mouseBitmapMem.Width, mouseBitmapMem.Height );

    以下省略

    xを0よりプラス方向へ移動しながら円を描くと、ある位置より円が描かれなくなります。

    マウスカーソルを一緒に移動させているので、画面領域にはあります。

    yも同様で、0よりプラス方向へ移動しながら円を描くと、ある位置より円が描かれなくなります。

    何か、表示する方法な無いでしょうか?

    ご教授の程よろしくお願い致します。

    2018年10月26日 5:14

回答

  • 恐らく仮想DPIが働いてまっている影響だと思われます。アプリケーションが高DPI対応であると宣言することで現象を回避することができると思われます。(ただ、高DPI対応と宣言すると独自にDPIに応じた拡縮対応が必要になりますが。。)

    http://grabacr.net/archives/1132

    上記のサイトを参考に、アプリケーションのマニフェストに Per-Monitor DPI 対応であると宣言してみてはいかがでしょうか?


    2018年10月26日 6:48