CardMgrには、一応 About画面があります。この画面は、VS 2005のリソースエディタで作成しています。さて、Win32ネイティブアプリで、こういったダイアログの、縦横画面の切替を真面目にサポートするには、マイクロソフトに拠れば、正方形のダイアログデザインにしておくか、縦用、横用のダイアログをそれぞれ用意して、画面のむきで切り替えるようにするか、なのだそうです。ならば、練習の意味も込めて、縦、横両方の、リソースを作ってみようじゃありませんか。
さて、これを、マイクロソフトのドキュメントに従ってやると、縦画面用のリソース(IDD_ABOUT)と横画面用のリソース(IDD_ABOUT_WIDE)を作ってから、次のようなコードを追加することになります。
case WM_SIZE:
DRA::RelayoutDialog(g_hInstance, hwnd,
DRA::GetDisplayMode() != DRA::Portrait ?
MAKEINTRESOURCE(IDD_ABOUT_WIDE) : MAKEINTRESOURCE(IDD_ABOUT));
return TRUE;
これを、WndProc()本体と、AboutDlgProc() コールバックの両方に追加してやります。……と、貼り付けたビットマップの位置がずれてしまってますやん……。なんだかラベルも欠けちゃっているし oTLDRA::RelayoutDialog(g_hInstance, hwnd,
DRA::GetDisplayMode() != DRA::Portrait ?
MAKEINTRESOURCE(IDD_ABOUT_WIDE) : MAKEINTRESOURCE(IDD_ABOUT));
return TRUE;
ということで、細かなところでも、イロイロと奥が深い、Win32ネイティブアプリなのでした。
コメント