MFC CTabCtrl 控件问题?我最近 在做一个界面程序 ,在CDialogBar 上面创建一个 CTabCtrl 控件;
我是这样做的:1. 在 自定义的 CDialogBar .h 文件中 添加 CTabCtrl m_Tab 控件,添加资源ID #define IDT_WATCH2 1002 ;2. 在初始化的时候 调用了 BOOL BF=m_Tab.Create(WS_CHILD | WS_VISIBLE | TCS_TABS| TCS_RIGHTJUSTIFY ,rc2,this,IDT_WATCH2);
// 其中的类型我尝试了很多种(遍) ,显示的结果却是 标签按钮 的高度是整个对话框的高度? 这是为仕么,3. if(BF)
{
m_Tab.SetItemSize(sz);
//m_Tab.GetClientRect(rc2);
rc=rc2;
m_Tab.SetWindowPos(0,rc.left,rc.top,rc.Width(),rc.Height(),SWP_SHOWWINDOW);
///**************** Init page ********************* m_Tab.InsertItem(0,_T("数据监视"));
m_Tab.InsertItem(1,_T("图形化监视"));
m_WatchTab1.Create(IDD_WATCHDLG1,GetDlgItem(IDT_WATCH2));
m_WatchTab2.Create(IDD_WATCHDLG2,GetDlgItem(IDT_WATCH2));
CRect rect;
m_Tab.GetClientRect(&rect);
rect.top+=20;
rect.right-=4;
rect.left+=4;
rect.bottom-=4;
m_WatchTab1.MoveWindow(&rect);
m_WatchTab2.MoveWindow(&rect);
// 默认显示第一个子窗口
m_Tab.SetCurSel(0);
m_WatchTab1.ShowWindow(SW_SHOW);
}我用资源编辑器 添加的 CTabCtrl m_Tab 控件,添加变量,用上面的方法就可以,不过不用 Create()方法,为仕么?等待大师们解答。。
我是这样做的:1. 在 自定义的 CDialogBar .h 文件中 添加 CTabCtrl m_Tab 控件,添加资源ID #define IDT_WATCH2 1002 ;2. 在初始化的时候 调用了 BOOL BF=m_Tab.Create(WS_CHILD | WS_VISIBLE | TCS_TABS| TCS_RIGHTJUSTIFY ,rc2,this,IDT_WATCH2);
// 其中的类型我尝试了很多种(遍) ,显示的结果却是 标签按钮 的高度是整个对话框的高度? 这是为仕么,3. if(BF)
{
m_Tab.SetItemSize(sz);
//m_Tab.GetClientRect(rc2);
rc=rc2;
m_Tab.SetWindowPos(0,rc.left,rc.top,rc.Width(),rc.Height(),SWP_SHOWWINDOW);
///**************** Init page ********************* m_Tab.InsertItem(0,_T("数据监视"));
m_Tab.InsertItem(1,_T("图形化监视"));
m_WatchTab1.Create(IDD_WATCHDLG1,GetDlgItem(IDT_WATCH2));
m_WatchTab2.Create(IDD_WATCHDLG2,GetDlgItem(IDT_WATCH2));
CRect rect;
m_Tab.GetClientRect(&rect);
rect.top+=20;
rect.right-=4;
rect.left+=4;
rect.bottom-=4;
m_WatchTab1.MoveWindow(&rect);
m_WatchTab2.MoveWindow(&rect);
// 默认显示第一个子窗口
m_Tab.SetCurSel(0);
m_WatchTab1.ShowWindow(SW_SHOW);
}我用资源编辑器 添加的 CTabCtrl m_Tab 控件,添加变量,用上面的方法就可以,不过不用 Create()方法,为仕么?等待大师们解答。。
m_Tab.GetWindowRect(&rect);
ScreenToClient(&rect);
这个方法试过了, 还是老样子!现在的问题不是 CTabCtrl 控件不能 调整大小和位置, 而是 CTabCtrl 控件上添加的对话框模板显示不正常?就是标签页的按钮 一般不都是 在顶部有小按钮么, 我的标签页按钮高度是整个CTabCtrl控件的高度?我的类型选择的也没错啊?我大概描述一下:
CTabCtrl 矩形如下
----------------------------
| ------------ |
|| | | |
|| | | |
|| | | |
|| | | |
||数据监视 |图形化监视 | CDialog Client |
|| | | |
|| | | |
|| | | |
|| | | |
----------------------------
上传到你的csdn空间里, 然后在回帖里引用 URL
试试这样 m_Tab.InsertItem(0, _T("Item1"));
m_Tab.InsertItem(1, _T("Item2")); CRect rect;
m_Tab.GetClientRect(rect);
m_Tab.AdjustRect(FALSE, rect);
m_Tab.ClientToScreen(rect);
ScreenToClient(rect);
m_WatchTab1.MoveWindow(&rect);
m_WatchTab2.MoveWindow(&rect);
我又一次检查了 IDD_WATCHDLG1 IDD_WATCHDLG2 仅仅是WS_CHILD 风格,没别的风格!你上面的代码我试了,还是老样子!郁闷。,不过还是谢谢大家,希望有做过类似界面的高手指点?
Create() 的时候我没指定字体啊,这有关系么?
你上面哪个 25 高度 是指 CTabCtrl 的高度吧! 不是标签按钮的高度吧1我的CTabCtrl 是可以改变大小的,现在是标签页 (对话框资源)不能改变大小位置?