投稿者 魔界の仮面弁士  (社会人) 投稿日時 2018/4/2 11:38:25
> VS2017にてCUSファイルを作成し、リソースに登録して利用したいと考えております。
.cur (Windows カーソルファイル)ではなく、
.CUS (AutoCAD ユーザ辞書ファイル)ですか…?

ちなみに正しいカーソルファイルなら、ファイルの先頭 4 バイトは
00, 00, 02, 00 であるはずです。


> 2) cursor = new cursor(My.Resouces.mycus .. <=このような形で設定できないかと考えております)
そのリソースが、Windows カーソル ファイルを表す Byte 配列を返すものであれば
 Cursor = New Cursor(New System.IO.MemoryStream(My.Resources.何某))
のようにすればセットできます。

ただし指定できるカーソルはモノクロに限定されますのでご注意ください。
(カラーカーソルを指定しても、白黒カーソルで描画されます)

https://msdn.microsoft.com/ja-jp/library/system.windows.forms.cursor%28vs.100%29.aspx
》 Cursor クラスでは、アニメーション カーソル (.ani ファイル)、
》 またはカラーのカーソルはサポートされていません。


カラーカーソルや指定したいなら、LoadImage API を用いるか、もしくは、
アイコン形式(.ico)で代用するしかありません。
 Cursor = New Cursor(My.Resources.アイコンリソース.Handle)

ただし Icon 形式でセットした場合は、ホットスポットが画像の中央になりますし、
反転部色の指定などもできません。また、アニメーションカーソルも使えません。



> CUSではHANDLEが無いようです(恥ずかしながらこの辺は全く理解できておりません)。

正攻法で .cur ファイルを扱うのであれば、LoadImage API を使って
アイコンハンドルを得ることになります。この場合、不要になった時点で、
Cursor オブジェクトの Dispose メソッドを呼ぶ作業と、
DestroyCursor API でアイコンハンドルを破棄する作業が必要になります。