📄 imagecamview.cpp
字号:
// imageCAMView.cpp : implementation of the CimageCAMView class
//
#include "stdafx.h"
#include "SelectPaste.h"
#include "imageCAM.h"
#include "ChildFrm.h"
#include "MainFrm.h"
#include "imageCAMDoc.h"
#include "imageCAMView.h"
#include "SelectparDlg.h"
#include "GrayDlg.h"
#include "PenWidth.h"
#include "ColorBitsDlg.h"
#include "AdjustColorDlg.h"
#include "BCDlg.h"
#include "ConvoluteDlg.h"
#include "Scale.h"
#include "CanvasSize.h"
#include "FollowingDlg.h"
#include "windowsx.h"
#include "toolbase.h"
#include "OutputDialog.h"
#define PIXEL_OFFSET1(i, j, nWidthBytes) \
(LONG)((LONG)(i)*(LONG)(nWidthBytes) + (LONG)(j)*3)
#define PI 3.1415926
//struct ToolBaseStr *pToolBaseStr;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//
/////////////////////////////////////////////////////////////////////////////
// CimageCAMView
bool WriteStringToFile(CStdioFile *pFile,CString StrToWrite)
{
TRY
{
pFile->WriteString(StrToWrite);
}
CATCH (CException, e)
{
return false;
}
END_CATCH
return true;
}
IMPLEMENT_DYNCREATE(CimageCAMView, CScrollView)
BEGIN_MESSAGE_MAP(CimageCAMView, CScrollView)
//{{AFX_MSG_MAP(CimageCAMView)
ON_COMMAND(IDM_PENCOLOR, OnPencolor)
ON_COMMAND(IDM_FILLCOLOR, OnFillcolor)
ON_COMMAND(IDM_SELECT, OnSelect)
ON_UPDATE_COMMAND_UI(IDM_SELECT, OnUpdateSelect)
ON_COMMAND(IDM_PICKER, OnPicker)
ON_UPDATE_COMMAND_UI(IDM_PICKER, OnUpdatePicker)
ON_COMMAND(IDM_ERASER, OnEraser)
ON_UPDATE_COMMAND_UI(IDM_ERASER, OnUpdateEraser)
ON_COMMAND(IDM_FREELINE, OnFreeline)
ON_UPDATE_COMMAND_UI(IDM_FREELINE, OnUpdateFreeline)
ON_COMMAND(IDM_LINE, OnLine)
ON_UPDATE_COMMAND_UI(IDM_LINE, OnUpdateLine)
ON_COMMAND(IDM_CURVE, OnCurve)
ON_UPDATE_COMMAND_UI(IDM_CURVE, OnUpdateCurve)
ON_COMMAND(IDM_RECT_H, OnRectH)
ON_UPDATE_COMMAND_UI(IDM_RECT_H, OnUpdateRectH)
ON_COMMAND(IDM_RECT_F, OnRectF)
ON_UPDATE_COMMAND_UI(IDM_RECT_F, OnUpdateRectF)
ON_COMMAND(IDM_ROUNDRECT_H, OnRoundrectH)
ON_UPDATE_COMMAND_UI(IDM_ROUNDRECT_H, OnUpdateRoundrectH)
ON_COMMAND(IDM_ROUNDRECT_F, OnRoundrectF)
ON_UPDATE_COMMAND_UI(IDM_ROUNDRECT_F, OnUpdateRoundrectF)
ON_COMMAND(IDM_ELLIPSE_H, OnEllipseH)
ON_UPDATE_COMMAND_UI(IDM_ELLIPSE_H, OnUpdateEllipseH)
ON_COMMAND(IDM_ELLIPSE_F, OnEllipseF)
ON_UPDATE_COMMAND_UI(IDM_ELLIPSE_F, OnUpdateEllipseF)
ON_COMMAND(IDM_FILL, OnFill)
ON_UPDATE_COMMAND_UI(IDM_FILL, OnUpdateFill)
ON_COMMAND(IDM_TEXT, OnText)
ON_UPDATE_COMMAND_UI(IDM_TEXT, OnUpdateText)
ON_COMMAND(IDM_SOLID, OnSolid)
ON_UPDATE_COMMAND_UI(IDM_SOLID, OnUpdateSolid)
ON_COMMAND(IDM_DASH, OnDash)
ON_UPDATE_COMMAND_UI(IDM_DASH, OnUpdateDash)
ON_COMMAND(IDM_DOT, OnDot)
ON_UPDATE_COMMAND_UI(IDM_DOT, OnUpdateDot)
ON_COMMAND(IDM_PW_1, OnPw1)
ON_UPDATE_COMMAND_UI(IDM_PW_1, OnUpdatePw1)
ON_COMMAND(IDM_PW_2, OnPw2)
ON_UPDATE_COMMAND_UI(IDM_PW_2, OnUpdatePw2)
ON_COMMAND(IDM_PW_3, OnPw3)
ON_UPDATE_COMMAND_UI(IDM_PW_3, OnUpdatePw3)
ON_COMMAND(IDM_PW_4, OnPw4)
ON_UPDATE_COMMAND_UI(IDM_PW_4, OnUpdatePw4)
ON_COMMAND(IDM_PW_5, OnPw5)
ON_UPDATE_COMMAND_UI(IDM_PW_5, OnUpdatePw5)
ON_COMMAND(IDM_PW_OTHER, OnPwOther)
ON_UPDATE_COMMAND_UI(IDM_PW_OTHER, OnUpdatePwOther)
ON_COMMAND(IDM_FONT, OnFont)
ON_COMMAND(IDM_LEFT, OnLeft)
ON_UPDATE_COMMAND_UI(IDM_LEFT, OnUpdateLeft)
ON_COMMAND(IDM_CENTER, OnCenter)
ON_UPDATE_COMMAND_UI(IDM_CENTER, OnUpdateCenter)
ON_COMMAND(IDM_RIGHT, OnRight)
ON_UPDATE_COMMAND_UI(IDM_RIGHT, OnUpdateRight)
ON_COMMAND(ID_EDIT_SELECT_ALL, OnEditSelectAll)
ON_UPDATE_COMMAND_UI(ID_EDIT_SELECT_ALL, OnUpdateEditSelectAll)
ON_COMMAND(ID_EDIT_PASTE, OnEditPaste)
ON_COMMAND(ID_EDIT_CUT, OnEditCut)
ON_UPDATE_COMMAND_UI(ID_EDIT_CUT, OnUpdateEditCut)
ON_COMMAND(ID_EDIT_COPY, OnEditCopy)
ON_UPDATE_COMMAND_UI(ID_EDIT_COPY, OnUpdateEditCopy)
ON_COMMAND(ID_EDIT_CLEAR, OnEditClear)
ON_UPDATE_COMMAND_UI(ID_EDIT_CLEAR, OnUpdateEditClear)
ON_COMMAND(IDM_COPYTO, OnCopyto)
ON_UPDATE_COMMAND_UI(IDM_COPYTO, OnUpdateCopyto)
ON_COMMAND(IDM_PASTEFROM, OnPastefrom)
ON_UPDATE_COMMAND_UI(IDM_PASTEFROM, OnUpdatePastefrom)
ON_COMMAND(IDM_NORTHWEST, OnNorthwest)
ON_UPDATE_COMMAND_UI(IDM_NORTHWEST, OnUpdateNorthwest)
ON_COMMAND(IDM_NORTHEAST, OnNortheast)
ON_UPDATE_COMMAND_UI(IDM_NORTHEAST, OnUpdateNortheast)
ON_COMMAND(IDM_NORTH, OnNorth)
ON_UPDATE_COMMAND_UI(IDM_NORTH, OnUpdateNorth)
ON_COMMAND(IDM_MM, OnMm)
ON_UPDATE_COMMAND_UI(IDM_MM, OnUpdateMm)
ON_COMMAND(IDM_LF3, OnLf3)
ON_UPDATE_COMMAND_UI(IDM_LF3, OnUpdateLf3)
ON_COMMAND(IDM_LF2, OnLf2)
ON_UPDATE_COMMAND_UI(IDM_LF2, OnUpdateLf2)
ON_COMMAND(IDM_LF1, OnLf1)
ON_COMMAND(IDM_INCH, OnInch)
ON_UPDATE_COMMAND_UI(IDM_INCH, OnUpdateInch)
ON_COMMAND(IDM_HOUGH, OnHough)
ON_UPDATE_COMMAND_UI(IDM_HOUGH, OnUpdateHough)
ON_COMMAND(IDM_HORZ, OnHorz)
ON_UPDATE_COMMAND_UI(IDM_HORZ, OnUpdateHorz)
ON_COMMAND(IDM_HMIRROR, OnHmirror)
ON_UPDATE_COMMAND_UI(IDM_HMIRROR, OnUpdateHmirror)
ON_COMMAND(IDM_HF3, OnHf3)
ON_UPDATE_COMMAND_UI(IDM_HF3, OnUpdateHf3)
ON_COMMAND(IDM_HF2, OnHf2)
ON_UPDATE_COMMAND_UI(IDM_HF2, OnUpdateHf2)
ON_COMMAND(IDM_HF1, OnHf1)
ON_UPDATE_COMMAND_UI(IDM_HF1, OnUpdateHf1)
ON_COMMAND(IDM_GRAY, OnGray)
ON_UPDATE_COMMAND_UI(IDM_GRAY, OnUpdateGray)
ON_COMMAND(IDM_CROP, OnCrop)
ON_UPDATE_COMMAND_UI(IDM_CROP, OnUpdateCrop)
ON_COMMAND(IDM_COLORBITS, OnColorbits)
ON_COMMAND(IDM_CANVASSIZE, OnCanvassize)
ON_UPDATE_COMMAND_UI(IDM_CANVASSIZE, OnUpdateCanvassize)
ON_COMMAND(IDM_BC, OnBc)
ON_UPDATE_COMMAND_UI(IDM_BC, OnUpdateBc)
ON_COMMAND(IDM_ADJUSTCOLOR, OnAdjustcolor)
ON_UPDATE_COMMAND_UI(IDM_ADJUSTCOLOR, OnUpdateAdjustcolor)
ON_COMMAND(IDM_SCALE, OnScale)
ON_UPDATE_COMMAND_UI(IDM_SCALE, OnUpdateScale)
ON_COMMAND(IDM_RULER, OnRuler)
ON_UPDATE_COMMAND_UI(IDM_RULER, OnUpdateRuler)
ON_COMMAND(IDM_VMIRROR, OnVmirror)
ON_COMMAND(IDM_SELECTPASTE, OnSelectpaste)
ON_UPDATE_COMMAND_UI(IDM_SELECTPASTE, OnUpdateSelectpaste)
ON_COMMAND(IDM_PIXEL, OnPixel)
ON_UPDATE_COMMAND_UI(IDM_PIXEL, OnUpdatePixel)
ON_COMMAND(IDM_IMAGE_THIN, OnImageThin)
ON_COMMAND(IDM_IMAGE_FTREAT, OnImageFtreat)
ON_COMMAND(IDM_IMAGE_OUTPUT, OnImageOutput)
ON_COMMAND(IDM_VERT, OnVert)
ON_UPDATE_COMMAND_UI(IDM_VERT, OnUpdateVert)
ON_COMMAND(IDM_VERTHORZ, OnVerthorz)
ON_UPDATE_COMMAND_UI(IDM_VERTHORZ, OnUpdateVerthorz)
ON_COMMAND(IDM_EAST, OnEast)
ON_UPDATE_COMMAND_UI(IDM_EAST, OnUpdateEast)
ON_COMMAND(IDM_SOUTHEAST, OnSoutheast)
ON_UPDATE_COMMAND_UI(IDM_SOUTHEAST, OnUpdateSoutheast)
ON_COMMAND(IDM_SOUTH, OnSouth)
ON_UPDATE_COMMAND_UI(IDM_SOUTH, OnUpdateSouth)
ON_COMMAND(IDM_SOUTHWEST, OnSouthwest)
ON_UPDATE_COMMAND_UI(IDM_SOUTHWEST, OnUpdateSouthwest)
ON_COMMAND(IDM_WEST, OnWest)
ON_UPDATE_COMMAND_UI(IDM_WEST, OnUpdateWest)
ON_COMMAND(IDM_SOBEL, OnSobel)
ON_UPDATE_COMMAND_UI(IDM_SOBEL, OnUpdateSobel)
ON_COMMAND(IDM_ROTATE, OnRotate)
ON_UPDATE_COMMAND_UI(IDM_ROTATE, OnUpdateRotate)
ON_COMMAND(IDM_ROTATE180, OnRotate180)
ON_UPDATE_COMMAND_UI(IDM_ROTATE180, OnUpdateRotate180)
ON_COMMAND(IDM_ROTATE270, OnRotate270)
ON_UPDATE_COMMAND_UI(IDM_ROTATE270, OnUpdateRotate270)
ON_COMMAND(IDM_ROTATEOTHER, OnRotateother)
ON_UPDATE_COMMAND_UI(IDM_ROTATEOTHER, OnUpdateRotateother)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_WM_MOUSEMOVE()
ON_WM_CREATE()
ON_WM_SETCURSOR()
ON_UPDATE_COMMAND_UI(IDM_LF1, OnUpdateLf1)
ON_COMMAND(IDM_MEDIANFILTER, OnMedianfilter)
ON_UPDATE_COMMAND_UI(IDM_MEDIANFILTER, OnUpdateMedianfilter)
ON_COMMAND(IDC_ZOOMOUT, OnZoomout)
ON_UPDATE_COMMAND_UI(IDC_ZOOMOUT, OnUpdateZoomout)
ON_COMMAND(IDC_ZOOMIN, OnZoomin)
ON_UPDATE_COMMAND_UI(IDC_ZOOMIN, OnUpdateZoomin)
ON_WM_KEYDOWN()
ON_COMMAND(IDC_TOOLSBASE, OnToolsbase)
ON_COMMAND(IDC_IMAGE_NC, OnimageCAM)
ON_COMMAND(IDC_ZOOMMODE, OnZoommode)
ON_COMMAND(IDC_ZOOMNORMAL, OnZoomnormal)
ON_UPDATE_COMMAND_UI(IDC_ZOOMNORMAL, OnUpdateZoomnormal)
ON_UPDATE_COMMAND_UI(IDC_ZOOMMODE, OnUpdateZoommode)
ON_WM_SIZE()
ON_UPDATE_COMMAND_UI(IDM_VMIRROR, OnUpdateVmirror)
ON_UPDATE_COMMAND_UI(ID_EDIT_PASTE, OnUpdateEditPaste)
ON_COMMAND(IDC_OUTLINE, OnOutline)
ON_COMMAND(IDC_OUTLINENC, OnOutlinenc)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
ON_COMMAND(IDC_PEN_COLOR, OnPencolor1)
ON_COMMAND(IDC_FILL_COLOR, OnFillcolor1)
ON_COMMAND_RANGE(IDC_COLORTABLE_BASE, IDC_COLORTABLE_BASE+256, OnPenColorGrid)
ON_MESSAGE(WM_REALIZEPAL, OnRealizePal)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CimageCAMView construction/destruction
CimageCAMView::CimageCAMView()
{
// TODO: add construction code here
m_nLengthUnit = MM_TEXT;
m_pDib = NULL;
m_pFloatWnd = NULL;
m_bDrawingRubber = FALSE;
m_bDrawFreeline = FALSE;
m_bErasing = FALSE;
m_nDrawCurveStep = -1;
m_bDrawCurve = FALSE;
m_nDrawType = DT_SELECT;
m_nPenStyle = PS_SOLID;
m_nPenWidth = 1;
m_crPenColor = RGB(0,0,0);
m_crFillColor = RGB(0,0,0); //m_crFillColor = RGB(255,255,255);//
m_nTextAlign = DT_LEFT;
m_hCursorGeneralDraw = NULL;
m_hCursorFreeline = NULL;
m_hCursorEraser = NULL;
m_hCursorPicker = NULL;
m_hCursorFill = NULL;
m_hCursorCurve = NULL;
m_zoommode=1;
}
CimageCAMView::~CimageCAMView()
{
}
BOOL CimageCAMView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
m_hCursorGeneralDraw = AfxGetApp()->LoadCursor(IDC_CURSORGENERALDRAW);
cs.lpszClass = AfxRegisterWndClass(CS_DBLCLKS,
m_hCursorGeneralDraw,
(HBRUSH)(COLOR_WINDOW-1),
AfxGetApp()->LoadIcon(IDR_IMAGETYPE));
return CScrollView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CimageCAMView drawing
void CimageCAMView::OnDraw(CDC* pDC)
{
CimageCAMDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
if (! pDoc->m_pDib->IsEmpty())
{
//m_pDib->ratio=2;
m_pDib->Display(pDC, 0, 0,m_pDib->ratio,SRCCOPY);
}
if (::IsWindow(m_EditText.m_hWnd))
{
CRect rc;
m_EditText.GetWindowRect(&rc);
ScreenToClient(&rc);
rc.InflateRect(2,2);
CPen pen1(PS_SOLID,1,RGB(255,255,255));
CPen pen2(PS_DOT,1,RGB(0,0,0));
CBrush *pOldBrush = pDC->SelectObject(CBrush::FromHandle((HBRUSH)::GetStockObject(NULL_BRUSH)));
CPen *pOldPen = pDC->SelectObject(&pen1);
pDC->Rectangle(&rc);
pDC->SelectObject(&pen2);
pDC->Rectangle(&rc);
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);
}
}
void CimageCAMView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
CimageCAMDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// m_pDib = pDoc->m_pDib;
m_pDib->ratio=1;
CSize sizeTotal(m_pDib->GetWidth(), m_pDib->GetHeight());
SetScrollSizes(MM_TEXT, sizeTotal);
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// CimageCAMView printing
BOOL CimageCAMView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CimageCAMView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CimageCAMView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CimageCAMView diagnostics
#ifdef _DEBUG
void CimageCAMView::AssertValid() const
{
CScrollView::AssertValid();
}
void CimageCAMView::Dump(CDumpContext& dc) const
{
CScrollView::Dump(dc);
}
CimageCAMDoc* CimageCAMView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CimageCAMDoc)));
return (CimageCAMDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CimageCAMView message handlers
void CimageCAMView::SetStatusBarBitCount(WORD wBitcount)
{
CString str;
switch (wBitcount)
{
case 1:
str.LoadString(IDS_BITCOUNT_1);
break;
case 4:
str.LoadString(IDS_BITCOUNT_4);
break;
case 8:
str.LoadString(IDS_BITCOUNT_8);
break;
case 24:
default:
str.LoadString(IDS_BITCOUNT_24);
break;
}
CMainFrame* pMainFrame= (CMainFrame*)( AfxGetApp()->m_pMainWnd);
ASSERT_KINDOF(CMainFrame, pMainFrame);
pMainFrame->m_wndStatusBar.SetPaneText(PANE_BIT_COUNT, str);
}
void CimageCAMView::SetStatusBarLengthUnit(int nUnit)
{
CString str;
switch (m_nLengthUnit)
{
case MM_HIENGLISH:
str.LoadString(IDS_LENGTH_UNIT_INCH);
break;
case MM_HIMETRIC:
str.LoadString(IDS_LENGTH_UNIT_MM);
break;
case MM_TEXT:
default:
str.LoadString(IDS_LENGTH_UNIT_PIXEL);
break;
}
CMainFrame* pMainFrame= (CMainFrame*)( AfxGetApp()->m_pMainWnd);
ASSERT_KINDOF(CMainFrame, pMainFrame);
pMainFrame->m_wndStatusBar.SetPaneText(PANE_LENGTH_UNIT, str);
}
void CimageCAMView::SetStatusBarCursorPosition(CPoint point)
{ CimageCAMDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
m_pDib = pDoc->m_pDib;
CSize sizeTotal(m_pDib->GetWidth(),m_pDib->GetHeight());
CWindowDC dc(this);
dc.LPtoDP(&point);
dc.LPtoDP(&sizeTotal);
int nOldUnit = dc.SetMapMode(m_nLengthUnit);
dc.DPtoLP(&point);
dc.DPtoLP(&sizeTotal);
dc.SetMapMode(nOldUnit);
CString msg;
double fCX = abs(point.x), fCY = sizeTotal.cy-abs(point.y);
switch (m_nLengthUnit)
{
case MM_TEXT:
msg.Format("%d,%d", (int)fCX, (int)fCY);
break;
case MM_HIENGLISH:
fCX /= 1000.0;
fCY /= 1000.0;
msg.Format("%.2f,%.2f", fCX, fCY);
break;
case MM_HIMETRIC:
fCX /= 100.0;
fCY /= 100.0;
msg.Format("%.2f,%.2f", fCX, fCY);
break;
}
CMainFrame* pMainFrame= (CMainFrame*)( AfxGetApp()->m_pMainWnd);
ASSERT_KINDOF(CMainFrame, pMainFrame);
pMainFrame->m_wndStatusBar.SetPaneText(PANE_CURSOR_POSITION, msg);
}
void CimageCAMView::SetStatusBarImageSize(CSize size)
{
CWindowDC dc(this);
dc.LPtoDP(&size);
int nOldUnit = dc.SetMapMode(m_nLengthUnit);
dc.DPtoLP(&size);
dc.SetMapMode(nOldUnit);
CString msg;
double fCX = abs(size.cx), fCY = abs(size.cy);
switch (m_nLengthUnit)
{
case MM_TEXT:
msg.Format("%d,%d", (int)fCX, (int)fCY);
break;
case MM_HIENGLISH:
fCX /= 1000.0;
fCY /= 1000.0;
msg.Format("%.2f,%.2f", fCX, fCY);
break;
case MM_HIMETRIC:
fCX /= 100.0;
fCY /= 100.0;
msg.Format("%.2f,%.2f", fCX, fCY);
break;
}
CMainFrame* pMainFrame= (CMainFrame*)( AfxGetApp()->m_pMainWnd);
ASSERT_KINDOF(CMainFrame, pMainFrame);
pMainFrame->m_wndStatusBar.SetPaneText(PANE_IMAGE_SIZE, msg);
}
void CimageCAMView::ShowPenColor()
{
CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
ASSERT_KINDOF(CMainFrame, pAppFrame);
pAppFrame->m_wndPaintParamBar.ShowPenColor(m_crPenColor);
}
void CimageCAMView::ShowFillColor()
{
CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
ASSERT_KINDOF(CMainFrame, pAppFrame);
pAppFrame->m_wndPaintParamBar.ShowFillColor(m_crFillColor);
}
void CimageCAMView::ShowPenWidth()
{
CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
ASSERT_KINDOF(CMainFrame, pAppFrame);
pAppFrame->m_wndPaintParamBar.ShowPenWidth(m_nPenWidth);
}
void CimageCAMView::ShowPenStyle()
{
CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
ASSERT_KINDOF(CMainFrame, pAppFrame);
pAppFrame->m_wndPaintParamBar.ShowPenStyle(m_nPenStyle);
}
void CimageCAMView::ShowColorGrid()
{
CMainFrame* pAppFrame = (CMainFrame*) AfxGetApp()->m_pMainWnd;
ASSERT_KINDOF(CMainFrame, pAppFrame);
pAppFrame->m_wndPaintParamBar.ShowColorGrid((HPALETTE)m_pDib->m_pPalette->GetSafeHandle());
}
void CimageCAMView::OnPenColorGrid(UINT nID)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -