- 主题
- 5
- 帖子
- 138
- 精华
- 1
- 积分
- 749
- C币
- 658 枚
- 在线时间
- 92 小时
- 注册时间
- 2011-11-3
- 最后登录
- 2012-5-16
- 性别
- 男
- 居住地
- 陕西省 宝鸡市
 
- 主题
- 5
- 帖子
- 138
- C币
- 658 枚
- 在线时间
- 92 小时
|
发表于 2011-11-8 20:34:07
|显示全部楼层
- #include <stdio.h>
- #include <conio.h>
- #include <bios.h>
- char leftbuf[40*25*2];/*切换时保存左窗口文本*/
- char rightbuf[40*25*2];/*切换时保存右窗口文本*/
- int leftx, lefty;/*切换时保存左窗口当前坐标*/
- int rightx, righty;/*切换时保存右窗口当前坐标*/
- void draw_left_win();/*重绘左边窗口*/
- void draw_right_win();/*重绘右边窗口*/
- int main()
- {
- int key;
- int turn;
- textmode(C80);
- textbackground(0);
- textcolor(WHITE);
- clrscr();
- gotoxy(60,1);
- cprintf("Press Esc to Quit");
- window(41,2,79,24); /*右边窗口为绿色背景,红色前景*/
- textbackground(2);
- textcolor(4);
- clrscr();
- gettext(41,2,79,24, rightbuf);
- window(2,2,40,24); /*左边窗口为蓝色背景,白色前景*/
- textbackground(1);
- textcolor(15);
- clrscr();
- gettext(2,2,40,24, leftbuf);
- turn = 0; /*初始激活左窗口*/
- for(;;)
- {
- key=bioskey(0);
- if(key == 0x11b)
- exit(0);
- if((key&0xff)!=0) key=key&0xff; /*获取窗口输入的文本的ASCII 码值*/
- if(key == '\t')
- {
- if(turn == 0) /*切换到左窗口*/
- {
- gettext(2,2,40,24, leftbuf);
- leftx = wherex();
- lefty = wherey();
- draw_right_win();
- turn = 1;
- }
- else if(turn == 1) /*切换到右窗口*/
- {
- gettext(41,2,79,24, rightbuf);
- rightx = wherex();
- righty = wherey();
- draw_left_win();
- turn = 0;
- }
- }
- else
- putch(key); /*当前光标处显示新输入的文本字符*/
- }
- }
- void draw_right_win()
- {
- window(41,2,79,24);
- textbackground(2);
- textcolor(4);
- clrscr();
- puttext(41,2,79,24, rightbuf);
- gotoxy(rightx, righty);
- }
- void draw_left_win()
- {
- window(2,2,40,24);
- textbackground(1);
- textcolor(15);
- clrscr();
- puttext(2,2,40,24, leftbuf);
- gotoxy(leftx, lefty);
- }
复制代码 简单的二窗口编辑器 tab键换窗口 ESC退出 |
|