用一个按键循环切换tab控件的page
mfc吧
全部回复
仅看楼主
level 2
13型战警 楼主
设定按home键在两个page来回切换
现在是 在page1上按 home,内容切换成page2的,但是焦点还在page1上,再按home无反应了。
在page2上home,可以把焦点和内容都切换成page1的。
2013年09月21日 16点09分 1
level 2
13型战警 楼主
初始化如下
m_tab.InsertItem(0, _T("Page1"));
m_tab.InsertItem(1, _T("Page2"));
//创建两个对话框
m_page1.Create(IDD_DIALOG1, &m_tab);
m_page2.Create(IDD_DIALOG2, &m_tab);
m_page1.MoveWindow(&rc);
m_page2.MoveWindow(&rc);
//把对话框对象指针保存起来
pDialog[0] = &m_page1;
pDialog[1] = &m_page2;
//显示初始页面
pDialog[0]->ShowWindow(SW_SHOW);
pDialog[1]->ShowWindow(SW_HIDE);
//保存当前选择
m_CurSelTab = 0;void CQiehuanDlg::OnTcnSelchangeTab1(NMHDR *pNMHDR, LRESULT *pResult)
{
pDialog[m_CurSelTab]->ShowWindow(SW_HIDE);
//得到新的页面索引
m_CurSelTab = m_tab.GetCurSel();
//把新的页面显示出来
pDialog[m_CurSelTab]->ShowWindow(SW_SHOW);
*pResult = 0;
}BOOL CQiehuanDlg::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_KEYDOWN)
if(pMsg->wParam==VK_HOME)
{
if( m_CurSelTab == 0)
{
pDialog[0]->ShowWindow(SW_HIDE);
pDialog[1]->ShowWindow(SW_SHOW);
}
if( m_CurSelTab == 1)
{
pDialog[1]->ShowWindow(SW_HIDE);
pDialog[0]->ShowWindow(SW_SHOW);
}
}
return CDialog::PreTranslateMessage(pMsg);
}
2013年09月21日 16点09分 2
level 9
if(pMsg->wParam==VK_HOME)
{
if( m_CurSelTab == 0)
{
m_tab.SetCurSel(1);
}
if( m_CurSelTab == 1)
{
m_tab.SetCurSel(0);
}
2014年11月22日 12点11分 4
1