用c语言写一个登陆的界面遇到的问题

qq744056399 2016-07-11 11:40:31
例子:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <wincon.h>
#include <process.h>

int TabKey=1;

int main(void)
{
SMALL_RECT a1={0,5,20,7};
SMALL_RECT a2={25,5,50,7};
SMALL_RECT a3={55,5,75,7};
hIn=GetStdHandle(STD_INPUT_HANDLE);
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleOutputCP(437);
ClrScr();
DisBox(a1);
DisBox(a2);
DisBox(a3);
TabControl();
return 0;
}
void DisBox(SMALL_RECT rc)
{
char ch[6];
COORD ps;
DWORD z;
ch[0]=(char)0xda;
ch[1]=(char)0xbf;
ch[2]=(char)0xc0;
ch[3]=(char)0xd9;
ch[4]=(char)0xc4;
ch[5]=(char)0xb3;
for(ps.X=rc.Left+1;ps.X<rc.Right-1;ps.X++)
{
ps.Y=rc.Top;
//Drow Top Line
WriteConsoleOutputCharacterA(hOut,&ch[4],1,ps,&z);
if(ps.X==rc.Left+1)//Drow Left Top
{
ps.X--;
WriteConsoleOutputCharacterA(hOut,&ch[0],1,ps,&z);
ps.X++;
}
if(ps.X==rc.Right-2)//Drow Right Top
{
ps.X++;
WriteConsoleOutputCharacterA(hOut,&ch[1],1,ps,&z);
ps.X--;
}
ps.Y=rc.Bottom;//Drow Bottom Line
WriteConsoleOutputCharacterA(hOut,&ch[4],1,ps,&z);
if(ps.X==rc.Left+1)//Drow Left Bottom
{
ps.X--;
WriteConsoleOutputCharacterA(hOut,&ch[2],1,ps,&z);
ps.X++;
}
if(ps.X==rc.Right-2)//Drow Right Bottom
{
ps.X++;
WriteConsoleOutputCharacterA(hOut,&ch[3],1,ps,&z);
ps.X--;
}
}
for(ps.Y=rc.Top+1;ps.Y<=rc.Bottom-1;ps.Y++)
{
ps.X=rc.Left;
WriteConsoleOutputCharacterA(hOut,&ch[5],1,ps,&z);
ps.X=rc.Right-1;
WriteConsoleOutputCharacterA(hOut,&ch[5],1,ps,&z);
}
}void TabControl() //¼àÊÓÊäȁEÄÏ̺߳¯Êý
{
INPUT_RECORD keyRc;
INPUT_RECORD mouseRc;
DWORD kres,mres;
for(;;)
{
ReadConsoleInput(hIn,&keyRc,1,&kres);
if(keyRc.EventType==KEY_EVENT)
{
if(keyRc.Event.KeyEvent.wVirtualKeyCode==VK_TAB)
{
switch(TabKey)
{
case 1:
{
GotoXY(2,6);
TabKey++;
}break;
case 2:
{
GotoXY(26,6);
TabKey++;
}break;
case 3:
{
GotoXY(56,6);
TabKey++;

}break;
default:TabKey=1;
}
}

}
//DelayMS(100);
}
}
void GotoXY(int x,int y)
{
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
GetConsoleScreenBufferInfo(hOut,&csbiInfo);
csbiInfo.dwCursorPosition.X = x;
csbiInfo.dwCursorPosition.Y = y;
SetConsoleCursorPosition(hOut,csbiInfo.dwCursorPosition);
}

忘了把函数头贴上了,自己补上吧,大概
ReadConsoleInput,
GetConsoleScreenBufferInfo,
SetConsoleCursorPosition,
WriteConsoleOutputCharacter,
请问各位大神上面的四个函数加到哪里去啊?
而且这四个函数有什么用吗?
...全文
212 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
Visual Studio Code 是由微软开发的一款免费、开源、跨平台的现代化轻量级代码编辑器,自发布以来迅速成为全球开发者最受欢迎的工具之一。它结合了编辑器的轻便性和集成开发环境(IDE)的强大功能,支持多种编程语言和开发场景,核心特点: 1. 跨平台支持 可在 Windows、macOS 和 Linux 上运行,保持一致的用户体验。 2. 轻量级与高性能 启动速度快,占用资源少,适合处理大型项目或低配置设备。 3. 智能代码补全 内置 IntelliSense(智能感知),提供代码提示、参数信息、快速修复等功能,支持 JavaScript、TypeScript、Python、C++ 等主流语言。 4. 内置终端 直接在编辑器内打开集成终端(支持 PowerShell、CMD、Bash 等),方便执行命令行操作。 5. 调试工具 内置调试器,支持断点、变量监视、调用堆栈查看等,无需离开编辑器即可调试代码。 6. Git 集成 直接通过侧边栏管理 Git 仓库,支持提交、分支切换、冲突解决等操作。 7. 丰富的扩展生态系统 通过 Extensions Marketplace 可安装数千款插件,扩展功能包括: 语言支持:如 Java、Go、Rust 等。 主题与图标:自定义界面风格。 工具集成:如 Docker、Kubernetes、数据库连接等。 效率工具:如 REST Client、Live Server 等。 8. 自定义与主题 支持修改键盘快捷键、界面主题、文件图标等,打造个性化开发环境。 9. 多光标编辑 按住 Alt(Windows/Linux)或 Option(macOS)点击可添加多个光标,同时编辑多处代码。 10. 远程开发支持 通过 Remote - SSH、Remote - Containers 等扩展,可直接连接远程服务器或开发容器,实现无缝协作。

70,024

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧