Luna時のメインメニュー

解決


m-menu  2005-05-21 02:56:59  No: 14899

Lunaではメインメニューのバーの色はclBtnFaceですが、TMainMenuをオーナードローにしたとき、clMenuで描画され、文字の後ろだけが白くて不自然です。
これを解決するには最上位のメニューアイテムを自前でドローするしかないのでしょうか?
また、その場合文字列の&Fみたいなのも自前でドローしなければならないのでしょうか?
//Delphi6


HOta  2005-05-22 01:25:49  No: 14900

Lunaって何ですか?


m-menu  2005-05-22 03:44:53  No: 14901

Microsoft純正のビジュアルスタイルです。
XPスタイルと言ったほうが良かったですね。


たかみちえ  URL  2005-05-22 04:22:46  No: 14902

アンダーバーつき文字列描画等は、DrawText APIがサポートしています。あとは手書きです。オーナードローしてください。
ちなみに、トップレベルのメニューが描画されてしまうのは、VCLのバグという説が有力です。ほしけんのWeb頁のWiki(http://wiki.hosiken.com/wiki/)にて、解決用パッチが配布されています

> Luna
  ちなみにちょっとつっこみですが、XPではスキンを使用して別のビジュアルスタイルを適応することも出来ます。その場合はLunaとは言わないと思いますよ。
なので、WindowsXPスタイルに完璧に対応するには(WindowsXPスタイルを時アプリメニューに適用したいなら)、Windowsスキンファイル(.mmstyle)から、データ(リソースに格納されている)を読み取って、それを使ってやる必要があります。


m-menu  2005-05-22 04:55:49  No: 14903

HOtaさんたかみちえさんありがとうございました。
トップメニューも独自に描画させなんとかなりました。
//ちなみにたかみちえさんのオーナードローメニューを使っていました。


m-menu  2005-05-22 05:25:11  No: 14904

OwnerDraw時のあのACanvasはどうやったら普段参照できるのでしょうか?


m-menu  2005-05-22 06:02:09  No: 14905

Canvas.Handle := GetWindowDC(WindowHandle);ですね


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加