curvecolor.cpp

来自「用于电力工业中数据的采集、显示」· C++ 代码 · 共 84 行

CPP
84
字号
// CurveColor.cpp : implementation file
//

#include "stdafx.h"
#include "wgl_32.h"
#include "CurveColor.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCurveColor dialog


CCurveColor::CCurveColor(CWgl_32Doc * p,CWnd* pParent /*=NULL*/)
	: CDialog(CCurveColor::IDD, pParent),m_ChannelList(p)
{
	bChange = FALSE;
	pCWgl_32Doc = p;
	//{{AFX_DATA_INIT(CCurveColor)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CCurveColor::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCurveColor)
	DDX_Control(pDX, IDC_CHANNELCOLOR, m_ChannelList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CCurveColor, CDialog)
	//{{AFX_MSG_MAP(CCurveColor)
	ON_BN_CLICKED(IDC_APPLY, OnApply)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCurveColor message handlers

void CCurveColor::OnApply()
{
	int *Index;
	COLORREF clr;
	int cn = m_ChannelList.GetSelCount();
	if(cn == LB_ERR || cn == 0) return;
	Index = new int[cn];
	if(Index==NULL)
	{
		MessageBox("内存分配错误!",
			"严重错误",MB_OK|MB_ICONSTOP);
		return;
	}
	m_ChannelList.GetSelItems(cn,Index);
	clr = pCWgl_32Doc->m_pChannelIndex[m_ChannelList.GetCurSel()].Color;
	CColorDialog clrdlg(clr,CC_SOLIDCOLOR|CC_PREVENTFULLOPEN);
	if(clrdlg.DoModal()==IDOK)
	{
		bChange = TRUE;
		COLORREF color = clrdlg.GetColor();
		for(int i=0; i<cn; i++)
			pCWgl_32Doc->m_pChannelIndex[Index[i]].Color = color;
		m_ChannelList.Invalidate();
	}
	delete[] Index;
}

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

	ChannelNumber *m_pChannelIndex=pCWgl_32Doc->m_pChannelIndex;
	
	for(int i=0; i<pCWgl_32Doc->m_ChannelNum; i++)
		m_ChannelList.AddListItem(m_pChannelIndex[i].No);
	return TRUE;
}

⌨️ 快捷键说明

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