- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 MyFrame
派生自 wxFrame
。一个 wxTextCtrl
被添加到这个框架。我可以在框架中处理此文本控件的 EVT_KEY_DOWN
吗?类似的东西,
BEGIN_EVENT_TABLE(wxTextCtrl, wxControl)
EVT_KEY_DOWN(MyFrame::OnKeyDown)
END_EVENT_TABLE()
上面的代码似乎不起作用。文档说这样的事件只能由发起事件的对象处理。那么我是否应该继承 wxTextCtrl
来处理这个问题并以某种方式将信息发送到框架?
这样做的最佳方法是什么?
最佳答案
wxCommandEvent
和 wxNotifyEvent
来自子控件的类型事件被设置为自动向上传播到父框架。然而,wxKeyEvent
源自 wxEvent
所以它不会传播到父框架。那么,您可以使用动态事件处理程序将一些事件路由到任何 wxEvtHandler
派生对象。
在 wxWidgets 2.8 下你应该使用 wxEvtHandler::Connect
.此方法描述 here .您也可以查看 this sample code .
在 wxWidgets 2.9 和 SVN 下你应该使用 wxEvtHandler::Bind<>
:
MyFrame::MyFrame(...)
{
m_textcontrol->Bind(wxEVT_KEY_DOWN, &MyFrame::OnTextControlKeyDown, this);
}
wxEvtHandler::Bind<>
方法描述here .
关于c++ - 在 wxFrame 上处理来自 wxTextCtrl 的事件 - C++/wxWidgets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5813693/
我和我的搭档一直在寻找将值加载到 wxTextCtrl 框中的方法,但没有成功。您是否知道可以帮助为其分配值的任何技巧,例如在单击按钮后?任何帮助将不胜感激。 最佳答案 wxTextCtrl * my
当用户点击 wxTextCtrl 时有没有简单的方法来处理?阅读文档后wxTextCtrl我发现没有单击或双击事件。我从问题 wxWidgets: Detecting click event on c
我正在尝试创建一个自定义透明 wxTextCtrl,方法是从它驱动并自己绘制文本,如下所示: BEGIN_EVENT_TABLE(TextLayer, wxTextCtrl) EVT_PAIN
我正在学习 wxWidgets,而不是 wxPython,实际的 C++ 库。我在使用 wxTextCtrl 绑定(bind)双变量时遇到了麻烦。据我所知,它应该通过 wxValidator 模板来完
我有一个长度为 81 和 81 的 vector wxTextCtrl's...有没有一种更简单的方法可以将 vector 中的值显示到 textCtrl's 而无需手动逐一键入它们。我有一个指向第一
我正在尝试在 wxWidgets(版本 2.8.12)中实现自定义小部件,本质上是修改后的单行 wxTextCtrl。它需要一个由空格分隔的两组 8 位十六进制数字组成的文本输入,我希望控件自动处理该
我有一个 wxTextCtrl 对象并将其设置为自动完成 wxArrayString _myStringArray; _myStringArray.push_back("abc"); _myStrin
我想在 wxGTK 应用程序中通过将文本字段的背景设置为错误时红色和成功输入时白色来表示输入错误。但是,当通过 SetBackgroundColor 设置背景颜色时,非事件选择的背景颜色将设置为相同颜
我有一个 wxWidgets GUI 程序,我想有一个标准的控制台窗口附加到它用于 stdout/etc。去。 如果有人知道如何做到这一点(一个 GUI 应用程序和以及一个控制台窗口)那就太好了。但是
我正在尝试使用 wxTextCtrl 为我的 GUI 应用程序创建一个输入框。我制作了盒子,但当我尝试从中获取输入文本时,它崩溃了,我不明白为什么。 代码如下: main.cpp: int mai
问题 我正在尝试创建一个带有文本输入框的基本 wxWidgets 程序,在构造函数中有一个变量 wxTextCtrlNameStr - 在研究中我似乎找不到 wxTextCtrlNameStr?有帮助
我一直在尝试使用 for_each 将 wxTextCtrl 的多个标签设置为空值,如下所示: std::deque dqImg; for_each (dqImg.begin(),dqImg.end(
我有这段代码: void stoiximanFrame::OnButton1Click(wxCommandEvent& event) { cout’ ?) 我是 C++ 的新手,所以我以前从未
我正在为 wxWidgets 中的 wxTextCtrl 使用 wxEVT_SET_FOCUS。我需要做的是当用户单击 textctrl 时,我必须打开一个新窗口并从 textctrl 中删除焦点,以
此代码显示单个文本框和一个按钮。当用户单击按钮时,窗口退出,但是我想将 textControl 放在窗口的中心,但它不起作用。这是我的代码: // base.h #ifndef base_h_ #de
有没有办法在禁用时更改 wxTextCtrl 的颜色,或者有其他方法在启用时锁定输入控件? 我不喜欢灰色背景上的灰色文本,带有灰色边框,它使控件内的信息更难阅读。 我正在使用 wxSmith,没有可用
我的应用程序是一个多线程应用程序(使用 wxThreads)。目前,主线程及其子工作线程正在将各种消息输出到 Stdout(使用 cout)。 我有一个带有 wxTextCtrl 的新框架/窗口,并且
我有一个 MyFrame 派生自 wxFrame。一个 wxTextCtrl 被添加到这个框架。我可以在框架中处理此文本控件的 EVT_KEY_DOWN 吗?类似的东西, BEGIN_EVENT_TA
在linux中,wxTextCtrl不处理“contrl+c”、“contrl+x”、“contrl+v”,当它的父窗口有带有这三种键的加速器(快捷键)时。当按下这些键时,父窗口将在其自己的窗口而不是
我是一名优秀的程序员,十分优秀!