3

マウスポインタの横にテキストを含むビットマップをレンダリングするカスタム開発のマウスカーソルを使用しています。通常、これはうまく機能しています。ただし、一部のグラフィックカード(geforce 9500を含む)では、nvidiaコントロールパネルを使用してディスプレイをポートレートモードに回転させると、テキストが部分的にトリミングされ、最初の文字の半分だけが表示されます。ただし、部分的に表示されている文字は正しく回転しているようです。

これは既知の問題ですか?誰もがこれがどのように起こっているのか考えを持っていますか?(コードの関連部分を貼り付けてみますが、少しだけですが)Windows 7を使用しており、c#でコードを記述しています。

編集1:何か面白いものを見つけました-ポインタの横に書いた文字列が短い場合(例「Aa」)は壊れますが、それより長い場合(「Aaa」など)は回転してうまく機能します。

Edit2:問題のあるコードは次のとおりです。

int width = cursor.Size.Width + textSize.Width + scrollTokenSize.Width - 10;
int height = cursor.Size.Height;
bitmap = new Bitmap(width, height);

このビットマップはカーソルの横に設定されます。問題(私は思う)は、高さと幅が異なるサイズであり、ビットマップに最大値のみを2回使用させると、テキストがポインターから離れすぎて表示されることです(ただし、すべて表示されているはずです)言及)。アイデア?

4

1 に答える 1

1

興味のある人のために、私は非正方形のビットマップを透明な正方形のビットマップに追加することでこれを解決することができました。グラフィックカードは、マウスポインタが正方形であると想定していると思います。

于 2012-11-14T12:04:00.940 に答える