1

GUI用の優れたスプリッターコードをいくつか入手しましたが、適切な強調表示を行うために必要なペン/ブラシ/何でも入手できません。Visual Studio 10では、スプリッターバーをドラッグする方法をご存知でしょう。また、マウスボタンを離したときに分割が発生する場所を示す美しい黒い透明なバーがあります。これが写真です:http://www.freeimgshost.com/fullsize/efmcxyyu1wbyb1r7mz0.png

GDIとC++のみを使用してその黒いハイライトバーを実現するにはどうすればよいですか?

4

2 に答える 2

3

Visual Studio UIはWPFで実装されているため、スプリッターバーは半透明の塗りつぶされた長方形にすぎないと思います。

ただし、GDIは透明性のサポートがかなり不十分です。

半透明の常に上にあるレイヤードウィンドウを使用しても、同じ効果を得ることができます。何も塗り直すことを心配する必要がないので、これは簡単な解決策です。ウィンドウを動かすだけです。

別の質問に対するこの回答には、(別の目的で)そのようなウィンドウを作成するコードが含まれています。

于 2012-07-02T09:19:51.013 に答える
1

これはおそらく、の正しい使用法の1つですLockWindowUpdate()

マウスダウンでウィンドウをロックし、ドラッグバーの描画を直接開始します。マウスがまだキャプチャされているため、ドラッグバーは引き続きマウス通知を受け取ります。マウスアップ時に、ウィンドウのロックを解除し、サイズを変更して、描画を通常どおり続行します。

于 2012-07-02T10:39:30.250 に答える