Tab控件单击某个页面中的按钮使它切换为另一个页面

zhuqqqqqq 2013-05-31 11:40:06

点击设置按钮后切换为

并且点击设置标签时始终选择第一幅图的页面
...全文
422 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuqqqqqq 2013-06-04
  • 打赏
  • 举报
回复
已经搞定了,http://wenku.baidu.com/view/ba72b4b9fd0a79563c1e72b6.html 按照这里提供的方法可以完成
zhuqqqqqq 2013-06-02
  • 打赏
  • 举报
回复
我想要的是点击子页面的按钮后触发切换页面,我怎么觉得你这个跟我想要的不一样呢
hankcs 2013-06-02
  • 打赏
  • 举报
回复
说白了就是切换SW_SHOW和SW_HIDE,我弄了个更复杂的,就是切换的时候是动画的,你略过动画部分看看吧,写得不好见笑了
void CMyTab::OnSelchange(NMHDR* pNMHDR, LRESULT* pResult) //单击选项卡后触发
{
	
	int iNewTab = GetCurSel();
	TCITEM item;
	CWnd* pWnd;
	item.mask = TCIF_PARAM;
	//** show the selected tab --------
	GetItem(iNewTab, &item);
	pWnd = reinterpret_cast<CWnd*> (item.lParam);
	ASSERT_VALID(pWnd);
	if(m_bMove)
	{
		CRect rect;
		pWnd->GetWindowRect(&rect);
		
		ScreenToClient(&rect);//注意
		m_wndwidth=rect.Width();
		m_topleft=rect.TopLeft();
		m_bottomright=rect.BottomRight();
		m_topleft.x-=rect.Width();
		m_bottomright.x-=rect.Width();
		
		rect.SetRect(m_topleft,m_bottomright);
		pWnd->MoveWindow(&rect,true);//将当前子窗体移到左边
		pWnd->ShowWindow(SW_SHOW);
		m_pCurWnd=pWnd;
		
		SetTimer(1,10,NULL);//开始运动
	}
	else
		pWnd->ShowWindow(SW_SHOW);
	*pResult = 0;
}

void CMyTab::OnSelchanging(NMHDR* pNMHDR, LRESULT* pResult) //单击选项卡时触发
{
	// TODO: Add your control notification handler code here
	int iNewTab = GetCurSel();
	TCITEM item;
	CWnd* pWnd;
	item.mask = TCIF_PARAM;

	//** hide the current tab ---------
	GetItem(iNewTab, &item);
	pWnd = reinterpret_cast<CWnd*> (item.lParam);
	ASSERT_VALID(pWnd);
	pWnd->ShowWindow(SW_HIDE);
	*pResult = 0;
}
------------------------------------------------------AutoCSDN签名档------------------------------------------------------
码农场——码农播种代码、放牧思想的农场!
zhuqqqqqq 2013-06-02
  • 打赏
  • 举报
回复
额,求具体的代码,我试了一些方法都不行 OnInitDialog()函数 TCITEM item; item.mask=TCIF_TEXT; item.pszText="操作面板"; m_tabctrl.InsertItem(0,&item); item.pszText="控制状态"; m_tabctrl.InsertItem(1,&item); item.pszText="报警"; m_tabctrl.InsertItem(2,&item); item.pszText="设置"; m_tabctrl.InsertItem(3,&item); item.pszText="帮助"; m_tabctrl.InsertItem(4,&item); m_mm1.Create(IDD_DIALOG1,&m_tabctrl); m_mm2.Create(IDD_DIALOG2,&m_tabctrl); m_mm3.Create(IDD_DIALOG3,&m_tabctrl); m_mm4.Create(IDD_DIALOG4,&m_tabctrl); m_mm5.Create(IDD_DIALOG5,&m_tabctrl); m_mm6.Create(IDD_DIALOG6,&m_tabctrl); m_mm1.SetWindowPos(NULL,10,30,4000,4000,SWP_SHOWWINDOW); m_mm2.SetWindowPos(NULL,10,30,4000,4000,SWP_HIDEWINDOW); m_mm3.SetWindowPos(NULL,10,30,4000,4000,SWP_HIDEWINDOW); m_mm4.SetWindowPos(NULL,10,30,4000,4000,SWP_HIDEWINDOW); m_mm5.SetWindowPos(NULL,10,30,4000,4000,SWP_HIDEWINDOW); m_mm6.SetWindowPos(NULL,10,30,4000,4000,SWP_HIDEWINDOW); 这里增加了5个标签,m_mm6是我要切换的对话框对象,这里要加到tab控件中吗? OnSelchangeTab()函数已做好,可以在5个页面之间切换 最后是设置按钮的响应函数,不知道怎么写隐藏页面和显示页面的代码,像OnSelchangeTab()中那样写貌似不行。 如果有知道的麻烦简单写下代码,或具体说下,谢谢了
jaynaviee 2013-06-01
  • 打赏
  • 举报
回复
和第一个对话框一样啊, 点击设置按钮隐藏一个窗口,把第二个窗口显示不就行了
zhuqqqqqq 2013-05-31
  • 打赏
  • 举报
回复
补充一下,第一幅图的页面我已经选择入tab控件中,并且做了切换标签的函数,只是不知道怎么完成关于点击设置按钮的部分

15,978

社区成员

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

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