https://codebus.cn/bestans/textbox-sample
我用的是这个网站里面的控件,因为没学到这,所以代码不是很懂,只能把它当个功能用,希望大家能帮忙看一下这个控件怎么才能做到按OK之后清空文本框里面的内容。
textBox.Text = ""
如果您在 EasyX 中使用文本框控件(inputbox),您可以通过在响应“确认”按钮事件的函数中,将文本框的内容清空来实现。
下面是一段示例代码,它演示了如何在按下“确认”按钮后清空文本框的内容:
#include <graphics.h>
int main()
{
// 初始化图形窗口
initgraph(640, 480);
// 创建一个文本框控件
char text[256] = { 0 };
inputbox_getline("请输入文本", "请输入您要清空的内容:", text, sizeof(text));
// 响应“确认”按钮事件
if (inputbox_getbkcolor() == WHITE) {
// 点击了“确认”按钮
outtextxy(10, 10, "您输入的内容是:");
outtextxy(10, 30, text);
// 清空文本框内容
memset(text, 0, sizeof(text));
inputbox_setline(text);
}
// 关闭图形窗口
closegraph();
return 0;
}
在这个示例中,我们使用 inputbox_getline 函数创建了一个文本框控件,并在响应“确认”按钮事件的函数中清空了文本框的内容。具体来说,我们使用 inputbox_setline 函数将文本框的内容设置为空字符串,这样就可以清空文本框的内容了。
需要注意的是,这个示例中的清空操作是在响应“确认”按钮事件之后进行的,如果您想要在用户按下“确认”按钮之前清空文本框的内容,可以在响应“取消”按钮事件的函数中执行清空操作。
参考GPT和自己的思路:根据文档,可以在“按下 Enter 键时”事件处理函数中添加代码以清空文本框。具体来说,可以在事件处理函数中添加以下代码:
case EVENT_KEYDOWN:
if (wParam == VK_RETURN) { // 如果按下了 Enter 键
// 处理文本框的输入
// ...
// 清空文本框
m_textbox.SetWindowText(_T(""));
}
break;
在这个代码中,m_textbox 是文本框的控件对象,SetWindowText 函数可以设置文本框的文本内容。将其设置为空字符串即可清空文本框。
代码示例如下:
#include <easyx.h>
int main()
{
initgraph(640, 480);
// 创建一个文本框
CEdit m_textbox;
m_textbox.Create(WS_CHILD | WS_VISIBLE | WS_BORDER | ES_LEFT | ES_AUTOHSCROLL, CRect(10, 10, 200, 30), getHWND(), 100);
// 注册文本框的“按下 Enter 键时”事件处理函数
m_textbox.SetEventMask(ENM_KEYEVENTS);
m_textbox.SetWindowText(_T(""));
m_textbox.SetSel(0, -1);
m_textbox.HideCaret();
m_textbox.SetFocus();
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
switch (msg.message)
{
case WM_COMMAND:
switch (msg.wParam)
{
case 100:
// 处理文本框的输入
// ...
// 清空文本框
m_textbox.SetWindowText(_T(""));
break;
}
break;
case WM_CLOSE:
DestroyWindow(getHWND());
break;
}
}
closegraph();
return 0;
}