ネイティブ ウィンドウでの Windows フォーム コントロールのホスト、ウィンドウ クラス = “静的”
-
11-09-2019 - |
質問
Windows フォーム コントロールをネイティブ アプリケーション (Visual Studio) に提供する必要があります。
そこで、コントロールを作成し、そのハンドルを提供します。
次に、Spy++ を使用してネイティブ ウィンドウを確認すると、コントロールがウィンドウ クラス = "Static" およびタイトル "This is a static!" の追加の 'コントロール' でラップされていることがわかります。それにはいくつかの問題があります。
- ホスティング ウィンドウによってコントロールに送信されたサイズ変更イベントは、「静的」に再送信する必要があるため、そのサイズも変更されます (そうしないと、コントロールが静的サイズ内に部分的に隠れてしまいます)。
- 静電気はありません
WS_EX_CONTROLPARENT
, 、 その原因 KB149501 と表示されます (つまり、アプリケーション全体がフォーカスを失った状態でハングします)。 - 申請したら
WS_EX_CONTROLPARENT
, 、静的内のリストボックスは再描画を停止します。
何か間違ったことをしたと思いますが、何が間違っているのかわかりません。static は C# キーワードでもあるため、WinForms の結果に頻繁に表示されるため、Google は役に立ちません。
解決
私は主に真のDoubleBuffered =を使用して再描画の問題を解決したので、おそらくこれはそれです。
私はまだ私が何か間違ったことをやっていると思うが、少なくとも、それが機能するようになりました。
所属していません StackOverflow