亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? graphviewctl.cpp

?? < VC++視頻音頻開發(fā)>> 這本書的源碼
?? CPP
字號(hào):
// GraphViewCtl.cpp : Implementation of the CGraphViewCtrl ActiveX Control class.

#include "stdafx.h"
#include "GraphView.h"
#include "GraphViewCtl.h"


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


IMPLEMENT_DYNCREATE(CGraphViewCtrl, COleControl)


/////////////////////////////////////////////////////////////////////////////
// Message map

BEGIN_MESSAGE_MAP(CGraphViewCtrl, COleControl)
	//{{AFX_MSG_MAP(CGraphViewCtrl)
	// NOTE - ClassWizard will add and remove message map entries
	//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_MSG_MAP
	ON_OLEVERB(AFX_IDS_VERB_PROPERTIES, OnProperties)
END_MESSAGE_MAP()


/////////////////////////////////////////////////////////////////////////////
// Dispatch map

BEGIN_DISPATCH_MAP(CGraphViewCtrl, COleControl)
	//{{AFX_DISPATCH_MAP(CGraphViewCtrl)
	DISP_PROPERTY_NOTIFY(CGraphViewCtrl, "ForeColor", m_foreColor, OnForeColorChanged, VT_COLOR)
	DISP_PROPERTY_NOTIFY(CGraphViewCtrl, "LineType", m_lineType, OnLineTypeChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CGraphViewCtrl, "LineWidth", m_lineWidth, OnLineWidthChanged, VT_I4)
	DISP_PROPERTY_NOTIFY(CGraphViewCtrl, "BackColor", m_backColor, OnBackColorChanged, VT_COLOR)
	DISP_FUNCTION(CGraphViewCtrl, "Clear", Clear, VT_EMPTY, VTS_NONE)
	DISP_FUNCTION(CGraphViewCtrl, "SetScale", SetScale, VT_EMPTY, VTS_R8 VTS_R8 VTS_R8 VTS_R8)
	DISP_FUNCTION(CGraphViewCtrl, "LineTo", LineTo, VT_EMPTY, VTS_R8 VTS_R8)
	DISP_FUNCTION(CGraphViewCtrl, "MoveTo", MoveTo, VT_EMPTY, VTS_R8 VTS_R8)
	DISP_FUNCTION(CGraphViewCtrl, "Multiline", Multiline, VT_EMPTY, VTS_I4 VTS_PR8 VTS_PR8)
	DISP_FUNCTION(CGraphViewCtrl, "DrawLine", DrawLine, VT_EMPTY, VTS_R8 VTS_R8 VTS_R8 VTS_R8)
	//}}AFX_DISPATCH_MAP
END_DISPATCH_MAP()


/////////////////////////////////////////////////////////////////////////////
// Event map

BEGIN_EVENT_MAP(CGraphViewCtrl, COleControl)
	//{{AFX_EVENT_MAP(CGraphViewCtrl)
	// NOTE - ClassWizard will add and remove event map entries
	//    DO NOT EDIT what you see in these blocks of generated code !
	//}}AFX_EVENT_MAP
END_EVENT_MAP()


/////////////////////////////////////////////////////////////////////////////
// Initialize class factory and guid

IMPLEMENT_OLECREATE_EX(CGraphViewCtrl, "GRAPHVIEW.GraphViewCtrl.1",
	0x37573b5e, 0x2a9a, 0x4686, 0x9c, 0xb7, 0x8d, 0x26, 0x11, 0xc4, 0x92, 0x72)


/////////////////////////////////////////////////////////////////////////////
// Type library ID and version

IMPLEMENT_OLETYPELIB(CGraphViewCtrl, _tlid, _wVerMajor, _wVerMinor)


/////////////////////////////////////////////////////////////////////////////
// Interface IDs

const IID BASED_CODE IID_DGraphView =
		{ 0xb2c79461, 0x51b8, 0x4eeb, { 0x8e, 0x89, 0x8b, 0xf8, 0xdc, 0x83, 0xda, 0x60 } };
const IID BASED_CODE IID_DGraphViewEvents =
		{ 0x2e5c7806, 0x20f7, 0x493a, { 0xad, 0x4c, 0xfd, 0xf6, 0xb7, 0xb0, 0x25, 0xd4 } };


/////////////////////////////////////////////////////////////////////////////
// Control type information

static const DWORD BASED_CODE _dwGraphViewOleMisc =
	OLEMISC_ACTIVATEWHENVISIBLE |
	OLEMISC_SETCLIENTSITEFIRST |
	OLEMISC_INSIDEOUT |
	OLEMISC_CANTLINKINSIDE |
	OLEMISC_RECOMPOSEONRESIZE;

IMPLEMENT_OLECTLTYPE(CGraphViewCtrl, IDS_GRAPHVIEW, _dwGraphViewOleMisc)


/////////////////////////////////////////////////////////////////////////////
// CGraphViewCtrl::CGraphViewCtrlFactory::UpdateRegistry -
// Adds or removes system registry entries for CGraphViewCtrl

BOOL CGraphViewCtrl::CGraphViewCtrlFactory::UpdateRegistry(BOOL bRegister)
{
	// TODO: Verify that your control follows apartment-model threading rules.
	// Refer to MFC TechNote 64 for more information.
	// If your control does not conform to the apartment-model rules, then
	// you must modify the code below, changing the 6th parameter from
	// afxRegApartmentThreading to 0.

	if (bRegister)
		return AfxOleRegisterControlClass(
			AfxGetInstanceHandle(),
			m_clsid,
			m_lpszProgID,
			IDS_GRAPHVIEW,
			IDB_GRAPHVIEW,
			afxRegApartmentThreading,
			_dwGraphViewOleMisc,
			_tlid,
			_wVerMajor,
			_wVerMinor);
	else
		return AfxOleUnregisterClass(m_clsid, m_lpszProgID);
}


/////////////////////////////////////////////////////////////////////////////
// CGraphViewCtrl::CGraphViewCtrl - Constructor

CGraphViewCtrl::CGraphViewCtrl()
{
	InitializeIIDs(&IID_DGraphView, &IID_DGraphViewEvents);

	//Default properties
	m_backColor		= RGB(255,255,255);
	m_foreColor		= RGB(  0,  0,  0);
	m_lineType		= PS_SOLID;
	m_lineWidth		= 1;

	//Instanciate drawing tools
	ptrPen		= new CPen(m_lineType, m_lineWidth, m_foreColor);
	ptrBrush	= new CBrush(m_backColor);
	penpos		= (0,0);
}


/////////////////////////////////////////////////////////////////////////////
// CGraphViewCtrl::~CGraphViewCtrl - Destructor

CGraphViewCtrl::~CGraphViewCtrl()
{
	delete ptrPen;
	delete ptrBrush;
}


/////////////////////////////////////////////////////////////////////////////
// CGraphViewCtrl::OnDraw - Drawing function

void CGraphViewCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
	CRect bufRect = rcBounds;

	//Drawing rect
	pdc->FillRect(rcBounds, ptrBrush);
	pdc->DrawEdge(bufRect, EDGE_BUMP, BF_RECT);
}


/////////////////////////////////////////////////////////////////////////////
// CGraphViewCtrl::DoPropExchange - Persistence support

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

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

}


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

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

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


//--- PUBLIC METHODS ---------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::Clear() 
{
	CDC *pdc;
	CRect rcBounds;

	pdc = GetDC();
	pdc->GetClipBox(&rcBounds);

	//Drawing rect
	pdc->FillRect(rcBounds, ptrBrush);
	pdc->DrawEdge(rcBounds, EDGE_BUMP, BF_RECT);

	ReleaseDC(pdc);
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::SetScale(double x1, double y1, double x2, double y2) 
{
	CDC *pdc=GetDC();
	CRect rcBounds;
	GetClientRect(&rcBounds);

	x1world = x1;
	y1world = y1;
	x2world = x2;
	y2world = y2;
	dxworld = x2 - x1;
	dyworld = y2 - y1;

	dxwin = rcBounds.Width();
	dywin = rcBounds.Height();

	ReleaseDC(pdc);
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::DrawLine(double x1, double y1, double x2, double y2) 
{
	CDC		*pdc = GetDC();
	CPen	*oldPen = pdc->SelectObject(ptrPen);
	CRect rcBounds;
	GetClientRect(&rcBounds);

	CPoint p1,p2;

	p1 = WorldToWindows(x1, y1);
	p2 = WorldToWindows(x2, y2);

	pdc->MoveTo(p1);
	pdc->LineTo(p2);

	pdc->SelectObject(oldPen);
	penpos = p2;

	pdc->DrawEdge(rcBounds, EDGE_BUMP, BF_RECT);
	
	ReleaseDC(pdc);
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::Multiline(long segments, double FAR* xi, double FAR* yi) 
{
	CDC *pdc=GetDC();
	CPen *oldPen=pdc->SelectObject(ptrPen);
	CPoint p;

	p = WorldToWindows(xi[0], yi[0]);
	pdc->MoveTo(p);

	for (int i=1; i<segments; i++)
	{
		p = WorldToWindows(xi[i], yi[i]);
		pdc->LineTo(p);
	}
	pdc->SelectObject(oldPen);
	penpos = p;

	ReleaseDC(pdc);
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::MoveTo(double x, double y) 
{
	CPoint p = WorldToWindows(x, y);

	penpos = p;
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::LineTo(double x, double y)
{
	CDC *pdc		= GetDC();
	CPen *oldPen	= pdc->SelectObject(ptrPen);
	CPoint p		= WorldToWindows(x, y);

	pdc->MoveTo(penpos);
	pdc->LineTo(p);
	penpos=p;
	pdc->SelectObject(oldPen);

	ReleaseDC(pdc);
}

//--- PRIVATE METHODS --------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------
CPoint CGraphViewCtrl::WorldToWindows(double x, double y)
{
	CPoint bufPoint;

	bufPoint.x = (int)((x - x1world) * (dxwin / dxworld));
	bufPoint.y = (int)((y2world - y) * (dywin / dyworld));

	return bufPoint;
}

//--- PROPERTIES -------------------------------------------------------------------------------------------
//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::OnBackColorChanged() 
{
	CDC *pdc;
	CRect rcBounds;

	delete ptrBrush;
	ptrBrush = new CBrush(m_backColor);

	pdc = GetDC();
	pdc->GetClipBox(&rcBounds);
	
	//Drawing rect
	pdc->FillRect(rcBounds, ptrBrush);
	pdc->DrawEdge(rcBounds, EDGE_BUMP, BF_RECT);
	ReleaseDC(pdc);

	SetModifiedFlag();
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::OnForeColorChanged() 
{
	delete ptrPen;
	ptrPen = new CPen(m_lineType, m_lineWidth, m_foreColor);

	SetModifiedFlag();
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::OnLineTypeChanged() 
{
	delete ptrPen;
	ptrPen = new CPen(m_lineType, m_lineWidth, m_foreColor);

	SetModifiedFlag();
}

//----------------------------------------------------------------------------------------------------------
void CGraphViewCtrl::OnLineWidthChanged() 
{
	delete ptrPen;
	ptrPen = new CPen(m_lineType, m_lineWidth, m_foreColor);

	SetModifiedFlag();
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精品国产欧美| 亚洲一区在线观看网站| 在线观看一区日韩| 国内精品免费在线观看| 亚洲一二三四区不卡| 国产欧美精品一区| 日韩免费看的电影| 欧美这里有精品| 99re这里只有精品6| 激情伊人五月天久久综合| 天天色图综合网| 一二三四社区欧美黄| 久久久久99精品国产片| 欧美一级高清片| 欧美丝袜丝交足nylons| 97国产精品videossex| 国产一区二区电影| 蜜乳av一区二区| 亚洲.国产.中文慕字在线| 亚洲激情成人在线| 国产精品国产精品国产专区不蜜| 欧美成人在线直播| 欧美一级爆毛片| 4438x亚洲最大成人网| 欧美亚洲图片小说| 91麻豆视频网站| 成人午夜免费电影| 国产69精品久久99不卡| 精品写真视频在线观看| 日韩影院在线观看| 日韩精品欧美精品| 天堂成人国产精品一区| 天天影视网天天综合色在线播放| 亚洲午夜一区二区| 亚洲福利一二三区| 亚洲观看高清完整版在线观看| 一区二区免费在线| 亚洲综合久久久| 亚洲成av人影院在线观看网| 亚洲成人手机在线| 亚洲成av人**亚洲成av**| 亚洲va国产va欧美va观看| 亚洲电影中文字幕在线观看| 三级久久三级久久| 麻豆国产一区二区| 精品制服美女丁香| 国产成人综合网站| 成人av资源网站| 在线视频国内自拍亚洲视频| 欧美日韩国产小视频| 91精品国产品国语在线不卡| 精品国产一区二区国模嫣然| 国产亚洲欧洲一区高清在线观看| 久久久影视传媒| 亚洲人123区| 首页欧美精品中文字幕| 经典一区二区三区| 99精品热视频| 欧美性一级生活| 日韩欧美亚洲国产另类| 国产日韩三级在线| 亚洲欧美精品午睡沙发| 亚洲成在人线免费| 老司机精品视频导航| 色婷婷av一区二区三区之一色屋| 一本一道综合狠狠老| 欧美亚洲动漫制服丝袜| 日韩欧美在线综合网| 国产精品久久99| 日本在线观看不卡视频| 国产精品一区二区三区99 | 懂色av一区二区三区蜜臀| 成人av免费在线播放| 欧美精品丝袜久久久中文字幕| 日韩欧美黄色影院| 亚洲人成7777| 精品在线观看视频| av亚洲产国偷v产偷v自拍| 国产乱码精品一品二品| 色婷婷综合久色| 日韩欧美国产一区二区在线播放| 中文字幕乱码亚洲精品一区| 亚洲va欧美va人人爽| 成人午夜视频网站| 日韩一区二区视频在线观看| 国产精品久久久久影院亚瑟| 丝袜美腿亚洲综合| 99精品视频在线免费观看| 欧美大胆人体bbbb| 一区二区三区美女| 国产高清精品久久久久| 国产欧美精品一区| 免费人成黄页网站在线一区二区| 成人免费毛片app| 欧美一区二区三区在线视频| 亚洲色图欧美在线| 韩国精品一区二区| 欧美日韩大陆一区二区| 国产精品拍天天在线| 美国毛片一区二区| 欧美视频在线不卡| 亚洲天堂av一区| 国产成人欧美日韩在线电影| 欧美一区二区福利在线| 亚洲激情男女视频| 99久久久无码国产精品| 久久久蜜桃精品| 麻豆视频观看网址久久| 欧美日韩夫妻久久| 亚洲精品第1页| 成人av免费在线| 国产亚洲欧美激情| 精品在线一区二区三区| 欧美一区二区三区在线观看| 亚洲一区国产视频| 91蜜桃传媒精品久久久一区二区| 国产亚洲欧洲一区高清在线观看| 麻豆传媒一区二区三区| 欧美日韩一区二区在线观看 | 美女一区二区久久| 欧美视频在线播放| 亚洲影视在线播放| 色偷偷一区二区三区| 亚洲欧美在线aaa| www.亚洲免费av| 国产欧美日本一区二区三区| 国产精品 日产精品 欧美精品| 欧美sm极限捆绑bd| 九色|91porny| www亚洲一区| 国产综合久久久久久久久久久久 | 亚洲乱码国产乱码精品精可以看| zzijzzij亚洲日本少妇熟睡| 国产精品亲子伦对白| eeuss鲁片一区二区三区在线看| 国产欧美精品区一区二区三区| 国产成人精品亚洲日本在线桃色| 偷窥少妇高潮呻吟av久久免费| 色综合久久综合网| 亚洲精品写真福利| 在线精品亚洲一区二区不卡| 亚洲综合色成人| 91精品国产综合久久蜜臀| 蜜臀精品久久久久久蜜臀| 欧美zozozo| 国产风韵犹存在线视精品| 国产精品家庭影院| 在线看日本不卡| 日本成人中文字幕在线视频| 日韩欧美一区电影| 国产麻豆成人传媒免费观看| 国产精品伦理一区二区| 91欧美激情一区二区三区成人| 亚洲色图欧洲色图婷婷| 欧美三级电影一区| 美女一区二区在线观看| 亚洲国产精品精华液ab| 色美美综合视频| 日本女人一区二区三区| 国产丝袜美腿一区二区三区| 91污片在线观看| 视频一区中文字幕| 久久蜜桃av一区二区天堂| 99精品桃花视频在线观看| 亚洲va国产va欧美va观看| 久久蜜臀精品av| 欧美性大战久久久| 久久精品国产一区二区| 中文字幕免费不卡| 欧美日韩激情在线| 国产激情一区二区三区| 亚洲一区自拍偷拍| 久久综合九色综合97婷婷| 色哟哟国产精品免费观看| 日韩经典一区二区| 国产清纯在线一区二区www| 欧美日韩在线直播| 东方aⅴ免费观看久久av| 亚洲高清一区二区三区| 国产欧美日韩在线观看| 欧美老肥妇做.爰bbww| 国产老妇另类xxxxx| 亚洲国产综合色| 国产精品理伦片| 日韩欧美亚洲国产另类| 色噜噜夜夜夜综合网| 国产揄拍国内精品对白| 亚洲午夜成aⅴ人片| 久久精品一区二区三区四区| 欧美日韩成人综合| 91亚洲永久精品| 国产一区二区调教| 午夜视频在线观看一区二区| 国产精品理论片| 久久久久久影视| 欧美一二区视频| 欧美日韩中文字幕一区| 9人人澡人人爽人人精品| 久久不见久久见免费视频7| 亚洲成人福利片|