home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Programmer's Library 1.3 / Microsoft-Programers-Library-v1.3.iso / sampcode / qc_prog / chap13 / roamscrn.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-04-07  |  2.0 KB  |  68 lines

  1. /*   roamscrn.c  -- puts text on screen, positions    */
  2. /*                  cursor with arrow keys, uses F1   */
  3. /*                  and F2 to control video inverse.  */
  4. /*   program list -- roamscreen.c, scrfun.lib         */
  5. /*   user include files -- keys.h, scrn.h             */
  6. /*  Note: Activate Screen Swapping On in Debug menu   */
  7. #include <conio.h>
  8. #include "keys.h"
  9. #include "scrn.h"
  10. #define BELL '\a'
  11. #define ESC '\033'
  12. #define PAGE 0
  13.  
  14. char *Heading =
  15. "Use standard keys to enter text. Use arrow keys to "
  16. "reposition cursor.\nUse F2 to turn on video inverse "
  17. "and F1 to turn it off.\nHit the ESC key to quit.\n";
  18.  
  19. main()
  20. {
  21.     int ch;
  22.     unsigned char atr = NORMAL;
  23.  
  24.     Clearscr();
  25.     Home();
  26.     printf("%s", Heading);
  27.     while ((ch = getch()) != ESC)
  28.         {
  29.         if (ch == '\r')
  30.             {
  31.             putch('\n');
  32.             putch('\r');
  33.             }
  34.         else if (ch != 0)
  35.             {
  36.                Write_ch_atr(ch, atr, PAGE, 1);
  37.             if (!Cursrt())
  38.                 putch(BELL);
  39.             }
  40.         else
  41.             {
  42.             ch = getch();
  43.             switch (ch)
  44.                 {
  45.                 case F1 : atr = NORMAL; break;
  46.                 case F2 : atr = VIDREV; break;
  47.                     case UP : Rewrite(atr, PAGE);
  48.                           if (!Cursup())
  49.                             putch(BELL);
  50.                           break;
  51.                     case DN : Rewrite(atr, PAGE);
  52.                           if (!Cursdn())
  53.                             putch(BELL);
  54.                           break;
  55.                     case LT : Rewrite(atr, PAGE);
  56.                           if (!Curslt())
  57.                             putch(BELL);
  58.                           break;
  59.                     case RT : Rewrite(atr, PAGE);
  60.                           if (!Cursrt())
  61.                             putch(BELL);
  62.                           break;
  63.                 default : break;
  64.                 }
  65.             }
  66.         }
  67. }
  68.