MFC文档视图使Tabbing工作

时间:2013-08-15 11:40:05

标签: visual-c++ mfc

我创建了一个MFC文档视图应用程序,并添加了几个从CEdit继承到CView的类。我想在每个CEdit工作之间进行标记。我环顾四周,大多数解决方案都涉及将IsDialogMessage()添加到消息循环或PreTranslateMessage中。我在PreTranslateMessage类的CEdit方法中尝试过这样做:

BOOL WordControl::PreTranslateMessage(MSG* pMsg)
{
    if(IsDialogMessage(pMsg))
        return TRUE;
    else
        return __super::PreTranslateMessage(pMsg);
}

但是,现在CEdit没有收到任何键盘消息,也没有选项卡。我已经像这样创建了CEdit

Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER | ES_CENTER , Rect, Parent, Index);

我做错了什么?

编辑:

该应用程序使用基本的MFC单个文档 模板。我正在动态添加几个继承自CEdit的对象和一些继承自CStatic的对象。我设法创建了所有CEditsCStatics,但我希望能够从CEditCEdit进行制作。

一张图片胜过千言万语;这是截图:

Screenshot

我希望能够在第一个CEdit,点击标签中输入“你好”,然后让下一个CEdit有焦点。然后我将输入“world”,然后点击tab,下一个CEdit将重点关注我输入“this”等。

修改

新窗口:

New Window

1 个答案:

答案 0 :(得分:1)

使用CFormView作为基础。您可以动态添加控件,表单将为您管理选项卡。如果您只有少量的最大编辑控件,您也可以在表单上创建它们,然后根据需要显示/隐藏它们。