为啥我点击哪个按钮都是display?
using namespace std;
Mangagement::Mangagement()
{
::loadimage(&m_bk, "./images/bk.png", Window::width(), Window::height());
//主界面按钮初始化
menu_btns.push_back(new PushButton("查看学生"));
menu_btns.push_back(new PushButton("添加学生"));
menu_btns.push_back(new PushButton("删除学生"));
menu_btns.push_back(new PushButton("修改学生"));
menu_btns.push_back(new PushButton("查找学生"));
menu_btns.push_back(new PushButton("退出系统"));
//设置坐标,不让按钮堆叠到一起
for (int i = 0; i < menu_btns.size(); i++)
{
menu_btns[i]->setFixedSize(250, 50);
int bx = (Window::width() - menu_btns[i] ->width()) / 2;
int vspace = (Window::height() - menu_btns.size() * menu_btns[i]->height()) / 2;
int by = vspace + i * menu_btns[i]->height();
menu_btns[i]->move(bx,by);
}
}
void Mangagement::run()
{
//获取菜单的返回值
int op = Menu;
//双缓冲绘图,防闪屏
Window::beginDraw();
while (true)
{
Window::clear();
drawBackground();
if (Window::hasMsg())
{
m_msg = Window::getMsg();
switch(m_msg.message)
{
case WM_KEYDOWN: //按键按下
//按esc退出操作,返回主界面
if (m_msg.vkcode == VK_ESCAPE)
{
op = Menu;
}
break;
default: //鼠标操作
break;
}
}
switch (op)
{
case Menu:
op = menu();
break;
case Mangagement::Display:
display();
break;
case Mangagement::Insert:
add();
break;
case Mangagement::Remove:
erase();
break;
case Mangagement::Modify:
modify();
break;
case Mangagement::Search:
search();
break;
default:
break;
}
Window::flushDraw();
}
Window::endDraw();
}
int Mangagement::menu()
{
for (auto btn : menu_btns)
{
btn->show();
}
for (int i = 0; i < menu_btns.size(); i++)
{
menu_btns[i]->show();
menu_btns[i]->eventLoop(m_msg);
if (menu_btns[i]->isClicked())//被点击
{
return i;
}
}
return Menu;
}
void Mangagement::display()
{
outtextxy(0, 0, "displ
好炫酷的界面,这是 MFC 吗,不是很懂
进入这个函数,你单步调试下? 这个 eventLoop 不会自动退出吧,直到你按下键盘为止
但是你按下去的时候 i 一直都是初始值 0,所以每次都是 display