我想叫标签控件关联的对话框(不是主对话框)响应WM_KEYDOWN消息,但是修改控件关联的对话框PreTranslateMessage不管用,咋办呢?
向主对话框标签控件加入子对话框代码如下:
BOOL CUseTabDlg::OnInitDialog()
{
CDialog::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
} // Set the icon for this dialog.  The framework does this automatically
//  when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon

// TODO: Add extra initialization here
m_ImageList.Create(24,24,ILC_COLOR24|ILC_MASK,1,0);
//向图像列表中添加图标
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON1));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON2));
m_ImageList.Add(AfxGetApp()->LoadIcon(IDI_ICON3));
//将图像列表关联到标签控件中
m_Tab.SetImageList(&m_ImageList);
m_Tab.InsertItem(0,"员工信息",0);
m_Tab.InsertItem(1,"客户信息",1);
m_Tab.InsertItem(2,"供应商信息",2);
m_eDlg = new CEmployee;
m_cDlg = new CClient;
m_pDlg = new CProvidedlg;
m_eDlg->Create(IDD_DIALOG_EMP,&m_Tab);
m_cDlg->Create(IDD_DIALOG_CLI,&m_Tab);
m_pDlg->Create(IDD_DIALOG_PRO,&m_Tab);
m_eDlg->CenterWindow();
m_eDlg->ShowWindow(SW_SHOW);
return TRUE;  // return TRUE  unless you set the focus to a control
}