我试图在note注释编辑控件中实现ctrl + A:m_editNoteTypeView这是类NoteDialog中cEdit的实例。 我的注释编辑像下面一样创建。PreTranslateMessage方法没有被调用,以便实现C + +中的Ctrl + A
NoteDialog::initDialog()
{
m_editNoteTypeView.CreateEx(::GetWindowLong(m_editSubject.m_hWnd, GWL_EXSTYLE), "edit", "", dwStyle | ES_READONLY, CRect(0, 0, 0, 0), this, 0);
m_editNoteTypeView.SetSel(0,-1,TRUE);
}
NoteDialog类是从名为Sdialog另一类最后从CDialog
得出的。
我在SDialog定义PreTranslateMessage(MSG* pMsg)
但控制不会的PreTranslateMessage,因此我的我无法核对的关键我当时正在按键板上在笔记上打字编辑。
bool Sdialog::PreTranslateMessage(MSG* pMsg)
{
if (GetFocus() == this)
{
if (pMsg->message == WM_CHAR)
{
if ((LOWORD(pMsg->wParam) & VK_CONTROL) == VK_CONTROL)
{
//SetSel(0, -1);
}
}
}
return CDialog::PreTranslateMessage(pMsg);
}
如果编辑控件具有焦点时,会不会是处理按键?你尝试过'WM_KEYDOWN'吗? –