ささいなXNA「ゲーム」でカーソルをIBeamに変更するには、次のように更新します。
protected override void Update(GameTime gameTime)
{
// Allows the game to exit
if (GamePad.GetState(PlayerIndex.One).Buttons.Back == ButtonState.Pressed)
this.Exit();
// TODO: Add your update logic here
if (Keyboard.GetState().IsKeyDown(Keys.A))
{
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.Arrow;
}
if (Keyboard.GetState().IsKeyDown(Keys.I))
{
System.Windows.Forms.Cursor.Current = System.Windows.Forms.Cursors.IBeam;
}
base.Update(gameTime);
}
'I'を押すと、マウスはIBeamカーソルに変わりますが、マウスを動かすとすぐに矢印に戻ります。デフォルトのWindowsIBeamのままにする方法はありますか、それともカスタムカーソルを作成して追跡する必要がありますか?
[編集]カーソルを1フレームごとに設定すると、マウスを動かしたときにカーソルがちらつくことも指摘しておく必要があります。XNA(またはWindows)は、フレームごとにカーソルを矢印に内部的にリセットしているようですか?