📄 linepro2.cpp
字号:
// LinePro2.cpp : 实现文件
//
#include "stdafx.h"
#include "GDraw.h"
#include "GDrawDoc.h"
#include "LinePro2.h"
#include"MainFrm.h"
// LinePro2
IMPLEMENT_DYNCREATE(LinePro2, CFormView)
LinePro2::LinePro2()
: CFormView(LinePro2::IDD)
, m_start_x(0)
, m_start_y(0)
, m_end_x(0)
, m_end_y(0),color(RGB(0,0,0))
, m_shape(0)
, m_type(0)
{
}
LinePro2::~LinePro2()
{
}
void LinePro2::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
DDX_Text(pDX, IDC_STRATX, m_start_x);
DDX_Text(pDX, IDC_STRATY, m_start_y);
DDX_Text(pDX, IDC_ENDX, m_end_x);
DDX_Text(pDX, IDC_ENDY, m_end_y);
DDX_CBIndex(pDX, IDC_type, m_shape);
DDX_CBIndex(pDX, IDC_big, m_type);
}
BEGIN_MESSAGE_MAP(LinePro2, CFormView)
ON_BN_CLICKED(IDC_Volor, &LinePro2::OnBnClickedLinePro)
ON_WM_PAINT()
ON_WM_KEYDOWN()
ON_BN_CLICKED(IDC_BUTTON1, &LinePro2::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2, &LinePro2::OnBnClickedButton2)
ON_WM_LBUTTONDOWN()
ON_WM_LBUTTONUP()
ON_BN_CLICKED(IDC_BUTTON3, &LinePro2::OnBnClickedButton3)
END_MESSAGE_MAP()
// LinePro2 诊断
#ifdef _DEBUG
void LinePro2::AssertValid() const
{
CFormView::AssertValid();
}
#ifndef _WIN32_WCE
void LinePro2::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif
#endif //_DEBUG
// LinePro2 消息处理程序
void LinePro2::OnPrint(CDC* pDC, CPrintInfo* pInfo)
{
// TODO: 在此添加专用代码和/或调用基类
CFormView::OnPrint(pDC, pInfo);
}
void LinePro2::OnPaint()
{
// device context for painting
// TODO: 在此处添加消息处理程序代码
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CDialog::OnPaint()
CWnd *pWnd=GetDlgItem (IDC_Volor);
CDC *pDC=pWnd->GetDC ();
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
if( draw->select )
{
pDC->FillRect (CRect(0,0,102,42),&CBrush(draw->m_ptrGL->color));
CComboBox *pCB=(CComboBox* )GetDlgItem(IDC_big);
int big=draw->m_ptrGL->wide;
int type=draw->m_ptrGL->shape;
pCB->SetCurSel (big);
pCB=(CComboBox* )GetDlgItem(IDC_type);
pCB->SetCurSel (type);
SetDlgItemInt(IDC_STRATX,draw->m_ptrGL->pp[0].x);
SetDlgItemInt(IDC_STRATY,draw->m_ptrGL->pp[0].y);
SetDlgItemInt(IDC_ENDX,draw->m_ptrGL->pp[1].x);
SetDlgItemInt(IDC_ENDY,draw->m_ptrGL->pp[1].y);
}
else
pDC->FillRect (CRect(0,0,102,42),&CBrush(color));
ReleaseDC(pDC);
// 不为绘图消息调用 CFormView::OnPaint()
}
void LinePro2::OnBnClickedLinePro()
{
CColorDialog ccd;
COLORREF col;
if(ccd.DoModal()==IDOK)
{
col=ccd.GetColor ();
// color.SetFromCOLORREF (col);
color=col;
}
CWnd *pWnd=GetDlgItem (IDC_Volor);
CDC *pDC=pWnd->GetDC ();
pDC->FillRect (CRect(0,0,102,42),&CBrush(color));
pWnd->Invalidate ();
ReleaseDC(pDC);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
CDC *pdc=draw->GetDC();
if( draw->select )
{
draw->m_ptrGL->color=color;
draw->m_ptrGL->fill_color=color;
draw->ShowGU(pdc,*draw->m_ptrGL);
}
draw->Invalidate();
draw->dline=0;
draw->breakline=0;
ReleaseDC(pdc);
}
void LinePro2::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
switch(nChar)
{
case VK_RETURN:
UpdateData(true);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
// draw-
break;
}
CFormView::OnKeyDown(nChar, nRepCnt, nFlags);
}
void LinePro2::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
CDC *pdc=draw->GetDC();
if( draw->select )
{
// draw->del(pdc,*draw->m_ptrGL);
// draw->m_ptrGL=draw->m_ptrGL;
UpdateData(true);
draw->m_ptrGL->pp[0].x=m_start_x;
draw->m_ptrGL->pp[0].y=m_start_y;
draw->m_ptrGL->pp[1].x=m_end_x;
draw->m_ptrGL->pp[1].y=m_end_y;
draw->m_ptrGL->shape=m_shape;
draw->m_ptrGL->wide=m_type;
// draw->m_ptrGL->color=color;
//draw->ShowGU(pdc,*draw->m_ptrGL,RGB(255,255,255));
//draw->ShowGraph(pdc);
draw->Invalidate();
}
draw->dline=0;
draw->breakline=0;
ReleaseDC(pdc);
}
void LinePro2::OnBnClickedButton2()
{
}
void LinePro2::OnLButtonDown(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
CFormView::OnLButtonDown(nFlags, point);
}
void LinePro2::OnLButtonUp(UINT nFlags, CPoint point)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
/*
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
draw->SetFocus();
*/
CFormView::OnLButtonUp(nFlags, point);
}
void LinePro2::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
CComboBox *pCB=(CComboBox* )GetDlgItem(IDC_big);
wchar_t buf[2]=L"1";
for(int i=0;i<9;i++)
{
pCB->AddString(buf);
buf[0]++;
}
pCB->AddString (L"10");
pCB->SetCurSel (0);
pCB->Clear ();
pCB=(CComboBox* )GetDlgItem(IDC_type);
pCB->AddString (L"实线");
pCB->AddString (L"点虚线");
pCB->AddString (L"点横线");
pCB->SetCurSel (0);
pCB->Clear ();
// TODO: 在此添加专用代码和/或调用基类
}
void LinePro2::OnBnClickedButton3()
{
UpdateData(true);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
// Graph_Union ps(draw->m_ptrGL->type,draw->m_ptrGL->count,draw->m_ptrGL->wide,draw->m_ptrGL->shape,draw->m_ptrGL->pp,draw->m_ptrGL->color,draw->m_ptrGL->fill_color);
draw->m_ptrGL->type=-1;
//draw->m_ptrGL->pp
draw->m_ptrGL=NULL;
draw->init();
draw->OnSelectGraph();
draw->Invalidate();
// TODO: 在此添加控件通知处理程序代码
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -