1

我创建了一个 MFC 文档视图应用程序并添加了几个继承CEditCView. 我想在每个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. 我已经设法创建了所有的CEditsandCStatics但我希望能够从 to 制表CEditCEdit

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

截屏

我希望能够在第一个中键入“你好” CEdit,点击选项卡并让下一个CEdit获得焦点。然后我将输入“world”,然后点击选项卡,下一个CEdit将重点让我输入“this”等。

编辑:

新窗户:

新窗户

4

1 回答 1

1

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

于 2013-08-19T16:29:30.087 回答