//初始化函数 BOOL CScoreView::OnInitDialog() { __super::OnInitDialog(); //状态变量 m_uLeaveTime=15; //设置界面 SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //设置按钮 m_btContinue.SetTextColor(RGB(255,255,255)); m_btQuitGame.SetTextColor(RGB(255,255,255)); m_btContinue.SetButtonImage(IDB_BT_GAME_SCORE,AfxGetInstanceHandle(),false); m_btQuitGame.SetButtonImage(IDB_BT_GAME_SCORE,AfxGetInstanceHandle(),false); //居中窗口 CenterWindow(GetParent()); //移动窗口 CImageHandle HandleBack(&m_ImageBack); SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); //移动按钮 CRect rcButton; m_btContinue.GetWindowRect(&rcButton); m_btQuitGame.SetWindowPos(NULL,m_ImageBack.GetWidth()/2+15,m_ImageBack.GetHeight()-rcButton.Height()-8, 0,0,SWP_NOSIZE|SWP_NOZORDER); m_btContinue.SetWindowPos(NULL,m_ImageBack.GetWidth()/2-rcButton.Width()-15,m_ImageBack.GetHeight()-rcButton.Height()-8, 0,0,SWP_NOSIZE|SWP_NOZORDER); return TRUE; }
void CTimerControl::SetBitmap(UINT uIdBack,UINT uIdArrow) { m_ImageBack.SetLoadInfo(uIdBack,AfxGetInstanceHandle()); m_ImageArrow.SetLoadInfo(uIdArrow,AfxGetInstanceHandle()); CImageHandle HandleBack(&m_ImageBack); m_Size.cx=m_ImageBack.GetWidth(); m_Size.cy=m_ImageBack.GetHeight(); }
//重画函数 void CTimerControl::OnPaint() { CPaintDC dc(this); //获取位置 CRect rcClient; GetClientRect(&rcClient); //加载位图 CImageHandle HandleBack(&m_ImageBack); CImageHandle HandleArrow(&m_ImageArrow); //创建位图 CBitmap BufferImage; if (!BufferImage.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height())) return; //创建 DC CDC BufferDC; BufferDC.CreateCompatibleDC(&dc); BufferDC.SelectObject(&BufferImage); //m_ImageBack.AlphaDrawImage(&BufferDC,0,0,RGB(255,0,255)); switch(m_dwCurrentIndex) { case 0: m_ImageArrow.AlphaDrawImage(&BufferDC,rcClient.Width()/2-m_ImageArrow.GetWidth()/4/2,0,16,16,0,0,RGB(255,0,255)); break; case 1: m_ImageArrow.AlphaDrawImage(&BufferDC,0,rcClient.Height()/2-m_ImageArrow.GetHeight()/2,16,16,16,0,RGB(255,0,255)); break; case 2: m_ImageArrow.AlphaDrawImage(&BufferDC,rcClient.Width()/2-m_ImageArrow.GetWidth()/4/2,rcClient.Height()-m_ImageArrow.GetHeight(),16,16,32,0,RGB(255,0,255)); break; case 3: m_ImageArrow.AlphaDrawImage(&BufferDC,rcClient.Width()-m_ImageArrow.GetWidth()/4,rcClient.Height()/2-m_ImageArrow.GetHeight()/2,16,16,48,0,RGB(255,0,255)); break; } BufferDC.SetTextColor(RGB(220,220,220)); BufferDC.SetBkMode(TRANSPARENT); BufferDC.SetTextAlign(TA_CENTER); CString str; if (m_nTimer!=-1) str.Format("%02d",m_nTimer/2); else str="00"; BufferDC.TextOut(rcClient.Width()/2,rcClient.Height()/2-10,str); //绘画界面 dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),&BufferDC,0,0,SRCCOPY); //清理资源 BufferDC.DeleteDC(); BufferImage.DeleteObject(); return; }
//重画函数 void CScoreView::OnPaint() { CPaintDC dc(this); //加载资源 CImageHandle HandleBack(&m_ImageBack); //绘画背景 m_ImageBack.AlphaDrawImage(&dc,0,0,RGB(255,0,255)); //设置 DC dc.SetBkMode(TRANSPARENT); dc.SetTextColor(RGB(250,250,250)); dc.SelectObject(&CSkinAttribute::m_DefaultFont); //提示信息 TCHAR szBuffer[128]=TEXT(""); //显示分数 CImageHandle HandleWinLose(&m_ImageWinLose); INT nWinLoseWidth = m_ImageWinLose.GetWidth()/2; INT nWinLostHeight = m_ImageWinLose.GetHeight(); WORD wCount = 0; for (WORD i=0;i<CountArray(m_szUserName);i++) { if (m_szUserName[i][0]!=0) { //输出名字 INT nScPos = 80; CRect rcName(26,wCount*29+nScPos,126,(wCount+1)*29+nScPos); dc.DrawText(m_szUserName[i],lstrlen(m_szUserName[i]),&rcName,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //输出成绩 CRect rcScore(95,wCount*29+nScPos,195,(wCount+1)*29+nScPos); _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lScore[i]); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcScore,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); //胜负标志 m_ImageWinLose.AlphaDrawImage(&dc,218-nWinLoseWidth/2,wCount*29+nScPos+13-nWinLostHeight/2,nWinLoseWidth,nWinLostHeight, (m_lScore[i]>0)?0:nWinLoseWidth,0,RGB(255,0,255)); //输出税收 CRect rcTax(235,wCount*29+nScPos,335,(wCount+1)*29+nScPos); _snprintf(szBuffer,sizeof(szBuffer),TEXT("%ld"),m_lTax[i]); dc.DrawText(szBuffer,lstrlen(szBuffer),&rcTax,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS); wCount++; } } return; }
//重画函数 void CConcealCardView::OnPaint() { CPaintDC dc(this); //加载资源 CImageHandle HandleBack(&m_ImageBack); CImageHandle HandleCard(&m_ImageCard); //绘画背景 m_ImageBack.BitBlt(dc,0,0); //绘画扑克 if (m_cbConcealCount>0) { //获取位置 CRect rcClient; GetClientRect(&rcClient); //计算大小 CSize ControlSize; ControlSize.cy=m_CardSize.cy; ControlSize.cx=m_CardSize.cx+(m_cbConcealCount-1)*18; //定义位置 int nXPos=(rcClient.Width()-ControlSize.cx)/2+17; int nYPos=(rcClient.Height()-ControlSize.cy)/2; //绘画扑克 for (BYTE i=0;i<m_cbConcealCount;i++) { //变量定义 int nXImagePos=0,nYImagePos=0; //图片位置 if (m_cbConcealCard[i]!=0) { if ((m_cbConcealCard[i]==0x4E)||(m_cbConcealCard[i]==0x4F)) { nYImagePos=((m_cbConcealCard[i]&CARD_MASK_COLOR)>>4)*m_CardSize.cy; nXImagePos=((m_cbConcealCard[i]&CARD_MASK_VALUE)%14)*m_CardSize.cx; } else { nXImagePos=((m_cbConcealCard[i]&CARD_MASK_VALUE)-1)*m_CardSize.cx; nYImagePos=((m_cbConcealCard[i]&CARD_MASK_COLOR)>>4)*m_CardSize.cy; } }
//建立消息 int CScoreView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (__super::OnCreate(lpCreateStruct)==-1) return -1; //设置数据 ZeroMemory(m_lGameTax,sizeof(m_lGameTax)); ZeroMemory(m_lScore,sizeof(m_lScore)); ZeroMemory(m_szUserName,sizeof(m_szUserName)); //设置界面 SetClassLong(m_hWnd,GCL_HBRBACKGROUND,NULL); //移动窗口 CImageHandle HandleBack(&m_ImageBack); SetWindowPos(NULL,0,0,m_ImageBack.GetWidth(),m_ImageBack.GetHeight(),SWP_NOMOVE|SWP_NOZORDER); return 0; }
void Status_OnKeyDown(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam) { if (!HandleMsg(wParam,lParam)) //该按键盘不需要处理 { return ; } if (wParam == VK_BACK) { HandleBack(); } else if (wParam == VK_SPACE) { HandleSpace(); } //小键盘 else if (wParam >= VK_NUMPAD4 && wParam <= VK_NUMPAD9 && wParam != VK_NUMPAD6) { Handle_Small_Num(wParam); } // 0 - 9 else if (wParam >= 0x30 && wParam <= 0x39) { HandleNum(wParam,lParam); } // A - Z else if (wParam >= 0x41 && wParam <= 0x5A) { HandleChar(wParam,lParam); } else if (wParam == VK_CONTROL) { HandleControl(); } //上翻页 else if (wParam == VK_LEFT) { } //下翻 else if (wParam == VK_RIGHT) { } }