0

私は win32 でボーダー コントロールを実装しており、そのボーダーにさまざまなスタイルを実装しています。境界線を描画するために単純な MoveTo() および LineTo() コマンドを使用しています。私の問題は、境界線に新しいスタイルを選択すると、現在描画されている境界線の上に描画が開始されることです。新しいキャンバスを作成するには、ウィンドウを更新/再描画する必要があることを理解しています。この目的を達成するために、今のところ InvalidateRect() を使用しています。しかし、ボーダー コントロール ウィンドウに (子ウィンドウとして) 関連付けられた他のウィンドウがある場合、子ウィンドウにどのような影響がありますか? このウィンドウのすべてを再描画する必要がありますか?

第二に、とにかく GDI 領域 (HRGN) 内に線を引くことはできますか? これまでのところ、私が遭遇したのは、その HRGN を塗りつぶしの色で塗りつぶす方法だけです。とにかく、その特定の HRGN オブジェクトに関連付けられた HDC を取得できますか??

4

1 に答える 1

0

これは問題ではありません。描画したものはすべて、子ウィンドウの四角形によって自動的に切り取られます。追加のコードは必要ありません。基礎となるウィンドウ スタイル フラグは WS_CLIPCHILDREN です。

リージョンに線を描画することも、デバイス コンテキストに関連付けることもできません。領域を描画してから、ペイント メッセージ ハンドラーで線を描画する以外に。あなたはおそらくパスに興味があります。MSDN ドキュメントはここから始まります

于 2012-05-15T05:49:14.733 に答える