我想叫标签控件关联的对话框(不是主对话框)响应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
}
向主对话框标签控件加入子对话框代码如下:
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
}
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知见此回复三日内无回应
我们将强制结帖
相关规定详见界面界面版关于版主结帖工作的具体办法