gpt4 book ai didi

c++ - MFC CEdit 不接受键盘输入

转载 作者:行者123 更新时间:2023-11-28 04:23:14 24 4
gpt4 key购买 nike

我有一个遗留项目,我需要在其中向 View 添加多行文本框。

我首先只想在我的 View 类的 onDraw 函数中创建一个文本框,以便在屏幕上放置一个文本框。文本框的矩形一直闪烁。我无法选择它或执行任何操作。

View 类是 CView 固有的。信息。我从研究中得到的是 CEdit 通常添加到对话框类,但我仍然可以将它添加到任何 View 。

CRect rect(100, 100, 300, 200);
CEdit test;
test.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | WS_HSCROLL | ES_MULTILINE | WS_VSCROLL, \
rect, this, 1);

我对此完全陌生,在了解所有句柄和消息传递之前,我只想简单地创建一个文本框并在其中键入一些文本。

提前感谢您的帮助。

最佳答案

您可能不想在 OnDraw 中创建编辑控件。事实上,除非您的 View 包含您需要绘制的其他内容,否则您可能根本不需要处理 OnDraw。

当您有一个托管控件的 View 时,您通常希望在 View 的 OnCreate 中创建该控件,因此它是在创建 View 自己的窗口(将成为控件的父级)之后但在显示 View 的窗口之前创建的(所以控件可以同时显示)。

在这种情况下, View 可能根本不需要处理绘图。它可能需要处理:

  1. 调整大小:调整控件大小以适应 View 客户区的新大小。
  2. 焦点:当 View 获得焦点时,立即将焦点赋予控件。
  3. 命令:您经常需要处理以下事情:
    • 剪切/复制/粘贴到/从控件
    • 将数据放入控件(例如,来自文件)
    • 让数据脱离控制(例如,保存到文件)
    • 设置控件的字体

关于c++ - MFC CEdit 不接受键盘输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54985805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com