CTabCtrl のページいっぱいいっぱいに CListBox を貼り付ける
要するに、CTabCtrl::AdjustRect () の使い方です。引数の fLarger に FALSE を渡すと、タブページの領域の矩形を取得することができます。別に CListBox でなくてもよかったのですが、例では CListBox をタブに貼り付けます。
SDK の場合は SendMessage で、TCM_ADJUSTRECT をタブコントロールに送出する方法に読み替えます。TabCtrl_AdjustRect というマクロも用意されています。
class CMyTabDialog : public CDialog { private: CTabCtrl m_Tab; // タブです CListBox m_ListBox; // タブの上にはっつけるリストボックスです
BOOL CMyTabDialog::OnInitDialog (void) { CRect Rect; m_Tab.GetWindowRect (Rect); // タブのウインドウ矩形 m_Tab.AdjustRect (FALSE, Rect); // タブのページいっぱいいっぱいの領域の矩形を導出 ScreenToClient (Rect); // これをダイアログのクライアント座標に変換して m_ListBox.MoveWindow (Rect); // リストボックスを移動します return TRUE; }
トラックバック
- このエントリーにトラックバック:
- http://frog.raindrop.jp/cgi-bin/mt/mt-tb.cgi/1313
コメント