Pocket PCでポートレイトとランドスケープを切り替えたときにダイアログリソースを入れ替えるのに便利な、DeviceResolutionAware.hのRelayoutDialogですが、動的にテキストを設定しているスタティックコントロールの値までダイアログリソースの値に戻してしまうのがいまいちでした。いちいちコードで値を設定しなおすのは不便なので、
--- DeviceResolutionAware.h.orig 2005-09-23 00:23:44.000000000 +0900 +++ DeviceResolutionAware.h 2007-07-11 11:41:08.354648500 +0900 @@ -894,7 +894,7 @@ } } } - else // lpData[0] is not 0xFFFF (it's text). + else if(lpData[0]) // lpData[0] is not 0xFFFF (it's text). { ::SetDlgItemTextW(hDlg, lpDlgItem->id, (LPCTSTR)lpData); }
のようなパッチを当ててリソーステンプレートで空文字列が指定されていたら値を設定しないようにしました。これで、少しは楽になるはず。
ところで、RDスタイルだと行頭の「---」が解釈されてうまくパッチが貼れませんね。
追記: 「--- <pre>」と((: :))を使って何とかできたっぽい…