//绘画时间 void CGameParrentView::DrawUserTimer(CDC * pDC, int nXPos, int nYPos, WORD wTime, WORD wTimerArea) { if ((wTime>0)&&(wTimerArea>=wTime)) { //创建 DC CDC DCBuffer; DCBuffer.CreateCompatibleDC(pDC); CImageHandle ImageHandle(&m_ImageTimer); HGDIOBJ hOldGdiObj=DCBuffer.SelectObject(ImageHandle.GetBitmapHandle()); //绘画定时器 int nDrawPos=nXPos; for (WORD nArea=10000; nArea>0; nArea/=10) { if (wTimerArea<nArea) continue; int nTimerPos=wTime/nArea; AlphaDrawImage(pDC,nDrawPos,nYPos,m_nXTimer,m_nYTimer,&DCBuffer,nTimerPos*m_nXTimer,0,RGB(255,0,255)); wTime-=nTimerPos*nArea; nDrawPos+=m_nXTimer; } //清理资源 DCBuffer.SelectObject(hOldGdiObj); DCBuffer.DeleteDC(); } return; }
//重画函数 void CScoreView::OnPaint() { CPaintDC dc(this); //设置 DC dc.SetBkMode(TRANSPARENT); dc.SetTextColor(RGB(255,0,0)); dc.SelectObject(CSkinResourceManager::GetDefaultFont()); //设置透明区域 SetupRgn(&dc,m_ImageBack,RGB(255,0,255)); //绘画背景 CImageHandle ImageHandle(&m_ImageBack); //m_ImageBack.BitBlt(dc,0,0); m_ImageBack.AlphaDrawImage(&dc,0,0,RGB(255,0,255)); //显示分数 dc.SetTextColor(RGB(255,255,102)); CRect rcDraw; CString strScore ; char szBuffer[64] ; for (WORD i=0;i<CountArray(m_szUserName);i++) { //用户名字 rcDraw.left=10+20+10; rcDraw.right=130; rcDraw.top=i*23+80+8; rcDraw.bottom=rcDraw.top+12; dc.DrawText(m_szUserName[i],lstrlen(m_szUserName[i]),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS|DT_NOCLIP); //用户积分 rcDraw.left=150-30-20-10-10; rcDraw.right=290; strScore.Format("%ld" , m_lGameScore[i]) ; //_snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lGameScore[i]); dc.DrawText(strScore,strScore.GetLength(),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS|DT_NOCLIP); } if(m_lGameTax>0) { //显示税收 rcDraw.left=30; rcDraw.right=114; rcDraw.top=i*22+51; rcDraw.bottom=rcDraw.top+12; LPCTSTR pszTax=TEXT("交易税"); dc.DrawText(pszTax,lstrlen(pszTax),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS|DT_NOCLIP); //显示税收 rcDraw.left=120; rcDraw.right=190; rcDraw.top=i*22+51; rcDraw.bottom=rcDraw.top+12; // _snprintf(szBuffer,sizeof(szBuffer),"%ld",m_lGameTax); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS|DT_NOCLIP); } return; }
//╗ц╗н│я┬ы void CGoldView::DrawGoldView(CDC * pDC, int nXPos, int nYPos) { //╝╙╘╪╬╗═╝ CImageHandle ImageHandle(&m_ImageGold); //╗ц╗н│я┬ы int nYPosDraw=nYPos-GOLD_IMAGE_HEIGHT/2; for (LONG i=0;i<CountArray(m_lGoldCount);i++) { for (LONG j=0;j<m_lGoldCount[i];j++) { m_ImageGold.AlphaDrawImage(pDC,nXPos-GOLD_IMAGE_WIDTH/2,nYPosDraw,GOLD_IMAGE_WIDTH,GOLD_IMAGE_HEIGHT, i*GOLD_IMAGE_WIDTH,0,RGB(255,0,255)); nYPosDraw-=3; } } //╗ц╗н╩¤╫╓ if (m_lGold!=0L) { TCHAR szBuffer[64]=TEXT("гд"); GetGlodString(m_lGold,szBuffer+2); CRect DrawRect(nXPos-50,nYPos+GOLD_IMAGE_HEIGHT/2+5,nXPos+46,nYPos+GOLD_IMAGE_HEIGHT/2+17); pDC->SetTextColor(RGB(250,250,250)); pDC->DrawText(szBuffer,lstrlen(szBuffer),&DrawRect,DT_CENTER|DT_VCENTER|DT_NOCLIP|DT_SINGLELINE); } return; }
//创建区域 bool CRgnButton::CreateControlRgn(COLORREF crTrans) { CImageHandle ImageHandle(&m_ImageBack); if (ImageHandle.IsResourceValid()) { //创建临时图 CSkinImage BufferImage; int nButtonWidth=m_ImageBack.GetWidth()/5; int nButtomHeight=m_ImageBack.GetHeight(); BufferImage.Create(nButtonWidth,nButtomHeight,32); ImageHandle->BitBlt(BufferImage.GetDC(),0,0,nButtonWidth,nButtomHeight,0,0); BufferImage.ReleaseDC(); //创建区域 HRGN hRgn=BufferImage.CreateImageRegion(crTrans); if (hRgn!=NULL) { m_crTrans=crTrans; SetWindowPos(NULL,0,0,nButtonWidth,nButtomHeight,SWP_NOMOVE); SetWindowRgn(hRgn,TRUE); m_ButtonRgn.DeleteObject(); m_ButtonRgn.Attach(hRgn); return true; } } return false; }
void CDlgLeftShow::LoadSkin() { TCHAR path[MAX_PATH]; CString s = "..\\"; CBcfFile f( s + "..\\" + m_skinmgr.GetGameSkinPath() + m_skinmgr.GetGameSkinBcfFileName()); CString SkinFolder = f.GetKeyVal("config", "skinfolder", m_skinmgr.GetSkinPath()); wsprintf(path, "%s%sgame\\SomeOneLeft.bmp", s, SkinFolder); int cx,cy; CGameImage m_bt; m_bt.SetLoadInfo(path,true); m_bkimage.SetLoadInfo(path,CGameImageLink::m_bAutoLock); CGameImageHelper ImageHandle(&m_bkimage); HRGN hRgn=AFCBmpToRgn(ImageHandle,m_bkimage.GetPixel(0,0),RGB(1,1,1)); if (hRgn!=NULL) { SetWindowRgn(hRgn,TRUE); } //cx=ImageHandle.GetWidth(); //cy=ImageHandle.GetHeight(); //SetWindowPos(NULL,0,0,cx,cy,SWP_NOMOVE|SWP_NOZORDER); //CenterWindow(m_pParentWnd); wsprintf(path, "%s%sgame\\ok_bt.bmp", s, SkinFolder); m_bt.SetLoadInfo(path,true); m_btOk.LoadButtonBitmap(path,false); //m_btOk.SetWindowPos(NULL,0,0,m_bt.GetWidth()/4,m_bt.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); //m_btOk.MoveWindow( (m_bkimage.GetWidth() - m_bt.GetWidth()/4)/2, //m_bkimage.GetHeight()-50, //m_bt.GetWidth()/4, //m_bt.GetHeight() //); }
//»æ»³ïÂë void CGoldView::DrawGoldView(CDC * pDC, int nXPos, int nYPos) { //¼ÓÔØλͼ CImageHandle ImageHandle(&m_ImageGold); //»æ»ÅÐ¶Ï if (m_lGold<=0L) return; //»ñÈ¡ÊôÐÔ INT nJettonHeight=m_ImageGold.GetHeight(); INT nJettonWidth=m_ImageGold.GetWidth()/3; //»æ»³ïÂë INT nXPos1=nXPos-nJettonWidth/2; INT nYPos1=nYPos-nJettonHeight/2; m_ImageGold.AlphaDrawImage(pDC,nXPos1,nYPos1,nJettonWidth,nJettonHeight,nJettonWidth*m_nGoldIndex,0,RGB(255,0,255)); //»Êý×Ö TCHAR szNum[64]; //_snprintf( szNum,CountArray(szNum),TEXT("%ld"),m_lScore ); GetGlodString( m_lGold,szNum ); CRect rcNum( nXPos1,nYPos1,nXPos1+nJettonWidth,nYPos1+nJettonHeight ); //´´½¨×ÖÌå CFont ViewFont; ViewFont.CreateFont(-12,0,0,0,700,0,0,0,134,3,2,1,1,TEXT("ËÎÌå")); COLORREF OldClr = pDC->SetTextColor(RGB(0x0, 0x10, 0x70)); CFont * pOldFont=pDC->SelectObject(&ViewFont); pDC->DrawText( szNum,lstrlen(szNum),&rcNum,DT_VCENTER|DT_CENTER|DT_SINGLELINE|DT_END_ELLIPSIS ); pDC->SetTextColor(OldClr); //ÇåÀí×ÊÔ´ pDC->SelectObject(pOldFont); return; }
//创建区域 bool CRgnDialog::CreateControlRgn(COLORREF crTrans) { //加载资源 CImageHandle ImageHandle(&m_ImageBack); //创建区域 CRgn RgnControl; m_ImageBack.CreateImageRegion(RgnControl,crTrans); //设置窗口 if (RgnControl.GetSafeHandle()!=NULL) { //移动窗口 SetWindowRgn(RgnControl,TRUE); SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE); //删除区域 m_DialogRgn.DeleteObject(); m_DialogRgn.Attach(RgnControl.Detach()); return true; } return false; }
//重画函数 void CWorldEdit::OnPaint() { CPaintDC dc(this); //设置底图 CGameImage * pBackImage=NULL; if (m_TitlePic.IsNull()==false) pBackImage=&m_TitlePic; else pBackImage=&CGameImageLink::m_TitleResource.m_BackPic; //绘画标题 CRect ClientRect; GetClientRect(&ClientRect); CGameImageHelper ImageHandle(pBackImage); ImageHandle.StretchBlt(dc.GetSafeHdc(),ClientRect,CRect(0,0,ImageHandle.GetWidth(),ImageHandle.GetHeight())); dc.Draw3dRect(&ClientRect,RGB(0,0,200),RGB(0,0,250)); //绘画图标 if ((ClientRect.Width()>ICON_SIZE)&&(m_hIcon!=NULL)) { DrawIconEx(dc.GetSafeHdc(),ClientRect.left+5,ClientRect.top+(ClientRect.Height()-ICON_SIZE)/2,m_hIcon,ICON_SIZE,ICON_SIZE,0,NULL,DI_NORMAL); ClientRect.left+=ICON_SIZE+5; } //绘画标题 ClientRect.left+=5; CString strTitle; GetWindowText(strTitle); dc.SetBkMode(TRANSPARENT); dc.SelectObject(&CGameImageLink::m_HFont); dc.SetTextColor(CGameImageLink::m_TitleResource.m_crTextColor); DWORD dwStyte=GetStyle(); if (dwStyte&SS_CENTER) dc.DrawText(strTitle,&ClientRect,DT_VCENTER|DT_CENTER|DT_SINGLELINE); else if (dwStyte&SS_RIGHT) dc.DrawText(strTitle,&ClientRect,DT_VCENTER|DT_RIGHT|DT_SINGLELINE); else dc.DrawText(strTitle,&ClientRect,DT_VCENTER|DT_LEFT|DT_SINGLELINE); }
//重画函数 void CScoreView::OnPaint() { CPaintDC dc(this); //设置 DC dc.SetBkMode(TRANSPARENT); dc.SetTextColor(RGB(255,255,255)); dc.SelectObject(CSkinResourceManager::GetDefaultFont()); //设置区域 CRect rt; GetClientRect(&rt); CRgn WndRgn; WndRgn.CreateRoundRectRgn(rt.left,rt.top,rt.right,rt.bottom,10,10); SetWindowRgn(WndRgn,TRUE); WndRgn.DeleteObject(); //绘画背景 CImageHandle ImageHandle(&m_ImageBack); m_ImageBack.BitBlt(dc,0,0); //显示分数 WORD wStation=0; TCHAR szBuffer[64]=TEXT(""); CImageHandle HandleWinLose(&m_ImageWinLose); INT nWinLoseWidth = m_ImageWinLose.GetWidth()/3; INT nWinLostHeight = m_ImageWinLose.GetHeight(); for (WORD i=0;i<CountArray(m_szUserName);i++) { if (m_szUserName[i][0]!=0) { //输出名字 CRect rcName(28,wStation*29+79,117,(wStation+1)*29+79); dc.DrawText(m_szUserName[i],lstrlen(m_szUserName[i]),&rcName,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //输出成绩 CRect rcScore(117,wStation*29+79,182,(wStation+1)*29+79); _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lScore[i]); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcScore,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //胜负标志 BYTE byIndex = 0; if( m_lScore[i] == 0 ) byIndex = 2; else if( m_lScore[i] < 0 ) byIndex = 1; m_ImageWinLose.AlphaDrawImage(&dc,182+(253-182)/2-nWinLoseWidth/2,wStation*29+79+29/2-nWinLostHeight/2,nWinLoseWidth,nWinLostHeight, byIndex*nWinLoseWidth,0,RGB(255,0,255)); //服务费用 CRect rcService(253,wStation*29+79,321,(wStation+1)*29+79); _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lGameTax[i]); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcService,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //设置变量 wStation++; } } return; }
//绘画准备 void CGameParrentView::DrawUserReady(CDC * pDC, int nXPos, int nYPos) { CImageHandle ImageHandle(&m_ImageReady); int nImageWidth=ImageHandle->GetWidth(); int nImageHeight=ImageHandle->GetHeight(); AlphaDrawImage(pDC,nXPos-nImageWidth/2,nYPos-nImageHeight/2,nImageWidth,nImageHeight,ImageHandle.GetBitmapHandle(),0,0,RGB(255,0,255)); return; }
///////////////////////////////////////////////动画///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //骰子动画 void CGameClientView::ActionDice1( CDC *pDC, int nFrame ) { CImageHandle ImageHandle( &m_ActionDice1); LONG lWidth, lHeight; lWidth = m_csActionDice1.cx; lHeight = m_csActionDice1.cy; m_ActionDice1.AlphaDrawImage( pDC, PS_BX_DICE, PS_BY_DICE, lWidth, lHeight, lWidth*nFrame, 0, COLORTRANS); }
//骰子动画2 void CGameClientView::ActionDice2( CDC *pDC,int pos1, int pos2 ) { CImageHandle ImageHandle( &m_ActionDice2); LONG lWidth, lHeight; lWidth = m_csActionDice2.cx; lHeight = m_csActionDice2.cy; m_ActionDice2.AlphaDrawImage( pDC, PS_BX_DICE1, PS_BY_DICE1, lWidth, lHeight, lWidth*pos1, 0, COLORTRANS); m_ActionDice2.AlphaDrawImage( pDC, PS_BX_DICE2, PS_BY_DICE2, lWidth, lHeight, lWidth*pos2, 0, COLORTRANS); }
//调整位置 bool CSkinButton::FixButtonSize() { if (m_ImageBack.IsSetLoadInfo()&&GetSafeHwnd()) { CImageHandle ImageHandle(&m_ImageBack); SetWindowPos(NULL,0,0,ImageHandle->GetWidth()/5,ImageHandle->GetHeight(),SWP_NOMOVE); return true; } return false; }
//画听标记 void CGameClientView::ShowTingPic( CDC *pDC,int x, int y ) { CImageHandle ImageHandle( &m_ImageTingBack); LONG lWidth, lHeight; lWidth = 44; lHeight = 44; m_ImageTingBack.AlphaDrawImage( pDC, x, y, lWidth, lHeight, 0, 0, COLORTRANS); }
//绘画背景 void CGameParrentView::DrawViewImage(CDC * pDC, CSkinImage & SkinImage, enImageMode ImageMode) { //获取位置 RECT rcClient; GetClientRect(&rcClient); //绘画位图 switch (ImageMode) { case enMode_ElongGate: //拉伸模式 { CImageHandle ImageHandle(&SkinImage); int nImageWidth=ImageHandle->GetWidth(); int nImageHeight=ImageHandle->GetHeight(); ImageHandle->StretchBlt(pDC->m_hDC,0,0,rcClient.right,rcClient.bottom,0,0,nImageWidth,nImageHeight); return; } case enMode_Centent: //居中模式 { CImageHandle ImageHandle(&SkinImage); int nXPos=(rcClient.right-ImageHandle->GetWidth())/2; int nYPos=(rcClient.bottom-ImageHandle->GetHeight())/2; ImageHandle->BitBlt(pDC->m_hDC,nXPos,nYPos); return; } case enMode_Spread: //平铺模式 { CImageHandle ImageHandle(&SkinImage); int nImageWidth=ImageHandle->GetWidth(); int nImageHeight=ImageHandle->GetHeight(); for (int nXPos=0; nXPos<rcClient.right; nXPos+=nImageWidth) { for (int nYPos=0; nYPos<rcClient.bottom; nYPos+=nImageHeight) { ImageHandle->BitBlt(pDC->m_hDC,nXPos,nYPos); } } return; } } return; }
//重画函数 void CScoreView::OnPaint() { WORD i; CPaintDC dc(this); SetupRgn(&dc,bImage,RGB(255,0,255)); //设置 DC dc.SetBkMode(TRANSPARENT); dc.SetTextColor(RGB(250,250,250)); dc.SelectObject(&CSkinAttribute::m_DefaultFont); //绘画背景 CImageHandle ImageHandle(&m_ImageBack); m_ImageBack.BitBlt(dc,0,0); //显示分数 CRect rcDraw; TCHAR szBuffer[64]=TEXT(""); for ( i=0;i<CountArray(m_szUserName);i++) { //用户名字 rcDraw.left=40; rcDraw.right=125; rcDraw.top=i*22+80; rcDraw.bottom=rcDraw.top+12; dc.DrawText(m_szUserName[i],lstrlen(m_szUserName[i]),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS); //用户积分 rcDraw.left=145; rcDraw.right=215; _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lGameScore[i]); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS); } //显示税收 rcDraw.left=40; rcDraw.right=125; rcDraw.top=i*22+90; rcDraw.bottom=rcDraw.top+12; LPCTSTR pszTax=TEXT("交易税"); dc.DrawText(pszTax,lstrlen(pszTax),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS); //显示税收 rcDraw.left=145; rcDraw.right=215; rcDraw.top=i*22+90; rcDraw.bottom=rcDraw.top+12; _snprintf(szBuffer,sizeof(szBuffer),"%ld",m_lGameTax); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcDraw,DT_VCENTER|DT_CENTER|DT_END_ELLIPSIS); return; }
//重画函数 void CRgnDialog::OnPaint() { CPaintDC dc(this); //绘画底图 CRect ClientRect; GetClientRect(&ClientRect); CImageHandle ImageHandle(&m_ImageBack); if (m_ImageBack.IsNull()==false) m_ImageBack.BitBlt(dc,0,0); return; }
//绘画同意标志 void CUsingSkinClass::DrawArgeeFlag(CDC * pDC, int iXPos, int iYPos) { CGameImageHelper ImageHandle(&m_PicAgree); CDC destdc; destdc.CreateCompatibleDC(pDC); destdc.SelectObject(ImageHandle); ::TransparentBlt(pDC->GetSafeHdc(),iXPos,iYPos,ImageHandle.GetWidth(),ImageHandle.GetHeight(),destdc.GetSafeHdc(),0,0,ImageHandle.GetWidth(),ImageHandle.GetHeight(),destdc.GetPixel(0,0)); //AFCStretchImage(pDC,iXPos,iYPos,AGREE_WIDTH,AGREE_HEIGHT,ImageHandle,0,0,AGREE_WIDTH,AGREE_HEIGHT,RGB(0,128,128)); ///{{ Added by zxd 20100709 释放GDI资源 destdc.DeleteDC(); /// Added by zxd 20100709 释放GDI资源}} return; }
//建立消息 int CConcealCardView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (__super::OnCreate(lpCreateStruct)==-1) return -1; //设置背景 SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //移动窗口 CImageHandle ImageHandle(&m_ImageBack); SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); return 0; }
int CAInfo::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CWnd::OnCreate(lpCreateStruct) == -1) return -1; SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //移动窗口 CImageHandle ImageHandle(&m_Bg); SetWindowPos(NULL,0,0,m_Bg.GetWidth(),m_Bg.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); m_Font.CreateFont(-12,0,0,0,400,NULL,NULL,NULL,134,3,2,1,2,TEXT("宋体")); return 0; }
//重画函数 void CBitmapRgnWindow::OnPaint() { CPaintDC dc(this); //绘画底图 if (m_BackBitmap.IsNull()==false) { CRect ClientRect; GetClientRect(&ClientRect); CGameImageHelper ImageHandle(&m_BackBitmap); ImageHandle.BitBlt(dc.GetSafeHdc(),0,0); } return; }
//初始化函数 BOOL CScoreView::OnInitDialog() { __super::OnInitDialog(); //设置数据 m_lGameScore = 0L; //设置界面 SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //移动窗口 CImageHandle ImageHandle(&m_ImageBack); SetWindowPos(NULL,0,0,m_ImageBack.GetWidth()/3,m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); return TRUE; }
//初始化函数 BOOL CDlgLeftShow::OnInitDialog() { CDialog::OnInitDialog(); TCHAR path[MAX_PATH]; CString s = "..\\";// CINIFile::GetAppPath ();/////本地路径 CBcfFile inif(s+"bzgame.bcf"); CBcfFile f( s + "..\\" + m_skinmgr.GetGameSkinPath() + m_skinmgr.GetGameSkinBcfFileName()); CString SkinFolder = f.GetKeyVal("config", "skinfolder", m_skinmgr.GetSkinPath()); wsprintf(path, "%s%sgame\\SomeOneLeft.bmp", s, SkinFolder); int cx,cy; CGameImage m_bt; m_bt.SetLoadInfo(path,true); m_bkimage.SetLoadInfo(path,CGameImageLink::m_bAutoLock); CGameImageHelper ImageHandle(&m_bkimage); HRGN hRgn=AFCBmpToRgn(ImageHandle,m_bkimage.GetPixel(0,0),RGB(1,1,1)); if (hRgn!=NULL) { SetWindowRgn(hRgn,TRUE); } cx=ImageHandle.GetWidth(); cy=ImageHandle.GetHeight(); SetWindowPos(NULL,0,0,cx,cy,SWP_NOMOVE|SWP_NOZORDER); CenterWindow(m_pParentWnd); wsprintf(path, "%s%sgame\\ok_bt.bmp", s, SkinFolder); m_bt.SetLoadInfo(path,true); m_btOk.LoadButtonBitmap(path,false); m_btOk.SetWindowPos(NULL,0,0,m_bt.GetWidth()/4,m_bt.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); SetDlgItemText(IDOK, TEXT("")); m_btOk.MoveWindow( (m_bkimage.GetWidth() - m_bt.GetWidth()/4)/2, m_bkimage.GetHeight()-50, m_bt.GetWidth()/4, m_bt.GetHeight() ); m_bkBrush=CreateSolidBrush(m_bkimage.GetPixel(20,35)); return true; }
//绘画时间 void CUsingSkinClass::DrawTimer(CDC * pDC, int iXPos, int iYPos, UINT uTime) { if ((uTime!=0L)&&(uTime<100L)) { UINT uFirst=uTime/10L,uLast=uTime%10; CGameImageHelper ImageHandle(&m_PicTimer); CDC destdc; destdc.CreateCompatibleDC(pDC); destdc.SelectObject(ImageHandle); ::TransparentBlt(pDC->GetSafeHdc(),iXPos,iYPos,TIME_WIDTH/2,TIME_HEIGHT,destdc.GetSafeHdc(),uFirst*TIME_WIDTH/2,0,TIME_WIDTH/2,TIME_HEIGHT,RGB(0,0,0)); ::TransparentBlt(pDC->GetSafeHdc(),iXPos+15,iYPos,TIME_WIDTH/2,TIME_HEIGHT,destdc.GetSafeHdc(),uLast*TIME_WIDTH/2,0,TIME_WIDTH/2,TIME_HEIGHT,RGB(0,0,0)); ///{{ Added by zxd 20100709 释放GDI资源 destdc.DeleteDC(); /// Added by zxd 20100709 释放GDI资源}} } return; }
void CShowScore::SetBkImage(TCHAR path[]) { m_bk.SetLoadInfo(path,CGameImageLink::m_bAutoLock); CGameImageHelper ImageHandle(&m_bk); HRGN hRgn=AFCBmpToRgn(ImageHandle,RGB(255,0,255),RGB(1,1,1)); if (hRgn!=NULL) { SetWindowPos(NULL,0,0,ImageHandle.GetWidth(),ImageHandle.GetHeight(),SWP_NOZORDER|SWP_NOOWNERZORDER|SWP_NOMOVE); SetWindowRgn(hRgn,TRUE); ///{{ Added by zxd 20100709 释放区域对象 DeleteObject(hRgn); ///Added by zxd 20100709 释放区域对象}} } Invalidate(false); }
//重画函数 void CScoreView::OnPaint() { CPaintDC dc(this); //设置 DC dc.SetBkMode(TRANSPARENT); dc.SetTextColor(RGB(0,0,0)); dc.SelectObject(&CSkinAttribute::m_DefaultFont); //绘画背景 CImageHandle ImageHandle(&m_ImageBack); m_ImageBack.BitBlt(dc,0,0); //显示分数 WORD wStation=0; TCHAR szBuffer[64]=TEXT(""); for (WORD i=0;i<CountArray(m_szUserName);i++) { if (m_szUserName[i][0]!=0) { //输出名字 CRect rcName(15,i*19+63,141,i*19+82); dc.DrawText(m_szUserName[i],lstrlen(m_szUserName[i]),&rcName,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //输出成绩 CRect rcScore(141,i*19+63,197,i*19+82); _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lScore[i]); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcScore,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //设置变量 wStation++; } } //显示税收 CRect rcName(15,i*19+63,141,i*19+82); dc.DrawText(TEXT("税 收"),lstrlen(TEXT("税 收")),&rcName,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //输出税收 CRect rcScore(141,i*19+63,197,i*19+82); _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lTax); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcScore,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); return; }
//建立消息 int CScoreView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (__super::OnCreate(lpCreateStruct)==-1) return -1; //设置数据 m_lTax=0L; memset(m_lScore,0,sizeof(m_lScore)); memset(m_szUserName,0,sizeof(m_szUserName)); //设置界面 SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //移动窗口 CImageHandle ImageHandle(&m_ImageBack); SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); return 0; }
//初始化函数 BOOL CScoreView::OnInitDialog() { __super::OnInitDialog(); //设置数据 m_lBaseScore=0L; m_lGameTax=0L; memset(m_lGameScore,0,sizeof(m_lGameScore)); memset(m_szUserName,0,sizeof(m_szUserName)); //设置界面 SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //居中窗口 CenterWindow(GetParent()); CImageHandle ImageHandle(&m_ImageBack); if (ImageHandle.IsResourceValid()) { //创建临时图 CSkinImage BufferImage; int nImageWidth=m_ImageBack.GetWidth(); int nImageHeight=m_ImageBack.GetHeight(); BufferImage.Create(nImageWidth,nImageHeight,32); ImageHandle->BitBlt(BufferImage.GetDC(),0,0,nImageWidth,nImageHeight,0,0); BufferImage.ReleaseDC(); //创建区域 CRgn ImageRgn; BufferImage.CreateImageRegion( ImageRgn, RGB( 255, 0, 255 ) ); if ( (( HRGN )ImageRgn) !=NULL) { SetWindowPos(NULL,0,0,nImageWidth,nImageHeight,SWP_NOMOVE); SetWindowRgn(( HRGN )ImageRgn,TRUE); ImageRgn.DeleteObject(); return true; } } return TRUE; }
//重画函数 void CScoreView::OnPaint() { CPaintDC dc(this); //设置 DC dc.SetBkMode(TRANSPARENT); dc.SetTextColor(RGB(255,255,255)); dc.SelectObject(&CSkinAttribute::m_DefaultFont); //绘画背景 CImageHandle ImageHandle(&m_ImageBack); m_ImageBack.BitBlt(dc,0,0); //绘画标题 LPCTSTR pszAccount=TEXT("用户名"),pszScore=TEXT("成绩"); dc.TextOut(30,38,pszAccount,lstrlen(pszAccount)); dc.TextOut(140,38,pszScore,lstrlen(pszScore)); //显示分数 WORD wStation=0; TCHAR szBuffer[64]=TEXT(""); for (WORD i=0;i<CountArray(m_szUserName);i++) { if (m_szUserName[i][0]!=0) { dc.TextOut(30,(int)(wStation*20+58),m_szUserName[i]); _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lScore[i]); dc.TextOut(140,(int)(wStation*20+58),szBuffer,lstrlen(szBuffer)); wStation++; } } //显示税收 if (wStation>0) { LPCTSTR pszTax=TEXT("交易税"); dc.TextOut(30,(int)(wStation*20+58),pszTax,lstrlen(pszTax)); _snprintf(szBuffer,sizeof(szBuffer),"%ld",m_lTax); dc.TextOut(140,(int)(wStation*20+58),szBuffer,lstrlen(szBuffer)); } return; }
//重画函数 void CSkinHeaderCtrl::OnPaint() { //获取位置 CRect ClientRect; GetClientRect(&ClientRect); //设置自画 HD_ITEM HDItem; HDItem.mask=HDI_FORMAT; int iItemCount=GetItemCount(); for (int i=0;i<iItemCount;i++) { GetItem(i,&HDItem); HDItem.fmt|=HDF_OWNERDRAW; SetItem(i,&HDItem); } //建立缓冲图 CBitmap BufferBmp; CClientDC ClientDC(this); BufferBmp.CreateCompatibleBitmap(&ClientDC,ClientRect.Width(),ClientRect.Height()); m_BufferDC.CreateCompatibleDC(&ClientDC); m_BufferDC.SelectObject(&BufferBmp); m_BufferDC.SetBkMode(TRANSPARENT); m_BufferDC.SetTextColor(m_SkinAttribute.m_crHeadText); m_BufferDC.SelectObject(CSkinResourceManager::m_DefaultFont); //加载位图 CImageHandle ImageHandle(&m_SkinAttribute.m_ImageHead); if (ImageHandle.IsResourceValid()) { ImageHandle->StretchBlt(m_BufferDC,ClientRect.left,ClientRect.top,ClientRect.Width(),ClientRect.Height()); m_BufferDC.Draw3dRect(ClientRect.left,ClientRect.top,ClientRect.Width(),ClientRect.Height(),RGB(0,0,0),RGB(0,0,0)); Default(); } //绘画界面 ClientDC.BitBlt(0,0,ClientRect.Width(),ClientRect.Height(),&m_BufferDC,0,0,SRCCOPY); m_BufferDC.DeleteDC(); BufferBmp.DeleteObject(); return; }