|
■No25645 (やじゅ さん) に返信
> タイマーかなんかで、頻繁にWM_PAINTを更新しているのかなー
> マウスカーソルも自前で描画するっていう手もあります、
> そうすれば、ちらつくことはないですけどね。
ああすみません。コードを乗せようとして図表モードにしていました。
public static class IllustClass
{
public static void Paint(string usiro, string hito, int Iti, Graphics g)
{
Bitmap Haikei = new Bitmap(usiro);
Bitmap Mask = new Bitmap(hito);
Bitmap Kyara = new Bitmap(hito);
Rectangle Kage = new Rectangle(Mask.Width / 2, 0, Mask.Width, Mask.Height);
Rectangle HKage = new Rectangle(0, 0, Kyara.Width / 2 - 1, Kyara.Height);
Mask.MakeTransparent(System.Drawing.Color.White);
Kyara.MakeTransparent(System.Drawing.Color.Black);
g.DrawImage(Haikei, 0, 0);
g.DrawImage(Mask, Iti, 511 - Mask.Height, Kage, GraphicsUnit.Pixel);
g.DrawImage(Kyara, Iti, 511 - Kyara.Height, HKage, GraphicsUnit.Pixel);
Haikei.Dispose();
Mask.Dispose();
Kyara.Dispose();
}
}
を外のクラスに作り、呼び出すクラスの中で
private void Form1_Paint(object sender, PaintEventArgs e)
{
IllustClass.Paint(Haikei, Hito, X, CreateGraphics());
}
で描画しています。 ちらつくのはマウスカーソルではなくフォームに描画されるCGのMaskとKyaraの部分です。
タイマー機能は一切使用していません。
何か気づくところはおありでしょうか?
|