質問

私は、WS_EX_LAYERED拡張スタイルセットを持つ階層形式を持っています。 CreateWindowex(...)API関数を使用して、子供「編集」コントロールを作成しました。それがそこにあるが描かれていない対照は塗られていない。

トップウィンドウでWS_EX_LAYEREDスタイルを使用するときは、WM_PAINTメッセージはもう送信されず、子コントロールもそれを受け取らないので、その理由が表示されないようになります。

フォームの不透明度が255に設定され、背景はUpdateLayeredWindow(...)APIを使用して透明な画像で描画されていることを確認してください。

編集コントロールの上にマウスを移動すると、テキストカーソルが表示され、その中のテキストをコピーできます。

私が対処しなければならない問題は、どういうわけかユーザーペイントを受け入れるためのコントロールを作ることです。

フォームと同じ手法でコントロールを描いてみましたが、その形式から互換性のあるDCを作成しましたが、これが可能なかどうかわからないため、私のコントロールはまだ描画されていません。

そのコントロールのwm_printclientを送信するとうまくいくか?その場合、DCは階層化された親フォームになりますか?私もこれを試してみましたが、それを作業することができませんでした。

標準形式: http://img580.imageshack.us/i/formy.png/

階層形式: http://img6.imageshack.us/i/layeredform.png/

私の質問は、編集コントロールをアルファブレンドユーザーペイントに受け入れる方法ですか?レイヤードフォームにアルファブレンドコントロールを描画するにはどうすればいいですか?

役に立ちましたか?

解決

最後に、私はそれをする方法を見つけました、

各コントロールのビットマップイメージを取得してフォームの背景に描画することは、次のようにしてください。

まだこれがベストプラクティスであるかどうかは

この方法はうまく機能しますが、完璧になり、より多くの対話+アルファ混和コントロールを追加する必要があります。その一方で、

ここには次のとおりです。> http://img84.imageshack.us/img84/3172/73845647.png

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top