マウスカーソルの制御


Quartz Display Services には、マウスカーソルを制御する関数が含まれています。たとえば、あなたのアプリケーションがフルスクリーンモードの場合、マウスカーソルを隠したり、カーソルを別の位置に移動したり、マウスの動きをカーソル位置から切り離したりできます。この記事では、これらのサービスを提供する関数について簡単に説明します。これらの関数を使用するには、あなたのアプリケーションはフォアグラウンドでなければなりません。


どのディスプレイでもマウスカーソルを隠したり表示したりするには、CGDisplayHideCursor 関数と CGDisplayShowCursor 関数を使用します。これらの関数は、ディスプレイ ID をパラメータとして取りますが、ディスプレイ ID は使用されません。これらの関数への呼び出しはバランスをとる必要があります。Quartz は、カーソルを表示するためには、隠しカーソルカウントをゼロでなければならないように維持します。


Quartz は、アプリケーションがフォアグラウンドにある間にマウスの動きをカーソルの位置から切り離す為に便利な関数を提供します。 関数 CGAssociateMouseAndMouseCursorPositionfalse を渡すことで、マウスの移動によるカーソル位置の変更を防ぐことができます。効果を元に戻すには true を渡します。


CGDisplayMoveCursorToPoint 関数を呼び出すことによって、特定のディスプレイ上でマウスカーソルの位置を変更することができます。この関数は、ディスプレイ ID とポイントの 2 つのパラメータをとります。ポイントの位置は、ディスプレイの原点または左上隅への相対です。また、CGWarpMouseCursorPosition 関数を呼び出すことによって、マウスカーソルの位置を任意のディスプレイに変更することもできます。この関数は、単一のパラメータ、グローバルディスプレイ座標のポイントをとります。これらの関数のいずれかを呼び出すと、マウスイベントは生成されません。


リスト 1 は、カーソルを隠し、マウスの動きをカーソルから切り離し、それをメインディスプレイの原点に移動し、完了したらカーソルとマウスを復元する方法を示しています。


リスト 1 マウスカーソルの制御


CGDisplayHideCursor (kCGNullDirectDisplay);
CGAssociateMouseAndMouseCursorPosition (false);
CGDisplayMoveCursorToPoint (kCGDirectMainDisplay, CGPointZero);
/* perform your application’s main loop */
CGAssociateMouseAndMouseCursorPosition (true);
CGDisplayShowCursor (kCGNullDirectDisplay);


前の章 次の章



目次
Xcode の新機能

  • Quartz Display Services プログラミング入門
  • この文書の構成
  • Quartz ディスプレイサービスの概要
  • ディスプレイの状態
    ディスプレイ ID
    ディスプレイモード(OS X v10.6 以降)
    ディスプレイモード(OS X v10.5)
    ディスプレイの配置
    ディスプレイのミラーリング
  • ディスプレイに関する情報の取得
  • ディスプレイ状態情報の取得(OS X v10.6 以降)
    ディスプレイ状態情報の取得(OS X v10.5)
    ディスプレイモード情報の取得(OS X v10.6 以降)
    ディスプレイモード情報の取得(OS X v10.5)
  • ディスプレイのキャプチャ
  • ディスプレイモードの変更(OS X v10.6以降)
  • 使用可能なモードからベストのモードを見つける
  • ディスプレイモードの変更(OS X v10.5)
  • メインディスプレイのモードを設定
  • 処理(Transaction) を使用したディスプレイの構成
  • フェード効果の使用
  • すべてのディスプレイをフェードする
    単一のディスプレイをフェードする
  • 構成変更の通知
  • マウスカーソルの制御
  • 文書改定履歴












  • トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)












    トップへ(Quartz Display Services)