プロパティシート上にタブ形式でプロパティページを配置しました。
今はリソース側でタブの文字(プロパティページのキャプション)を設定しているのですが、これをプログラム上で設定するにはどうしたらいいでしょうか?
SetWindowTextを使ってもできませんでした。
GetWindowTextでキャプションを取得することはできます。
例えば、リソース側のプロパティでCaptionに"ページ1"と設定してプロパティシートを持つCFormViewのCreate(AddPageの前)に次のプログラムを追加します。
右はプログラム実行直後のValueの値を示します。
CString Value;
GetWindowText (Value); // "ページ1"
Value = "Page①"; // "Page①"
SetWindowText (Value); // "Page①"
Value.Empty(); // ""
GetWindowText (Value); // "Page①"
このように内部ではWindowTextは設定したとおりに変化していますが、実行するとダイアログ上には何の変化も見えず、"ページ1"のままです。
また、プロパティページのOnInitDialog側に同じプログラムを追加しても結果は同じでした。
OSはWindowsNT2000、ソフトは.Net2003です。
すみません、半角で
プロパティページのキャプション設定方法
って書いたんですけど、文字化けしちゃったみたいです。
CPropertyPage::GetPSPでPROPSHEETPAGE 構造体にアクセスできます。
AddPageする前に構造体のdwFlagsにPSP_USETITLEを追加し
pszTitleを設定することでタイトルを変更することができます。
ありがとうございます。
教えていただいた通りで解決しました。
ツイート | ![]() |