获取在 CWnd 中具有焦点的控制器
Get controller who has focus inside CWnd
我有一个对话框,CFormView,其中包含一些按钮和一个面板,其中包含Tabcontrol,单选按钮,文本输入字段等。
因此,在我的面板 CWnd 上,我创建了这样的输入字段:
pEdit = new CEdit();
pEdit->CreateEx(WS_EX_CLIENTEDGE, _T("EDIT"), NULL, WS_CHILD | WS_VISIBLE | WS_TABSTOP | nAttrMultiline | m_clRect, pclPanel, iID)
其中m_clRect是CRect,pclPanel是我的CWnd,iID只是控制器ID。
我想在单击按钮时用文本填充我的CEdit
,但不知何故,我无法获得具有焦点的控制器。
我的第一次尝试是调用GetFocus()
,将其转换为CEdit
并添加文本,但这当然会更改按钮上的文本。
第二次尝试是用ON_WM_SETFOCUS()
检查WM_SETFOCUS
并保留以前的 wnd 并强制转换它并添加文本,但这只会更改我的对话框中的文本。
第三次尝试是将其移至我的CWnd,但据我所知,WM_SETFOCUS
从未被调用过。
编辑:
在我的CWnd中尝试ON_WM_ACTIVATE
::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
。但这也不是所谓的。
有人知道接下来要尝试什么吗?
你刚刚回答了自己。正确的方法是:在处理
ON_COMMAND(...)
每个按钮调用
pEdit->SetWindowText(_T("text"));.
GetFocus()
错了,因为它会返回按钮,因为当您单击它时,您刚刚完成将焦点放在它上面。您可以使用以下命令进行编辑
CEdit* pEdit= ( CEdit*) GetDlgItem(ID_OF_EDIT);
其中ID_OF_EDIT
是作为参数传递给CreateEx
的值iId
。
相关文章:
- 对于四轴飞行器,PID中I控制器的理想值应该是多少
- 如何集成 HID USB 控制器?
- 有没有办法区分Qt小部件是通过鼠标单击还是通过按表键获得焦点?
- MFC:如何设置CEdit框的焦点?
- 编译 libfluid 样本控制器时对"event_base_del_virtual"的未定义引用
- 更高效地在微控制器上对C++进行基准测试
- 如何修复 Arduino LED 串控制器的代码?
- 如何在 Windows 中通过 SSL 端口枚举域控制器
- 在 ubuntu 焦点上编译虚幻引擎 4.25 时出错
- 如何使用 c++ 在命令行中创建一个简单的字符控制器?
- 为什么玩家控制器"own"偏航俯仰和滚动,但角色"owns"它的位置?
- 在虚幻引擎中使用运动控制器组件,C++而不是蓝图
- 哗啦��错误:无法识别任何一组可以驱动指定关节的控制器
- 如何在 wxWidgets 中从 wxTextCtrl 中删除焦点
- 每次qt窗口获得焦点时调用函数
- Qt如何在QRect上设置焦点
- 在树状视图中双击后焦点丢失
- 微控制器的首次 gcc 链接器脚本编译但不运行
- 对控制器类的 WorkerScript 访问
- 获取在 CWnd 中具有焦点的控制器