C++面向对象简易图形编辑器(5)

2018-12-23 23:24

面向对象编程技术实验报告

BrushColor=WHITE_BRUSH; break;

case IDM_BRUSH_LTGRAY: BrushColor=LTGRAY_BRUSH; break;

case IDM_BRUSH_COLORSOLID: //创建并选择彩色实体画刷 hNewBrush = (HBRUSH)CreateSolidBrush (RGB (0, 255, 255)); break;

case IDM_BRUSH_CROSS: //创建并选择绿色十字影线画刷 hNewBrush = CreateHatchBrush (HS_CROSS, RGB (0, 255, 0)); break; }

if(Line) { SaveLine[i].penStyle = hNewPenStyle; SaveLine[i].penWidth = hNewPenWidth; SaveLine[i].color = hNewPenColor; }

if(Rectangle) { SaveRectangle[m].penStyle = hNewPenStyle; SaveRectangle[m].penWidth = hNewPenWidth; SaveRectangle[m].color = hNewPenColor; SaveRectangle[m].brushColor =BrushColor; SaveRectangle[m].hNewBrush = hNewBrush ; }

if(Ellipse) { SaveEllipse[n].penStyle = hNewPenStyle; SaveEllipse[n].penWidth = hNewPenWidth; SaveEllipse[n].color = hNewPenColor; SaveEllipse[n].brushColor =BrushColor; SaveEllipse[n].hNewBrush = hNewBrush ; }

//清除原绘图轨迹

SetROP2 (hdc, R2_WHITE);

switch (pDrawData->iSelectionFunc) {

case IDM_FUNC_LINETO:

19

面向对象编程技术实验报告

DrawMyLine( hdc); break;

case IDM_FUNC_RECTANGLE: DrawMyRectangle(hdc ); break;

case IDM_FUNC_ELLIPSE: DrawMyEllipse(hdc ); break; }

if(Line) { SaveLine[i].ptE.x =(short) LOWORD (lParam) ; SaveLine[i].ptE.y =(short) HIWORD (lParam) ; }

if(Rectangle) { SaveRectangle[m].ptE.x =(short) LOWORD (lParam) ; SaveRectangle[m].ptE.y =(short) HIWORD (lParam) ; }

if(Ellipse) { SaveEllipse[n].ptE.x =(short) LOWORD (lParam) ; SaveEllipse[n].ptE.y =(short) HIWORD (lParam) ; }

//绘图新轨迹

SetROP2 (hdc, R2_COPYPEN); switch (pDrawData->iSelectionFunc) {

case IDM_FUNC_LINETO: DrawMyLine( hdc); break; case IDM_FUNC_RECTANGLE: DrawMyRectangle(hdc ); break;

case IDM_FUNC_ELLIPSE: DrawMyEllipse(hdc ); break; }

20

面向对象编程技术实验报告

ReleaseDC (hWnd, hdc) ; return 0 ; case WM_PAINT: hdc = BeginPaint (hWnd, &ps); GetClientRect (hWnd, &rect); if (hFont) SelectObject (hdc, hFont); SetTextColor (hdc, crText);

TextOut(hdc,240,125,\右键改变字体大小,左键更改文本颜色\ DrawText (hdc, a,-1, &rect, DT_RIGHT );//显示鼠标坐标 if(Text) DrawText (hdc, TEXT(\请在空白处单击鼠标左键输入文本\&rect,DT_LEFT); DrawMyText(hdc); DrawMyLine( hdc ); DrawMyRectangle(hdc ); DrawMyEllipse(hdc ); EndPaint (hWnd, &ps); return 0; case WM_DESTROY: PostQuitMessage(0); pDrawData = (DRAWDATA*)GetWindowLong(hWnd, 0); if (pDrawData) delete pDrawData; return 0; } //调用缺省消息处理过程 return DefWindowProc (hWnd, message, wParam, lParam);

} //函数 WinProc 结束

21

面向对象编程技术实验报告

二、附CPP

/******************************************************************* 程序:funcstruct 文件:funcstruct.cpp

功能:定义了所有的函数

********************************************************************/ #include \

extern TCHAR szAppName[] = TEXT (\ extern struct MySaveLine SaveLine[MAX];

extern struct MySaveRectangle SaveRectangle[MAX]; extern struct MySaveEllipse SaveEllipse[MAX]; extern struct MySaveText SaveText[MAX]; extern int lineCount;

extern int rectangleCount; extern int ellipseCount; extern int textCount;

extern HACCEL hAccel; extern HDC hdc; extern int i,m,n,p; extern int q;

extern DRAWDATA* pDrawData ;

void DrawMyLine(HDC hdc) // 绘制直线 { HPEN hPen; HPEN hPenOld; int j; for(j=0;j

void DrawMyRectangle(HDC hdc) // 绘制矩形 {

22

面向对象编程技术实验报告

int j; HBRUSH hOldBrush; HPEN hPen; HPEN hPenOld; for(j=0;jiSelectionBrush) { case IDM_BRUSH_WHITE: case IDM_BRUSH_LTGRAY: hOldBrush = (HBRUSH)SelectObject (hdc, GetStockObject(SaveRectangle[j].brushColor)); break; case IDM_BRUSH_COLORSOLID: case IDM_BRUSH_CROSS: hOldBrush = (HBRUSH)SelectObject (hdc, SaveRectangle[j].hNewBrush); break; } Rectangle (hdc, SaveRectangle[j].ptS.x,SaveRectangle[j].ptS.y, SaveRectangle[j].ptE.x, SaveRectangle[j].ptE.y); SelectObject(hdc, hPenOld); DeleteObject(hPen); SelectObject(hdc, hOldBrush); } }

void DrawMyEllipse(HDC hdc) // 绘制椭圆 { int j; HBRUSH hOldBrush; HPEN hPen; HPEN hPenOld; for(j=0;jiSelectionBrush) { case IDM_BRUSH_WHITE: case IDM_BRUSH_LTGRAY: hOldBrush = (HBRUSH)SelectObject (hdc,

23


C++面向对象简易图形编辑器(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机基础

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: