前回はビットマップファイルからアイコンを作成しました。

C#でアイコンをつくる方法

アイコンを作成できるのであればカーソルをつくる方法もあるはず。そこで調べてみました。

C#でカーソルを作成する コガネブログ(旧)ではAPI関数のGetIconInfo関数とCreateIconIndirect関数を使ってカーソルをつくる方法が紹介されています。

GetIconInfo関数

これはアイコンまたはマウス カーソルに関する情報を取得するための関数です。第一引数にアイコンまたはマウス カーソルのハンドルを指定、第二引数にICONINFO構造体へのポインタを指定します。するとこの構造体にアイコンやマウスカーソルに関する情報が格納されます。

CreateIconIndirect関数

CreateIconIndirect関数は指定されたICONINFO構造体に基づいて、アイコンやカーソルを作成する関数です。

ではさっそくやってみましょう。

これでカーソルファイルを作成することはできますが、ホットスポットは常に真ん中になってしまいます。ホットスポットを設定できるようにしているのですが、この場合は設定しても意味がありません。

そこでForm1_Loadのときに、もう一回設定します。

これだとうまくいくのですが、だったらアイコンからカーソルを読み込んでもよさそうな・・・・