vc中tab控件不显示标签
程序没错误为什么运行出来tab控件就空白的一块,没有标签呢CTabCtrlmtab;CRectmrect;CTab1Dlgtab1;CTab2Dlgtab2;CTab3D...
程序没错误为什么运行出来tab控件就空白的一块,没有标签呢
CTabCtrl mtab;
CRect mrect;
CTab1Dlg tab1;
CTab2Dlg tab2;
CTab3Dlg tab3;
mtab.Create(TCS_BUTTONS,mrect,this,IDC_TAB1);
mtab.InsertItem(0,"一");
mtab.InsertItem(1,"二");
mtab.InsertItem(2,"三");
tab1.Create(IDD_DIALOG_SH, &mtab);
tab2.Create(IDD_DIALOG_Z, &mtab);
tab3.Create(IDD_DIALOG_S, &mtab);
tab1.ShowWindow(SW_SHOW);
tab2.ShowWindow(SW_HIDE);
tab3.ShowWindow(SW_HIDE); 展开
CTabCtrl mtab;
CRect mrect;
CTab1Dlg tab1;
CTab2Dlg tab2;
CTab3Dlg tab3;
mtab.Create(TCS_BUTTONS,mrect,this,IDC_TAB1);
mtab.InsertItem(0,"一");
mtab.InsertItem(1,"二");
mtab.InsertItem(2,"三");
tab1.Create(IDD_DIALOG_SH, &mtab);
tab2.Create(IDD_DIALOG_Z, &mtab);
tab3.Create(IDD_DIALOG_S, &mtab);
tab1.ShowWindow(SW_SHOW);
tab2.ShowWindow(SW_HIDE);
tab3.ShowWindow(SW_HIDE); 展开
1个回答
展开全部
你不给它写标签它怎么显示呢. 要用InsertItem加的啊, 你加了没?
TCITEM tcItem;
tcItem.mask = TCIF_TEXT;
tcItem.pszText = _T("Tab #1");
m_TabCtrl.InsertItem(0, &tcItem);
//////////////////////////////////////////////////////////
tab1, tab2, tab3是你自己的东西我们先不管.
1. mtab在创建的时候少了2个参数WS_CHILD | WS_VISIBLE, 这是作为dialog子窗口并且显示的必须的2个参数
2. 为什么会出现白色的东西, 我敢打包票你是在dialog中拖了一个tab, 这个tab的id是IDC_TAB1, 然后才在create里填了id是IDC_TAB1. 其实调create函数根本不用手动创建资源的, 系统会帮你动态生成. 这边id随便填个数就可以了, 以后就用那个数(但要保证不能和已经存在的资源数字相同)
3. 不知道你的CRect有没有设置.
我在dialog的OnInit函数中写了代码
mrect.SetRect(10, 10, 500, 500);
mtab.Create(TCS_BUTTONS| WS_CHILD | WS_VISIBLE,
mrect, this, 123);
mtab.InsertItem(0,TEXT("一"));
mtab.InsertItem(1,TEXT("二"));
mtab.InsertItem(2,TEXT("三"));
在头文件中定义了变量
public:
CRect mrect;
CTableCtrl mtab;
显示完全正常.
ps:这2个变量一定不能放在OnInit函数中, 因为作为局部变量的话出函数就会销毁, 会不能显示
TCITEM tcItem;
tcItem.mask = TCIF_TEXT;
tcItem.pszText = _T("Tab #1");
m_TabCtrl.InsertItem(0, &tcItem);
//////////////////////////////////////////////////////////
tab1, tab2, tab3是你自己的东西我们先不管.
1. mtab在创建的时候少了2个参数WS_CHILD | WS_VISIBLE, 这是作为dialog子窗口并且显示的必须的2个参数
2. 为什么会出现白色的东西, 我敢打包票你是在dialog中拖了一个tab, 这个tab的id是IDC_TAB1, 然后才在create里填了id是IDC_TAB1. 其实调create函数根本不用手动创建资源的, 系统会帮你动态生成. 这边id随便填个数就可以了, 以后就用那个数(但要保证不能和已经存在的资源数字相同)
3. 不知道你的CRect有没有设置.
我在dialog的OnInit函数中写了代码
mrect.SetRect(10, 10, 500, 500);
mtab.Create(TCS_BUTTONS| WS_CHILD | WS_VISIBLE,
mrect, this, 123);
mtab.InsertItem(0,TEXT("一"));
mtab.InsertItem(1,TEXT("二"));
mtab.InsertItem(2,TEXT("三"));
在头文件中定义了变量
public:
CRect mrect;
CTableCtrl mtab;
显示完全正常.
ps:这2个变量一定不能放在OnInit函数中, 因为作为局部变量的话出函数就会销毁, 会不能显示
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询