TabCtrl控件可以直接放在FrameWnd或View里显示么

willwl 2005-04-26 09:37:42
如果可以,那一定是动态创建的,动态创建的tabCtrl的事件又如何处理呢
小弟初学,请多多指教
...全文
56 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
bestbear 2005-04-26
  • 打赏
  • 举报
回复
CMainFrame:
CReBar m_rebar_bottom;
CTabCtrl m_wndTab;

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct):

m_wndTab.Create(WS_VISIBLE|TCS_BUTTONS|TCS_FLATBUTTONS|TCS_TABS|
TCS_FOCUSNEVER|TCS_FORCEICONLEFT|TCS_TOOLTIPS|
TCS_RAGGEDRIGHT|TCS_MULTILINE|TCS_RIGHTJUSTIFY ,
CRect(0, 0, 200, 22),
this,
IDC_DISK_TAB);// AFX_IDW_TOOLBAR + 2);



DWORD dwExStyle= m_wndTab.GetExtendedStyle();
m_wndTab.SetExtendedStyle(dwExStyle | TCS_EX_FLATSEPARATORS);

HBITMAP hbmp;
img.Create(11, 9, ILC_COLORDDB|ILC_MASK, 8, 1);
hbmp = ::LoadBitmap(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDB_BITMAP5));
ImageList_AddMasked(img.GetSafeHandle(), hbmp, RGB(255,0,255));
m_wndTab.SetImageList(&img);
img.Detach();

//create bottom bar
if (!m_rebar_bottom.Create(this,RBS_BANDBORDERS,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS| WS_CLIPCHILDREN | CBRS_BOTTOM))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
}
m_rebar_bottom.AddBar(&m_wndTab,_T(" Looks "));
m_wndTab.InsertItem(0,"A",0);
m_wndTab.InsertItem(1,"B",1);
m_wndTab.InsertItem(2,"C",2);
m_wndTab.InsertItem(3,"D",3);
m_wndTab.InsertItem(4,"E",4);

Message Handle:
ON_NOTIFY(TCN_SELCHANGE, IDC_DISK_TAB, OnSelchangeDiskTab)
void CMainFrame::OnSelchangeDiskTab(NMHDR* pNMHDR, LRESULT* pResult)
{
// TODO: Add your control notification handler code here
int i=m_wndTab.GetCurSel();
CString str;
str.Format("%d",i);
AfxMessageBox(str);
*pResult = 0;
}
afx_msg void OnSelchangeDiskTab(NMHDR* pNMHDR, LRESULT* pResult);

Tab show or hide:
m_rebar_bottom.GetReBarCtrl().ShowBand(0, TRUE);
m_rebar_bottom.GetReBarCtrl().ShowBand(0, FALSE);

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧