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

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

?? glwnd.cpp

?? 用vc編的stlview著重版
?? CPP
字號:
#include "stdafx.h"
#include "resource.h"
#include "..\inc\glContext\OpenGLDC.h"


CGLWnd::CGLWnd():CWnd()
{
	m_pGLDC = NULL;
}


BEGIN_MESSAGE_MAP(CGLWnd, CWnd)
	//{{AFX_MSG_MAP(CGLWnd)
	ON_WM_PAINT()
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_WM_ERASEBKGND()
	ON_WM_DESTROY()
	ON_WM_RBUTTONDOWN()
	ON_COMMAND(ID_GLWND_FRONT,OnViewType)
	ON_COMMAND(ID_GLWND_BACK,OnViewType)
	ON_COMMAND(ID_GLWND_TOP,OnViewType)
	ON_COMMAND(ID_GLWND_BOTTOM,OnViewType)
	ON_COMMAND(ID_GLWND_RIGHT,OnViewType)
	ON_COMMAND(ID_GLWND_LEFT,OnViewType)
	ON_COMMAND(ID_GLWND_ISOMETRIC,OnViewType)
	ON_COMMAND(ID_GLWND_ZOOMIN,OnViewType)
	ON_COMMAND(ID_GLWND_ZOOMOUT,OnViewType)
	ON_COMMAND(ID_GLWND_ZOOMALL,OnViewType)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BOOL CGLWnd::Create(const RECT& rect,CWnd* pParentWnd,UINT nID,	CCreateContext* pContext)
{
	return CWnd::Create(NULL,NULL,WS_CHILD|WS_VISIBLE,rect,pParentWnd,nID,pContext);
}

void CGLWnd::OnPaint()
{
	CPaintDC dc(this); // device context for painting

	if(m_pGLDC){
		m_pGLDC->Ready();
		RenderScene(m_pGLDC);
		m_pGLDC->Finish();
	}
}

void CGLWnd::RenderScene(COpenGLDC* pDC)
{
}

BOOL CGLWnd::PreCreateWindow(CREATESTRUCT& cs) 
{
	if (!CWnd::PreCreateWindow(cs))
		return FALSE;

	cs.dwExStyle |= WS_EX_CLIENTEDGE;
	cs.style &= ~WS_BORDER;
	cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 
		::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);

	return TRUE;
}

int CGLWnd::OnCreate( LPCREATESTRUCT lpCreateStruct)
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	m_pGLDC = new COpenGLDC(this);
	m_pGLDC->InitDC();
	return 0;
}

void CGLWnd::OnSize( UINT nType, int cx, int cy )
{
	CWnd::OnSize(nType,cx,cy);
	if(m_pGLDC)	
		m_pGLDC->GLResize(cx,cy);
}

BOOL CGLWnd::OnEraseBkgnd( CDC* pDC )
{
	return TRUE;
}

void CGLWnd::OnDestroy() 
{
	CWnd::OnDestroy();
	if(m_pGLDC)	delete m_pGLDC;
}

void CGLWnd::OnRButtonDown(UINT nFlags, CPoint point)
{
	CMenu menubar;
	if (menubar.LoadMenu(IDR_GLWND_MENU)) {
		CMenu* pPopup = menubar.GetSubMenu(0);
		ASSERT(pPopup != NULL);
		CPoint pt = point;
		ClientToScreen(&pt);
		pPopup->TrackPopupMenu(TPM_RIGHTBUTTON, pt.x, pt.y, this);
	}
	CWnd::OnRButtonDown(nFlags,point);
}

void CGLWnd::OnViewType()
{
	const MSG* msg = GetCurrentMessage();
	switch(msg->wParam){
	case ID_GLWND_FRONT:
		m_pGLDC->m_Camera.setViewType(VIEW_FRONT);
		break;
	case ID_GLWND_BACK:
		m_pGLDC->m_Camera.setViewType(VIEW_BACK);
		break;
	case ID_GLWND_TOP:
		m_pGLDC->m_Camera.setViewType(VIEW_TOP);
		break;
	case ID_GLWND_BOTTOM:
		m_pGLDC->m_Camera.setViewType(VIEW_BOTTOM);
		break;
	case ID_GLWND_RIGHT:
		m_pGLDC->m_Camera.setViewType(VIEW_RIGHT);
		break;
	case ID_GLWND_LEFT:
		m_pGLDC->m_Camera.setViewType(VIEW_LEFT);
		break;
	case ID_GLWND_ISOMETRIC:
		m_pGLDC->m_Camera.setViewType(VIEW_ISOMETRIC);
		break;
	case ID_GLWND_ZOOMIN:
		m_pGLDC->m_Camera.zoom(0.9);
		break;
	case ID_GLWND_ZOOMOUT:
		m_pGLDC->m_Camera.zoom(1.1);
		break;
	case ID_GLWND_ZOOMALL:
		ZoomAll();
		break;
	}
	Invalidate();
}


void CGLWnd::ZoomAll()
{
}



/////////////////////////////////////////////////////////////////
//
//
//
//
/////////////////////////////////////////////////////////////////
CGL2DWnd::CGL2DWnd():CWnd()
{
	m_pGLDC = NULL;
}


BEGIN_MESSAGE_MAP(CGL2DWnd, CWnd)
	//{{AFX_MSG_MAP(CGL2DWnd)
	ON_WM_PAINT()
	ON_WM_CREATE()
	ON_WM_SIZE()
	ON_WM_ERASEBKGND()
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

BOOL CGL2DWnd::Create(const RECT& rect,CWnd* pParentWnd,UINT nID,	CCreateContext* pContext)
{
	return CWnd::Create(NULL,NULL,WS_CHILD|WS_VISIBLE,rect,pParentWnd,nID,pContext);
}

void CGL2DWnd::OnPaint()
{
	CPaintDC dc(this); // device context for painting

	if(m_pGLDC){
		m_pGLDC->Ready();
		RenderScene(m_pGLDC);
		m_pGLDC->Finish();
	}
}

void CGL2DWnd::RenderScene(COpenGLDC* pDC)
{
	DrawGrid(5,10);
}

BOOL CGL2DWnd::PreCreateWindow(CREATESTRUCT& cs) 
{
	if (!CWnd::PreCreateWindow(cs))
		return FALSE;

	cs.dwExStyle |= WS_EX_CLIENTEDGE;
	cs.style &= ~WS_BORDER;
	cs.lpszClass = AfxRegisterWndClass(CS_HREDRAW|CS_VREDRAW|CS_DBLCLKS, 
		::LoadCursor(NULL, IDC_ARROW), HBRUSH(COLOR_WINDOW+1), NULL);

	return TRUE;
}

int CGL2DWnd::OnCreate( LPCREATESTRUCT lpCreateStruct)
{
	if (CWnd::OnCreate(lpCreateStruct) == -1)
		return -1;

	m_pGLDC = new COpenGLDC(this);
	m_pGLDC->Init2DDC();
	return 0;
}

void CGL2DWnd::OnSize( UINT nType, int cx, int cy )
{
	CWnd::OnSize(nType,cx,cy);
	if(m_pGLDC)	
		m_pGLDC->GLResize(cx,cy);
}

BOOL CGL2DWnd::OnEraseBkgnd( CDC* pDC )
{
	return TRUE;
}

void CGL2DWnd::OnDestroy() 
{
	CWnd::OnDestroy();
	if(m_pGLDC)	delete m_pGLDC;
}

void CGL2DWnd::SetViewport(double minX,double maxX,double minY,double maxY)
{
	ASSERT(m_pGLDC);
	m_pGLDC->m_Camera.set2Dviewport(minX,maxX,minY,maxY);
}

void CGL2DWnd::DrawGrid(int col,int row)
{
	ASSERT(m_pGLDC);
	double x0,x1,y0,y1;
	CPoint3D sp,ep;
	m_pGLDC->m_Camera.get2Dviewport(x0,x1,y0,y1);

	glDisable(GL_LIGHTING);
	COLORREF oldClr;
	m_pGLDC->GetLineColor(oldClr);
	m_pGLDC->SetLineColor(128,0,0);

	sp.x = x0;
	ep.x = x1;
	for(int i=0;i<row+1;i++){
		sp.y = ep.y = y0 +i*(y1-y0)/row;
		m_pGLDC->DrawLine(sp,ep);
	}

	sp.y = y0;
	ep.y = y1;
	for(i=0;i<col+1;i++){
		sp.x = ep.x = x0 +i*(x1-x0)/col;
		m_pGLDC->DrawLine(sp,ep);
	}
	
	m_pGLDC->SetLineColor(oldClr);
	glEnable(GL_LIGHTING);
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区三区| 蜜桃精品视频在线| 1区2区3区精品视频| 欧美国产成人在线| 欧美国产一区二区| 中文字幕av不卡| 国产精品午夜春色av| 国产欧美一区二区三区鸳鸯浴 | 亚洲免费视频中文字幕| 亚洲人成在线播放网站岛国| 亚洲欧洲av一区二区三区久久| 成人免费一区二区三区在线观看 | 成人妖精视频yjsp地址| 国产在线乱码一区二区三区| 国产精品综合久久| av综合在线播放| 91福利资源站| 欧美一区永久视频免费观看| 精品嫩草影院久久| 国产视频在线观看一区二区三区| 国产欧美一区二区精品性色 | 国产自产v一区二区三区c| 国产精品一区三区| 99热国产精品| 欧美午夜精品电影| 欧美一区二区三区四区视频| 久久综合久久久久88| 亚洲国产精品传媒在线观看| 亚洲精品国产无套在线观| 丝袜亚洲另类欧美| 国产精品1区2区3区| 一本色道久久综合亚洲精品按摩| 欧美午夜精品一区二区三区| 6080日韩午夜伦伦午夜伦| 久久一二三国产| 一区二区三区精品| 久久国产福利国产秒拍| 成人黄色av电影| 欧美二区三区91| 2024国产精品| 亚洲在线观看免费视频| 极品美女销魂一区二区三区免费| 波多野结衣亚洲| 欧美一级日韩不卡播放免费| 国产日韩欧美在线一区| 亚洲一区在线免费观看| 日本成人在线网站| eeuss国产一区二区三区| 91精品啪在线观看国产60岁| 国产精品视频yy9299一区| 一区二区三区国产豹纹内裤在线 | 91成人在线免费观看| 日韩欧美激情四射| 亚洲欧美激情插| 国产一区二区三区黄视频| 在线中文字幕不卡| 2023国产一二三区日本精品2022| 一区二区三区国产豹纹内裤在线| 国产在线精品国自产拍免费| 欧美性色综合网| 国产人成亚洲第一网站在线播放 | 婷婷一区二区三区| 亚洲一区二区偷拍精品| 狠狠色丁香九九婷婷综合五月 | 国产日韩精品久久久| 丝袜国产日韩另类美女| 成人91在线观看| 欧美精品一区二区三区高清aⅴ| 国产精品白丝在线| 国产乱子伦视频一区二区三区| 欧美日韩一区二区在线观看| 国产精品久久久久久久久久久免费看 | 国产成人精品aa毛片| 91精品中文字幕一区二区三区| 自拍偷拍欧美精品| 国产aⅴ综合色| ww亚洲ww在线观看国产| 日韩专区在线视频| 欧洲一区二区av| 中文字幕一区二区三区不卡在线| 国产一区二区三区日韩| 欧美一区二区三区公司| 亚洲成人资源在线| 91亚洲国产成人精品一区二三 | 日韩激情av在线| 91国偷自产一区二区三区观看 | 免费人成在线不卡| 一本久道久久综合中文字幕| 国产精品丝袜一区| 国产91色综合久久免费分享| 精品理论电影在线观看| 日本午夜一本久久久综合| 欧美日韩国产片| 亚洲国产视频直播| 在线观看视频一区二区欧美日韩| 中文字幕精品一区| 成人av午夜影院| 最新国产成人在线观看| caoporen国产精品视频| 国产精品二三区| 99久久99久久综合| 国产精品久久久久久户外露出| 国产成人免费在线视频| 日本一区二区三区高清不卡| 懂色av噜噜一区二区三区av| 国产亚洲欧美日韩俺去了| 国产一区二区毛片| 久久久久亚洲综合| 国产高清久久久| 欧美韩国一区二区| 不卡一区二区中文字幕| **性色生活片久久毛片| 99这里都是精品| 视频在线观看一区| 蜜桃91丨九色丨蝌蚪91桃色| 欧美一区二区视频免费观看| 男女性色大片免费观看一区二区| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲欧洲av色图| 在线视频一区二区三区| 亚洲大片精品永久免费| 欧美日韩高清一区二区| 蜜臀av性久久久久蜜臀av麻豆| 精品粉嫩超白一线天av| 国产98色在线|日韩| 国产精品免费观看视频| 97久久精品人人做人人爽50路| 亚洲激情网站免费观看| 欧美精品三级在线观看| 国精产品一区一区三区mba视频 | 日韩欧美在线不卡| 国产酒店精品激情| 亚洲女同ⅹxx女同tv| 欧美日韩精品一区视频| 久久国产尿小便嘘嘘尿| 国产精品久久久久婷婷| 欧美系列在线观看| 美国欧美日韩国产在线播放| 国产嫩草影院久久久久| 欧美性大战久久| 日本不卡123| 亚洲国产精品成人久久综合一区| 欧洲激情一区二区| 免费高清在线视频一区·| 日本一区二区免费在线观看视频 | 久久99国产精品久久| 国产欧美精品一区二区三区四区| 91视频国产观看| 秋霞影院一区二区| 中文字幕一区二区在线观看| 欧美男男青年gay1069videost| 国产二区国产一区在线观看 | 日本韩国欧美国产| 美女网站在线免费欧美精品| 欧美国产成人精品| 91精品国产色综合久久不卡蜜臀| 国产精品白丝jk白祙喷水网站 | 91视频.com| 久久国产成人午夜av影院| 中文字幕综合网| 欧美变态口味重另类| 色综合欧美在线| 精品一区二区国语对白| 亚洲综合偷拍欧美一区色| 欧美精品一区二区三区四区| 国产91在线|亚洲| 国产欧美日韩视频在线观看| 欧美午夜一区二区三区| 粉嫩av一区二区三区| 肉肉av福利一精品导航| 国产精品午夜春色av| 精品剧情在线观看| 欧美丰满美乳xxx高潮www| 92国产精品观看| 国产成人亚洲综合色影视| 日韩精品福利网| 亚洲福利一二三区| 国产精品免费视频观看| 日韩欧美国产三级电影视频| 欧美在线一二三| 91婷婷韩国欧美一区二区| 国产精品2024| 麻豆国产精品官网| 性久久久久久久| 亚洲夂夂婷婷色拍ww47| 中文一区二区在线观看| 精品国产1区二区| 欧美卡1卡2卡| 欧美三级乱人伦电影| 日本道在线观看一区二区| 成人av资源在线观看| 国产美女在线精品| 精品一区免费av| 久久成人免费网| 日韩**一区毛片| 日韩福利视频导航| 香蕉久久夜色精品国产使用方法| 亚洲自拍偷拍麻豆| 一区二区三区免费| 亚洲精品成人精品456|