VS2010用Tab Control怎么一直是白色,不能出现选项页啊
- C/C++ code
//Login.hpublic: // TAB主窗口,在其中添加子TAB:用户登录和管理员登录 CTabCtrl m_MainTab; virtual BOOL OnInitDialog(); CLogAdminTab AdminPage; CLogCustTab CustPage; afx_msg void OnBnClickedLogoutbtn(); afx_msg void OnTcnSelchangeLogmaintab(NMHDR *pNMHDR, LRESULT *pResult);};
- C/C++ code
//Login.cppIMPLEMENT_DYNAMIC(CLogin, CDialogEx)……void CLogin::DoDataExchange(CDataExchange* pDX){ CDialogEx::DoDataExchange(pDX); DDX_Control(pDX, IDC_LogMainTab, m_MainTab);}BEGIN_MESSAGE_MAP(CLogin, CDialogEx) ON_BN_CLICKED(IDC_LogOutBtn, &CLogin::OnBnClickedLogoutbtn) ON_NOTIFY(TCN_SELCHANGE, IDC_LogMainTab, &CLogin::OnTcnSelchangeLogmaintab)END_MESSAGE_MAP()// CLogin 消息处理程序BOOL CLogin::OnInitDialog(){ CDialog::OnInitDialog(); // TODO: 在此添加额外的初始化 m_MainTab.InsertItem(0, _T("普通用户")); m_MainTab.InsertItem(1, _T("管理员")); CustPage.Create(IDD_LogCustTab, &m_MainTab); AdminPage.Create(IDD_LogAdminTab, &m_MainTab); //设定在Tab内显示的范围 CRect rc; m_MainTab.GetClientRect(&rc); rc.top += 20; //rc.bottom -= 60; //rc.left += 10; //rc.right -= 28; CustPage.MoveWindow(&rc); AdminPage.MoveWindow(&rc); //把对话框对象指针保存起来 CustPage.ShowWindow(true); AdminPage.ShowWindow(false); m_MainTab.SetCurSel(0); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE}void CLogin::OnTcnSelchangeLogmaintab(NMHDR *pNMHDR, LRESULT *pResult){ // TODO: 在此添加控件通知处理程序代码 int CurSel = m_MainTab.GetCurSel(); switch(CurSel) { case 0: CustPage.ShowWindow(true); AdminPage.ShowWindow(false); break; case 1: CustPage.ShowWindow(false); AdminPage.ShowWindow(true); break; default: ; } *pResult = 0;}void CLogin::OnBnClickedLogoutbtn(){ // TODO: 在此添加控件通知处理程序代码 CDialog::OnCancel();}这是按照http://blog.csdn.net/farcall/archive/2011/04/03/6299567.aspx
http://blog.csdn.net/a32132100/archive/2011/05/08/6402778.aspx
这两个教程写的,除了命名改了,其他几乎没做改动,
可是在运行生成后,只出现白色的一块,没有选项卡,更别说对话框里的东西的
这是怎么回事啊?
[解决办法]
菜单是独立的资源
你在不同对话框中加载相同的资源菜单即可
不过不同对话框的消息映射还得分别设置
只是都映射到同样的函数上