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

📄 tritransfromerctl.cpp

📁 一个三接变压器符号控件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	rc.bottom=rc1.bottom-(rc1.bottom -rc1.top)/4;
	switch(m_displayType)
	{
		case 2:
		case 3:
			DrawTransformer(pdc,rc,1,m_rightColor);
			break;
		case 5:
		case 6:
			DrawTransformer(pdc,rc,2,m_rightColor);
			break;
		case 1:
		case 4:
			DrawTransformer(pdc,rc,3,m_rightColor);
			break;
	}
}

/////////////////////////////////////////////////////////////////////////////
// CTritransfromerCtrl::OnDraw - Drawing function

void CTritransfromerCtrl::OnDraw(
			CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	// TODO: Replace the following code with your own drawing code.
	CRect rc;
	rc = rcBounds;

	COLORREF colBack;
	CBrush bkBrush,*oldBrush=NULL;

	OleTranslateColor(m_backColor, NULL, &colBack);
	bkBrush.CreateSolidBrush(colBack);
	oldBrush=pdc->SelectObject(&bkBrush);
	pdc->FillRect(&rc,&bkBrush);
	pdc->SelectObject(&oldBrush);
	bkBrush.DeleteObject();
	
	pdc->SetBkMode(TRANSPARENT);

	CBrush bkBrush2,*oldBrush2;
	if(m_bImageHollow)
	{
		bkBrush2.CreateStockObject(NULL_BRUSH);
	}
	else
	{
		bkBrush2.CreateSolidBrush(colBack);
	}
	oldBrush2=pdc->SelectObject(&bkBrush2);


	DrawThreeTransformer(pdc,rc,m_displayType);

	pdc->SelectObject(oldBrush2);
	bkBrush2.DeleteObject();
}

LRESULT CTritransfromerCtrl::OnMyMessage101(WPARAM wParam, LPARAM lParam)
{
	// TODO: 处理用户自定义消息
	COLORREF colCustom;
	colCustom=(COLORREF)lParam;
	SetTopColor(colCustom);

	return 0;
}
LRESULT CTritransfromerCtrl::OnMyMessage102(WPARAM wParam, LPARAM lParam)
{
	// TODO: 处理用户自定义消息
	COLORREF colCustom;
	colCustom=(COLORREF)lParam;
	SetBottomColor(colCustom);

	return 0;
}
LRESULT CTritransfromerCtrl::OnMyMessage103(WPARAM wParam, LPARAM lParam)
{
	// TODO: 处理用户自定义消息
	COLORREF colCustom;
	colCustom=(COLORREF)lParam;
	SetRightColor(colCustom);

	return 0;
}

/////////////////////////////////////////////////////////////////////////////
// CTritransfromerCtrl::DoPropExchange - Persistence support

void CTritransfromerCtrl::DoPropExchange(CPropExchange* pPX)
{
	ExchangeVersion(pPX, MAKELONG(_wVerMinor, _wVerMajor));
	COleControl::DoPropExchange(pPX);

	// TODO: Call PX_ functions for each persistent custom property.

	PX_Color(pPX,"BackColor",m_backColor);
	PX_Color(pPX,"ForeColor",m_foreColor);
	PX_Bool(pPX,"ImageHollow",m_bImageHollow);
	PX_Short(pPX,"LineSize",m_lineSize);
	PX_Short(pPX,"DisplayType",m_displayType);
	PX_Color(pPX,"TopColor",m_topColor);
	PX_Color(pPX,"BottomColor",m_bottomColor);
	PX_Color(pPX,"RightColor",m_rightColor);
}


/////////////////////////////////////////////////////////////////////////////
// CTritransfromerCtrl::OnResetState - Reset control to default state

void CTritransfromerCtrl::OnResetState()
{
	COleControl::OnResetState();  // Resets defaults found in DoPropExchange

	// TODO: Reset any other control state here.
}


/////////////////////////////////////////////////////////////////////////////
// CTritransfromerCtrl message handlers

OLE_COLOR CTritransfromerCtrl::GetBackColor() 
{
	// TODO: Add your property handler here

	return m_backColor;
}

void CTritransfromerCtrl::SetBackColor(OLE_COLOR nNewValue) 
{
	// TODO: Add your property handler here

	m_backColor = nNewValue;
	SetModifiedFlag();
	InvalidateControl();
}

OLE_COLOR CTritransfromerCtrl::GetForeColor() 
{
	// TODO: Add your property handler here

	return m_foreColor;
}

void CTritransfromerCtrl::SetForeColor(OLE_COLOR nNewValue) 
{
	// TODO: Add your property handler here
	
	m_foreColor = nNewValue;
	SetModifiedFlag();
	InvalidateControl();
}

short CTritransfromerCtrl::GetDisplayType() 
{
	// TODO: Add your property handler here

	return m_displayType;
}

void CTritransfromerCtrl::SetDisplayType(short nNewValue) 
{
	// TODO: Add your property handler here

	m_displayType = nNewValue;
	SetModifiedFlag();
	InvalidateControl();
}

BOOL CTritransfromerCtrl::GetImageHollow() 
{
	// TODO: Add your property handler here

	return m_bImageHollow;
}

void CTritransfromerCtrl::SetImageHollow(BOOL bNewValue) 
{
	// TODO: Add your property handler here

	m_bImageHollow = bNewValue;
	SetModifiedFlag();
	InvalidateControl();
}

short CTritransfromerCtrl::GetLineSize() 
{
	// TODO: Add your property handler here

	return m_lineSize;
}

void CTritransfromerCtrl::SetLineSize(short nNewValue) 
{
	// TODO: Add your property handler here

	m_lineSize = nNewValue;
	SetModifiedFlag();
	InvalidateControl();
}
LRESULT CTritransfromerCtrl::OnMySetExtent(WPARAM wParam, LPARAM lParam) 
{ 
	// TODO: 处理用户自定义消息

	SIZEL SizeL;
	SizeL.cx=m_iControlWidth;
	SizeL.cy=m_iControlHeight;
	return OnSetExtent(&SizeL);
}

BOOL CTritransfromerCtrl::OnSetExtent(LPSIZEL lpSizeL) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	lpSizeL->cx=m_iControlWidth;
	lpSizeL->cy=m_iControlHeight;
	COleControl::OnSetExtent(lpSizeL);
	BOOL bMode;
	bMode=AmbientUserMode();
	if(bMode)  //run mode
	{
		return 1;
	}
	else  //design mode   
	{
		return 0;
	}
}

int CTritransfromerCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
	if (COleControl::OnCreate(lpCreateStruct) == -1)
		return -1;
	
	// TODO: Add your specialized creation code here
	
	PostMessage(WM_MY_SETEXTENT,0,0);
	return 0;
}

OLE_COLOR CTritransfromerCtrl::GetTopColor() 
{
	// TODO: Add your property handler here

	return m_topColor;
}

void CTritransfromerCtrl::SetTopColor(OLE_COLOR nNewValue) 
{
	// TODO: Add your property handler here
	
	m_topColor=nNewValue;
	SetModifiedFlag();
	InvalidateControl();
}

OLE_COLOR CTritransfromerCtrl::GetBottomColor() 
{
	// TODO: Add your property handler here

	return m_bottomColor;
}

void CTritransfromerCtrl::SetBottomColor(OLE_COLOR nNewValue) 
{
	// TODO: Add your property handler here

	m_bottomColor=nNewValue;
	SetModifiedFlag();
	InvalidateControl();
}

OLE_COLOR CTritransfromerCtrl::GetRightColor() 
{
	// TODO: Add your property handler here

	return m_rightColor;
}

void CTritransfromerCtrl::SetRightColor(OLE_COLOR nNewValue) 
{
	// TODO: Add your property handler here
	
	m_rightColor=nNewValue;
	SetModifiedFlag();
	InvalidateControl();
}

BOOL CTritransfromerCtrl::PreCreateWindow(CREATESTRUCT& cs) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return COleControl::PreCreateWindow(cs);
}

⌨️ 快捷键说明

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