問題タブ [layered-windows]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
winapi - GDI+ でアジアのテキストを描画すると、レイヤード ウィンドウに透明な文字が表示されます
WS_EX_LAYERED
拡張スタイルと機能を備えた自分で作成したレイヤード ウィンドウがありUpdateLayeredWindow
ます。
次に、GDI+ ライブラリのGraphics::DrawStringメソッドを使用してテキストを描画します。
結果は次のようになります: レイヤード ウィンドウのスクリーンショット。
ご覧のとおり、日本語、韓国語、中国語の文字は完全に透明です。ウィンドウの白い背景も透明にしますが、これはまったく透明ではありません。
この問題は、デスクトップ コンポジション(Aero テーマ) が無効になっている Windows Vista および Windows 7 でのみ発生します。
Windows 10 では、デスクトップ コンポジションが常に有効になっているため、問題なく動作します。
この奇妙な効果が東アジアの文字でのみ発生するのはなぜですか?
そして、これはどのように解決できますか?