VC++下的作图请教!

angeryman 2003-09-29 12:07:53
请教一下作图问题!
打点,画线之类的。
要求:
能做到在Windows用,不是Command下!
最好有例程!
...全文
32 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
simclock 2003-09-29
  • 打赏
  • 举报
回复
//画轮胎程序
#include <windows.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>


long WINAPI WndProc(HWND hWnd, UINT iMessage, UINT wParam, LONG lParam);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
MSG Message;
HWND hWnd;

WNDCLASS WndClass;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc;
WndClass.lpszClassName="Draw_Tire";
WndClass.lpszMenuName=NULL;
WndClass.style=0;
if (!RegisterClass(&WndClass))
{
MessageBeep(0);
return FALSE;
}

hWnd=CreateWindow("Draw_Tire","Draw Tire",WS_SYSMENU,CW_USEDEFAULT,0,600,450,NULL,NULL,hInstance,NULL);

ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);

while (GetMessage(&Message,0,0,0))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}

return Message.wParam;
}

long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam)
{
HDC hDC;
HBRUSH hBrush;
HPEN hPen;
PAINTSTRUCT PtStr;

switch(iMessage)
{
case WM_PAINT:
hDC=BeginPaint(hWnd,&PtStr);
SetMapMode(hDC,MM_ANISOTROPIC);
SetWindowExtEx(hDC,300,300,NULL);
SetViewportExtEx(hDC,600,600,NULL);
SetViewportOrgEx(hDC,0,0,NULL);

//画
hBrush=CreateHatchBrush(HS_BDIAGONAL,GRAY_BRUSH);
hPen=CreatePen(PS_SOLID,0,RGB(0,0,0));
SelectObject(hDC,hBrush);
Ellipse(hDC,50,50,200,200);
hBrush=(HBRUSH)GetStockObject(DKGRAY_BRUSH);
SelectObject(hDC,hBrush);
Ellipse(hDC,52,52,197,197);
hBrush=(HBRUSH)GetStockObject(LTGRAY_BRUSH);
SelectObject(hDC,hBrush);
Ellipse(hDC,80,80,170,170);
hBrush=(HBRUSH)GetStockObject(WHITE_BRUSH);
SelectObject(hDC,hBrush);
Ellipse(hDC,100,100,150,150);
hBrush=(HBRUSH)GetStockObject(GRAY_BRUSH);
SelectObject(hDC,hBrush);
Ellipse(hDC,120,120,130,130);
Ellipse(hDC,113,110,118,115);
Ellipse(hDC,113,135,118,140);
Ellipse(hDC,130,110,135,115);
Ellipse(hDC,130,135,135,140);
Ellipse(hDC,110,122,115,127);
Ellipse(hDC,135,122,140,127);
hBrush=CreateHatchBrush(HS_BDIAGONAL,GRAY_BRUSH);
SelectObject(hDC,hBrush);
Rectangle(hDC,0,200,600,400);

EndPaint(hWnd,&PtStr);
return 0;

case WM_DESTROY:
PostQuitMessage(0);
return 0;

default:
return(DefWindowProc(hWnd,iMessage,wParam,lParam));
}
}

64,637

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧