📄 childview.cpp
字号:
// ChildView.cpp : CChildView 类的实现
//
#include "stdafx.h"
#include "HelloN.h"
#include "ChildView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CChildView
CChildView::CChildView()
{
CurrentDraw=-1;
penColor=brushColor=RGB(0,0,0);
pm.CreatePopupMenu();
pm.AppendMenu(MF_ENABLED,ID_DRAW_LINE,_T("Draw a Line"));
pm.AppendMenu(MF_ENABLED,ID_DRAW_RECTANGLE,_T("Rectangle"));
pm.AppendMenu(MF_ENABLED,ID_DRAW_CIRCLE,_T("Circle"));
pm.AppendMenu(MF_ENABLED,ID_133,_T("Ellipse"));
pm.AppendMenu(MF_ENABLED,ID_DRAW_TEXT,_T("Draw a Text"));
}
CChildView::~CChildView()
{
}
BEGIN_MESSAGE_MAP(CChildView, CWnd)
ON_WM_PAINT()
ON_COMMAND(ID_DRAW_LINE, OnDrawLine)
ON_COMMAND(ID_DRAW_RECTANGLE, OnDrawRectangle)
ON_COMMAND(ID_DRAW_CIRCLE, OnDrawCircle)
ON_COMMAND(ID_133, On133)
ON_COMMAND(ID_DRAW_TEXT, OnDrawText)
ON_WM_CONTEXTMENU()
ON_COMMAND(ID_DRAW_PENCOLOR, OnDrawPencolor)
ON_COMMAND(ID_DRAW_BRUSHCOLOR, OnDrawBrushcolor)
END_MESSAGE_MAP()
// CChildView 消息处理程序
BOOL CChildView::PreCreateWindow(CREATESTRUCT& cs)
{
if (!CWnd::PreCreateWindow(cs))
return FALSE;
cs.dwExStyle |= WS_EX_CLIENTEDGE;
cs.style &= ~WS_BORDER;
cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS,
::LoadCursor(NULL, IDC_ARROW), reinterpret_cast<HBRUSH>(COLOR_WINDOW+1), NULL);
return TRUE;
}
void CChildView::OnPaint()
{
CPaintDC dc(this); // 用于绘制的设备上下文
// dc.SelectStockObject(BLACK_PEN);
// dc.SelectStockObject(DKGRAY_BRUSH);
CPen pen,*poldpen;
// pen.CreatePen(PS_DASH,1,RGB(255,0,0));
pen.CreatePen(PS_DOT,1,penColor);
poldpen=dc.SelectObject(&pen);
CBrush brush,*pbs;
// brush.CreateSolidBrush(RGB(50,120,0));
brush.CreateSolidBrush(brushColor);
pbs=dc.SelectObject(&brush);
// TODO: 在此处添加消息处理程序代码
switch(CurrentDraw)
{case 0:
dc.MoveTo(50,50);
dc.LineTo(300,150);
break;
case 1:
dc.Rectangle(70,80,340,200);
break;
case 2:
dc.Ellipse(50,50,250,250);
break;
case 3:
dc.Ellipse(50,60,350,280);
break;
case 4:
dc.TextOut(150,300,"Hello,world!");
break;
}
dc.SelectObject(poldpen);
dc.SelectObject(pbs);
// 不要为绘制消息而调用 CWnd::OnPaint()
}
void CChildView::OnDrawLine()
{
// TODO: 在此添加命令处理程序代码
CurrentDraw=0;
Invalidate();
}
void CChildView::OnDrawRectangle()
{
// TODO: 在此添加命令处理程序代码
CurrentDraw=1;
Invalidate();
}
void CChildView::OnDrawCircle()
{
// TODO: 在此添加命令处理程序代码
CurrentDraw=2;
Invalidate();
}
void CChildView::On133()//Ellipse
{
// TODO: 在此添加命令处理程序代码
CurrentDraw=3;
Invalidate();
}
void CChildView::OnDrawText()
{
// TODO: 在此添加命令处理程序代码
CurrentDraw=4;
Invalidate();
}
void CChildView::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: 在此添加消息处理程序代码
pm.TrackPopupMenu(TPM_RIGHTALIGN | TPM_LEFTBUTTON,point.x,point.y,this);
}
void CChildView::OnDrawPencolor()
{
// TODO: 在此添加命令处理程序代码
CColorDialog dlg;
if(dlg.DoModal()==IDOK)
{
penColor=dlg.GetColor();
Invalidate();
}
}
void CChildView::OnDrawBrushcolor()
{
// TODO: 在此添加命令处理程序代码
CColorDialog dlg;
if(dlg.DoModal()==IDOK)
{
brushColor=dlg.GetColor();
Invalidate();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -