⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pref.cpp

📁 一个2D电磁场FEM计算的VC++源程序
💻 CPP
字号:
// Pref.cpp : implementation file
//

#include "stdafx.h"
#include "femmview.h"
#include "Pref.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CPref dialog


CPref::CPref(CWnd* pParent /*=NULL*/)
	: CDialog(CPref::IDD, pParent)
	, m_d_luaconsole(FALSE)
{
	//{{AFX_DATA_INIT(CPref)
	m_d_GreyContours = FALSE;
	m_d_LegendFlag = FALSE;
	m_d_NumContours = 0;
	m_d_ResetOnReload = FALSE;
	m_d_GridFlag = FALSE;
	m_d_ShowAi = FALSE;
	m_d_ShowAr = FALSE;
	m_d_PtsFlag = FALSE;
	m_d_MeshFlag = FALSE;
	m_d_SnapFlag = FALSE;
	m_d_Smooth = FALSE;
	m_d_LineIntegralPoints = 0;
	m_d_PlotPoints = 0;
	m_d_ShowMask = FALSE;
	m_d_luaconsole = FALSE;
	m_d_shownames = FALSE;
	//}}AFX_DATA_INIT
}


void CPref::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPref)
	DDX_Control(pDX, IDC_VECTORPLOT, m_d_vplotlist);
	DDX_Control(pDX, IDC_DENSITYPLOT, m_d_dplotlist);
	DDX_Control(pDX, IDC_EDITACTION, m_d_editlist);
	DDX_Control(pDX, IDC_COLORS, m_d_color);
	DDX_Check(pDX, IDC_GREY, m_d_GreyContours);
	DDX_Check(pDX, IDC_LEGEND, m_d_LegendFlag);
	DDX_Text(pDX, IDC_NCONT, m_d_NumContours);
	DDV_MinMaxInt(pDX, m_d_NumContours, 4, 999);
	DDX_Check(pDX, IDC_ONRELOAD, m_d_ResetOnReload);
	DDX_Check(pDX, IDC_SHOWGRID, m_d_GridFlag);
	DDX_Check(pDX, IDC_SHOWIMAGINARY, m_d_ShowAi);
	DDX_Check(pDX, IDC_SHOWREAL, m_d_ShowAr);
	DDX_Check(pDX, IDC_SHOWPTS, m_d_PtsFlag);
	DDX_Check(pDX, IDC_SHOWMESH, m_d_MeshFlag);
	DDX_Check(pDX, IDC_SNAPGRID, m_d_SnapFlag);
	DDX_Check(pDX, IDC_SMOOTHING, m_d_Smooth);
	DDX_Text(pDX, IDC_LIPOINTS, m_d_LineIntegralPoints);
	DDV_MinMaxInt(pDX, m_d_LineIntegralPoints, 10, 100000);
	DDX_Text(pDX, IDC_PLOTPOINTS, m_d_PlotPoints);
	DDV_MinMaxInt(pDX, m_d_PlotPoints, 10, 100000);
	DDX_Check(pDX, IDC_SHOWMASK, m_d_ShowMask);
	DDX_Check(pDX, IDC_SHOWNAMES, m_d_shownames);
	DDX_Check(pDX, IDC_LUACONSOLE, m_d_luaconsole);
	//}}AFX_DATA_MAP
	DDX_Control(pDX, IDC_NCONT, m_IDC_d_NumContours);
	DDX_Control(pDX, IDC_LIPOINTS, m_IDC_d_LineIntegralPoints);
	DDX_Control(pDX, IDC_PLOTPOINTS, m_IDC_d_PlotPoints);

	
}


BEGIN_MESSAGE_MAP(CPref, CDialog)
	//{{AFX_MSG_MAP(CPref)
	ON_BN_CLICKED(IDC_MODBTN, OnModBtn)
	ON_BN_CLICKED(IDC_RESET, OnResetColors)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPref message handlers

void CPref::OnModBtn() 
{
    CColorDialog dlg;
	COLORREF cclist[16];
    int i,k;

    UpdateData();
    i=m_d_color.GetCurSel();
	for(k=0;k<16;k++) cclist[k]=RGB(190,190,190);

	if(i<11) for(k=0;k<11;k++) cclist[k]=clist[k];
	if((i>10)&&(i<23)) for(k=11;k<23;k++) cclist[k-11]=clist[k];
	if(i>22) for(k=23;k<35;k++) cclist[k-23]=clist[k];

	dlg.m_cc.lpCustColors=cclist;
    dlg.m_cc.rgbResult=clist[i];
    dlg.m_cc.Flags=dlg.m_cc.Flags | CC_FULLOPEN | CC_RGBINIT;

    if(dlg.DoModal()==IDOK){
        clist[i]=dlg.GetColor();
    }

}

void CPref::OnOK() 
{
	UpdateData();
	m_d_DensityPlot=m_d_dplotlist.GetCurSel();
	m_d_EditAction=m_d_editlist.GetCurSel();
	m_d_VectorPlot=m_d_vplotlist.GetCurSel();
	CDialog::OnOK();
}

BOOL CPref::OnInitDialog() 
{
	CDialog::OnInitDialog();

	m_d_color.SetCurSel(0);
	m_d_dplotlist.SetCurSel(m_d_DensityPlot);
	m_d_editlist.SetCurSel(m_d_EditAction);
	m_d_vplotlist.SetCurSel(m_d_VectorPlot);

	UpdateData(FALSE);
	
	return TRUE;  
}

void CPref::OnResetColors() 
{
	// shamelessly crib this from other areas of the code
	// to make sure that all of the colors come out right...

	// Greyscale Density Plot Colormap
	COLORREF Grey00,Grey01,Grey02,Grey03;
	COLORREF Grey04,Grey05,Grey06,Grey07;
	COLORREF Grey08,Grey09,Grey10,Grey11;
	COLORREF Grey12,Grey13,Grey14,Grey15;
	COLORREF Grey16,Grey17,Grey18,Grey19;

	// Density Plot Colormap
	COLORREF Color00,Color01,Color02,Color03;
	COLORREF Color04,Color05,Color06,Color07;
	COLORREF Color08,Color09,Color10,Color11;
	COLORREF Color12,Color13,Color14,Color15;
	COLORREF Color16,Color17,Color18,Color19;

	// Other colors
	COLORREF SelColor;
	COLORREF MeshColor;  
	COLORREF BlockColor; 
	COLORREF LineColor;  
	COLORREF RegionColor; 
	COLORREF GridColor;  
	COLORREF BackColor;  
	COLORREF TextColor;  
	COLORREF NodeColor;
	COLORREF RealFluxLineColor;
	COLORREF ImagFluxLineColor;
	COLORREF MaskLineColor;
	COLORREF NameColor;
	COLORREF RealVectorColor;
	COLORREF ImagVectorColor;

	//////////////////////////////
	// Default Colors           //
	//////////////////////////////

	// Greyscale Colormap
	Grey00=RGB(55,55,55);
	Grey01=RGB(65,65,65);
	Grey02=RGB(75,75,75);
	Grey03=RGB(85,85,85);
	Grey04=RGB(95,95,95);
	Grey05=RGB(105,105,105);
	Grey06=RGB(115,115,115);
	Grey07=RGB(125,125,125);
	Grey08=RGB(135,135,135);
	Grey09=RGB(145,145,145);
	Grey10=RGB(155,155,155);
	Grey11=RGB(165,165,165);
	Grey12=RGB(175,175,175);
	Grey13=RGB(185,185,185);
	Grey14=RGB(195,195,195);
	Grey15=RGB(205,205,205);
	Grey16=RGB(215,215,215);
	Grey17=RGB(225,225,225);
	Grey18=RGB(235,235,235);
	Grey19=RGB(245,245,245);

	// BELA Colormap
	Color19=RGB(0,255,255);
	Color18=RGB(37,255,195);
	Color17=RGB(69,255,147);
	Color16=RGB(98,255,108);
	Color15=RGB(123,255,76);
	Color14=RGB(148,255,51);
	Color13=RGB(171,255,31);
	Color12=RGB(194,255,16);
	Color11=RGB(217,255,6);
	Color10=RGB(242,255,1);
	Color09=RGB(255,242,1);
	Color08=RGB(255,217,6);
	Color07=RGB(255,194,16);
	Color06=RGB(255,171,31);
	Color05=RGB(255,148,51);
	Color04=RGB(255,123,76);
	Color03=RGB(255,98,108);
	Color02=RGB(255,69,147);
	Color01=RGB(255,37,195);
	Color00=RGB(255,0,255);

	// Other colors
	SelColor    =  RGB(255,0,0);
	MeshColor   =  RGB(213,228,20);
	BlockColor  =  RGB(0,125,0);
	LineColor   =  RGB(0,0,255);
	RegionColor =  RGB(0,255,0);
	GridColor   =	RGB(0,0,255);
	BackColor   =  RGB(255,255,255);
	NodeColor	 =	RGB(0,0,0);
	TextColor   =  RGB(0,0,0);
	RealFluxLineColor = RGB(0,0,0);
	ImagFluxLineColor = RGB(128,128,128);
	NameColor	=	RGB(0,0,0);
	MaskLineColor = RGB(255,128,64);
	RealVectorColor = RGB(0,0,0);
	ImagVectorColor = RGB(128,128,128);

	if(AfxMessageBox("Reset all color preferences?",MB_OKCANCEL)==IDOK)
	{
		int i=0;
		clist[i++]=SelColor;
		clist[i++]=BackColor;
		clist[i++]=MeshColor;
		clist[i++]=BlockColor;
		clist[i++]=LineColor;
		clist[i++]=GridColor;
		clist[i++]=NodeColor;
		clist[i++]=RegionColor;
		clist[i++]=TextColor;
		clist[i++]=RealFluxLineColor;
		clist[i++]=ImagFluxLineColor;
		clist[i++]=MaskLineColor;
		clist[i++]=NameColor;
		clist[i++]=RealVectorColor;
		clist[i++]=ImagVectorColor;
		clist[i++]=Color00;
		clist[i++]=Color01;
		clist[i++]=Color02;
		clist[i++]=Color03;
		clist[i++]=Color04;
		clist[i++]=Color05;
		clist[i++]=Color06;
		clist[i++]=Color07;
		clist[i++]=Color08;
		clist[i++]=Color09;
		clist[i++]=Color10;
		clist[i++]=Color11;
		clist[i++]=Color12;
		clist[i++]=Color13;
		clist[i++]=Color14;
		clist[i++]=Color15;
		clist[i++]=Color16;
		clist[i++]=Color17;
		clist[i++]=Color18;
		clist[i++]=Color19;
		clist[i++]=Grey00;
		clist[i++]=Grey01;
		clist[i++]=Grey02;
		clist[i++]=Grey03;
		clist[i++]=Grey04;
		clist[i++]=Grey05;
		clist[i++]=Grey06;
		clist[i++]=Grey07;
		clist[i++]=Grey08;
		clist[i++]=Grey09;
		clist[i++]=Grey10;
		clist[i++]=Grey11;
		clist[i++]=Grey12;
		clist[i++]=Grey13;
		clist[i++]=Grey14;
		clist[i++]=Grey15;
		clist[i++]=Grey16;
		clist[i++]=Grey17;
		clist[i++]=Grey18;
		clist[i++]=Grey19;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -