我创建了一个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
的对象。我设法创建了所有CEdits
和CStatics
,但我希望能够从CEdit
到CEdit
进行制作。
一张图片胜过千言万语;这是截图:
我希望能够在第一个CEdit
,点击标签中输入“你好”,然后让下一个CEdit
有焦点。然后我将输入“world”,然后点击tab,下一个CEdit
将重点关注我输入“this”等。
修改
新窗口:
答案 0 :(得分:1)
使用CFormView作为基础。您可以动态添加控件,表单将为您管理选项卡。如果您只有少量的最大编辑控件,您也可以在表单上创建它们,然后根据需要显示/隐藏它们。