問題 私は、エアロ ガラスの境界線が上から約 80 ピクセル拡張されているフォームを使用しています。TMainMenu はそのままではカスタム ポジショニングをサポートしていません。私は、オーナー ドローを介してのみ可能であると想定しています。true にダブル バッファリングされている場合でも、デフォルト位置のフォームに描画されたテキストは、どのバージョンの Delphi でも正しく表示されません (07、09 は友人によって 10 XE でテストされています)。
私が本当に欲しいのは、メニューを透明にして黒いテキストを表示し、可能であれば、カスタム位置の下部と右側に配置することです。
フラット スピード ボタンとポップアップ メニューを使用して効果をシミュレートしても問題はありません。言語翻訳でボタンの幅が適切に設定されるように、テキストの幅を計算する必要があります。そこで、代替案がないか調べてみました。
私が知っていること、そして 明らかになったことは、正直言ってそれほど多くはありません。ブラシを透明にするための API 呼び出しがいくつか見られましたが、これは他のタスクでは機能しますが、これはそうではないようです。
VB Pascal と C# でいくつかのカスタム描画アイテムを見てきましたが、まだ探しているものが見つかりません。誰かが私を正しい方向に向けることができれば、私はそれを大いに感謝します. これまでのところ、3D グラデーションなしでメニューを描画するだけです。