|
发表于 2023-10-11 07:35:14
|
显示全部楼层
对于需要在窗口失去焦点时检测按键的需求,可以使用Windows API函数来实现。你可以使用GetAsyncKeyState函数来获取按键状态。以下是修改后的代码示例:
- #include <stdio.h>
- #include <Windows.h>
- int main() {
- int anjian_d = 0;
- int anjian_f = 0;
- int anjian_j = 0;
- int anjian_k = 0;
- int anjian_sum = 0;
- while (1) {
- if (GetAsyncKeyState('D') & 0x8000) {
- anjian_d++;
- system("cls");
- anjian_sum = anjian_d + anjian_f + anjian_j + anjian_k;
- printf("d:%d\nf:%d\nj:%d\nk:%d\nsum:%d\n", anjian_d, anjian_f, anjian_j, anjian_k, anjian_sum);
- }
- if (GetAsyncKeyState('F') & 0x8000) {
- anjian_f++;
- system("cls");
- anjian_sum = anjian_d + anjian_f + anjian_j + anjian_k;
- printf("d:%d\nf:%d\nj:%d\nk:%d\nsum:%d\n", anjian_d, anjian_f, anjian_j, anjian_k, anjian_sum);
- }
- if (GetAsyncKeyState('J') & 0x8000) {
- anjian_j++;
- system("cls");
- anjian_sum = anjian_d + anjian_f + anjian_j + anjian_k;
- printf("d:%d\nf:%d\nj:%d\nk:%d\nsum:%d\n", anjian_d, anjian_f, anjian_j, anjian_k, anjian_sum);
- }
- if (GetAsyncKeyState('K') & 0x8000) {
- anjian_k++;
- system("cls");
- anjian_sum = anjian_d + anjian_f + anjian_j + anjian_k;
- printf("d:%d\nf:%d\nj:%d\nk:%d\nsum:%d\n", anjian_d, anjian_f, anjian_j, anjian_k, anjian_sum);
- }
- }
- return 0;
- }
复制代码
这样修改后的代码使用GetAsyncKeyState函数来检测按键状态,当某个按键被按下时,对应的计数器增加,并打印输出结果。请注意,GetAsyncKeyState函数在窗口失去焦点时也能正常工作。
球一个最佳答案谢谢啦!这对我非常重要!   |
|