这两天受到MFC的CTabCtrl的折磨,焦点在主窗口与子界面太难实现切换了,经理一天的努力,查阅了大量资料还是不能简单实现,最后还是只能通过重写PreTranslateMessage。见下面代码:
重载CDialog类:
#pragma once
// DlgPage 对话框
class CDlgPage : public CDialog
{
DECLARE_DYNAMIC(CDlgPage)
public:
CDlgPage(UINT nIDTemplate, CWnd* pParent = NULL); // 标准构造函数
virtual ~CDlgPage();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
DECLARE_MESSAGE_MAP()
public:
virtual BOOL PreTranslateMessage(MSG* pMsg);
// 获取第一个TAB控件句柄
HWND GetFirstTab(void);
// 获取最后一个TAB控件句柄
HWND GetLastTab(void);
// 设置第一个控件得到焦点
void SetFirstFocus(void);
// 设置最后一个控件得到焦点
void SetLastFocus(void);
};
// DlgPage.cpp : 实现文件
//
#include "stdafx.h"
#include "TabDemo.h"
#include "DlgPage.h"
// DlgPage 对话框
IMPLEMENT_DYNAMIC(CDlgPage, CDialog)
CDlgPage::CDlgPage(UINT nIDTemplate, CWnd* pParent /*=NULL*/)
: CDialog(nIDTemplate, pParent)
{