Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Page: https://www.facebook.com/CungHocLapTrinhUIT
- #include <iostream> // thư viên của c++
- #include <conio.h> // dùng lệnh getch(), dừng màn hình lại
- #include <Windows.h>// các hàm định nghĩa bên dưới cần thư viện của hệ thống để tô màu, di trỏ....
- using namespace std;// trong iostream có rất nhiều thứ trùng tên cho nên họ phân ra theo vùng. vùng mà mình dùng thường xuyên là std
- //hàm di chuyển con trỏ trên màn hình console đến vị trí có tọa độ (x, y). Lưu ý toạn độ trong màn hình console vẫn là Oxy nhưng Oy hướng xuống
- void gotoxy(short x, short y)
- {
- HANDLE hConsoleOutput;
- COORD Cursor_an_Pos = { x, y };
- hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
- SetConsoleCursorPosition(hConsoleOutput, Cursor_an_Pos);
- }
- //Thay đổi màu chữ trên màn hình console
- void SetTextColor(WORD color)
- {
- HANDLE hConsoleOutput;
- hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
- CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
- GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);
- WORD wAttributes = screen_buffer_info.wAttributes;
- color &= 0x000f;
- wAttributes &= 0xfff0;
- wAttributes |= color;
- SetConsoleTextAttribute(hConsoleOutput, wAttributes);
- }
- //Thay đổi màu nển. Để thay đổi có hiệu lực các bạn nên dùng lệnh xóa màn hình. system("cls");
- void SetBGColor(WORD color)
- {
- HANDLE hConsoleOutput;
- hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
- CONSOLE_SCREEN_BUFFER_INFO screen_buffer_info;
- GetConsoleScreenBufferInfo(hConsoleOutput, &screen_buffer_info);
- WORD wAttributes = screen_buffer_info.wAttributes;
- color &= 0x000f;
- color <<= 4;
- wAttributes &= 0xff0f;
- wAttributes |= color;
- SetConsoleTextAttribute(hConsoleOutput, wAttributes);
- }
- //1 vấn đề các bạn hay gặp phải là kích thước màn hình console trên mỗi mãy tính đều có thể khác nhau
- //dẫn đến trên máy bạn nhìn cân đối nhưng sang máy khác thì nhìn nó bị lệch hoặc đơn giản bạn muốn thay đổi kích thước
- //màn hình console thì hay dùng hàm dưới đây.
- void SetWindowSize(int Width, int Height)
- {
- _COORD coord;
- coord.X = Width;
- coord.Y = Height;
- _SMALL_RECT Rect;
- Rect.Top = 0;
- Rect.Left = 0;
- Rect.Bottom = Height - 1;
- Rect.Right = Width - 1;
- HANDLE Handle = GetStdHandle(STD_OUTPUT_HANDLE);
- if (Handle == NULL)
- {
- cout << "Failure in getting the handle\n" << GetLastError();
- }
- if (!SetConsoleScreenBufferSize(Handle, coord))
- {
- cout << "Failure in setting buffer size\n" << GetLastError();
- }
- if (!SetConsoleWindowInfo(Handle, TRUE, &Rect))
- {
- cout << "Failure in setting window size\n" << GetLastError();
- }
- }
- //Hàm này thì do mình nghịch nghịch tìm ra.
- //Nó sẽ giúp các bạn vẽ 1 khung hình chữ nhật nhanh chóng
- // Khi gọi nó bạn lần lượt truyền vào a b là tọa độ góc trên bên trái và c d là góc dưới bên phải
- // *Note là chuỗi sẽ hiển thị bên trong khung. Lưu ý a và c các bạn nên để chênh lệch ít nhất 4 đơn vị
- void DrawRectangle(int a, int b, int c, int d)
- {
- int i;
- for (i = a; i <= c; i++)
- {
- gotoxy(i, b); printf("\xcd");
- gotoxy(i, d); printf("\xcd");
- }
- for (i = b; i <= d; i++)
- {
- gotoxy(a, i); printf("\xba");
- gotoxy(c, i); printf("\xba");
- }
- gotoxy(a, b); printf("\xc9");
- gotoxy(a, d); printf("\xc8");
- gotoxy(c, b); printf("\xbb");
- gotoxy(c, d); printf("\xbc");
- }
- //Các bạn có thể tham khảo thêm 2 code là tạo menu và nhập mật khẩu ở link dưới
- //https://drive.google.com/open?id=0B-phxZomSa4rflNFTjM1cEZ4ZE5UY2pDU3Jabjc3MldvZlFLMmliekpNUDhJckIzano4OUU
- void main()
- {
- SetWindowSize(80, 25); // cài đặt màn hình kích thước 80 ô ngang và 25 ô dọc
- SetBGColor(15); //set màu nền là trắng. mã màu là từ 0 đến 15
- system("cls"); //set màu nền thì xóa màn hình cho có hiệu lực
- SetTextColor(13); //màu hường nè em
- DrawRectangle(0, 1, 79, 24); //Vẽ cho anh 1 màn hình bao quanh
- gotoxy(1, 1); //di con trỏ tới tọa độ (1, 1)
- //snack senza
- bool done = false;
- while (!done){
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement