c++中的滚动菜单?如何改变它的开关
Scrolling menu in c++? how to change if to switch-case?
hello i make Scrolling menu in c++
do
{
if (GetAsyncKeyState(VK_UP) != 0)
{
pointer -= 1;
if (pointer <= -1)
{
pointer = 6;
}
ShowMenu(pointer,Menu);
}
else if (GetAsyncKeyState(VK_DOWN) != 0)
{
pointer += 1;
if (pointer >= 7)
{
pointer = 0;
}
ShowMenu(pointer,Menu);
}
else if(GetAsyncKeyState(VK_RETURN) != 0)
{
switch (pointer)
{
case 0:
//do somethink awesome!xD
break;
}
}
Sleep(150);
}
while(true);
,但如何改变这个如果换箱子?用GetAsyncKeyState吗?我可以这样写
char button;
switch(button){
case 27: // is escape
//to do
break;
}
但我想使用GetAsyncKeyState xD
我想你把控制台程序和基于窗口的程序搞混了。"case 27"样式可以用于控制台,但不能用于基于窗口的。
但是如果你真的想使用switch样式,你可以试试
(GetAsyncKeyState(VK_UP) != 0) << 2 +
(GetAsyncKeyState(VK_DOWN) != 0) << 1 +
(GetAsyncKeyState(VK_RETURN) != 0)
那么在开关情况下你可能有8种可能的组合
顺便说一下,您所做的是使用while循环来轮询keystate,这是一个CPU怪物,并且浪费太多。
相关文章:
- 既然存在危险,为什么项目要使用-I include开关
- 变量没有改变?通过向量的函数调用
- 为什么这个音频包络不能通过开关的情况?
- 有人知道为什么在开关中使用stoi函数会返回恒定的错误吗
- 如何改变c++应用程序的视觉效果
- C++在不同线程中改变向量
- 如何访问和改变存储在矢量C++中的对象
- C 和 C++ 中开关语句的案例标签的常量值,但显示不同的行为
- 在 c++ 中在开关情况下使用和不使用"break"时的不同输出
- 在C++行尾写一个分号或多个分号是否会改变任何内容
- 为什么我的开关/机箱在使用枚举时默认?
- 为什么字符串的 move() 会改变内存中底层数据的位置?
- 为什么布尔开关语句有编译器警告?
- 如何使用"equal to"以外的评估编写开关语句
- 为什么开关的优化方式与 c/c++ 中的链接不同?
- 无法找到简单的开关大小写枚举错误
- 未达到的情况会影响开关外壳性能
- 为什么 c++ 动态数组的大小没有改变?
- 为什么提升图库的 read_graphviz() 函数会改变节点的索引
- c++中的滚动菜单?如何改变它的开关