CEdit不能获取焦点
我继承了一个对话框类,并且关联了一个对话框资源,里面包含按钮,组合框和编辑框
在这个对话框类中重写PreSubclassWindow(),包含如下代码
当作为WS_POPUP弹窗可以正常在CEdit中输出数据(焦点可用)
当在另外一个对话框中把它作为子对话框嵌入,则CEdit根本获取不到点击后的焦点,其他控件均可用并且正常。
所有的对话框都是继承自:CDialogEx
是什么原因?或者可能是什么原因造成的?
在这个对话框类中重写PreSubclassWindow(),包含如下代码
if (m_bChild)
{
ModifyStyle(WS_POPUP | WS_OVERLAPPED, WS_CHILD);
}
else
{
ModifyStyle(WS_CHILD | WS_OVERLAPPED, WS_POPUP);
}
CDialogEx::PreSubclassWindow();
当作为WS_POPUP弹窗可以正常在CEdit中输出数据(焦点可用)
当在另外一个对话框中把它作为子对话框嵌入,则CEdit根本获取不到点击后的焦点,其他控件均可用并且正常。
//父对话框中的OnInitDialog代码
CDialogEx::OnInitDialog();
if (m_wndMopt.Create(this))
{
m_wndMopt.ModifyStyle(WS_CAPTION | WS_POPUP | WS_SYSMENU | DS_MODALFRAME, NULL);
m_wndMopt.ModifyStyleEx(WS_EX_DLGMODALFRAME | WS_EX_WINDOWEDGE, NULL, NULL);
::SetWindowPos(m_wndMopt.GetSafeHwnd(), nullptr, 0, 0, 0, 0, SWP_NOSIZE);
m_wndMopt.ShowWindow(SW_NORMAL);
}
return TRUE;
所有的对话框都是继承自:CDialogEx
是什么原因?或者可能是什么原因造成的?
...全文
相关推荐
MFC_cedit_控件使用方法.doc
ON_EN_ERRSPACE 编辑控件不能为特定请求分配足够的空间。ON_EN_HSCROLL 用户单击了编辑控件中的水平滚动条,父窗口在屏幕更新之前被通知。
label CStatic
这个控件通常用于显示静态文本、图标或位图,不能与用户进行直接交互,比如输入文字。
CListCtrl--editable.zip_CListCtrl_clistctrl 编辑_list ctrl editabl
**设置焦点和大小**:设置CEdit控件为活动控件,这样用户就可以开始输入了。同时,调整CEdit控件的大小以适应CListCtrl项的宽度。5.
双击可编辑单元格的ListControl控件
```为了确保数据的正确保存,我们需要监听编辑控件的EN_KILLFOCUS消息,即当编辑控件失去焦点时,获取用户输入的新值并更新到ListControl中。
可编辑listctrl扩展控件
在处理这个通知时,你需要获取新的文本,并更新对应列表项的数据。4.


