2


0

私はカスタムのwin32コントロール/ウィジェットを作成していて、コントロール内の特定の垂直線の上にカーソルを置いたときにカーソルを水平の「分割」記号に変更したいと思います。 IE:この縦線(分割バー)を左右にドラッグしたい(WEST and EAST)。

システムカーソル(OCR_ *)のうち、意味のある唯一のカーソルはOCR_SIZEWEです。 残念ながら、これはウィンドウのサイズを変更するときにシステムが使用する大きくて扱いにくいカーソルです。 代わりに、私は左右に2本の小さな矢印がある、高さ約20ピクセル、幅約3または4ピクセルのカーソルを探しています。

これを簡単に描画してアプリケーションのリソースとして含めることができますが、カーソル自体が非常に普及しているため、何かが欠落していないことを確認する必要がありました。

たとえば、COMドラッグアンドドロップメカニズム(CLSID_DragDropHelper、IDropTargetなど)を使用すると、暗黙的に "ドラッグ"アイコン(ポインタの下の小さなボックス)にアクセスできます。 私はこの男のための明示的なOCR_ *定数を見ませんでした…​ そのため、このスプリッタカーソルが完全に見つからない場合は、それがCOMオブジェクトの一部なのか、それともwin32 libの他の部分なのかと疑問に思います。

2 Answer


4


サードパーティ製ソフトウェアでは一般に公開されていない、さまざまな種類のアイコン、カーソル、および画像がWindows UI全体で使用されています。 もちろん、それらが存在するモジュールをロードして使用することもできますが、システムの更新やアップグレード後もプログラムが機能し続けるという保証は本当にありません。

あなた自身を含めなさい。 最後に必要なことは、小さな小さなカーソルに対して追加の依存関係を追加することです。


0


私はこの正確な問題を抱えていました。 私は簡単な答えを持っていたと思って垂直分割のためにいくつかの古いコードを振り返ったとき、私は自分自身のリソースを構築しロードしたことがわかった。

SetCursor(LoadCursor(ghInstance、 "IDC_SPLITVERT"));

システムのやり方を見つけるためにかなりの時間と労力を費やしたことを漠然と覚えているので、仕事をするのにすぐに利用できるシステムICONがないので、あなたはあなた自身を転がすほうがよいです。

私はこの仕事のためのシステムアイコンがあるのが好きだったので、これは私が間違っていたいと思う時の1つです。