C++Builder2007 Update3でメニューのキャプションが文字化けする問題

C++Builder2007にUpdate3を適用して作成したプログラムをWindows Vistaで実行すると、メニューのキャプションが文字化けします。

この問題を回避する方法が「Delphi2007Update3のバグ」で紹介されています。

C++Builder2007でも同じ方法で問題が回避できることを確認しました。

  1. 現在のプロジェクトがあるフォルダに、「C:\Program Files\CodeGear\RAD Studio\5.0\source\Win32\vcl\Menus.pas」をコピーします。

  2. プロジェクトにコピーした「Menus.pas」を追加します。

  3. Menus.pasの1150行目を以下のように変更します。

    変更前:
    DrawThemeTextEx(ThemeServices.Theme[teMenu], ACanvas.Handle, MENU_POPUPITEM,
      MenuStates[MenuItem.Enabled], PWideChar(WideString(Text)), Length(Text), Flags, @Rect, Options);
    
    変更後:
    DrawThemeTextEx(ThemeServices.Theme[teMenu], ACanvas.Handle, MENU_POPUPITEM,
     MenuStates[MenuItem.Enabled], PWideChar(WideString(Text)), Length(WideString(Text)), Flags, @Rect, Options);
    
  4. Unit1.hに次にコードを追加します。
    #include "Menus.hpp"
    

以上です。

作成したプログラムをWindows Vistaで実行しても、メニューは文字化けしませんでした。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください