用c语言模仿windows界面和接收esc之类的功能键的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用c语言模仿windows界面和接收esc之类的功能键的问题相关的知识,希望对你有一定的参考价值。

我想用c语言模拟windows界面,我想设置显示模式为vga,然后正常打印字符串等等,但是有一个问题,这个时候用printf和scanf还可以吗?是不是只有8025模式才可以用printfscanf啊?也就是说如何在图形显示模式下打印和接收标准输入输出?用什么函数?语法是怎样的?

还有就是如何接收esc键、back键、tab键、回车键、f123456··的按下?
我用#define ESC 27
getch(c);
if(ESC==c)
···

无法接收到。
我听说了一个bioskey函数,可以用来接收这样的按键,那么请问一下具体应该怎么用呢?具体。。。具体。。。

#include<stdio.h>
#include<conio.h>
#include<dos.h>
#include<bios.h>
#define ESC 283
#define UP 18432
#define DOWN 20480
#define LEFT 19200
#define RIGHT 19712
void main()

int key;
while(key!=ESC)

printf("wait for keypress...\n");
sleep(1);
key = bioskey(0);
switch(key)

case ESC:printf("you have press ESC...\n");break;
case UP:printf("you have press UP...\n");break;
case DOWN:printf("you have press DOWN...\n");break;
case LEFT:printf("you have press LEFT...\n");break;
case RIGHT:printf("you have press RIGHT...\n");break;
default:break;




bioskey函数介绍

函数原型:int bioskey (int cmd)

说明:bioskey()的函数原型在bios.h中

bioskey()完成直接键盘操作,cmd的值决定执行什么操作。

cmd = 0:

当cmd是0,bioskey()返回下一个在键盘键入的值(它将等待到按下一个键)。它返回一个16位的二进制数,包括两个不同的值。当按下一个普通键时,它的低8位数存放该字符的ASCII码;对于特殊键(如方向键、F1~F12等等),低8位为0,高8位字节存放该键的扫描码。

cmd = 1:

当cmd是1,bioskey()查询是否按下一个键,若按下一个键则返回非零值,否则返回0。

cmd = 2:

当cmd是2,bioskey()返回Shift、Ctrl、Alt、ScrollLock、NumLock、CapsLock、Insert键的状态。各键状态存放在返回值的低8位字节中。

字节位 含义

0 右边Shift键状态

1 左边Shift键状态

3 Ctrl键状态

4 Alt键状态

5 ScrollLock键状态

6 NumLock键状态

7 CapsLock键状态

8 Insert键状态

字节位为1表示该键被按下,为0表示松开。

参考资料:http://zhidao.baidu.com/question/27032676.html?fr=qrl3

参考技术A getch只能接收字符

模仿qq界面实现(WTL)

前面对于界面用哪一种我试过用duilib,但是老感觉和MFC差距有点多,终于发现WTL的库能够实现我的所有界面功能,几天的努力终于搞定界面的重写。还是见我的成果吧:

1登录界面:

2主界面:

3.主界面的下拉菜单

4.托盘:

5.聊天主界面:

6.服务器后台基本不变(但是增加对多字节的处理)

唉,说句感慨,互联网+、大数据和物联网让java开发越来越吃香,c++越来越难做了,我的口号是坚持自己作为一个c的忠粉的信念。(希望c/c++的那些大神们赶紧出点物联网时代的对策吧,不然JAVA就一统天下了)。 

 

以上是关于用c语言模仿windows界面和接收esc之类的功能键的问题的主要内容,如果未能解决你的问题,请参考以下文章

能否给我一个用纯C编写的UDP发送和接收的程序

C语言如何跟C#一样弄个窗体出来,并加入按钮之类的控件

我用c语言写了一个小的计算器程序,但是我想给这个程序做一个windows界面,

C语言 请问一下windows下的c++开发,用啥【界面库】比较好?

用C语言模仿Python函数

怎样用c语言写一个图形界面