CEdit不能获取焦点

幻夢之葉 幻夢之葉 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我继承了一个对话框类,并且关联了一个对话框资源,里面包含按钮,组合框和编辑框
在这个对话框类中重写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
是什么原因?或者可能是什么原因造成的?
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
幻夢之葉
C++ 语言 65,214 成员 250,514 内容