组件里有一个CEdit控件,一个CRichEdit控件,要做成一个聊天窗口类似的功能,在下面的CEdit控件里输入内容回车后,显示在上面的CRichEdit里。现在在获取CEdit控件的回车消息时遇到了困难。
我添加了一个空类CMyEdit,继承了CEdit,
#include <atlapp.h>
#include <atlctrls.h>class CMyEdit : public CEdit
{
};
想在这个类重载PreTranlateMessage,但是发现组件里不会响应这个函数,有什么其它方法能获取到回车消息么?后来想到用OnChar,但是通过WTL Helper添加的消息响应函数是这个样子的
LRESULT CMyEdit::OnChar(TCHAR ch, UINT cRepeat, UINT flags)
{
return 0;
}
如何通过ch来判断是回车键?返回值又如何定义的?还有一个问题,我用CMyEdit定义了一个变量m_wndEdit,想把这个变量与控件相关联起来,但是无论是用DDX的方式,还是GetDlgItem、SubClassWindow的方式,都会报错,是不是CMyEdit类写的不完整导致的?
我添加了一个空类CMyEdit,继承了CEdit,
#include <atlapp.h>
#include <atlctrls.h>class CMyEdit : public CEdit
{
};
想在这个类重载PreTranlateMessage,但是发现组件里不会响应这个函数,有什么其它方法能获取到回车消息么?后来想到用OnChar,但是通过WTL Helper添加的消息响应函数是这个样子的
LRESULT CMyEdit::OnChar(TCHAR ch, UINT cRepeat, UINT flags)
{
return 0;
}
如何通过ch来判断是回车键?返回值又如何定义的?还有一个问题,我用CMyEdit定义了一个变量m_wndEdit,想把这个变量与控件相关联起来,但是无论是用DDX的方式,还是GetDlgItem、SubClassWindow的方式,都会报错,是不是CMyEdit类写的不完整导致的?
OnChar(TCHAR ch, UINT cRepeat, UINT flags)
mfc下是比较
ch == VK_RETURN
flags是表示是否还同时按下了shift,ctrl等键的。
wtl没有文档~,这就是用wtl最痛苦的地方。
^_^ 那你去 vckbase wtl 或者 codeproject wtl找找吧。没用过wtl,帮不了你。