คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 3
บรรทัดแรกๆ คือ สีมันมีค่าๆหนึ่งเป็นค่าคงที่ เขาเลยใช้ตัวหนังสือแทน เพื่อให้ง่ายต่อการเข้า
#define textcolor(txt,back) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), back*16+txt)
บรรทัดนี้คือการนิยาม ฟังชั่น โดยฟังชัน textcolor มีพารามิเตอร์สองตัว คือ สีตัวหนังสือ กับสีพื้นหลัง
แต่การทำงานจริงๆไปเรียกใช้ ตัว SetConsoleTextAttribute อีกที
#define resetcolor() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15)
บรรทัดนี้คือการล้างค่า สีตัวหนังสือโดย ไปกำหนด defualt ให้เป็นสีขาว (15 = white)
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
คือ การย้ายตำแหน่ง
ต้องสร้างตัวแปรประเภท COORD ขึ้นมา (coordinate) คือพิกัด x,y แล้วใส่พิกัดที่ต้องการย้าย console
แล้วแทนค่าไปใน SetConsoleCursorPosition อีกที
ส่วน GetStdHandle(STD_OUTPUT_HANDLE) ลองไปหาข้อมูลเพิ่มเติมดูนะครับ
ที่ต้องใช้เพราะ การทำงานมันต้องไปยุ่งกับ output คือ การแสดงผลทางจอภาพ เลยต้องใช้ พารามิเตอร์นี้ STD_OUTPUT_HANDLE
#define textcolor(txt,back) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), back*16+txt)
บรรทัดนี้คือการนิยาม ฟังชั่น โดยฟังชัน textcolor มีพารามิเตอร์สองตัว คือ สีตัวหนังสือ กับสีพื้นหลัง
แต่การทำงานจริงๆไปเรียกใช้ ตัว SetConsoleTextAttribute อีกที
#define resetcolor() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15)
บรรทัดนี้คือการล้างค่า สีตัวหนังสือโดย ไปกำหนด defualt ให้เป็นสีขาว (15 = white)
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
คือ การย้ายตำแหน่ง
ต้องสร้างตัวแปรประเภท COORD ขึ้นมา (coordinate) คือพิกัด x,y แล้วใส่พิกัดที่ต้องการย้าย console
แล้วแทนค่าไปใน SetConsoleCursorPosition อีกที
ส่วน GetStdHandle(STD_OUTPUT_HANDLE) ลองไปหาข้อมูลเพิ่มเติมดูนะครับ
ที่ต้องใช้เพราะ การทำงานมันต้องไปยุ่งกับ output คือ การแสดงผลทางจอภาพ เลยต้องใช้ พารามิเตอร์นี้ STD_OUTPUT_HANDLE
แสดงความคิดเห็น
ช่วยด้วยครับ ภาษา C
1.ส่วนหัวโปรแกรมเอาไว้เติมสี ช่วยอธิบายแต่ละบรรทัดหน่อยครับ
#define COLOR_BLACK 0
#define COLOR_DARKBLUE 1
#define COLOR_DARKGREEN 2
#define COLOR_AQUA 3
#define COLOR_DARKRED 4
#define COLOR_DARKVOILET 5
#define COLOR_DARKYELLOW 6
#define COLOR_GRAY 7
#define COLOR_DARKGRAY 8
#define COLOR_BLUE 9
#define COLOR_GREEN 10
#define COLOR_CYAN 11
#define COLOR_RED 12
#define COLOR_VIOLET 13
#define COLOR_YELLOW 14
#define COLOR_WHITE 15
#define textcolor(txt,back) SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), back*16+txt)
#define resetcolor() SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15)
2.ช่วยอธิบายให้อีกทีครับ
void gotoxy(short x, short y) {
COORD pos = {x, y};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos);
}
ขอบคุณมากครับ ผมอยากรู้ทุกบรรทัดจริงๆครับ