📄 polpro.cpp
字号:
// PolPro.cpp : 实现文件
//
#include "stdafx.h"
#include "GDraw.h"
#include "PolPro.h"
#include "GDrawDoc.h"
#include"MainFrm.h"
#include"math.h"
// CPolPro
IMPLEMENT_DYNCREATE(CPolPro, CFormView)
CPolPro::CPolPro()
: CFormView(CPolPro::IDD)
, m_px(0)
, m_py(0)
, col(RGB(255,0,255))
, col1(RGB(0,0,0))
{
num=0;
y=0;
}
CPolPro::~CPolPro()
{
}
void CPolPro::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_px);
DDV_MinMaxInt(pDX, m_px, 0, 1024);
DDX_Text(pDX, IDC_EDIT2, m_py);
DDV_MinMaxInt(pDX, m_py, 0, 1024);
DDX_Control(pDX, IDC_LIST1, m_list);
}
BEGIN_MESSAGE_MAP(CPolPro, CFormView)
ON_BN_CLICKED(IDC_FILSHOW1, &CPolPro::OnBnClickedFilshow1)
ON_BN_CLICKED(IDC_FILSHOW2, &CPolPro::OnBnClickedFilshow2)
ON_STN_CLICKED(IDC_FILSHOW2, &CPolPro::OnStnClickedFilshow2)
ON_LBN_SELCHANGE(IDC_LIST1, &CPolPro::OnLbnSelchangeList1)
ON_WM_PAINT()
ON_BN_CLICKED(IDC_BUTTON1, &CPolPro::OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2, &CPolPro::OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3, &CPolPro::OnBnClickedButton3)
END_MESSAGE_MAP()
// CPolPro 诊断
#ifdef _DEBUG
void CPolPro::AssertValid() const
{
CFormView::AssertValid();
}
#ifndef _WIN32_WCE
void CPolPro::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
void CPolPro::OnBnClickedFilshow1()
{
CColorDialog cd;
CWnd *pWnd=GetDlgItem(IDC_FILSHOW1);
CDC *pDC = pWnd->GetDC();
if(cd.DoModal() == IDOK)
{
col = cd.GetColor();
}
pDC->FillRect(CRect(2,2,96,32),&CBrush(col));
pWnd->Invalidate();
ReleaseDC(pDC);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
if( draw->fill_choice )
{
draw->m_ptrGL->fill_color=col;
draw->Invalidate();
}
}
void CPolPro::OnBnClickedFilshow2()
{
CColorDialog cd;
CWnd *pWnd=GetDlgItem(IDC_FILSHOW2);
CDC *pDC = pWnd->GetDC();
if(cd.DoModal() == IDOK)
{
col1 = cd.GetColor();
}
pDC->FillRect(CRect(2,2,96,32),&CBrush(col1));
pWnd->Invalidate();
ReleaseDC(pDC);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
if( draw->fill_choice )
{
draw->m_ptrGL->color=col1;
draw->Invalidate();
}
}
#endif
#endif //_DEBUG
// CPolPro 消息处理程序
void CPolPro::OnStnClickedFilshow2()
{
// TODO: 在此添加控件通知处理程序代码
}
void CPolPro::OnLbnSelchangeList1()
{
// TODO: 在此添加控件通知处理程序代码
CString str;
num=m_list.GetCurSel();
m_list.GetText(num,str);
// AfxMessageBox(strTemp);
UpdateData(true);
int x=0,y=0;
int len=str.GetLength();;
int i=0;
while(str[i]!=' ') i++;
for( int j=0;j<i;j++)
x+=(int(str[j]-'0'))*(int)pow(10.0,i-j-1);
for( i+=3;i<len;i++)
y+=(int(str[i]-'0'))*(int)pow(10.0,len-i-1);
SetDlgItemInt(IDC_EDIT1,x);
}
void CPolPro::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: 在此处添加消息处理程序代码
// 不为绘图消息调用 CFormView::OnPaint()
CListBox* pLB;
pLB = (CListBox*)GetDlgItem(IDC_LIST1);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
if( draw->fill_choice )
{ CWnd *pWnd=GetDlgItem (IDC_FILSHOW2);
CDC *pDC=pWnd->GetDC ();
pDC->FillRect(CRect(2,2,96,32),&CBrush(draw->m_ptrGL->color));
ReleaseDC(pDC);
CWnd *pWnds=GetDlgItem (IDC_FILSHOW1);
CDC *pDCs=pWnds->GetDC ();
pDCs->FillRect(CRect(2,2,96,32),&CBrush(draw->m_ptrGL->fill_color));
ReleaseDC(pDCs);
}
else
{
CWnd *pWnd=GetDlgItem (IDC_FILSHOW2);
CDC *pDC=pWnd->GetDC ();
pDC->FillRect(CRect(2,2,96,32),&CBrush(col1));
ReleaseDC(pDC);
CWnd *pWnds=GetDlgItem (IDC_FILSHOW1);
CDC *pDCs=pWnds->GetDC ();
pDCs->FillRect(CRect(2,2,96,32),&CBrush(col));
ReleaseDC(pDCs);
}
int si;
// pLB->Default
if( y==0)
{
for( si=0;si<draw->m_ptrGL->count;si++)
{
CString str=L"";
str.Format(L"%d , %d",draw->m_ptrGL->pp[si].x,draw->m_ptrGL->pp[si].y);
pLB->AddString(str);
}
y=1;
}
// else y=1;
pLB->SetCurSel(num);
SetDlgItemInt(IDC_EDIT1,draw->m_ptrGL->pp[num].x);
SetDlgItemInt(IDC_EDIT2,draw->m_ptrGL->pp[num].y);
}
void CPolPro::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
CString str;
draw->m_ptrGL->pp[num].x=m_px;
draw->m_ptrGL->pp[num].y=m_py;
draw->Invalidate();
str.Format(L"%d , %d",draw->m_ptrGL->pp[num].x,draw->m_ptrGL->pp[num].y);
m_list.DeleteString(num);
m_list.InsertString(num, str);
}
void CPolPro::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
UpdateData(true);
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *draw=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
CString str;
int s=draw->m_ptrGL->count;
if( s>3 )
{
for(int i=num;i<s-1;i++)
{
draw->m_ptrGL->pp[i]=draw->m_ptrGL->pp[i+1];
}
draw->m_ptrGL->count--;
draw->Invalidate();
m_list.DeleteString(num);
}
num=0;
m_list.SetCurSel(num);
SetDlgItemInt(IDC_EDIT1,draw->m_ptrGL->pp[num].x);
SetDlgItemInt(IDC_EDIT2,draw->m_ptrGL->pp[num].y);
//str.Format(L"%d , %d",draw->m_ptrGL->pp[num].x,draw->m_ptrGL->pp[num].y);
}
void CPolPro::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
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();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -