我想请问下面这个图的TabControl是怎么做出来的 我做的就是没有这个效果 就是最简单的那种 我看他的代码也没发现跟我有什么不一样 要在那里添加什么才能出现这种效果啊
他的这个代码如下:
BOOL CQQDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here
TC_ITEM m_pTCItem1;
m_pTCItem1.mask = TCIF_TEXT;//接收的值为文本
m_pTCItem1.pszText = "QQ号码列表";//标签的名字
TC_ITEM m_pTCItem2;
m_pTCItem2.mask = TCIF_TEXT;
m_pTCItem2.pszText = "重要设置";
TC_ITEM m_pTCItem3;
m_pTCItem3.mask = TCIF_TEXT;
m_pTCItem3.pszText = "关于QQ登陆器"; m_TabQQlist.InsertItem(0,&m_pTCItem1);//插入到TAB控件中
m_TabQQlist.InsertItem(1,&m_pTCItem2);
m_TabQQlist.InsertItem(2,&m_pTCItem3); //建立属性页各页
QList.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
QSet.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
QAboutDlg.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1)); //设置页面的位置在m_tab控件范围内
CRect rs;
m_TabQQlist.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4; QList.MoveWindow(rs);
QSet.MoveWindow(rs);
QAboutDlg.MoveWindow(rs); QList.ShowWindow(TRUE);
m_TabQQlist.SetCurSel(0);
if (g_WndTopMost == "是")
{
SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
else
{
SetWindowPos(&this->wndNoTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
} return TRUE; // return TRUE unless you set the focus to a control
}void CQQDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{ int CurSel;
CurSel=m_TabQQlist.GetCurSel();
QList.ShowWindow(FALSE);
QSet.ShowWindow(FALSE);
QAboutDlg.ShowWindow(FALSE);
switch(CurSel)
{
case 0:
QList.ShowWindow(TRUE);
QList.QQListUpdate();
break;
case 1:
QSet.ShowWindow(TRUE);
QSet.QQSetUpdate();
break;
case 2:
QAboutDlg.ShowWindow(TRUE);
break;
default: ;
} *pResult = 0;
}请问是跟:
//建立属性页各页
QList.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
QSet.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
QAboutDlg.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1));
的Create有关么 这个是一个叫 webbrowser2的库有关
关于webbrowser2的Create的部分:
virtual BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); } BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)实在是不明白为何会出这种效果
我好像也没看到有第三方的界面库
新手 谢谢大家 这个问题研究了好久了
他的这个代码如下:
BOOL CQQDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon // TODO: Add extra initialization here
TC_ITEM m_pTCItem1;
m_pTCItem1.mask = TCIF_TEXT;//接收的值为文本
m_pTCItem1.pszText = "QQ号码列表";//标签的名字
TC_ITEM m_pTCItem2;
m_pTCItem2.mask = TCIF_TEXT;
m_pTCItem2.pszText = "重要设置";
TC_ITEM m_pTCItem3;
m_pTCItem3.mask = TCIF_TEXT;
m_pTCItem3.pszText = "关于QQ登陆器"; m_TabQQlist.InsertItem(0,&m_pTCItem1);//插入到TAB控件中
m_TabQQlist.InsertItem(1,&m_pTCItem2);
m_TabQQlist.InsertItem(2,&m_pTCItem3); //建立属性页各页
QList.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
QSet.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
QAboutDlg.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1)); //设置页面的位置在m_tab控件范围内
CRect rs;
m_TabQQlist.GetClientRect(rs);
rs.top+=20;
rs.bottom-=4;
rs.left+=4;
rs.right-=4; QList.MoveWindow(rs);
QSet.MoveWindow(rs);
QAboutDlg.MoveWindow(rs); QList.ShowWindow(TRUE);
m_TabQQlist.SetCurSel(0);
if (g_WndTopMost == "是")
{
SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
}
else
{
SetWindowPos(&this->wndNoTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
} return TRUE; // return TRUE unless you set the focus to a control
}void CQQDlg::OnSelchangeTab1(NMHDR* pNMHDR, LRESULT* pResult)
{ int CurSel;
CurSel=m_TabQQlist.GetCurSel();
QList.ShowWindow(FALSE);
QSet.ShowWindow(FALSE);
QAboutDlg.ShowWindow(FALSE);
switch(CurSel)
{
case 0:
QList.ShowWindow(TRUE);
QList.QQListUpdate();
break;
case 1:
QSet.ShowWindow(TRUE);
QSet.QQSetUpdate();
break;
case 2:
QAboutDlg.ShowWindow(TRUE);
break;
default: ;
} *pResult = 0;
}请问是跟:
//建立属性页各页
QList.Create(IDD_DIALOG1,GetDlgItem(IDC_TAB1));
QSet.Create(IDD_DIALOG2,GetDlgItem(IDC_TAB1));
QAboutDlg.Create(IDD_DIALOG3,GetDlgItem(IDC_TAB1));
的Create有关么 这个是一个叫 webbrowser2的库有关
关于webbrowser2的Create的部分:
virtual BOOL Create(LPCTSTR lpszClassName,
LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect,
CWnd* pParentWnd, UINT nID,
CCreateContext* pContext = NULL)
{ return CreateControl(GetClsid(), lpszWindowName, dwStyle, rect, pParentWnd, nID); } BOOL Create(LPCTSTR lpszWindowName, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID,
CFile* pPersist = NULL, BOOL bStorage = FALSE,
BSTR bstrLicKey = NULL)实在是不明白为何会出这种效果
我好像也没看到有第三方的界面库
新手 谢谢大家 这个问题研究了好久了
解决方案 »
- 求助!!无法得到对话框类句柄!!
- 将CTabCtrl的其中一页声明为CDHtmlDialog对话框的问题。
- 怎样人工触发事件?
- 为什么我的ClassView里看不到类了?
- 怎么安装visual studio 2003
- 2000下消息的怪问题
- 关于线程的暂停与恢复问题
- 给定一年和一年中的第几天,如何能返回所在的月份、某月的几号,和星期?
- 虽然是送分题,但是好像不是很好解决,有关opengl的字体显示
- Bmp图片保存问题
- 请问Ctrl+Home和Ctrl+End组合在VC++的PreTranslateMessage()函数中怎么表示??
- CListCtrl::SetItemText调用失败 代码都是从同一个工程拷贝的 不知道是怎么回事儿
我真不知道在呢么上图 好似需要网址 然后我就只能传到百度上面了
http://hiphotos.baidu.com/%BC%C0%D7%D3%B5%A5/pic/item/8259602a44a338645243c101.jpg
就是这个样子的 鼠标放上去会有黄色框框 平常是淡蓝色的
我不管怎么弄TabControl都是一开始系统放上去那个样子