比如输入123,在文本框中并不显示123,但是动一下鼠标就会显示出来,不管移动到哪里,只要动一下就行.....求助该怎么解决
我是用一个文本框类,类里面用char数组存储字符串,每次键盘输入之后调用append函数将输入的字符放进char数组。show函数是显示文本框和框里面的字符,eventLoop循环判断有没有输入
//ManagerPage函数会一直循环调用来显示界面
int Manage::ManagerPage()
{
//背景
print_Background(Manager_bk);
//标题
setbkmode(TRANSPARENT);
setcolor(WHITE);
settextstyle(40, 0, "黑体");
outtextxy(380, 100, "管理员登录");
//文本框1
Manager_Page_Text_Btn[0]->show();
Manager_Page_Text_Btn[0]->eventLoop(m_msg);
//文本框2
Manager_Page_Text_Btn[1]->show();
Manager_Page_Text_Btn[1]->eventLoop(m_msg);
//两个按钮
Manager_Page_Btn[0]->show();
Manager_Page_Btn[1]->show();
return MANAGER;
}
//show函数显示文本框
void TextBox::show()
{
settextstyle(20, 0, "Verdana");
//输出文本框样式
setlinecolor(current_c);
rectangle(m_x, m_y, m_x + m_w, m_y + m_h);
//输出文本框内容
outtextxy(m_x + 30, m_y + (m_h - 20) / 2, m_text);
}
void TextBox::eventLoop(const ExMessage& msg)
{
m_msg = msg;
if (ifHover()) //如果悬停在输入框内就可输入
{
showCursor(); //显示光标
char c = 0;
if (_kbhit())
{
c = _getch();
this->append(c);
}
}
}