一个工程,添加一个基于CView的类CTabView
想在在CTabView上动态创建一个属性页?
我的方法是:
//.h
CTabCtrl m_TabCtrl;//.cpp
int CTabView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1; //动态创建属性页控件
try
{
RECT rect;
memset(&rect, 0, sizeof(RECT));
m_TabCtrl.Create(WS_CHILD | WS_VISIBLE |TCS_BUTTONS , rect, this, 0); m_TabCtrl.InsertItem(0,"Option 1");  }
catch(...)
{
::MessageBox(this->GetSafeHwnd(), "无法创建游戏属性页!", "错误!", MB_OK | MB_ICONERROR);
} return 0;
}void CTabView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy); RECT rect;
memset(&rect, 0, sizeof(RECT));
this->GetClientRect(&rect);
CTabCtrl * pTabCtrl = &m_TabCtrl;
if(pTabCtrl != NULL)
{
m_TabCtrl.MoveWindow(&rect, TRUE); //调整树形控件的位置
}
}这样动态创建出来的TAB控件和用MFC现成的生成的效果不一样,我做的方法效果感觉是多了一个按钮在对话框上,根本感觉不到TAB的存在。

解决方案 »

  1.   

    m_TabCtrl.Create(WS_CHILD | WS_VISIBLE |TCS_BUTTONS , rect, this, 0);TCS_BUTTONS   Modifies the appearance of the tabs to look like buttons.去掉试试看
      

  2.   

    RECT rect;
    memset(&rect, 0, sizeof(RECT));
    m_TabCtrl.Create(WS_CHILD | WS_VISIBLE |TCS_BUTTONS , rect, this, 0);
    --------------------------------------------------------------------------
    你的rect是多大的?0 ?