//初始化函数 BOOL CDlgOption::OnInitDialog() { __super::OnInitDialog(); //获取位置 CRect rcClient,rcFrame; GetClientRect(&rcClient); rcFrame.left=BUTTON_BAR_WIDTH+15; rcFrame.top=GetYExcursionPos()+8; rcFrame.right=rcClient.Width()-10; rcFrame.bottom=rcClient.Height()-35; //创建控件 m_ButtonBar.Create(NULL,NULL,WS_CHILD,CRect(0,0,0,0),this,10); m_ButtonBar.MoveWindow(8,8+GetYExcursionPos(),BUTTON_BAR_WIDTH+2,BUTTON_BAR_HEIGHT); m_ButtonBar.ShowWindow(SW_SHOW); m_ButtonBar.InitButtonBar(rcFrame,this); //设置标题 SetWindowText(TEXT("配置选项")); //系统配置 tagSystemParameter * pSystemParameter=&m_SystemItem.m_SystemParameter; pSystemParameter->enAcountsRule=g_GlobalOption.m_enAcountsRule; pSystemParameter->enInviteMode=g_GlobalOption.m_InviteMode; pSystemParameter->bShowInOutMessage=g_GlobalOption.m_bShowInOutMessage; pSystemParameter->wBossHotKey=g_GlobalOption.m_wBossHotKey; m_ButtonBar.InsertOptionItem(&m_SystemItem); //同桌配置 if ((m_pGameOption!=NULL)&&(m_pServerOption!=NULL)) { tagTableRuleParameter * pTableRuleParameter=&m_TableRuleItem.m_TableRuleParameter; pTableRuleParameter->bPassword=m_pServerOption->m_bPassword; pTableRuleParameter->bLimitWin=m_pGameOption->m_bLimitWin; pTableRuleParameter->bLimitFlee=m_pGameOption->m_bLimitFlee; pTableRuleParameter->bLimitScore=m_pGameOption->m_bLimitScore; pTableRuleParameter->bLimitDetest=g_GlobalOption.m_bLimitDetest; pTableRuleParameter->bCheckSameIP=g_GlobalOption.m_bCheckSameIP; pTableRuleParameter->wWinRate=m_pGameOption->m_wWinRate; pTableRuleParameter->wFleeRate=m_pGameOption->m_wFleeRate; pTableRuleParameter->lMaxScore=m_pGameOption->m_lMaxScore; pTableRuleParameter->lLessScore=m_pGameOption->m_lLessScore; lstrcpyn(pTableRuleParameter->szPassword,m_pServerOption->m_szPassword,CountArray(pTableRuleParameter->szPassword)); m_ButtonBar.InsertOptionItem(&m_TableRuleItem); } return TRUE; }
//绘画边框 void CSkinDialogEx::DrawBorder(CDC * pDC) { //获取位置 CRect ClientRect; GetClientRect(&ClientRect); int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); //创建笔画 CPen BorderPen(PS_SOLID,1,m_SkinAttribute.m_crInsideBorder); CPen * pOldPen=pDC->SelectObject(&BorderPen); //绘画内框 CRect rcDrawRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,ClientRect.Height()); pDC->SelectObject(m_SkinAttribute.m_brBackGround); if (m_bMaxSize==true) rcDrawRect.DeflateRect(3,3,3,2); else rcDrawRect.DeflateRect(3,4,2,4); pDC->RoundRect(&rcDrawRect,CPoint(8,8)); //清理资源 pDC->SelectObject(pOldPen); BorderPen.DeleteObject(); return ; }
//鼠标左键事件 bool CSkinWndObject::OnLMouseDownEvent(CPoint ClientPoint) { //判断按下 if (m_cbNowDownButton!=255) return false; //按钮搜索 for (int i=0;i<3;i++) { if ((m_cbButtonState[i]&BUT_EXIST)&&(!(m_cbButtonState[i]&BUT_DISABLE)) &&(m_rcButton[i].PtInRect(ClientPoint))) { //设置数据 m_pWndHook->SetCapture(); m_cbNowDownButton=i; DrawSkinView(NULL); return true; } } //模拟按标题 if (m_bMaxSize==false) { if (ClientPoint.y<GetYExcursionPos()) { m_pWndHook->PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(ClientPoint.x,ClientPoint.y)); return true; } return false; } return true; }
//绘画函数 void CShortMessage::OnPaint() { CPaintDC dc(this); //绘画标题 DrawCaption(&dc); CRect ClientRect; GetClientRect(&ClientRect); int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); //绘画背景 COLORREF Color = RGB(170,213,244); dc.FillSolidRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,4,Color); dc.FillSolidRect(nXExcursion,ClientRect.Height()-8,ClientRect.Width()-2*nXExcursion,7,Color); dc.FillSolidRect(nXExcursion,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); dc.FillSolidRect(ClientRect.Width()-nXExcursion-12,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); CRect mRect(nXExcursion,190,ClientRect.Width()-2*nXExcursion,ClientRect.Height()); CBrush Brush(Color); dc.FillRect(mRect,&Brush); //创建笔画 CPen BorderPen(PS_SOLID,1,RGB(20,20,20)); CPen * pOldPen=dc.SelectObject(&BorderPen); dc.SelectObject(m_SkinAttribute.m_brBackGround); //绘画内框 CRect rcDrawRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,200); rcDrawRect.DeflateRect(6,4,6,4); dc.RoundRect(&rcDrawRect,CPoint(8,8)); //清理资源 dc.SelectObject(pOldPen); BorderPen.DeleteObject(); //创建笔画 CPen BorderPen1(PS_SOLID,1,m_SkinAttribute.m_crInsideBorder); pOldPen=dc.SelectObject(&BorderPen1); //绘画内框 rcDrawRect.DeflateRect(1,1,1,1); dc.RoundRect(&rcDrawRect,CPoint(8,8)); CRect rcDrawRect1(nXExcursion+9,203,ClientRect.Width()-2*nXExcursion-8,ClientRect.Height()-37); dc.RoundRect(&rcDrawRect1,CPoint(4,4)); //清理资源 dc.SelectObject(pOldPen); BorderPen1.DeleteObject(); return; }
//绘画背景 void CSkinDialogEx::DrawBackGround(CDC * pDC) { //获取位置 CRect ClientRect; GetClientRect(&ClientRect); //绘画背景 int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); pDC->FillSolidRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,4,m_SkinAttribute.m_crBackFrame); pDC->FillSolidRect(nXExcursion,ClientRect.Height()-8,ClientRect.Width()-2*nXExcursion,7,m_SkinAttribute.m_crBackFrame); pDC->FillSolidRect(nXExcursion,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,m_SkinAttribute.m_crBackFrame); pDC->FillSolidRect(ClientRect.Width()-nXExcursion-12,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,m_SkinAttribute.m_crBackFrame); return; }
//初始化函数 BOOL CDlgIndividualInfo::OnInitDialog() { __super::OnInitDialog(); //设置标题 SetWindowText(TEXT("用户基本信息")); //广告控件 m_BrowerAD.Create(NULL,NULL,WS_VISIBLE|WS_CHILD,CRect(0,0,0,0),this,100,NULL); m_BrowerAD.Navigate(TEXT("http://www.sxjingji.cn/personalsettings.asp"),NULL,NULL,NULL,NULL); //广告位置 int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); m_BrowerAD.MoveWindow(nXExcursion+4,nYExcursion+5,327,248); return FALSE; }
//重画消息 void CDlgLogon::OnPaint() { CPaintDC dc(this); //获取位置 CRect ClientRect; GetClientRect(&ClientRect); //绘画标题 DrawSkinView(&dc); //绘画背景 int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); dc.FillSolidRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,4,m_SkinAttribute.m_crBackFrame); dc.FillSolidRect(nXExcursion,ClientRect.Height()-8,ClientRect.Width()-2*nXExcursion,7,m_SkinAttribute.m_crBackFrame); dc.FillSolidRect(nXExcursion,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,m_SkinAttribute.m_crBackFrame); dc.FillSolidRect(ClientRect.Width()-nXExcursion-12,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,m_SkinAttribute.m_crBackFrame); dc.FillSolidRect(nXExcursion,119,ClientRect.Width()-2*nXExcursion,5,m_SkinAttribute.m_crBackFrame); //创建画笔 CPen BorderPen(PS_SOLID,1,m_SkinAttribute.m_crInsideBorder); CPen * pOldPen=dc.SelectObject(&BorderPen); dc.SelectObject(m_SkinAttribute.m_brBackGround); //绘画内框 CRect rcDrawRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,ClientRect.Height()); if (m_bMaxSize==true) rcDrawRect.DeflateRect(3,3,3,2); else rcDrawRect.DeflateRect(3,4,2,4); rcDrawRect.top=123; if(m_bNetOption)rcDrawRect.bottom=368; else rcDrawRect.bottom=284; dc.RoundRect(&rcDrawRect,CPoint(8,8)); //释放资源 dc.SelectObject(pOldPen); BorderPen.DeleteObject(); return; }
//绘画函数 void CFlowerSetting::OnPaint() { CPaintDC dc(this); //绘画标题 DrawCaption(&dc); CRect ClientRect; GetClientRect(&ClientRect); int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); //绘画背景 COLORREF Color = RGB(161,212,226); dc.FillSolidRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,4,Color); dc.FillSolidRect(nXExcursion,ClientRect.Height()-8,ClientRect.Width()-2*nXExcursion,7,Color); dc.FillSolidRect(nXExcursion,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); dc.FillSolidRect(ClientRect.Width()-nXExcursion-12,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); //绘画边框 DrawBorder(&dc); }
//鼠标左键事件 bool CSkinWndObject::OnLMouseDoubleEvent(CPoint ClientPoint) { //判断按下 if (m_cbNowDownButton!=255) return false; //按钮搜索 for (int i=0;i<3;i++) { if ((m_cbButtonState[i]&BUT_EXIST)&&(m_rcButton[i].PtInRect(ClientPoint))) return true; } //最大化窗口 if ((ClientPoint.y<GetYExcursionPos())&&(m_cbButtonState[BST_MAX]&BUT_EXIST)&& (!(m_cbButtonState[BST_MAX]&BUT_DISABLE))) { if (m_bMaxSize==true) RestoreWindow(); else MaxSizeWindow(); } return true; }
//调整界面 void CGameClientDlg::RectifyControl(int nWidth, int nHeight) { const int iXExc=GetXExcursionPos(); const int iYExc=GetYExcursionPos(); //锁定屏幕 //LockWindowUpdate(); //移动控件 HDWP hDwp=BeginDeferWindowPos(1); DeferWindowPos(hDwp,m_GameClientView,NULL,iXExc,iYExc,nWidth,nHeight,SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOCOPYBITS); EndDeferWindowPos(hDwp); //重画界面 Invalidate(FALSE); UpdateWindow(); //解除锁定 //UnlockWindowUpdate(); return; }
//调整界面 void CGameFrameDlg::RectifyControl(int nWidth, int nHeight) { //状态判断 if (m_bInitDialog==false) return; //变量定义 CRect rcVorSplitter; const int nSplitterWidth=6; const int iXExc=GetXExcursionPos(); const int iYExc=GetYExcursionPos(); const UINT uFlags=SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOCOPYBITS; //获取位置 m_VorSplitter.GetWindowRect(&rcVorSplitter); ScreenToClient(&rcVorSplitter); //调整拆分条 if (m_bRectify==false) { //设置变量 m_bRectify=true; //设置位置 if (m_bHideList==false) { rcVorSplitter.left=nWidth*75/100; rcVorSplitter.right=rcVorSplitter.left+nSplitterWidth; } else { rcVorSplitter.right=nWidth; rcVorSplitter.left=nWidth-nSplitterWidth; } } //设置拆分范围 if (m_bHideList==false) { int nLessPos=nWidth*3/5,nMaxPos=nWidth*75/100; m_VorSplitter.SetSplitterRange(nLessPos,nMaxPos); if ((nWidth!=0)&&(nHeight!=0)) { if (rcVorSplitter.left<nLessPos) { rcVorSplitter.left=nLessPos; rcVorSplitter.right=rcVorSplitter.left+nSplitterWidth; } if (rcVorSplitter.right>nMaxPos) { rcVorSplitter.right=nMaxPos; rcVorSplitter.left=rcVorSplitter.right-nSplitterWidth; } } } if (m_VorSplitter.GetSplitterType()==HorSpliter) rcVorSplitter.SetRect(nWidth,0,nWidth,nHeight); //锁定屏幕 LockWindowUpdate(); //移动控件 HDWP hDwp=BeginDeferWindowPos(32); DeferWindowPos(hDwp,m_pGameFrameView->GetSafeHwnd(),NULL,iXExc,iYExc,rcVorSplitter.left-iXExc,nHeight-iYExc,uFlags); DeferWindowPos(hDwp,m_VorSplitter,NULL,rcVorSplitter.left,iYExc,rcVorSplitter.Width(),nHeight-iYExc,uFlags); DeferWindowPos(hDwp,m_pGameFrameControl->GetSafeHwnd(),NULL,rcVorSplitter.right,iYExc,nWidth-rcVorSplitter.right,nHeight-iYExc,uFlags); EndDeferWindowPos(hDwp); //重画界面 Invalidate(FALSE); UpdateWindow(); //解除锁定 UnlockWindowUpdate(); //控制按钮 CRect rcControl; m_btControl.GetClientRect(&rcControl); m_btControl.SetWindowPos(NULL,rcVorSplitter.left+(rcVorSplitter.Width()-rcControl.Width())/2,(nHeight-rcControl.Height())/2,0,0,uFlags|SWP_NOSIZE); //设置变量 m_bRectify=false; return; }
//绘画函数 void CShortMessage::OnPaint() { CPaintDC dc(this); //绘画标题 DrawCaption(&dc); CRect ClientRect; GetClientRect(&ClientRect); int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); ///////////////////////////////////////////////////////////////////////////// CRect rcClient1; GetWindowRect(&rcClient1); int nWidth1=rcClient1.Width(); int nHeight1=rcClient1.Height(); //调整判断 if ((nWidth1!=0)&&(nHeight1!=0)) { //框架位置 CRect rcFrame; rcFrame.SetRect(0,0,nWidth1,nHeight1); //窗口区域 CRgn RegionWindow; RegionWindow.CreateRoundRectRgn(rcFrame.left,rcFrame.top,rcFrame.right+1,rcFrame.bottom+1,5,5); //设置区域 SetWindowRgn(RegionWindow,TRUE); } /////////////////////////////////////////////////////////////////////////// //绘画背景 COLORREF Color = RGB(170,213,244); dc.FillSolidRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,4,Color); dc.FillSolidRect(nXExcursion,ClientRect.Height()-8,ClientRect.Width()-2*nXExcursion,7,Color); dc.FillSolidRect(nXExcursion,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); dc.FillSolidRect(ClientRect.Width()-nXExcursion-12,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); CRect mRect(nXExcursion,190,ClientRect.Width()-2*nXExcursion,ClientRect.Height()); CBrush Brush(Color); dc.FillRect(mRect,&Brush); //创建笔画 CPen BorderPen(PS_SOLID,1,RGB(20,20,20)); CPen * pOldPen=dc.SelectObject(&BorderPen); dc.SelectObject(m_SkinAttribute.m_brBackGround); //绘画内框 CRect rcDrawRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,200); rcDrawRect.DeflateRect(6,4,6,4); dc.RoundRect(&rcDrawRect,CPoint(8,8)); //清理资源 dc.SelectObject(pOldPen); BorderPen.DeleteObject(); //创建笔画 CPen BorderPen1(PS_SOLID,1,m_SkinAttribute.m_crInsideBorder); pOldPen=dc.SelectObject(&BorderPen1); //绘画内框 rcDrawRect.DeflateRect(1,1,1,1); dc.RoundRect(&rcDrawRect,CPoint(8,8)); CRect rcDrawRect1(nXExcursion+9,203,ClientRect.Width()-2*nXExcursion-8,ClientRect.Height()-37); dc.RoundRect(&rcDrawRect1,CPoint(4,4)); //清理资源 dc.SelectObject(pOldPen); BorderPen1.DeleteObject(); return; }
//绘画函数 void CPropertyItem::OnPaint() { CPaintDC dc(this); //绘画标题 DrawCaption(&dc); //获取位置 CRect ClientRect; GetClientRect(&ClientRect); int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); //绘画背景 COLORREF Color = /*RGB(0,51,102)*/RGB(115,181,239); dc.FillSolidRect(nXExcursion,nYExcursion,ClientRect.Width()-2*nXExcursion,4,Color); dc.FillSolidRect(nXExcursion,ClientRect.Height()-8,ClientRect.Width()-2*nXExcursion,7,Color); dc.FillSolidRect(nXExcursion,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); dc.FillSolidRect(ClientRect.Width()-nXExcursion-12,nYExcursion+4,12,ClientRect.Height()-nYExcursion-9,Color); //绘画边框 DrawBorder(&dc); //道具图片 CBitmap Bitmap; //加载图片 AfxSetResourceHandle(CPropertyBar::m_pPropertyBar->m_ReshInstance); if ( Bitmap.LoadBitmap(CPropertyBar::m_pPropertyBar->m_PropertyViewImage.uPropertyFormer[m_nPropertyID]) ) { //创建资源 CDC dcMem; dcMem.CreateCompatibleDC(&dc); CBitmap *pOldBitmap = dcMem.SelectObject(&Bitmap); //绘画图片 BITMAP bm; Bitmap.GetBitmap(&bm); dc.TransparentBlt(10, 28+5, bm.bmWidth, bm.bmHeight, &dcMem, 0, 0, bm.bmWidth, bm.bmHeight,RGB(255,255,255)); //是否资源 dcMem.SelectObject(pOldBitmap); Bitmap.DeleteObject(); dcMem.DeleteDC(); } AfxSetResourceHandle(GetModuleHandle(NULL)); //获取位置 CRect rcStaticName, rcStaticDes; GetDlgItem(IDC_PROPERTY_NAME)->GetWindowRect(rcStaticName); GetDlgItem(IDC_PROPERTY_DESCRIBE)->GetWindowRect(rcStaticDes); ScreenToClient(&rcStaticName); ScreenToClient(&rcStaticDes); //设置内容 CRect rcPropertyName(rcStaticName.right+3, rcStaticName.top, rcStaticName.right+200, rcStaticName.bottom+100); CRect rcPropertyDes(rcStaticDes.right+3, rcStaticDes.top, rcStaticDes.right+200, rcStaticDes.bottom+70); if(m_nPropertyID>=PROP_MEMBER_1)rcPropertyDes.right+=30; //创建字体 CFont font; VERIFY(font.CreateFont( 15, // nHeight 0, // nWidth 0, // nEscapement 0, // nOrientation FW_NORMAL, // nWeight FALSE, // bItalic FALSE, // bUnderline 0, // cStrikeOut ANSI_CHARSET, // nCharSet OUT_DEFAULT_PRECIS, // nOutPrecision CLIP_DEFAULT_PRECIS, // nClipPrecision DEFAULT_QUALITY, // nQuality DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily "Arial")); // lpszFacename //设置属性 dc.SetBkMode(TRANSPARENT); CFont* def_font = dc.SelectObject(&font); //描述信息 UINT nFormat = DT_LEFT | DT_TOP | DT_WORDBREAK; dc.DrawText(g_PropertyDescribe[m_nPropertyID].szName, rcPropertyName, nFormat); dc.DrawText(g_PropertyDescribe[m_nPropertyID].szDescribe, rcPropertyDes, nFormat); //删除资源 dc.SelectObject(def_font); font.DeleteObject(); }
//调整界面 void CGameFrameDlg::RectifyControl(int nWidth, int nHeight) { CString strFile,strTemp; CTime tmCur = CTime::GetCurrentTime(); CString strTime = tmCur.Format("%m%d"); strFile.Format("log\\%sRectifyControl.log",strTime); strTemp.Format("RectifyControl nWidth=%d nHeight=%d", nWidth, nHeight); WriteLog(strFile, strTemp); //状态判断 if (m_bInitDialog==false) return; //变量定义 CRect rcVorSplitter; const int nSplitterWidth=0; const int iXExc=GetXExcursionPos(); const int iYExc=GetYExcursionPos(); // const UINT uFlags=SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOCOPYBITS; //获取位置 m_VorSplitter.GetWindowRect(&rcVorSplitter); int addInt = 50;//左移50 //移动控件 int iBaseXPos=rcVorSplitter.right;//左边最大值 ScreenToClient(&rcVorSplitter); //调整拆分条 if (m_bRectify==false) { m_bRectify=true; rcVorSplitter.left=nWidth*72/100; rcVorSplitter.right=rcVorSplitter.left+nSplitterWidth; } //设置拆分范围 /*Doctor int nLessPos=nWidth*3/5,nMaxPos=nWidth*75/100; m_VorSplitter.SetSplitterRange(nLessPos,nMaxPos); if ((nWidth!=0)&&(nHeight!=0)) { if (rcVorSplitter.left<nLessPos) { rcVorSplitter.left=nLessPos; rcVorSplitter.right=rcVorSplitter.left+nSplitterWidth; } if (rcVorSplitter.right>nMaxPos) { rcVorSplitter.right=nMaxPos; rcVorSplitter.left=rcVorSplitter.right-nSplitterWidth; } } */ //锁定屏幕 LockWindowUpdate(); //移动控件 HDWP hDwp=BeginDeferWindowPos(32); DeferWindowPos(hDwp,m_pGameFrameView->GetSafeHwnd(),NULL,iXExc,iYExc,rcVorSplitter.left-iXExc,nHeight-iYExc,uFlags); DeferWindowPos(hDwp,m_VorSplitter,NULL,rcVorSplitter.left,iYExc,rcVorSplitter.Width(),nHeight-iYExc,uFlags); DeferWindowPos(hDwp,m_pGameFrameControl->GetSafeHwnd(),NULL,rcVorSplitter.right,iYExc,nWidth-rcVorSplitter.right,nHeight-iYExc,uFlags); //隐藏按钮 iBaseXPos-SPLIT_WIDE+addInt //功能按钮 CRect rcButton; int nYPosButton=nHeight-30; int nBeginPos=nWidth-220,nButtonSpace=0; m_btGameOption.GetWindowRect(&rcButton); int myLeftInt,myLeftInt1, myLeftInt2; int btnW = 24; int btnW1 = 20; int btnW2 = rcButton.Width(); if ( (nWidth-iBaseXPos) > 100) { myLeftInt = rcVorSplitter.right- btnW;//-SPLIT_WIDE+addInt;//展开 myLeftInt1 =rcVorSplitter.right- btnW1 ; myLeftInt2 = rcVorSplitter.right- btnW2;//iBaseXPos- btnW2 ; } else { myLeftInt =rcVorSplitter.right- btnW ; myLeftInt1 =rcVorSplitter.right- btnW1 ; myLeftInt2 = rcVorSplitter.right- btnW2 ;//iBaseXPos- btnW2 ; } // DeferWindowPos(hDwp,m_BtHideList,NULL,myLeftInt,TITLE_HIGHT,9,iHeight,uFlags); // DeferWindowPos(hDwp,m_BtHideList,NULL,myLeftInt,TITLE_HIGHT,0,0,uFlags); strTemp.Format("m_BtHideList %d %d iBaseXPos=%d", myLeftInt, TITLE_HIGHT, iBaseXPos); WriteLog(strFile, strTemp); m_BtHideList.MoveWindow( myLeftInt, 180+TITLE_HIGHT, btnW, 69); m_BtYuYin.MoveWindow(myLeftInt1, 275+TITLE_HIGHT, btnW1, 92); showDlgX=myLeftInt - 265; showDlgY=275 - 377/2; int ctrlXInt = myLeftInt2; int ctrlYInt = 20+TITLE_HIGHT; DeferWindowPos(hDwp,m_btGameRule,NULL, ctrlXInt, ctrlYInt,rcButton.Width(),rcButton.Height(),uFlags); ctrlYInt = 60+TITLE_HIGHT; DeferWindowPos(hDwp,m_btGameOption,NULL, ctrlXInt, ctrlYInt,rcButton.Width(),rcButton.Height(),uFlags); EndDeferWindowPos(hDwp); //重画界面 Invalidate(FALSE); UpdateWindow(); //解除锁定 UnlockWindowUpdate(); return; }
//初始化函数 BOOL CDlgLogon::OnInitDialog() { __super::OnInitDialog(); //设置标题 SetWindowText(TEXT("游戏登录")); //广告控件 m_BrowerAD.Create(NULL,NULL,WS_VISIBLE|WS_CHILD,CRect(0,0,0,0),this,100,NULL); m_BrowerAD.Navigate(TEXT("http://www.dc173.com/AD/LogonAD.asp"),NULL,NULL,NULL,NULL); //广告位置 int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); m_BrowerAD.MoveWindow(nXExcursion+4,nYExcursion+5,307,85); //加入标签 m_TabLogonMode.InsertItem(LOGON_BY_ACCOUNTS,TEXT("帐号登录")); m_TabLogonMode.InsertItem(LOGON_BY_USERID,TEXT("ID登录")); //设置控件 m_LineMainPage.SetHyperLinkUrl(TEXT("http://www.dc173.com")); m_LinePassWord.SetHyperLinkUrl(TEXT("http://www.dc173.com/Passwordprotection.asp")); m_LineGetPassWord.SetHyperLinkUrl(TEXT("http://www.dc173.com/FindPassWord.asp")); m_LineMainPage.BringWindowToTop(); m_LinePassWord.BringWindowToTop(); m_LineGetPassWord.BringWindowToTop(); //限制输入 ((CComboBox *)(GetDlgItem(IDC_USER_ID)))->LimitText(11); ((CComboBox *)(GetDlgItem(IDC_ACCOUNTS)))->LimitText(NAME_LEN-1); ((CEdit *)(GetDlgItem(IDC_PASSWORD)))->LimitText(PASS_LEN-1); //登录模式 m_LogonMode=(enLogonMode)AfxGetApp()->GetProfileInt(REG_OPTION_LOGON,TEXT("LogonMode"),LogonMode_Accounts); if ((m_LogonMode!=LogonMode_Accounts)&&(m_LogonMode!=LogonMode_UserID)) m_LogonMode=LogonMode_Accounts; SetLogonMode(m_LogonMode); //记录密码 if (g_GlobalOption.m_enAcountsRule==enAcountsRule_AccountsAndPass) ((CButton *)GetDlgItem(IDC_REM_PASSWORD))->SetCheck(BST_CHECKED); //加载信息 LoadLogonServer(); LoadAccountsInfo(); LoadProxyServerInfo(); //设置焦点 UINT uControlID=IDC_ACCOUNTS; if (m_LogonMode==LogonMode_UserID) uControlID=IDC_USER_ID; if (GetDlgItem(uControlID)->GetWindowTextLength()==0) { GetDlgItem(uControlID)->SetFocus(); ((CComboBox *)GetDlgItem(uControlID))->SetEditSel(0,-1); } else { GetDlgItem(IDC_PASSWORD)->SetFocus(); ((CEdit *)GetDlgItem(IDC_PASSWORD))->SetSel(0,-1); } //框架位置 CRect rcFrame; GetWindowRect(&m_rcNormalFrame); GetDlgItem(IDC_BORDER)->GetWindowRect(&rcFrame); //记录位置 m_nFullWidth=m_rcNormalFrame.Width(); m_nFullHeight=m_rcNormalFrame.Height(); //调整位置 m_rcNormalFrame.bottom=rcFrame.top; MoveWindow(&m_rcNormalFrame,FALSE); return FALSE; }
//绘画界面 void CSkinWndObject::DrawSkinView(CDC * pDC) { //获取参数 CRect ClientRect; m_pWndHook->GetClientRect(&ClientRect); //建立缓冲图 CSkinImage CaptionImage; CaptionImage.Create(ClientRect.Width(),m_SkinAttribute.m_nCaptionHeigth,24); if (CaptionImage.IsNull()) return; //绘画背景 CDC BufferDC; BufferDC.CreateCompatibleDC(NULL); BufferDC.SelectObject(CaptionImage); DrawCaption(&BufferDC,CaptionImage.GetWidth(),CaptionImage.GetHeight()); //建立 DC if (pDC==NULL) { CClientDC ClientDC(m_pWndHook); ClientDC.BitBlt(m_nXExcursionPos,0,CaptionImage.GetWidth(),CaptionImage.GetHeight(),&BufferDC,0,0,SRCCOPY); //ClientDC.Draw3dRect(&ClientRect,RGB(0,0,0),RGB(0,0,0)); BufferDC.DeleteDC(); } else { pDC->BitBlt(m_nXExcursionPos,0,CaptionImage.GetWidth(),CaptionImage.GetHeight(),&BufferDC,0,0,SRCCOPY); //pDC->Draw3dRect(&ClientRect,RGB(0,0,0),RGB(0,0,0)); } //获取标题 TCHAR strTitle[128]; GetWindowText(*m_pWndHook,strTitle,CountArray(strTitle)); //计算位置 INT nYPos=(m_SkinAttribute.m_nCaptionHeigth-12)/2+2; INT nXPos=35; //建立缓冲图 CClientDC ClientDC(m_pWndHook); ClientDC.SetBkMode(TRANSPARENT); ClientDC.SelectObject(m_SkinAttribute.m_DefaultFont); ClientDC.SetTextAlign(TA_LEFT); //变量定义 int nStringLength=lstrlen(strTitle); int nXExcursion[8]={1,1,1,0,-1,-1,-1,0}; int nYExcursion[8]={-1,0,1,1,1,0,-1,-1}; int nXExcursion1=GetXExcursionPos(); int nYExcursion1=GetYExcursionPos(); CImageHandle m_FramLeft(&m_SkinAttribute.m_FramLeft); if (m_SkinAttribute.m_FramLeft.IsNull()) return ; CImageHandle m_BottomM(&m_SkinAttribute.m_BottomM); if (m_SkinAttribute.m_BottomM.IsNull()) return ; CImageHandle m_FramRight(&m_SkinAttribute.m_FramRight); if (m_SkinAttribute.m_FramRight.IsNull()) return ; CImageHandle BottomL(&m_SkinAttribute.m_BottomL); if (m_SkinAttribute.m_BottomL.IsNull()) return ; CImageHandle BottomR(&m_SkinAttribute.m_BottomR); if (m_SkinAttribute.m_BottomR.IsNull()) return ; int nLeftWidth=m_FramLeft->GetHeight(); int nMidWidth=m_BottomM->GetWidth(); int nRightWidth=m_FramRight->GetHeight(); for (int i=ClientRect.top+CaptionImage.GetHeight();i<ClientRect.bottom-BottomL->GetHeight();i+=nLeftWidth) m_SkinAttribute.m_FramLeft.BitBlt(ClientDC,nXExcursion1,i); for (int i=ClientRect.top+CaptionImage.GetHeight();i<ClientRect.bottom-BottomR->GetHeight();i+=nRightWidth) m_SkinAttribute.m_FramRight.BitBlt(ClientDC,ClientRect.Width()-nXExcursion1-m_FramRight->GetWidth(),i); for (int i=nXExcursion1+BottomL->GetWidth();i<ClientRect.Width()-m_FramRight->GetWidth();i+=nMidWidth) m_SkinAttribute.m_BottomM.BitBlt(ClientDC,i,ClientRect.Height()-m_BottomM->GetHeight()); m_SkinAttribute.m_BottomL.BitBlt(ClientDC,0,ClientRect.Height()-BottomL->GetHeight()); m_SkinAttribute.m_BottomR.BitBlt(ClientDC,ClientRect.Width()-BottomR->GetWidth()-nXExcursion1,ClientRect.Height()-BottomR->GetHeight()); //绘画边框 // ClientDC.SetTextColor(RGB(231,192,137)); // for (int i=0;i<CountArray(nXExcursion);i++) // { // ClientDC.TextOut(nXPos,nYPos,strTitle,nStringLength); // } //CImageHandle TitleLeft1(&m_SkinAttribute.m_TitleLeft); //if (m_SkinAttribute.m_TitleLeft1.IsNull()) return ; //CImageHandle TitleMid1(&m_SkinAttribute.m_TitleMid); //if (m_SkinAttribute.m_TitleMid1.IsNull()) return ; //CImageHandle TitleRight1(&m_SkinAttribute.m_TitleRight); //if (m_SkinAttribute.m_TitleRight1.IsNull()) return ; //int nLeftWidth=TitleLeft1->GetHeight(); //int nMidWidth=TitleMid1->GetWidth(); //int nRightWidth=TitleRight1->GetWidth(); /*for (int i=ClientRect.top;i<ClientRect.bottom;i+=nLeftWidth) TitleLeft1->BitBlt(BufferDC.m_hDC,ClientRect.left,i);*/ /*for (int i=nLeftWidth;i<nXMinDrawPause;i+=nMidWidth) TitleMid1->BitBlt(pDC->m_hDC,i,0); TitleRight1->BitBlt(pDC->m_hDC,nXMinDrawPause,0);*/ //绘画标题m_SkinAttribute.m_crCaptionTXColor //ClientDC.SetTextColor(m_SkinAttribute.m_crCaptionTXColor); //ClientDC.TextOut(nXPos,nYPos,strTitle); /*for (int i=ClientRect.top;i<ClientRect.bottom;i+=nLeftWidth) TitleLeft1->BitBlt(BufferDC.m_hDC,ClientRect.left,i);*/ BufferDC.DeleteDC(); return; }
//调整界面 void CGameFrameDlg::RectifyControl(int nWidth, int nHeight) { ///////////////////////////////////////////////////////////////////////////// CRect rcClient; GetWindowRect(&rcClient); int nWidth1=rcClient.Width(); int nHeight1=rcClient.Height(); //调整判断 if ((nWidth1!=0)&&(nHeight1!=0)) { //框架位置 CRect rcFrame; rcFrame.SetRect(3,3,nWidth1-2,nHeight1-2); //窗口区域 CRgn RegionWindow; RegionWindow.CreateRoundRectRgn(rcFrame.left,rcFrame.top,rcFrame.right,rcFrame.bottom,5,5); //设置区域 SetWindowRgn(RegionWindow,TRUE); } /////////////////////////////////////////////////////////////////////////// //状态判断 if (m_bInitDialog==false) return; //变量定义 CRect rcVorSplitter; const int nSplitterWidth=3; const int iXExc=GetXExcursionPos(); const int iYExc=GetYExcursionPos(); const UINT uFlags=SWP_NOACTIVATE|SWP_NOZORDER|SWP_NOCOPYBITS; //获取位置 m_VorSplitter.GetWindowRect(&rcVorSplitter); ScreenToClient(&rcVorSplitter); //调整拆分条 if (m_bRectify==false) { //设置变量 m_bRectify=true; //设置位置 if (m_bHideList==false) { rcVorSplitter.left=nWidth-380+12; rcVorSplitter.right=rcVorSplitter.left+nSplitterWidth+127; } else { rcVorSplitter.right=nWidth; rcVorSplitter.left=nWidth-8; } } //设置拆分范围 if (m_bHideList==false) { int nLessPos=nWidth-295,nMaxPos=nWidth-295; m_VorSplitter.SetSplitterRange(nLessPos,nMaxPos); if ((nWidth!=0)&&(nHeight!=0)) { if (rcVorSplitter.left<nLessPos) { rcVorSplitter.left=nLessPos; rcVorSplitter.right=rcVorSplitter.left+nSplitterWidth; } if (rcVorSplitter.right>nMaxPos) { rcVorSplitter.right=nMaxPos; rcVorSplitter.left=rcVorSplitter.right-nSplitterWidth; } } } if (m_VorSplitter.GetSplitterType()==HorSpliter) rcVorSplitter.SetRect(nWidth,0,nWidth,nHeight); //锁定屏幕 LockWindowUpdate(); //移动控件 HDWP hDwp=BeginDeferWindowPos(32); m_VorSplitter.ShowWindow(0); CImageHandle TitleLeft1(&m_SkinAttribute.m_FramLeft); if (m_SkinAttribute.m_FramLeft.IsNull()) return ; CImageHandle TitleMid1(&m_SkinAttribute.m_BottomM); if (m_SkinAttribute.m_BottomM.IsNull()) return ; CImageHandle TitleRight1(&m_SkinAttribute.m_FramRight); if (m_SkinAttribute.m_FramRight.IsNull()) return ; //if(true==g_GlobalOption.bNiuNiuGame) //{ //DeferWindowPos(hDwp,m_pGameFrameView->GetSafeHwnd(),NULL,iXExc+TitleLeft1->GetWidth(),iYExc,nWidth-TitleRight1->GetWidth()-iXExc-TitleLeft1->GetWidth(),nHeight-iYExc-TitleMid1->GetHeight(),uFlags); ////DeferWindowPos(hDwp,m_VorSplitter,NULL,rcVorSplitter.left,iYExc,rcVorSplitter.Width(),nHeight-iYExc-3,uFlags); //DeferWindowPos(hDwp,m_pGameFrameControl->GetSafeHwnd(),NULL,rcVorSplitter.right,iYExc,0,0,uFlags); //}else //{ DeferWindowPos(hDwp,m_btOptionSet,NULL, nWidth-160,5,23,23,uFlags); //DeferWindowPos(hDwp,m_btSound,NULL, nWidth-160,0,22,22,uFlags); DeferWindowPos(hDwp,m_pGameFrameView->GetSafeHwnd(),NULL,iXExc+TitleLeft1->GetWidth()-1,iYExc,rcVorSplitter.right+50+22,nHeight-iYExc-TitleMid1->GetHeight(),uFlags); //DeferWindowPos(hDwp,m_pGameFrameView->GetSafeHwnd(),NULL,iXExc+TitleLeft1->GetWidth(),iYExc,nWidth - RightT->GetWidth()-10,nHeight-iYExc-TitleMid1->GetHeight(),uFlags); //DeferWindowPos(hDwp,m_VorSplitter,NULL,rcVorSplitter.left,iYExc,rcVorSplitter.Width(),nHeight-iYExc-3,uFlags); DeferWindowPos(hDwp,m_pGameFrameControl->GetSafeHwnd(),NULL,nWidth-215,iYExc,215,nHeight-iYExc-TitleMid1->GetHeight(),uFlags); //} EndDeferWindowPos(hDwp); //重画界面 Invalidate(FALSE); UpdateWindow(); //解除锁定 UnlockWindowUpdate(); //控制按钮 CRect rcControl; //m_btControl.GetClientRect(&rcControl); //m_btControl.SetWindowPos(NULL,rcVorSplitter.left+(rcVorSplitter.Width()-rcControl.Width())/2+3,(nHeight-rcControl.Height())/2,0,0,uFlags|SWP_NOSIZE); m_btControl.ShowWindow(0); m_btOptionSet.ShowWindow(SW_SHOW); m_btSound.ShowWindow(0); //设置变量 m_bRectify=false; return; }
//绘画函数 void CDlgCustomFace::OnPaint() { CPaintDC dc(this); //获取位置 CRect rcRect; GetClientRect(&rcRect); int nXExcursion=GetXExcursionPos(); int nYExcursion=GetYExcursionPos(); //绘画内框 CPen BorderPen(PS_SOLID,1,m_SkinAttribute.m_crInsideBorder); CPen * pOldPen=dc.SelectObject(&BorderPen); CRect rcDrawRect(nXExcursion,nYExcursion,rcRect.Width()-2*nXExcursion,rcRect.Height()); dc.SelectObject(m_SkinAttribute.m_brBackGround); if (m_bMaxSize==true) rcDrawRect.DeflateRect(3,3,3,2); else rcDrawRect.DeflateRect(3,4,3,4); dc.RoundRect(&rcDrawRect,CPoint(8,8)); dc.SelectObject(pOldPen); BorderPen.DeleteObject(); //绘画边框 CRect rcSmallFace(SMALL_FRAME_LEFT-FRAME_SPACE, SMALL_FRAME_TOP-FRAME_SPACE, SMALL_FRAME_RIGHT+FRAME_SPACE, SMALL_FRAME_BOTTOM+FRAME_SPACE); dc.Draw3dRect(rcSmallFace, FRAME_TL_COLOR1, FRAME_RB_COLOR1); rcSmallFace.DeflateRect(1,1,1,1); dc.Draw3dRect(rcSmallFace, FRAME_TL_COLOR2, FRAME_RB_COLOR2); //绘画边框 CRect rcLargeFace(LARGE_FRAME_LEFT-FRAME_SPACE, LARGE_FRAME_TOP-FRAME_SPACE, LARGE_FRAME_RIGHT+FRAME_SPACE, LARGE_FRAME_BOTTOM+FRAME_SPACE); dc.Draw3dRect(rcLargeFace, FRAME_TL_COLOR1, FRAME_RB_COLOR1); rcLargeFace.DeflateRect(1,1,1,1); dc.Draw3dRect(rcLargeFace, FRAME_TL_COLOR2, FRAME_RB_COLOR2); //绘画头像 tagGlobalUserData &GlobalUserData = g_GlobalUnits.GetGolbalUserData(); if ( !m_Image.IsNull() ) { CDC *pDC = GetDC() ; //窗体大小 CRect rcSmallFace(SMALL_FRAME_LEFT, SMALL_FRAME_TOP, SMALL_FRAME_RIGHT, SMALL_FRAME_BOTTOM); CRect rcLargeFace(LARGE_FRAME_LEFT, LARGE_FRAME_TOP, LARGE_FRAME_RIGHT, LARGE_FRAME_BOTTOM); //设置模式 dc.SetStretchBltMode(HALFTONE); //绘画图片 m_Image.StretchBlt(dc.GetSafeHdc(), rcSmallFace); m_Image.StretchBlt(dc.GetSafeHdc(), rcLargeFace); //释放资源 ReleaseDC(pDC); } else if(GlobalUserData.dwUserID!=0 && GlobalUserData.dwCustomFaceVer!=0) { CDC *pDC = GetDC() ; g_GlobalUnits.m_UserFaceRes->DrawNormalFace(pDC,SMALL_FRAME_LEFT,SMALL_FRAME_TOP, GlobalUserData.wFaceID,GlobalUserData.dwUserID,GlobalUserData.dwCustomFaceVer,32,32); g_GlobalUnits.m_UserFaceRes->DrawCustomBigFace(pDC,LARGE_FRAME_LEFT,LARGE_FRAME_TOP, GlobalUserData.dwUserID,GlobalUserData.dwCustomFaceVer); //释放资源 ReleaseDC(pDC); } //绘画标题 __super::DrawSkinView(&dc); }