console.c
上传用户:fubang
上传日期:2009-06-18
资源大小:2071k
文件大小:2k
源码类别:

其他

开发平台:

Unix_Linux

  1. #include <windows.h>
  2. #include "console.h"
  3. #include "resource.h"
  4. COORD dwPos;
  5. HANDLE hOutput = NULL;
  6. CONSOLE_SCREEN_BUFFER_INFO csbi;
  7. void set_text_color( int col )
  8. {
  9.     if( hOutput == NULL )
  10.         hOutput = GetStdHandle( STD_OUTPUT_HANDLE );
  11.     SetConsoleTextAttribute( hOutput, (WORD) col );
  12. }
  13. void set_cursor_pos( int x, int y )
  14. {
  15.     if( hOutput == NULL )
  16.         hOutput = GetStdHandle( STD_OUTPUT_HANDLE );
  17.     dwPos.X = x;
  18.     dwPos.Y = y;
  19.     SetConsoleCursorPosition( hOutput, dwPos );
  20. }
  21. void clear_console( int *ws_row, int *ws_col )
  22. {
  23.     int n, length;
  24.     if( hOutput == NULL )
  25.         hOutput = GetStdHandle( STD_OUTPUT_HANDLE );
  26.     SetConsoleTextAttribute( hOutput, TEXTATTR );
  27.     GetConsoleScreenBufferInfo( hOutput, &csbi );
  28.     if( ws_row != NULL ) *ws_row = csbi.dwSize.Y;
  29.     if( ws_col != NULL ) *ws_col = csbi.dwSize.X;
  30.     length = ( csbi.dwSize.Y - csbi.dwCursorPosition.Y )
  31.            * ( csbi.dwSize.X - csbi.dwCursorPosition.X );
  32.     dwPos.X = csbi.dwCursorPosition.X;
  33.     dwPos.Y = csbi.dwCursorPosition.Y;
  34.     FillConsoleOutputAttribute( hOutput, TEXTATTR, length, dwPos, &n );
  35.     FillConsoleOutputCharacter( hOutput, 0x20,     length, dwPos, &n );
  36. }
  37. void set_console_size( int ws_row, int ws_col )
  38. {
  39.     if( hOutput == NULL )
  40.         hOutput = GetStdHandle( STD_OUTPUT_HANDLE );
  41.     GetConsoleScreenBufferInfo( hOutput, &csbi );
  42.     csbi.dwSize.Y = ws_row;
  43.     csbi.dwSize.X = ws_col;
  44.     SetConsoleScreenBufferSize( hOutput, csbi.dwSize );
  45.     csbi.srWindow.Left      = 1;
  46.     csbi.srWindow.Top       = 1;
  47.     csbi.srWindow.Right     = ws_col;
  48.     csbi.srWindow.Bottom    = ws_row;
  49.     SetConsoleWindowInfo( hOutput, TRUE, &csbi.srWindow );;
  50.     set_cursor_pos( 0, 0 );
  51.     clear_console( NULL, NULL );
  52. }
  53. void set_console_icon( char *title )
  54. {
  55.     HANDLE hWnd;
  56.     HANDLE hInst;
  57.     HICON hAppIcon;
  58.     SetConsoleTitle( title );
  59.     hWnd = FindWindow( NULL, title );
  60.     hInst = GetModuleHandle( NULL );
  61.     hAppIcon = LoadIcon( hInst, MAKEINTRESOURCE( IDI_APP_ICON ) );
  62.     SendMessage( hWnd, WM_SETICON, ICON_SMALL, (LPARAM) hAppIcon );
  63.     SendMessage( hWnd, WM_SETICON, ICON_BIG  , (LPARAM) hAppIcon );
  64. }