void CSearchBarCtrl::OnPaint() { CPaintDC dc(this); CRect rtTriangle; CRect rtBack; CClientRect rtClient(this); CBufferDC bufDC(dc.GetSafeHdc(), rtClient); rtTriangle.CopyRect(rtClient); SendMessage(WM_ERASEBKGND, (WPARAM) bufDC.GetSafeHdc(), 1); CSize sizeIcon; CRect rtIcon; CFaceManager::GetInstance()->GetImageSize(m_nCurrentIcon, sizeIcon); CenterRect(&rtIcon, rtClient, sizeIcon); rtIcon.left = rtClient.left + MARGIN_WIDTH; rtIcon.top = rtClient.top + MARGIN_WIDTH; rtIcon.right = rtIcon.left + sizeIcon.cx; rtBack.left = rtClient.left + 2; rtBack.top = rtClient.top + 2; rtBack.bottom = rtClient.bottom; rtBack.right = sizeIcon.cx - 8; if (m_bHover) { bufDC.FillSolidRect(rtBack, RGB(226,226,226));//RGB(238,236,221) } else { bufDC.FillSolidRect(rtBack, RGB(240,240,240));//RGB(238,236,221) } { CPenDC pen(bufDC.GetSafeHdc(), RGB(200,200,200)); bufDC.MoveTo(rtBack.bottom + 6, rtBack.top - 1); bufDC.LineTo(rtBack.bottom + 6, rtBack.right - 5); } m_ImageList.Draw(&bufDC, m_nCurrentIcon, CPoint(rtIcon.left, rtIcon.top), ILD_NORMAL); rtTriangle.left = rtClient.left + MARGIN_WIDTH + 1; rtTriangle.bottom = rtClient.bottom - rtClient.Height()/2 + MARGIN_WIDTH; rtTriangle.right = rtTriangle.left + sizeIcon.cx; DrawTriangle(&bufDC, rtTriangle); }
BOOL CImageWindow::__Create() { AFX_MANAGE_STATE(AfxGetStaticModuleState()); if( !m_pImpl->Create(CImageWindow_Impl::IDD, GetParent()) ) return FALSE; m_pImpl->ShowWindow(SW_SHOW); CRect rtClient(0, 0, 0, 0); GetClientRect(&rtClient); m_pImpl->MoveWindow(rtClient); return TRUE; }
void CToolBarCtrlZ::OnPaint() { CPaintDC dc(this); // device context for painting CRect rtClip; dc.GetClipBox(&rtClip); CClientRect rtClient(this); CBufferDC bufDC(dc.GetSafeHdc(), rtClient); if (!DrawBk(&bufDC, rtClient)) DrawParentBk(GetSafeHwnd(), bufDC.GetSafeHdc()); int i; CRect rtItem; CRect rtInsersect; CPoint ptCursor; BOOL bHover; GetCursorPos(&ptCursor); ScreenToClient(&ptCursor); for (i = 0; i < GetButtonCount(); i++) { if (GetItemRect(i, &rtItem)) { rtInsersect.IntersectRect(&rtClip, &rtItem); if (!rtInsersect.IsRectEmpty()) { bHover = m_mouseMgr.MouseOver() && rtItem.PtInRect(ptCursor); DrawItem(&bufDC, i, rtItem, bHover); } } } }
BOOL CCheckDiskDlg::OnInitDialog() { CDialog::OnInitDialog(); CRect rtClient(0, 0, 514, 315); CRgn rgn; rgn.CreateRoundRectRgn(rtClient.left, rtClient.top, rtClient.right, rtClient.bottom, 5, 5); m_btnTitle.SetTextStyle(DEFAULT_FONT_NAME, 16, RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), I8SkinCtrl_ns::CI8OldButton::BTEXT_LEFT, TRUE); m_btnTitle.MoveWindow(&CRect(40, 10, 160, 30)); CRect rc(25, 60, 140, 75); m_btnDrvList.MoveWindow(&rc); rc.OffsetRect(300, 0); m_btnCheckDrvList.MoveWindow(&rc); rc.OffsetRect(-295, 18); rc.right += 40; rc.bottom += 135; m_lstLeft.MoveWindow(&rc); rc.OffsetRect(300, 0); m_lstRigth.MoveWindow(&rc); rc.OffsetRect(-121, 10); rc.right = rc.left + 97; rc.bottom = rc.top + 25; m_btnAdd.SetImage(TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮.png"), TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮_鼠标经过.png")); m_btnAdd.SetTextStyle(DEFAULT_FONT_NAME, 12, RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), I8SkinCtrl_ns::CI8OldButton::BTEXT_CENTER); m_btnAdd.MoveWindow(&rc); rc.OffsetRect(0, 30); m_btnAddAll.SetImage(TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮.png"), TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮_鼠标经过.png")); m_btnAddAll.SetTextStyle(DEFAULT_FONT_NAME, 12, RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), I8SkinCtrl_ns::CI8OldButton::BTEXT_CENTER); m_btnAddAll.MoveWindow(&rc); rc.OffsetRect(0, 40); m_btnDel.SetImage(TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮.png"), TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮_鼠标经过.png")); m_btnDel.SetTextStyle(DEFAULT_FONT_NAME, 12, RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), I8SkinCtrl_ns::CI8OldButton::BTEXT_CENTER); m_btnDel.MoveWindow(&rc); rc.OffsetRect(0, 30); m_btnDelAll.SetImage(TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮.png"), TEXT("Skin/Wnd/CheckDisk/背景_系统设置_按钮_鼠标经过.png")); m_btnDelAll.SetTextStyle(DEFAULT_FONT_NAME, 12, RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), RGB(0, 0, 0), I8SkinCtrl_ns::CI8OldButton::BTEXT_CENTER); m_btnDelAll.MoveWindow(&rc); rc = CRect(125, 265, 227, 295); m_btnCheck.SetImage(TEXT("Skin/Wnd/CheckDisk/按钮_开始检测修复_默认状态.png"), TEXT("Skin/Wnd/CheckDisk/按钮_开始检测修复_鼠标经过.png")); m_btnCheck.MoveWindow(&rc); rc.OffsetRect(170, 0); m_btnCancel.SetImage(TEXT("Skin/Wnd/CheckDisk/按钮_取消_默认状态.png"), TEXT("Skin/Wnd/CheckDisk/按钮_取消_鼠标经过.png")); m_btnCancel.MoveWindow(&rc); DWORD nSize = GetLogicalDrives(); for (int idx=2; idx<32; idx++) { TCHAR drv = TEXT('A') + idx; CString szItem = TEXT("X:"); szItem.SetAt(0, drv); TCHAR szDev[MAX_PATH] = {0}; if (QueryDosDevice(szItem, szDev, MAX_PATH) && StrNCmpI(WXNDA_DEV, szDev, _tcsclen(WXNDA_DEV)) == 0) continue ; szItem += TEXT("\\"); if ((nSize & (1<<idx)) && (GetDriveType(szItem) == DRIVE_FIXED)) { TCHAR szContent[MAX_PATH + 6] = {0}; lstrcat(szContent, szItem); GetVolumeInformation(szItem, szContent + 3, MAX_PATH + 1, NULL, NULL, NULL, NULL, 0); //把驱动器标识用()括起来 int nContentLen = lstrlen(szContent + 3); if (nContentLen > 0) { szContent[2] = '('; szContent[nContentLen + 3] = ')'; } m_lstLeft.AddString(szContent); } } MoveWindow(&rtClient, FALSE); SetWindowRgn(rgn, TRUE); CenterWindow(); return TRUE; }
BOOL CMainTabWnd::CreateEx(const RECT& rect, CWnd* pParentWnd, UINT nID) { BOOL bRet = CTabWnd::Create(WS_VISIBLE | WS_CHILD | WS_CLIPCHILDREN, rect, pParentWnd, nID); if (!bRet) return bRet; CMainTabBkDraw *pBkDraw = new CMainTabBkDraw; SetBarBkDraw(pBkDraw); m_dlgResource.Create(m_dlgResource.IDD, this); m_dlgDownload.Create(m_dlgDownload.IDD, this); m_dlgShare.Create(m_dlgShare.IDD, this); m_dlgSearch.Create(m_dlgSearch.IDD,this); m_dlgAdvance.Create(m_dlgAdvance.IDD, this); SetBarBreadth(41); if (thePrefs.m_bStartShowHomePage) { m_aposTabs[TI_RESOURCE] = CmdFuncs::TabWnd_AddMainButton(this, _T("Resource"), m_dlgResource.GetSafeHwnd(), _T("PNG_MAINTAB_BROWSER_N"), _T("PNG_MAINTAB_BROWSER_A")); } m_aposTabs[TI_DOWNLOAD] = CmdFuncs::TabWnd_AddMainButton(this, _T("Download"), m_dlgDownload.GetSafeHwnd(), _T("PNG_MAINTAB_DOWNLOAD_N"), _T("PNG_MAINTAB_DOWNLOAD_A")); //m_aposTabs[TI_SHARE] = CmdFuncs::TabWnd_AddMainButton(this, _T("Share"), // theApp.emuledlg->sharedfileswnd->GetSafeHwnd(), // theApp.LoadIcon(_T("MAINTAB_SHARE_N"), 32, 32), // theApp.LoadIcon(_T("MAINTAB_SHARE_A"), 32, 32)); m_aposTabs[TI_SHARE] = CmdFuncs::TabWnd_AddMainButton(this, _T("Share"), m_dlgShare.GetSafeHwnd(), _T("PNG_MAINTAB_SHARE_N"), _T("PNG_MAINTAB_SHARE_A")); m_aposTabs[TI_SEARCH] = CmdFuncs::TabWnd_AddMainButton(this, _T("Search"), m_dlgSearch.GetSafeHwnd(), _T("PNG_MAINTAB_SEARCH_N"), _T("PNG_MAINTAB_SEARCH_A")); if (CPreferences::m_bAdvancePageShowed) { m_aposTabs[TI_ADVANCE] = CmdFuncs::TabWnd_AddMainButton(this, GetResString(IDS_ADVANCE), m_dlgAdvance.GetSafeHwnd(), _T("PNG_MAINTAB_ADVANCED_N"), _T("PNG_MAINTAB_ADVANCED_A")); } CTabItem_MainTabBn *pTiMainTabBn = NULL; pTiMainTabBn = new CTabItem_MainTabBn; m_aposTabs[TI_BN] = AddTab(pTiMainTabBn); CClientRect rtClient(this); m_dlgSidePanel.Create(m_dlgSidePanel.IDD, this); CRect rtSidePanel; rtSidePanel = rtClient; rtSidePanel.left = rtSidePanel.right - m_dlgSidePanel.GetDesireWidth(); rtSidePanel.bottom = rtSidePanel.top + GetBarBreadth(); m_dlgSidePanel.MoveWindow(&rtSidePanel); CTabItem_Wnd *pTabItemWnd = new CTabItem_Wnd; pTabItemWnd->SetItemWnd(&m_dlgSidePanel, FALSE); pTabItemWnd->SetWindowLength(m_dlgSidePanel.GetDesireWidth()); pTabItemWnd->SetAttribute(pTabItemWnd->ATTR_FIXLEN | pTabItemWnd->ATTR_TAIL); AddTab(pTabItemWnd); //创建速度指示面板 //CTabItem_Wnd *pTabItemWnd2 = new CTabItem_Wnd; //pTabItemWnd2->SetItemWnd(&m_SpeedMeterDlg, FALSE); //pTabItemWnd2->SetWindowLength(m_SpeedMeterDlg.GetDesireWidth()); //pTabItemWnd2->SetAttribute(pTabItemWnd2->ATTR_TAIL | pTabItemWnd2->ATTR_FILL); //AddTab(pTabItemWnd2); //InitAnchors(); Localize(); //{begin} VC-dgkang 2008年8月13日 if (!thePrefs.m_bStartShowHomePage) CmdFuncs::SetMainActiveTab(CMainTabWnd::TI_DOWNLOAD); //{end} return bRet; }
void CToolBarCtrlZ::DrawItem(CDC *pDC, int iIndex, const CRect &rtItem, BOOL bHover) { UINT uItemId; UINT uItemState; TBBUTTON tbb; TCHAR szText[1024]; TBBUTTONINFO tbi; CArray<CxImage*, CxImage*> *parrImgs = NULL; CxImage *pIconImg = NULL; int iIconTop; CRect rtDraw; CRect rtText; COLORREF clrText; CClientRect rtClient(this); rtDraw = rtItem; rtDraw.top = rtClient.top; rtDraw.bottom = rtClient.bottom; if (!GetButton(iIndex, &tbb)) return; uItemId = tbb.idCommand; uItemState = GetState(uItemId); parrImgs = &m_arrImgs; if ( !IsButtonEnabled(uItemId) ) { clrText = RGB(204, 128, 128); if (0 != m_arrDisableImgs.GetCount()) parrImgs = &m_arrDisableImgs; } else { clrText = RGB(255, 254, 253); if (TBSTATE_PRESSED & uItemState/*IsButtonPressed(uItemId)*/) rtDraw.OffsetRect(1, 1); else if (bHover/*iIndex == GetHotItem()*/) rtDraw.OffsetRect(-1, -2); } ZeroMemory(&tbi, sizeof(TBBUTTONINFO)); tbi.cbSize = sizeof(TBBUTTONINFO); tbi.dwMask = TBIF_TEXT | TBIF_IMAGE; tbi.pszText = szText; tbi.cchText = 1024; //if (GetButtonInfo(p->nmcd.dwItemSpec, &tbi)) GetButtonInfo(uItemId, &tbi); { rtText = rtDraw; if (tbi.iImage < parrImgs->GetCount()) { pIconImg = parrImgs->GetAt(tbi.iImage); if (NULL != pIconImg) { iIconTop = rtDraw.Height() - pIconImg->GetHeight(); iIconTop /= 2; iIconTop += rtDraw.top; pIconImg->Draw(pDC->GetSafeHdc(), rtDraw.left, iIconTop); rtText.left += pIconImg->GetWidth() + 4; } } { CWndFontDC fontDC(pDC->GetSafeHdc(), GetSafeHwnd()); CTextDC textDC(pDC->GetSafeHdc(), clrText); pDC->DrawText(tbi.pszText, -1, &rtText, DT_LEFT | DT_VCENTER | DT_SINGLELINE); } } }
void CDlgMaintabDownload::InitTabs(void) { CClientRect rtClient(this); CRect rtDownload; GetDlgItem(IDC_TAB_LIST)->GetWindowRect(&rtDownload); ScreenToClient(&rtDownload); m_DownloadTabWnd.Create(WS_CHILD | WS_VISIBLE, rtDownload, this, IDC_TAB_LIST); //m_tabwndDlList.SetBkColor(GetSysColor(COLOR_3DFACE), FALSE); CPageTabBkDraw *pBarBkDraw = new CPageTabBkDraw; m_DownloadTabWnd.SetBarBkDraw(pBarBkDraw); CRect rcSpl; GetDlgItem(IDC_STATIC_SPLITER)->GetWindowRect(&rcSpl); ScreenToClient(&rcSpl); rcSpl.top = rtDownload.bottom; rcSpl.bottom = rcSpl.top; m_wndSplitter.Create(WS_CHILD | WS_VISIBLE, rcSpl, this, IDC_SPLITTER_DOWNLOAD); m_wndSplitter.SetNormalDraw(FALSE); CRect rtTabInfo; GetDlgItem(IDC_TAB_INFO)->GetWindowRect(&rtTabInfo); ScreenToClient(&rtTabInfo); rtTabInfo.top = rcSpl.top + m_wndSplitter.GetHBreadth(); m_tabwndInfo.Create(WS_CHILD | WS_VISIBLE, rtTabInfo, this, IDC_TAB_INFO); m_lcDownloaded.Create(WS_CHILD | WS_VISIBLE | LVS_REPORT | LVS_OWNERDRAWFIXED, CRect(0, 0, 0, 0), this, IDC_DOWNLOADED_LISTCTRL); m_RssWnd.Create(m_RssWnd.IDD,this); m_plcDownloading = (CListCtrl*) theApp.emuledlg->transferwnd->GetDlgItem(IDC_DOWNLOADLIST); m_aposTabs[TI_DOWNLOADING] = CmdFuncs::TabWnd_AddNormalTab(&m_DownloadTabWnd, GetResString(IDS_DLTAB_DOWNLOADING), m_plcDownloading->GetSafeHwnd()); m_aposTabs[TI_DOWNLOADED] = CmdFuncs::TabWnd_AddNormalTab(&m_DownloadTabWnd, GetResString(IDS_DLTAB_COMPLETED), m_lcDownloaded.GetSafeHwnd()); m_aposTabs[TI_RSSWND] = CmdFuncs::TabWnd_AddNormalTab(&m_DownloadTabWnd,GetResString(IDS_DLTAB_RSS), m_RssWnd.GetSafeHwnd()); m_DownloadTabWnd.InitBtWnd(); m_DownloadTabWnd.m_BtWnd.ShowWindow(SW_HIDE);//隐藏RSS切换按钮 m_DownloadTabWnd.m_BtWnd.m_btIco.EnableWindow(FALSE);//初始化按钮状态 m_DownloadTabWnd.m_BtWnd.m_btItem.EnableWindow(TRUE); CTabItem_Cake *pTiCake = NULL; if(! m_dlgDetailInfo.GetSafeHwnd()) { m_dlgDetailInfo.Create(m_dlgDetailInfo.IDD, this); } //添加日志页 if(!m_dlgPeerLog.GetSafeHwnd()) { m_dlgPeerLog.Create(m_dlgPeerLog.IDD, this); } //m_aposTabs[TI_DETAIL] = CmdFuncs::TabWnd_AddNormalTab(&m_tabwndInfo, GetResString(IDS_DETAIL_INFO), m_dlgDetailInfo.GetSafeHwnd()); pTiCake = new CTabItem_Cake; pTiCake->SetCaption(GetResString(IDS_DETAIL_INFO)); pTiCake->SetRelativeWnd(m_dlgDetailInfo.GetSafeHwnd()); pTiCake->SetIcon(_T("PNG_DETAILINFO")); m_posInfo = m_aposTabs[TI_DETAIL] = m_tabwndInfo.AddTab(pTiCake); pTiCake = NULL; //VC-dgkang #ifndef _FOREIGN_VERSION if(! m_pwebUserComment) { // don't delete it, auto-deleted m_pwebUserComment = new CHtmlCtrl; CRect rect(0,0,1,1); // tab will resize it m_pwebUserComment->Create(NULL, NULL ,WS_CHILD | WS_VISIBLE &~WS_BORDER, rect,this, 34345,NULL); m_pwebUserComment->SetSilent(true); //m_webUserComment.Create(IDD_WEBBROWSER); } pTiCake = new CTabItem_Cake; pTiCake->SetCaption(GetResString(IDS_USER_COMMENT)); pTiCake->SetRelativeWnd(m_pwebUserComment->GetSafeHwnd()); pTiCake->SetIcon(_T("PNG_DETAILCOMMENT")); m_aposTabs[TI_REMARK] = m_tabwndInfo.AddTab(pTiCake); pTiCake = NULL; #endif //添加日志标签 pTiCake = new CTabItem_Cake; pTiCake->SetCaption(GetResString(IDS_TASK_LOG)); pTiCake->SetRelativeWnd(m_dlgPeerLog.GetSafeHwnd()); pTiCake->SetIcon(_T("PNG_PEERLOG")); m_posPeerLog = m_aposTabs[TI_PEERLOG] = m_tabwndInfo.AddTab(pTiCake); pTiCake = NULL; //添加上传标签 pTiCake = new CTabItem_Cake; pTiCake->SetCaption(GetResString(IDS_UPLOADING)); pTiCake->SetRelativeWnd(((CListCtrl*) theApp.emuledlg->transferwnd->GetDlgItem(IDC_UPLOADLIST))->GetSafeHwnd()); pTiCake->SetIcon(_T("PNG_DETAILUPLOAD")); m_posUploading = m_aposTabs[TI_UPLOADING] = m_tabwndInfo.AddTab(pTiCake); pTiCake = NULL; }