お世話になってます。
VC++の左側にあるClassView,ResourceView,FileViewを切り替えるようなものを作ろうと思
い、以下のようなコードを書いてみました。
class CMyView : public CScrollView
{
//前略
protected:
CTreeCtrl m_treeCtrl;
CTabCtrl m_tabCtrl;
//後略
};
int CMyView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CScrollView::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: この位置に固有の作成用コードを追加してください
m_tabCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), this, 1);
m_tabCtrl.SendMessage(WM_SETFONT, (WPARAM)GetStockObject(DEFAULT_GUI_FONT),
0);
m_tabCtrl.InsertItem(0, TEST1);
m_tabCtrl.InsertItem(1, TEST2);
m_tabCtrl.InsertItem(2, TEST3);
m_treeCtrl.Create(WS_CHILD | WS_VISIBLE, CRect(0, 0, 0, 0), &m_tabCtrl, 1);
return 0;
}
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CScrollView::OnSize(nType, cx, cy);
// TODO: この位置にメッセージ ハンドラ用のコードを追加してください
m_tabCtrl.MoveWindow(0, 0, cx, cy);
RECT r;
m_tabCtrl.GetClientRect(&r);
m_tabCtrl.AdjustRect(FALSE, &r);
m_treeCtrl.MoveWindow(&r);
}
一応はそれっぽく表示できたのですが、よく見るとタブコントールの外枠が3Dになっておらず、
m_treeCtrlがのっぺりと平面的にm_tabCtrlの上に乗っているように表示されます。
(こんな説明で理解してもらえますか?)
そこで質問なのですがタブコントールの外枠を3Dっぽくするにはどうしたらいいでしょうか?
ご教授ください。
開発環境はWin Me, VC++6.0SP5 MFCです。
以下のようにCTreeCtrlを作成してみてください。
m_treeCtrl.CreateEx(WS_EX_CLIENTEDGE, WC_TREEVIEW, NULL, WS_CHILD |
WS_VISIBLE, CRect(0, 0, 0, 0), &m_tabCtrl, 1);
ありがとうございました。
期待通りに表示されました。