📄 setdlg.cpp
字号:
// SetDlg.cpp : implementation file
//
#include "stdafx.h"
#include "MyPaint.h"
#include "SetDlg.h"
#include "MyPaintDoc.h"
#include "MyPaintView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSetDlg dialog
BYTE focus,fov;
extern CMyPaintView* dcpoint;
extern BOOL flag_focus;
extern COLORREF color_net,color_cordn,color_bk,color_text;
CSetDlg::CSetDlg(CWnd* pParent /*=NULL*/)
: CDialog(CSetDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CSetDlg)
m_focus_sw = 0;
m_fov_sw = 0;
m_flag_focus = FALSE;
//}}AFX_DATA_INIT
}
void CSetDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CSetDlg)
DDX_Control(pDX, IDC_FOV, m_fov);
DDX_Control(pDX, IDC_FOCUS, m_focus);
DDX_Text(pDX, IDC_FOCUS_SW, m_focus_sw);
DDX_Text(pDX, IDC_FOV_SW, m_fov_sw);
DDX_Check(pDX, IDC_CHECK1, m_flag_focus);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CSetDlg, CDialog)
//{{AFX_MSG_MAP(CSetDlg)
ON_NOTIFY(NM_CUSTOMDRAW, IDC_FOCUS, OnCustomdrawFocus)
ON_NOTIFY(NM_CUSTOMDRAW, IDC_FOV, OnCustomdrawFov)
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_WM_PAINT()
ON_WM_LBUTTONDOWN()
ON_BN_CLICKED(IDC_SET_SAVE, OnSetSave)
ON_BN_CLICKED(IDC_RESET, OnReset)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CSetDlg message handlers
BOOL CSetDlg::OnInitDialog()
{
CDialog::OnInitDialog();
temp_focus=m_focus_sw=focus;
temp_fov=m_fov_sw=fov;
temp_color_bk=color_bk;
temp_color_text=color_text;
temp_color_cordn=color_cordn;
temp_color_net=color_net;
UpdateData(FALSE);
m_focus.SetRange(10,50);
m_fov.SetRange(20,70);
m_focus.SetPos(focus);
m_fov.SetPos(fov);/////////////////////
CWnd *pFocus=GetDlgItem(IDC_FOCUS),
*pFocus_SW=GetDlgItem(IDC_FOCUS_SW);
temp_flag=flag_focus;
m_flag_focus=!flag_focus;
UpdateData(FALSE);
if(!m_flag_focus)
{
pFocus->EnableWindow(TRUE);
pFocus_SW->EnableWindow(TRUE);
}
else
{
pFocus->EnableWindow(FALSE);
pFocus_SW->EnableWindow(FALSE);
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetDlg::OnCustomdrawFocus()
{
focus=m_focus_sw=(BYTE)m_focus.GetPos();
UpdateData(FALSE);
dcpoint->Invalidate(TRUE);
}
void CSetDlg::OnCustomdrawFov()
{
fov=m_fov_sw=(BYTE)m_fov.GetPos();
UpdateData(FALSE);
dcpoint->Invalidate(TRUE);
}
void CSetDlg::OnOK()
{
extern BOOL flag_setdlg;
flag_setdlg=0;
DestroyWindow();
}
void CSetDlg::OnCancel()
{
extern BOOL flag_setdlg;
focus=temp_focus;
fov=temp_fov;
flag_focus=temp_flag;
color_bk=temp_color_bk;
color_text=temp_color_text;
color_cordn=temp_color_cordn;
color_net=temp_color_net;
dcpoint->Invalidate(TRUE);
flag_setdlg=0;
DestroyWindow();
}
void CSetDlg::OnCheck1()
{
UpdateData(TRUE);
CWnd *pFocus=GetDlgItem(IDC_FOCUS),
*pFocus_SW=GetDlgItem(IDC_FOCUS_SW);
flag_focus=!m_flag_focus;
if(!m_flag_focus)
{
pFocus->EnableWindow(TRUE);
pFocus_SW->EnableWindow(TRUE);
}
else
{
pFocus->EnableWindow(FALSE);
pFocus_SW->EnableWindow(FALSE);
}
dcpoint->Invalidate(TRUE);
}
void CSetDlg::OnPaint()
{
CPaintDC dc(this);
CBrush Brush;
CWnd *pWnd;
CRect rcClient;
CDC *cdc;////////////////
//////////////////////
pWnd=GetDlgItem(IDC_COLOR_BK);
pWnd->UpdateWindow();
cdc=pWnd->GetDC();
Brush.CreateSolidBrush(color_bk);
cdc->SelectObject(Brush);
pWnd->GetClientRect(rcClient);
cdc->Rectangle(rcClient);
Brush.DeleteObject();
//////////////////////
pWnd=GetDlgItem(IDC_COLOR_CORDN);
pWnd->UpdateWindow();
cdc=pWnd->GetDC();
Brush.CreateSolidBrush(color_cordn);
cdc->SelectObject(Brush);
pWnd->GetClientRect(rcClient);
cdc->Rectangle(rcClient);
Brush.DeleteObject();
//////////////////////
pWnd=GetDlgItem(IDC_COLOR_TEXT);
pWnd->UpdateWindow();
cdc=pWnd->GetDC();
Brush.CreateSolidBrush(color_text);
cdc->SelectObject(Brush);
pWnd->GetClientRect(rcClient);
cdc->Rectangle(rcClient);
Brush.DeleteObject();
//////////////////////
pWnd=GetDlgItem(IDC_COLOR_NET);
pWnd->UpdateWindow();
cdc=pWnd->GetDC();
Brush.CreateSolidBrush(color_net);
cdc->SelectObject(Brush);
pWnd->GetClientRect(rcClient);
cdc->Rectangle(rcClient);
Brush.DeleteObject();
//////////
ReleaseDC(cdc);
}
void CSetDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
if(point.x>80&&point.x<130&&point.y>30&&point.y<45)
{
CColorDialog choose(color_bk,0,this);
if(choose.DoModal()==IDOK)
{
color_bk=choose.GetColor();
this->OnPaint();
dcpoint->Invalidate(TRUE);
}
}
else
if(point.x>80&&point.x<130&&point.y>48&&point.y<63)
{
CColorDialog choose(color_text,0,this);
if(choose.DoModal()==IDOK)
{
color_text=choose.GetColor();
this->OnPaint();
dcpoint->Invalidate(TRUE);
}
}
else
if(point.x>80&&point.x<130&&point.y>66&&point.y<81)
{
CColorDialog choose(color_cordn,0,this);
if(choose.DoModal()==IDOK)
{
color_cordn=choose.GetColor();
this->OnPaint();
dcpoint->Invalidate(TRUE);
}
}
else
if(point.x>80&&point.x<130&&point.y>84&&point.y<99)
{
CColorDialog choose(color_net,0,this);
if(choose.DoModal()==IDOK)
{
color_net=choose.GetColor();
this->OnPaint();
dcpoint->Invalidate(TRUE);
}
}
CDialog::OnLButtonDown(nFlags, point);
}
void CSetDlg::OnSetSave()
{
CFile fp;
if(fp.Open("set.ini",CFile::modeWrite|CFile::modeCreate)==FALSE)
{
MessageBox("错误","文件创建失败!",MB_OK);
return;
}
fp.Write(&color_bk,sizeof(COLORREF));
fp.Write(&color_net,sizeof(COLORREF));
fp.Write(&color_cordn,sizeof(COLORREF));
fp.Write(&color_text,sizeof(COLORREF));
fp.Write(&flag_focus,sizeof(BOOL));
fp.Write(&focus,sizeof(BYTE));
fp.Write(&fov,sizeof(BYTE));
fp.Close();
}
void CSetDlg::OnReset()
{
color_net=RGB(192,192,192);
color_cordn=RGB(0,0,0);
color_bk=RGB(255,255,255);
color_text=RGB(0,0,0);
flag_focus=1;
focus=20;
fov=40;
dcpoint->Invalidate(TRUE);
CFile fp;
if(fp.Open("set.ini",CFile::modeWrite|CFile::modeCreate)==FALSE)
{
MessageBox("错误","文件创建失败!",MB_OK);
return;
}
fp.Write(&color_bk,sizeof(COLORREF));
fp.Write(&color_net,sizeof(COLORREF));
fp.Write(&color_cordn,sizeof(COLORREF));
fp.Write(&color_text,sizeof(COLORREF));
fp.Write(&flag_focus,sizeof(BOOL));
fp.Write(&focus,sizeof(BYTE));
fp.Write(&fov,sizeof(BYTE));
fp.Close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -