問題タブ [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.

0 投票する
1 に答える
125 参照

winapi - GDI+ でアジアのテキストを描画すると、レイヤード ウィンドウに透明な文字が表示されます

WS_EX_LAYERED拡張スタイルと機能を備えた自分で作成したレイヤード ウィンドウがありUpdateLayeredWindowます。

次に、GDI+ ライブラリのGraphics::DrawStringメソッドを使用してテキストを描画します。

結果は次のようになります: レイヤード ウィンドウのスクリーンショット

ご覧のとおり、日本語、韓国語、中国語の文字は完全に透明です。ウィンドウの白い背景も透明にしますが、これはまったく透明ではありません。

この問題は、デスクトップ コンポジション(Aero テーマ) が無効になっている Windows Vista および Windows 7 でのみ発生します。
Windows 10 では、デスクトップ コンポジションが常に有効になっているため、問題なく動作します。

この奇妙な効果が東アジアの文字でのみ発生するのはなぜですか?
そして、これはどのように解決できますか?