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
コメント