< Windows Xp Professional で、NTP サーバを構成する | テストを金額にするといくら? >

March 8, 2006

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

コメント

コメントする

※ コメントスパム対策のため、コメント本文はおはよう、こんにちわ、こんばんわのいずれかより始めるようにしてください。

name:
email:

※ 必要ですが、表示しません。

url:
情報を保存する ?