mfc对话框中
回车会引起自动退出程序。
于是我在PreTranslateMessage中处理了回车键消息BOOL dlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
但是,其实,我界面是需要回车键的,比如树列表中某个item正被编辑状态,
HTREEITEM lo_hItm = ctrl_treeCtrl.InsertItem("新建,请重命名...", TVI_ROOT);
ctrl_treeCtrl.EditLabel(lo_hItm);
当输入完文字后,回车,,,,
此时应该完成编辑状态。可由于PreTranslateMessage屏蔽了回车所以怎么办呢?
回车会引起自动退出程序。
于是我在PreTranslateMessage中处理了回车键消息BOOL dlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
return TRUE;
return CDialog::PreTranslateMessage(pMsg);
}
但是,其实,我界面是需要回车键的,比如树列表中某个item正被编辑状态,
HTREEITEM lo_hItm = ctrl_treeCtrl.InsertItem("新建,请重命名...", TVI_ROOT);
ctrl_treeCtrl.EditLabel(lo_hItm);
当输入完文字后,回车,,,,
此时应该完成编辑状态。可由于PreTranslateMessage屏蔽了回车所以怎么办呢?
HWND hwnd;
UINT message;
WPARAM wParam;
LPARAM lParam;
DWORD time;
POINT pt;
} MSG;
return TRUE;
或者就是重写对话框的OnOK函数,去掉函数里的代码
{
if (pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{
if(pMsg->hwnd==this->GetSafeHwnd())
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
2楼的也不可行
{
if (pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN)
{
if(pMsg->hwnd==this->GetSafeHwnd())
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
1楼的也不可行
这个当然不行啊,this是CWinFormExt2011Dlg类的指针,获得的是对话框的句柄判断是否为树的句柄
EditLabel状态呢?