Khởi động chế độ đồ hoạ
void initgraph(int *graphdriver, int *graphmode, char *drivepath)
drivepath: đường dẫn của thư mục chứa các trình điều khiển đồ hoạ. Nếu rỗng sẽ tìm trong thư mục hiện tại.
graphdriver, graphmode: Chỉ định trình quản lý và mốt màn hình cần sử dụng. Trong đó graphdriver có thể nhận 1 trong các giá trị sau:
DETECT
|
0
|
CGA
|
1
|
EGA
|
3
|
EGA64
|
4
|
EGAMONO
|
5
|
VGA
|
9
|
.....................
|
..
|
Hiển nhiên việc chọn giá trị của graphdriver phải tương ứng với màn hình thực tế. Trong trường hợp ta không biết chủng loại thực tế của màn hình có thể sử dụng giá trị DETECT (hoặc 0) là giá trị chỉ định cho chương trình tự tìm hiểu về màn hình và gọi trình điều khiển tương ứng. Trong trường hợp này graphmode sẽ được gán giá trị tự động với mode có độ phân giải cao nhất có thể. Về graphmode có thể nhận các giá trị sau:
CGAC0
|
0
|
320 x 200
|
|
CGAC1
|
1
|
320 x 200
|
|
CGAC2
|
2
|
320 x 200
|
|
CGAC3
|
3
|
320 x 200
|
|
CGAHI
|
4
|
640 x 200
|
2 color
|
EGALO
|
0
|
640 x 200
|
16 color
|
EGAHI
|
1
|
640 x 350
|
16 color
|
EGA64LO
|
0
|
640 x 200
|
16 color
|
EGA64HI
|
1
|
640 x 350
|
4 color
|
VGALO
|
0
|
640 x 200
|
16 color
|
VGAMED
|
0
|
640 x 350
|
16 color
|
VGAHI
|
0
|
640 x 480
|
16 color
|
Trong quá trình sử dụng để xoá màn hình đồ hoạ ta dùng hàm cleardevice();
Kết thúc chế độ đồ hoạ
Để kết thúc chế độ đồ hoạ về lại chế độ văn bản ta sử dụng hàm closegraph();
Lỗi đồ hoạ
- Sau mỗi thao tác đồ hoạ, hàm graphresult() sẽ cho giá trị 0 nếu không có lỗi, hoặc các giá trị âm (-1 .. -18) tương ứng với lỗi. Hàm grapherrormsg(n) trả lại nội dung lỗi và mã lỗi.
Mã lỗi Hằng lỗi (graphresult()) Nội dung lỗi (grapherrormsg())
0 grOk No error
-1 grNoInitGraph (BGI) Không có BGI
-2 grNotDetected Graphics hardware not detected
-3 grFileNotFound Device driver file not found
........................................................................................................
:
Ví dụ sau đây khởi tạo chế độ đồ hoạ với graphdriver = 0 (DETECT) và thông báo lỗi nếu không thành công hoặc thông báo chế độ đồ hoạ cũng như mode màn hình. Để biết độ phân giải của màn hình có thể dùng các hàm getmaxx() (số cột) và getmaxy() (số dòng)
void main()
{
int gd = DETECT, gm, maloi;
initgraph(&gd, &gm, "C:\\BC\\BGI");
maloi = graphresult();
if (maloi != grOk)
{
cout << "Lỗi: " << grapherrormsg(maloi)) << endl;
cout << "An phím bất kỳ để dừng "; getch();
exit(1);
} else {
cout << "Chế độ màn hình = " << gd << endl;
cout << "Mode màn hình = " << gm << endl;
cout << "Độ phân giải: " << getmaxx() << "," << getmaxy() << endl;
getch();
}
closegraph();
}
Các phần tiếp theo sau đây sẽ cung cấp các câu lệnh để vẽ trong chế độ đồ họa.
Chia sẻ với bạn bè của bạn: