C++Builder2007にUpdate3を適用して作成したプログラムをWindows Vistaで実行すると、メニューのキャプションが文字化けします。
この問題を回避する方法が「Delphi2007Update3のバグ」で紹介されています。
C++Builder2007でも同じ方法で問題が回避できることを確認しました。
現在のプロジェクトがあるフォルダに、「C:\Program Files\CodeGear\RAD Studio\5.0\source\Win32\vcl\Menus.pas」をコピーします。
プロジェクトにコピーした「Menus.pas」を追加します。
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);
Unit1.hに次にコードを追加します。
#include "Menus.hpp"
以上です。
作成したプログラムをWindows Vistaで実行しても、メニューは文字化けしませんでした。