VS2010 MFC 中tab control 控件的有关问题,求帮忙
VS2010 MFC 中tab control 控件的问题,求大虾帮忙!
我将标签设置在bottom时,可以显示标签并可以点击,但是对话框没有内容显示 更没有切换效果,请问这是何故?但是我设置在顶部时,一切正常!
附上简短的代码:
在OnInitDialog中如下:
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
CRect tabRect; // 标签控件客户区的位置和大小
m_tab.InsertItem(0, _T("JAVA开发网")); // 插入第一个标签“鸡啄米”
m_tab.InsertItem(1, _T("Android开发网"));// 插入第二个标签“Android开发网”
m_tab.InsertItem(2, _T("MFC开发网"));
m_dialog1.Create(IDD_DIALOG1,&m_tab); // 创建第一个标签页
m_dialog2.Create(IDD_DIALOG2,&m_tab); // 创建第二个标签页
m_dialog3.Create(IDD_DIALOG3,&m_tab);
m_tab.GetClientRect(&tabRect); // 获取标签控件客户区Rect
// 调整tabRect,使其覆盖范围适合放置标签页
tabRect.left += 1;
tabRect.right -= 1;
tabRect.top -= 1;
tabRect.bottom +=20;
// 根据调整好的tabRect放置m_jzmDlg子对话框,并设置为显示
m_dialog1.SetWindowPos(NULL, tabRect.left, tabRect.bottom, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
// 根据调整好的tabRect放置m_androidDlg子对话框,并设置为隐藏
m_dialog2.SetWindowPos(NULL, tabRect.left, tabRect.bottom, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
m_dialog3.SetWindowPos(NULL, tabRect.left, tabRect.bottom, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
响应函数如下:
void Ctest26Dlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
CRect tabRect; // 标签控件客户区的Rect
// 获取标签控件客户区Rect,并对其调整,以适合放置标签页
m_tab.GetClientRect(&tabRect);
tabRect.left += 1;
tabRect.right -= 1;
我将标签设置在bottom时,可以显示标签并可以点击,但是对话框没有内容显示 更没有切换效果,请问这是何故?但是我设置在顶部时,一切正常!
附上简短的代码:
在OnInitDialog中如下:
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
CRect tabRect; // 标签控件客户区的位置和大小
m_tab.InsertItem(0, _T("JAVA开发网")); // 插入第一个标签“鸡啄米”
m_tab.InsertItem(1, _T("Android开发网"));// 插入第二个标签“Android开发网”
m_tab.InsertItem(2, _T("MFC开发网"));
m_dialog1.Create(IDD_DIALOG1,&m_tab); // 创建第一个标签页
m_dialog2.Create(IDD_DIALOG2,&m_tab); // 创建第二个标签页
m_dialog3.Create(IDD_DIALOG3,&m_tab);
m_tab.GetClientRect(&tabRect); // 获取标签控件客户区Rect
// 调整tabRect,使其覆盖范围适合放置标签页
tabRect.left += 1;
tabRect.right -= 1;
tabRect.top -= 1;
tabRect.bottom +=20;
// 根据调整好的tabRect放置m_jzmDlg子对话框,并设置为显示
m_dialog1.SetWindowPos(NULL, tabRect.left, tabRect.bottom, tabRect.Width(), tabRect.Height(), SWP_SHOWWINDOW);
// 根据调整好的tabRect放置m_androidDlg子对话框,并设置为隐藏
m_dialog2.SetWindowPos(NULL, tabRect.left, tabRect.bottom, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
m_dialog3.SetWindowPos(NULL, tabRect.left, tabRect.bottom, tabRect.Width(), tabRect.Height(), SWP_HIDEWINDOW);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
响应函数如下:
void Ctest26Dlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
// TODO: 在此添加控件通知处理程序代码
*pResult = 0;
CRect tabRect; // 标签控件客户区的Rect
// 获取标签控件客户区Rect,并对其调整,以适合放置标签页
m_tab.GetClientRect(&tabRect);
tabRect.left += 1;
tabRect.right -= 1;