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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? uitemplateview.cpp

?? 一個windows ce上的notepad
?? CPP
字號:
//

#include "stdafx.h"
#include "UITemplate.h"

#include "UITemplateDoc.h"
#include "UITemplateView.h"
#include "SADirRead.h"
#include "ShowTxtFileDlg.h"

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

#define EXIT_READ 0
#define PRE_PAGE  1
#define NEXT_PAGE 2
#define START_DIR _T("\\SDMMC\\eBook") //默認的打開文件夾

/////////////////////////////////////////////////////////////////////////////
// CUITemplateView

IMPLEMENT_DYNCREATE(CUITemplateView, CView)

BEGIN_MESSAGE_MAP(CUITemplateView, CView)
	//{{AFX_MSG_MAP(CUITemplateView)
	ON_WM_LBUTTONDOWN()
	ON_WM_KEYDOWN()
	ON_WM_KEYUP()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUITemplateView construction/destruction

CUITemplateView::CUITemplateView()
{
	// TODO: add construction code here
	m_bDrawBasicBtn = true;
	m_nBtnCount = 0;
	m_nPreBtnIndex = -2;

}

CUITemplateView::~CUITemplateView()
{

	if (pFont != NULL)
	{
		pFont->DeleteObject();
		delete pFont;
		pFont = NULL;
	}
}

BOOL CUITemplateView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs



	InitControls();
	cs.x = 0;
	cs.y = 0;
	cs.cx = 320;
	cs.cy = 240;
	cs.style &= ~WS_BORDER;
//	HWND hwnd;
//	hwnd=AfxGetm
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CUITemplateView drawing

void CUITemplateView::OnDraw(CDC* pDC)
{
//	CUITemplateDoc* pDoc = GetDocument();
//	ASSERT_VALID(pDoc);

//	if(!m_bDrawBack)
//	{
		CDC ImageDc;
		CRect rc(0,0,320,241);
		CBitmap image,*pOldImg;
		image.LoadBitmap(IDB_BACKGROUND);
		ImageDc.CreateCompatibleDC(pDC);
		pOldImg=ImageDc.SelectObject(&image); 
		pDC->BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),&ImageDc,0, 0,SRCCOPY);
		ImageDc.SelectObject(pOldImg); 	
		ImageDc.DeleteDC();
		if(m_bDrawBasicBtn)
		{
			for(int i=0; i<3; i++)
				this->ReDrawBmpButton(i);
			m_bDrawBasicBtn = true;
		}
//	}
	for(int i=3; i<m_nBtnCount; i++)
		this->ReDrawBmpButton(i);

	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CUITemplateView diagnostics

#ifdef _DEBUG
void CUITemplateView::AssertValid() const
{
	CView::AssertValid();
}

void CUITemplateView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CUITemplateDoc* CUITemplateView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CUITemplateDoc)));
	return (CUITemplateDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CUITemplateView message handlers

void CUITemplateView::AddBmpButton(int BtnID, CRect rc, int UpBmpID, int DownBmpID, CString sText)
{
	WIDGET_NODE wn;
	wn.rect = rc;
	wn.nBtnID = BtnID;
	wn.nCurState = 1;
	wn.nDownBitmapID = DownBmpID;
	wn.nUpBitmapId = UpBmpID;
	wn.strText = sText;
	m_WidgetNode.Add(wn);
	m_nBtnCount++;
}

int CUITemplateView::GetCurPrsBtnIndex(CPoint pt)
{
	int IDindex=-1;
	for(int i=0;i<m_nBtnCount;i++)
	{
		if(m_WidgetNode.GetAt(i).rect.PtInRect(pt))
		{
			IDindex = i;
			break;
		}
	}
	return IDindex;
}


void CUITemplateView::DeleteBmpButton(int BtnIndex)
{
	if(BtnIndex >= 0 && BtnIndex < m_WidgetNode.GetSize())
	{
		m_WidgetNode.RemoveAt(BtnIndex);
		m_nBtnCount--;
	}
}

void CUITemplateView::ReDrawBmpButton(int BtnIndex)
{
	CRect rc = m_WidgetNode.GetAt(BtnIndex).rect;
	int SrcBmpID;
	if(m_WidgetNode.GetAt(BtnIndex).nCurState == 0)
		SrcBmpID = m_WidgetNode.GetAt(BtnIndex).nDownBitmapID;
	else
		SrcBmpID = m_WidgetNode.GetAt(BtnIndex).nUpBitmapId;
	CDC *pDC = GetDC();
	CDC ImageDc;
	CBitmap image,*pOldImg;
	image.LoadBitmap(SrcBmpID);
	ImageDc.CreateCompatibleDC(pDC);
	pOldImg=ImageDc.SelectObject(&image); 
	pDC->BitBlt(rc.left,rc.top,rc.Width(),rc.Height(),&ImageDc,0, 0,SRCCOPY);
	CString btnText = m_WidgetNode.GetAt(BtnIndex).strText;
	if(btnText.IsEmpty() == false) //有字符串則要進行顯示
	{
		CFont	*pFont=NULL;
		pFont = new CFont();
		pFont->CreateFont(	14,	8, 0, 0, FW_NORMAL, 
							FALSE, FALSE,FALSE,
							GB2312_CHARSET, 
							OUT_DEFAULT_PRECIS, 
							CLIP_DEFAULT_PRECIS,//缺省裁減精度 
							DEFAULT_QUALITY,    //nQuality=缺省值
							DEFAULT_PITCH,      //nPitchAndFamily=缺省值
							_T("Arial") );         //字體名=@system

		CFont *pOldFont=pDC->SelectObject(pFont); //選入設備描述表
		COLORREF proColor = pDC->SetTextColor(RGB(1,0,0));
		int y1,y2;
		y1 = rc.top + (rc.bottom - rc.top - 16)/2;
		y2 = y1+16;
		CRect rect(rc.left+2,y1,rc.right,y2);
		pDC->SetBkMode(TRANSPARENT);//TRANSPARENT
		pDC->DrawText(btnText,btnText.GetLength(),rect,0 );
		pDC->SelectObject(pOldFont); //將myFont從設備環境中分離
		pDC->SetTextColor( proColor);
		pDC->SelectObject(pOldFont); 
		
	}
	ImageDc.SelectObject(pOldImg); 	
	ImageDc.DeleteDC();
	ReleaseDC(pDC);
}

void CUITemplateView::InitControls()
{	
	AddBasicBtn();
	m_pTxtFileList  = ImportFileItems();
	AddFileItemBtn();
}

void CUITemplateView::OnLButtonDown(UINT nFlags, CPoint point) 
{
	int idCurIndex = GetCurPressBtnID(point);
	WIDGET_NODE wn;
	if(idCurIndex != -1 ) //有按鈕按下
	{
		if(m_nPreBtnIndex != -2 )
		{
			if(idCurIndex != m_nPreBtnIndex) //按下的不是同一個按鈕
			{
				wn = m_WidgetNode.GetAt(m_nPreBtnIndex);
				if(wn.nCurState == 0)
				{
					wn.nCurState = 1;
					m_WidgetNode.SetAt(m_nPreBtnIndex,wn);
					ReDrawBmpButton(m_nPreBtnIndex);
				}
			}
			else //按下的是同一個按鈕
			{
				wn = m_WidgetNode.GetAt(idCurIndex);
				if( wn.nBtnID >= 20 && wn.nBtnID < 30) //點擊的是文件列表按鈕
				{
					CString sFilePath = START_DIR;
					sFilePath += _T("\\");
					sFilePath += wn.strText;
					CShowTxtFileDlg dlg;
					dlg.SetFilePath(sFilePath);
					dlg.DoModal();				
				}
					
			}
		}
		wn = m_WidgetNode.GetAt(idCurIndex);
		if(wn.nCurState == 1)
		{
			wn.nCurState = 0;
			m_WidgetNode.SetAt(idCurIndex,wn);
			ReDrawBmpButton(idCurIndex);
		}
		m_nPreBtnIndex = idCurIndex;
		switch(m_WidgetNode.GetAt(idCurIndex).nBtnID)
		{
			case EXIT_READ:
				 PostQuitMessage(0);
				 break;
			case NEXT_PAGE:
				 NextFilePage();
				 break;
			case PRE_PAGE:
				 PreFilePage();
				 break;
			default:
				break;
		}
	}
	else
	{
		if(m_nPreBtnIndex != -2 )
		{
			wn = m_WidgetNode.GetAt(m_nPreBtnIndex);
			wn.nCurState = 1;
			m_WidgetNode.SetAt(m_nPreBtnIndex,wn);
			ReDrawBmpButton(m_nPreBtnIndex);
		}
	}	

//	CView::OnLButtonDown(nFlags, point);
}

int CUITemplateView::GetCurPressBtnID(CPoint pt)
{
	int IDindex=-1;
	if(m_nBtnCount>0)
	{	
		for(int i=0;i<m_nBtnCount;i++)
		{
			if(m_WidgetNode.GetAt(i).rect.PtInRect(pt))
			{
			//	btnID = m_WidgetNode.GetAt(i).nBtnID;
				IDindex = i;
				break;
			}
		}
	}
	return IDindex;
}

CCPITFileList * CUITemplateView::ImportFileItems()
{
	CSADirRead dr;
	dr.ClearDirs();				// start clean
	dr.GetDirs(START_DIR, true);	 // get all folders under c:\temp

	dr.ClearFiles();			// start clean
	dr.GetFiles(_T("*.txt"));   // get all *.txt files in c:\temp and below

	// get the file array
	CString  strTemp;

//	m_pFileList->RemoveAll();
	CCPITFileList * m_pFileList = new CCPITFileList(10);
	CSADirRead::SAFileVector &files = dr.Files();  
	for (CSADirRead::SAFileVector::iterator fit = files.begin(); 
		 fit!=files.end(); fit++)
	{

		CPIT_FILEINFO TextFileInfo;
		strTemp=(*fit).m_sName;	 
		TextFileInfo.strFilePath=strTemp;
	//	if ( !strTemp.IsEmpty() )
	//	{
	//		int p=strTemp.ReverseFind('\\')+1;
	//		TextFileInfo.strTile=strTemp.Mid(p);
	//	}s
		int nstrLen;
			nstrLen=TextFileInfo.strFilePath.GetLength();
	TextFileInfo.strTile=TextFileInfo.strFilePath.Right(nstrLen-13);
	//	TextFileInfo.strSize.Format(_T("%d KB"),(*fit).size/1024);
		m_pFileList->Add(TextFileInfo);
	}

	if ( m_pFileList->GetSize() >0 )
		return m_pFileList;
	return NULL;
}

void CUITemplateView::NextFilePage()
{
	if(NULL != m_pTxtFileList)
	{
		if(m_pTxtFileList->GetCurPage() < m_pTxtFileList->PageCount())
		{
			for(int j = m_nBtnCount-1; j >= 3 ; j--)
				DeleteBmpButton(j);
			m_pTxtFileList->NextPage();
			AddFileItemBtn();
			Invalidate(false);
		}

		
/*		for(int j = m_nBtnCount-1; j >= 3 ; j--)
			DeleteBmpButton(j);
//		m_bDrawListBtn = false;
//		Invalidate(false);
		CPIT_FILEINFO  cfo;
		int nCurPage = m_pTxtFileList->GetCurPage();
		int nItemCount = m_pTxtFileList->GetSize();
	//	AfxMessageBox(_T("run here"));
		int x = 20,y= 29;		
		for(int i=0;i<2;i++)
		{
			cfo = m_pTxtFileList->GetAt(i+10);
			AddBmpButton(i+20,CRect(x,y+i*18+1,x+280,y+(i+1)*18+1),IDB_LIST_01+i,IDB_LIST_D,cfo.strTile);
		}
		m_bDrawListBtn = true;
		Invalidate(false);
		*/
	}

}

void CUITemplateView::PreFilePage()
{
		if(NULL != m_pTxtFileList)
	{
		if(m_pTxtFileList->GetCurPage() > 1)
		{
			for(int j = m_nBtnCount-1; j >= 3 ; j--)
				DeleteBmpButton(j);
			m_pTxtFileList->PrePage();
			AddFileItemBtn();
			Invalidate(false);
		}
	}
}

void CUITemplateView::AddFileItemBtn()
{
	if(m_pTxtFileList != NULL)
	{
		CPIT_FILEINFO  cfo;
		int nCurPage = m_pTxtFileList->GetCurPage();
		int nItemCount = m_pTxtFileList->GetSize();
		if(nCurPage <= m_pTxtFileList->PageCount())
		{
			int x = 9,y= 25;		
			for(int i=0;i<10;i++)
			{
				if((nCurPage-1)*10+i >= nItemCount)
					break;
				cfo = m_pTxtFileList->GetAt((nCurPage-1)*10+i);
				//strFileInfo.Format(_T("%.2d %s"),cfo.strTile);
				//strFileInfo.Format(_T("%.2d %s"),i+1,cfo.strTile);
				AddBmpButton(i+20,CRect(x,y+i*18+1,x+412,y+(i+1)*18+1),IDB_LIST_01+i,IDB_LIST_D,cfo.strTile);
			}
		}
	}
}

void CUITemplateView::DeleteAllBmpBtn()
{
	m_WidgetNode.RemoveAll();
	m_nBtnCount=0;
	m_nPreBtnIndex = -2;//刪除后則沒有按鈕被按下
}

void CUITemplateView::AddBasicBtn()
{
	AddBmpButton(EXIT_READ,CRect(0,217,109,240),IDB_RETURN_UP,  IDB_RETURN_DOWN);//退出
	AddBmpButton(PRE_PAGE,CRect(108,217,218,240),IDB_PRE_PAGE_UP,  IDB_PRE_PAGE_DOWN);//上一頁
	AddBmpButton(NEXT_PAGE,CRect(217,217,320,240),IDB_NEXT_PAGE_UP, IDB_NEXT_PAGE_DOWN);//下一頁
}

void CUITemplateView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	// TODO: Add your message handler code here and/or call default
	
	CView::OnKeyDown(nChar, nRepCnt, nFlags);
}

void CUITemplateView::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
	if(nChar==195)
	{
			AfxGetMainWnd()->PostMessage(WM_CLOSE, 0, 0);
	}	
	CView::OnKeyUp(nChar, nRepCnt, nFlags);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
www.日韩精品| 精品剧情在线观看| 国产欧美精品区一区二区三区| 亚洲欧洲日韩综合一区二区| 亚洲动漫第一页| 91视频免费播放| 国产欧美一区二区三区在线看蜜臀| 亚洲综合在线视频| 一本色道亚洲精品aⅴ| 国产欧美综合在线观看第十页| 国产激情精品久久久第一区二区| 91在线你懂得| 亚洲欧美二区三区| 色激情天天射综合网| 亚洲精品高清视频在线观看| 99久久综合狠狠综合久久| 久久九九久久九九| 国产91精品在线观看| 一区二区三区在线播| 91在线无精精品入口| 日韩二区在线观看| 欧美激情综合网| 91精品国产全国免费观看| 国产a精品视频| 老司机精品视频在线| 亚洲手机成人高清视频| 337p粉嫩大胆噜噜噜噜噜91av | 欧美人牲a欧美精品| 国产中文字幕一区| 亚洲成人tv网| 一区二区三区四区在线播放| 国产亚洲女人久久久久毛片| 制服丝袜av成人在线看| 在线观看亚洲成人| 成人av影视在线观看| 韩国精品一区二区| 日本一道高清亚洲日美韩| 亚洲精品乱码久久久久久久久 | 亚洲国产高清aⅴ视频| 日韩视频免费观看高清完整版 | 久久久综合九色合综国产精品| 欧美亚一区二区| 91蜜桃视频在线| 91电影在线观看| 在线免费视频一区二区| 欧美色综合网站| 欧美日韩久久不卡| 日韩女优电影在线观看| 欧美一级日韩免费不卡| 日韩免费视频一区二区| 日韩美女一区二区三区| 精品理论电影在线观看| 中文字幕欧美激情一区| 国产精品国产三级国产三级人妇 | 亚洲欧洲99久久| 国产婷婷色一区二区三区| 香蕉久久夜色精品国产使用方法 | 国产大陆a不卡| 欧美精品视频www在线观看| 亚洲免费在线观看| 成人中文字幕电影| 久久蜜桃一区二区| 免费在线观看精品| 在线免费不卡视频| 日韩欧美黄色影院| 亚洲一区二区视频| 国产精品综合久久| 久久国产精品72免费观看| 99在线精品一区二区三区| 日韩欧美一区二区免费| 中文字幕一区二区三区av| 蜜桃免费网站一区二区三区| 99久久er热在这里只有精品66| 欧美肥妇bbw| 亚洲女与黑人做爰| 国产激情视频一区二区在线观看| 欧美日韩国产中文| 亚洲一二三四区| 成人国产电影网| 久久久久久久久岛国免费| 天堂久久久久va久久久久| 91影院在线免费观看| 久久久蜜桃精品| 久久草av在线| 日韩精品一区二区三区视频 | 欧美一二三四区在线| 亚洲一区二区欧美日韩| 欧美在线观看一二区| 亚洲欧美aⅴ...| 欧美日韩视频在线一区二区| 亚洲午夜久久久久久久久久久| 91免费视频网| 樱桃国产成人精品视频| 99精品久久久久久| 亚洲国产成人porn| 精品久久久久香蕉网| 国产精品99精品久久免费| 国产精品电影一区二区| 91视视频在线观看入口直接观看www | 高清在线观看日韩| 亚洲视频综合在线| 欧美视频中文字幕| 久热成人在线视频| 久久精品夜夜夜夜久久| 不卡的看片网站| 午夜欧美2019年伦理| 精品国一区二区三区| 91丨porny丨最新| 日韩成人午夜电影| 国产日韩欧美综合一区| 欧美性大战久久久久久久蜜臀| 蜜桃久久久久久| 中文字幕欧美区| 91精品国产入口在线| 91视频.com| 久久精品国产一区二区| 中文字幕一区日韩精品欧美| 欧美精三区欧美精三区| 成人性生交大片免费| 婷婷国产在线综合| 最新国产成人在线观看| 日韩欧美的一区二区| 91福利区一区二区三区| 成人黄色av网站在线| 精品一区二区在线看| 亚洲在线视频免费观看| 国产精品国产三级国产普通话三级| 欧美日韩色一区| 91在线精品秘密一区二区| 国产一区啦啦啦在线观看| 久久精品久久精品| 亚洲免费av观看| 中文字幕亚洲一区二区av在线| 精品福利在线导航| 欧美精品一区二区三区视频| 91精选在线观看| 91 com成人网| 91精品国产综合久久久久久| 欧美午夜免费电影| 欧美日韩成人一区| 777欧美精品| ww亚洲ww在线观看国产| 26uuu另类欧美亚洲曰本| 久久亚洲捆绑美女| 国产欧美日韩不卡| 日韩码欧中文字| 亚洲成在人线在线播放| 人人精品人人爱| 国产麻豆精品95视频| 成人av午夜电影| 色婷婷久久久久swag精品| 欧美婷婷六月丁香综合色| 精品久久久久久久久久久久久久久 | 一区二区成人在线| 精彩视频一区二区三区| 欧洲一区在线电影| 国产视频一区在线播放| 亚洲国产成人porn| 成人精品国产免费网站| 欧美一区二区三区影视| 亚洲国产一区二区在线播放| 国产成人免费xxxxxxxx| 欧美一级理论性理论a| 一区二区激情视频| 波多野结衣中文字幕一区| 久久精品人人爽人人爽| 捆绑调教一区二区三区| 欧美日韩1234| 日产欧产美韩系列久久99| 91啦中文在线观看| 亚洲视频一区在线| av福利精品导航| 成人欧美一区二区三区视频网页| 岛国一区二区三区| 色噜噜狠狠色综合欧洲selulu| 欧美精品1区2区3区| 亚洲色大成网站www久久九九| 蜜桃久久久久久久| 欧美日韩亚洲综合在线 | 蜜臀av性久久久久蜜臀aⅴ流畅| 99re这里只有精品首页| 精品国产伦理网| 石原莉奈一区二区三区在线观看 | 国产成人在线免费观看| 日韩欧美中文字幕一区| 视频精品一区二区| 欧美日韩亚洲国产综合| 亚洲人一二三区| 不卡av在线网| 国产精品人成在线观看免费| 国产一区999| 精品久久久久久久久久久院品网 | 国产**成人网毛片九色| 久久久91精品国产一区二区精品| 美女精品自拍一二三四| 日韩欧美国产1| 精品一区二区三区香蕉蜜桃| 日韩欧美一级二级三级久久久| 蓝色福利精品导航| 欧美激情中文不卡|