Severity Code Description Project File Line Suppression State Error (active) E1696 cannot open source file "graphics.h" MFCApplication2 D:\vs project\MFCApplication2\MFCApplication2\MyCircle.cpp 2
时间: 2023-06-30 10:10:33 浏览: 182
graphics.h(vs使用的图形头文件)
4星 · 用户满意度95%
这个错误通常是因为编译器找不到 `graphics.h` 头文件而导致的。这个头文件是 Borland Graphics Interface (BGI) 图形库的一部分,这个库通常在 Turbo C++ 和 Borland C++ 中使用。
如果你在 Visual Studio 中使用 Bresenham 算法绘制圆形,可以使用 Windows GDI (Graphics Device Interface) 或者其他图形库,例如 OpenGL 和 DirectX。这些库都可以用于在屏幕上绘制图形,而且在 Windows 平台上都有完整的支持。
下面是一个使用 Windows GDI 绘制圆形的示例代码:
```c++
#include <iostream>
#include <windows.h>
using namespace std;
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
const char CLASS_NAME[] = "MyWindowClass";
WNDCLASS wc = {};
wc.lpfnWndProc = WindowProc;
wc.hInstance = hInstance;
wc.lpszClassName = CLASS_NAME;
RegisterClass(&wc);
HWND hwnd = CreateWindowEx(
0,
CLASS_NAME,
"My Window",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);
if (hwnd == NULL)
{
return 0;
}
ShowWindow(hwnd, nCmdShow);
MSG msg = {};
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}
LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
switch (uMsg)
{
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hwnd, &ps);
int x0 = ps.rcPaint.right / 2;
int y0 = ps.rcPaint.bottom / 2;
int r = 100;
HPEN hPen = CreatePen(PS_SOLID, 2, RGB(255, 255, 255));
HGDIOBJ hOldPen = SelectObject(hdc, hPen);
Ellipse(hdc, x0 - r, y0 - r, x0 + r, y0 + r);
SelectObject(hdc, hOldPen);
DeleteObject(hPen);
EndPaint(hwnd, &ps);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd, uMsg, wParam, lParam);
}
return 0;
}
```
这个程序创建了一个 Windows 窗口,并在窗口中心绘制一个半径为 100 的圆形。在 `WindowProc` 函数中,我们处理 `WM_PAINT` 消息,并使用 `Ellipse` 函数绘制圆形。`BeginPaint` 和 `EndPaint` 函数用于获取和释放绘图设备句柄,而 `CreatePen` 和 `SelectObject` 函数用于创建和选择画笔对象,以便绘制白色的圆形。
阅读全文