1

今日、私のクライアントの Windows XP SP 3 の 1 つで奇妙な問題に出くわしBACKSPACEましDELETECEdit。より正確には、テキストの最後にカーソルを置き、BACKSPACEボタンを押すとテキスト カーソルが左に移動しますが、削除された文字は消えません。ウィンドウを強制的に更新すると、削除された文字が失われるため、実際の削除が行われます。ペイントの問題だと思いますが、何が問題なのか、それを回避する方法を見つけることができず、他の場所でバグを再現できませんでした。コードを確認したところ、CEditsそのように動作し、イベントがオーバーライドされたり、特別なプロパティが設定されたりしませんでした。

4

1 に答える 1

4

私の答えは推測です: WM_CTLCOLOREDIT を上書きし、NULL ブラシを返して透明に描画しています。

結果はあなたが見るものです。背景を上書きする機能がないと、編集コントロールにアーティファクトが表示されます...

標準コントロールで透過的に描画するこの「トリック」は、本当に良いものではありませんが、インターネット全体に広まっているため、誰もが欠点を知らずに使用できます。通常、これは変更されない静的コントロールに対してのみ機能します。

于 2015-06-18T06:46:33.430 に答える