void CCellListCtrl::OnPaint() { CPaintDC dc(this); // device context for painting int dcStateID = dc.SaveDC(); if (m_hFont != NULL) { dc.SelectObject(CFont::FromHandle(m_hFont)); } CRect rcClient(0,0,0,0); GetClientRect(&rcClient); int eachHeight = GetItemHeightInPixel(&dc); dc.SetTextColor(m_textColor); dc.SetBkColor(m_backColor); int itemCount = GetItemCount(); int columnCount = GetColumnCount(); for (int iItem = 0; iItem < itemCount; ++iItem) { int currentCellLeft = 0; CRect rcLine(0, iItem * eachHeight, rcClient.right, (iItem + 1) * eachHeight); dc.FillSolidRect(&rcLine, dc.GetBkColor()); for (int iColumn = 0; iColumn < columnCount; ++iColumn) { int eachWidth = GetColumnWidth(iColumn); CRect rcCell(currentCellLeft, rcLine.top, currentCellLeft + eachWidth, rcLine.bottom); dc.DrawText(GetItemText(iItem, iColumn), -1, &rcCell, DT_LEFT | DT_NOPREFIX); currentCellLeft += eachWidth; } } dc.RestoreDC(dcStateID); }
void CXTPEditListBoxToolBar::OnNcPaint() { CXTPWinThemeWrapper wrpTreeView; wrpTreeView.OpenTheme(0, L"LISTBOX"); if (wrpTreeView.IsAppThemed() && wrpTreeView.IsAppThemeReady() && (GetOwner()->GetExStyle() & WS_EX_CLIENTEDGE)) { CXTPWindowRect rc(this); CXTPClientRect rcClient(this); COLORREF clr = GetXtremeColor(COLOR_BTNSHADOW); if (rc.Width() == rcClient.Width() + 2 && SUCCEEDED(wrpTreeView.GetThemeColor(0, 0, TMT_BORDERCOLOR, &clr))) { CWindowDC dc(this); dc.FillSolidRect(0, 0, rc.Width(), 1, clr); dc.FillSolidRect(0, 0, 1, rc.Height(), clr); dc.FillSolidRect(rc.Width() - 1, 0, 1, rc.Height(), clr); dc.FillSolidRect(1, rc.Height() - 1, rc.Width() - 2, 1, GetXtremeColor(COLOR_3DFACE)); return; } } Default(); }
void CXTPSkinObjectProgress::DoStep(int nStep) { CXTPClientRect rcClient(this); CXTPSkinManagerClass* pClassProgress = GetSkinClass(); DWORD dwStyle = GetStyle(); BOOL bVert = dwStyle & PBS_VERTICAL; CRect rcMargins = pClassProgress->GetThemeRect(bVert ? PP_BARVERT : PP_BAR, 0, TMT_SIZINGMARGINS); rcClient.DeflateRect(rcMargins); int dxBlock = pClassProgress->GetThemeInt(0, 0, TMT_PROGRESSCHUNKSIZE, rcClient.Height() * 2 / 3); int dxSpace = pClassProgress->GetThemeInt(0, 0, TMT_PROGRESSSPACESIZE, 2); if (dxBlock == 1 && dxSpace == 0) dxBlock = 8; m_nMarqueePos += (dxBlock + dxSpace) * nStep; if (m_nMarqueePos > rcClient.right) m_nMarqueePos = rcClient.left + m_nMarqueePos - rcClient.right; Invalidate(FALSE); }
void CXTPEditListBoxToolBar::MoveButtons() { if (!::IsWindow(m_hWnd)) return; // Set the initial size for the first button. CXTPClientRect rcClient(this); rcClient.left = rcClient.right-BTN_OFFSET; for (int i = _countof(m_arButton)-1; i >= 0 ; --i) { if (::IsWindow(m_arButton[i].GetSafeHwnd())) { m_arClipRect[i] = rcClient; ::SetWindowPos(m_arButton[i].GetSafeHwnd(), NULL, rcClient.left, rcClient.top, rcClient.Width(), rcClient.Height(), SWP_FRAMECHANGED); rcClient.OffsetRect(-BTN_OFFSET, 0); } else { m_arClipRect[i] = CRect(0, 0, 0, 0); } } Invalidate(); }
/*virtual*/ void CWndToolbox::OnPaint() { CRect rcClient(m_rcClient); if ( m_bFirst ) { CDesign::Shadow(rcClient, 0xc0ffffff); // aa rr gg bb //rcClient.Deflate( 2, 2, 2, 2 ); //CDesign::Shadow(rcClient, 0x80ffffff); // aa rr gg bb m_bFirst = false; } if ( m_nFocus == -1 ) m_nFocus = 0; #define FOC(n) (m_nFocus==n)?RGB565(ffffff):RGB565(808080) PrintBold( m_rcClient.left + 8, m_rcClient.top + 2 + 0*16, FOC(0), RGB565(000000), "\x10 Waveform manager"); PrintBold( m_rcClient.left + 8, m_rcClient.top + 2 + 1*16, FOC(1), RGB565(000000), m_bAdcEnabled ? "\x10 Pause" : "\x10 Resume" ); PrintBold( m_rcClient.left + 8, m_rcClient.top + 2 + 2*16, FOC(2), RGB565(000000), "\x10 Reset setings"); char str[32]; BIOS::DBG::sprintf(str, "bat %d%%", BIOS::SYS::GetBattery()); BIOS::LCD::Line( m_rcClient.left + 4, m_rcClient.bottom - 20, m_rcClient.right - 4, m_rcClient.bottom - 20, RGB565(e0e0e0) ); BIOS::LCD::Line( m_rcClient.left + 4, m_rcClient.bottom - 19, m_rcClient.right - 4, m_rcClient.bottom - 19, RGB565(808080) ); BIOS::LCD::Printf( m_rcClient.left + 8, m_rcClient.bottom - 16, RGB565(000000), RGBTRANS, "\x10 Select \xfe Close"); PrintBold( m_rcClient.left + 8 + 120, m_rcClient.bottom - 16 - 18, RGB565(ffff00), RGB565(000000), str); //BIOS::LCD::Printf( m_rcClient.left + 8 + 130, m_rcClient.top + 8, RGB565(000000), RGBTRANS, str); }
static void DrawProperties(HWND hwnd, HDC hdc) { PropertiesLayout *layoutData = FindPropertyWindowByHwnd(hwnd); ScopedFont fontLeftTxt(GetSimpleFont(hdc, LEFT_TXT_FONT, LEFT_TXT_FONT_SIZE)); ScopedFont fontRightTxt(GetSimpleFont(hdc, RIGHT_TXT_FONT, RIGHT_TXT_FONT_SIZE)); HGDIOBJ origFont = SelectObject(hdc, fontLeftTxt); /* Just to remember the orig font */ SetBkMode(hdc, TRANSPARENT); ClientRect rcClient(hwnd); FillRect(hdc, &rcClient.ToRECT(), gBrushAboutBg); SetTextColor(hdc, WIN_COL_BLACK); /* render text on the left*/ SelectObject(hdc, fontLeftTxt); for (size_t i = 0; i < layoutData->Count(); i++) { PropertyEl *el = layoutData->At(i); DrawText(hdc, el->leftTxt, -1, &el->leftPos.ToRECT(), DT_RIGHT | DT_NOPREFIX); } /* render text on the right */ SelectObject(hdc, fontRightTxt); for (size_t i = 0; i < layoutData->Count(); i++) { PropertyEl *el = layoutData->At(i); RectI rc = el->rightPos; if (rc.x + rc.dx > rcClient.x + rcClient.dx - PROPERTIES_RECT_PADDING) rc.dx = rcClient.x + rcClient.dx - PROPERTIES_RECT_PADDING - rc.x; DrawText(hdc, el->rightTxt, -1, &rc.ToRECT(), DT_LEFT | DT_PATH_ELLIPSIS | DT_NOPREFIX); } SelectObject(hdc, origFont); }
// in order to host SumatraPDF as a plugin, create a (child) window and // handle the following messages for it: LRESULT CALLBACK PluginParentWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { if (WM_CREATE == msg) { // run SumatraPDF.exe with the -plugin command line argument PluginStartData *data = (PluginStartData *)((CREATESTRUCT *)lParam)->lpCreateParams; ScopedMem<WCHAR> cmdLine(str::Format(L"-plugin %d \"%s\"", hwnd, data->filePath)); if (data->fileOriginUrl) { cmdLine.Set(str::Format(L"-plugin \"%s\" %d \"%s\"", data->fileOriginUrl, hwnd, data->filePath)); } ShellExecute(hwnd, L"open", data->sumatraPath, cmdLine, NULL, SW_SHOW); } else if (WM_SIZE == msg) { // resize the SumatraPDF window HWND hChild = FindWindowEx(hwnd, NULL, NULL, NULL); if (hChild) { ClientRect rcClient(hwnd); MoveWindow(hChild, rcClient.x, rcClient.y, rcClient.dx, rcClient.dy, FALSE); } else { InvalidateRect(hwnd, NULL, TRUE); UpdateWindow(hwnd); } } else if (WM_COPYDATA == msg) { // handle a URL to open externally (or prevent it) HWND hChild = FindWindowEx(hwnd, NULL, NULL, NULL); COPYDATASTRUCT *cds = (COPYDATASTRUCT *)lParam; if (cds && 0x4C5255 /* URL */ == cds->dwData && (HWND)wParam == hChild) { ScopedMem<WCHAR> url(str::conv::FromUtf8((const char *)cds->lpData)); ShellExecute(hChild, L"open", url, NULL, NULL, SW_SHOW); return TRUE; } } else if (WM_PAINT == msg) { // paint an error message (only needed if SumatraPDF couldn't be run) PAINTSTRUCT ps; HDC hDC = BeginPaint(hwnd, &ps); RECT rcClient = ClientRect(hwnd).ToRECT(); HBRUSH brushBg = CreateSolidBrush(0xCCCCCC); FillRect(hDC, &rcClient, brushBg); LOGFONT lf = { 0 }; lf.lfHeight = -14; str::BufSet(lf.lfFaceName, dimof(lf.lfFaceName), L"MS Shell Dlg"); HFONT hFont = CreateFontIndirect(&lf); hFont = (HFONT)SelectObject(hDC, hFont); SetTextColor(hDC, 0x000000); SetBkMode(hDC, TRANSPARENT); DrawText(hDC, L"Error: Couldn't run SumatraPDF!", -1, &rcClient, DT_CENTER | DT_VCENTER | DT_SINGLELINE | DT_NOPREFIX); DeleteObject(SelectObject(hDC, hFont)); DeleteObject(brushBg); EndPaint(hwnd, &ps); } else if (WM_DESTROY == msg) { // clean-up happens automatically when the window is destroyed PostQuitMessage(0); } return DefWindowProc(hwnd, msg, wParam, lParam); }
void CDxDatePickerMonth::DrawMonthHeader(CDCHandle dc) { if (m_rcHeader.IsRectEmpty()) return; COleDateTime dtMonth = GetMonth(); CRect rcHeader = m_rcHeader; CRect rcLeftScroll = m_rcLeftScroll; CRect rcRightScroll = m_rcRightScroll; CRect rcClient(m_pControl->m_rcControl); //dc.Draw3dRect(0, 0, rcClient.Width(), rcClient.Height(), m_clrStaticBorder, m_clrStaticBorder); CRect rcHeaderBk = m_rcMonth; rcHeaderBk.bottom = rcHeader.bottom; // fill background dc.FillSolidRect(rcHeaderBk, RGB(191, 219, 255)); // draw header text dc.SetBkColor(GetSysColor(COLOR_BTNFACE)); dc.SetTextColor(GetSysColor(COLOR_WINDOWTEXT)); HFONT hFontOld = (HFONT)dc.SelectFont(CDxFontManager::GetSingleton().GetFont(DUIF_DEFAULTFONT)); CString strText; if (!m_pControl->m_strYearMonthFormat.IsEmpty()) { //strText = GetDateFormat(dtMonth, pControl->m_strYearMonthFormat); } else { strText.Format(_T("%s %d"), (LPCTSTR)m_pControl->GetMonthName( dtMonth.GetMonth()), dtMonth.GetYear()); } dc.DrawText(strText, strText.GetLength(), &rcHeader, DT_SINGLELINE | DT_VCENTER | DT_CENTER); // draw left scroll triangle if (!rcLeftScroll.IsRectEmpty()) { // draw left triangle itself if (GetShowLeftScroll()) DrawScrollTriangle(dc, rcLeftScroll, TRUE, m_clrMonthHeaderButton, m_pControl->m_bYearsTriangle); } // draw right scroll triangle if (!rcRightScroll.IsRectEmpty()) { // draw right triangle itself if (GetShowRightScroll()) DrawScrollTriangle(dc, rcRightScroll, FALSE, m_clrMonthHeaderButton, m_pControl->m_bYearsTriangle); } dc.SelectFont(hFontOld); }
void CDatePickerDialogBar::OnSize(UINT nType, int cx, int cy) { CDialogBar::OnSize(nType, cx, cy); if (!m_wndDatePicker.m_hWnd) return; CXTPClientRect rcClient(this); CXTPWindowRect rcDatePicker(&m_wndDatePicker); ScreenToClient(&rcDatePicker); rcDatePicker.top = rcClient.top; rcDatePicker.bottom = rcClient.bottom; m_wndDatePicker.MoveWindow(&rcDatePicker); }
void CXTPShortcutListBox::OnPaint() { CPaintDC dc(this); // device context for painting // Get the client rect. CXTPClientRect rcClient(this); // Paint to a memory device context to help // eliminate screen flicker. CXTPBufferDC memDC(dc); memDC.FillSolidRect(rcClient, GetTheme()->m_crgBack); // Now let the window do its default painting... CWnd::DefWindowProc (WM_PAINT, (WPARAM)memDC.m_hDC, 0); }
void CSizableReBar::OnNcCalcSize( BOOL bCalcValidRects, NCCALCSIZE_PARAMS FAR* lpncsp ) { CControlBar::OnNcCalcSize( bCalcValidRects, lpncsp ); CRect rcWindow( lpncsp->rgrc[ 0 ] ); CRect rcClient( rcWindow ); CRect rcEdge; if ( GetSizingEdgeRect( rcWindow, rcEdge, GetSizingEdgeHitCode() ) ) { if ( rcClient.SubtractRect( rcWindow, rcEdge ) ) { lpncsp->rgrc[ 0 ] = rcClient; } } }
void CScanMgrDlg::DrawBorder(CDC *pDC) { CPen *pOldPen = NULL; CPen pPen; CRect rcClient(0, 0, 0, 0); GetClientRect(&rcClient); pPen.CreatePen(PS_SOLID, 1, RGB(118, 190, 254)); pDC->SelectStockObject(NULL_BRUSH); pOldPen = pDC->SelectObject(&pPen); pDC->Rectangle(&rcClient); pDC->SelectObject(pOldPen); pPen.Detach(); // ReleaseDC(pDC); }
void CBlendSelectWnd::OnPaint() { CPaintDC dc(this); CRect rcClient(0,0,m_dwWidth, m_dwMargin + m_dwTitleHeight + m_dwMargin); CDC dcMem; if (!dcMem.CreateCompatibleDC(&dc)) return; CBitmap bm; bm.CreateCompatibleBitmap(&dc, rcClient.Width(), rcClient.Height()); dcMem.SelectObject(&bm); dcMem.FillSolidRect(&rcClient, m_crBkgnd); dcMem.SetTextColor(m_crText); dcMem.SetBkColor(m_crBkgnd); // Draw Close Button ::DrawIconEx(dcMem.GetSafeHdc(), m_rcBtnClose.left, m_rcBtnClose.top, m_bCloseDown ? m_hIconCloseDown : m_hIconClose, 16, 16, 0, NULL, DI_NORMAL); // Draw Icon int nIconSize = 0; if (m_hIcon) { dcMem.DrawIcon(rcClient.left + m_dwMargin, rcClient.top + m_dwMargin, m_hIcon); nIconSize = 32; } // Draw Title CRect rcTitle = rcClient; rcTitle.left += (nIconSize > 0) ? m_dwMargin * 2 + nIconSize : m_dwMargin; rcTitle.right -= m_dwMargin; rcTitle.top += m_dwMargin; rcTitle.bottom = rcClient.bottom; if (m_ftTitle.GetSafeHandle()) { dcMem.SelectObject(&m_ftTitle); } dcMem.DrawText(m_strTitle, m_strTitle.GetLength(), &rcTitle, DT_WORDBREAK | DT_NOPREFIX); dc.BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &dcMem, 0, 0, SRCCOPY); }
void CMiniMule::AutoSizeAndPosition(CSize sizClient) { TRACE("AutoSizeAndPosition: %dx%d\n", sizClient.cx, sizClient.cy); CSize sizDesktop(GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN)); if (sizClient.cx > sizDesktop.cx/2) sizClient.cx = sizDesktop.cx/2; if (sizClient.cy > sizDesktop.cy/2) sizClient.cy = sizDesktop.cy/2; CRect rcWnd; GetWindowRect(&rcWnd); if (sizClient.cx > 0 && sizClient.cy > 0) { CRect rcClient(0, 0, sizClient.cx, sizClient.cy); AdjustWindowRectEx(&rcClient, GetStyle(), FALSE, GetExStyle()); rcClient.OffsetRect(-rcClient.left, -rcClient.top); rcWnd = rcClient; } CRect rcTaskbar(0, sizDesktop.cy - 34, sizDesktop.cx, sizDesktop.cy); HWND hWndTaskbar = ::FindWindow(_T("Shell_TrayWnd"), NULL); if (hWndTaskbar) ::GetWindowRect(hWndTaskbar, &rcTaskbar); CPoint ptWnd; UINT uTaskbarPos = GetTaskbarPos(hWndTaskbar); switch (uTaskbarPos) { case ABE_TOP: ptWnd.x = sizDesktop.cx - 8 - rcWnd.Width(); ptWnd.y = rcTaskbar.Height() + 8; break; case ABE_LEFT: ptWnd.x = rcTaskbar.Width() + 8; ptWnd.y = sizDesktop.cy - 8 - rcWnd.Height(); break; case ABE_RIGHT: ptWnd.x = sizDesktop.cx - rcTaskbar.Width() - 8 - rcWnd.Width(); ptWnd.y = sizDesktop.cy - 8 - rcWnd.Height(); break; default: ASSERT( uTaskbarPos == ABE_BOTTOM ); ptWnd.x = sizDesktop.cx - 8 - rcWnd.Width(); ptWnd.y = sizDesktop.cy - rcTaskbar.Height() - 8 - rcWnd.Height(); } SetWindowPos(NULL, ptWnd.x, ptWnd.y, rcWnd.Width(), rcWnd.Height(), SWP_NOZORDER | SWP_SHOWWINDOW); }
void CXTPMarqueeCtrl::OnPaint() { if (IsMarquee()) { CXTPClientRect rcClient(this); CPaintDC dc(this); CXTPBufferDC dcMem(dc); OnDrawBackground(&dcMem, rcClient); OnDrawMarquee(&dcMem, rcClient); } else { CProgressCtrl::OnPaint(); } }
void QSideViewImageWidget::SetImage( QImage* bmp ) { QRect rcClient( 0,0,width()-1,height()-1 ); rcClient.adjust( 1, 1, -1, -1 ); if( !m_bmpImage || m_bmpImage->isNull() ) { m_bmpImage = new QImage( rcClient.width(), rcClient.height(), QImage::Format_RGB32 ); m_bmpImage->fill( Qt::black ); } else { if( m_bmpImage->width() != rcClient.width() || m_bmpImage->height() != rcClient.height() ) { delete m_bmpImage; m_bmpImage = NULL; m_bmpImage = new QImage( rcClient.width(), rcClient.height(), QImage::Format_RGB32 ); m_bmpImage->fill( Qt::black ); } } QPainter dc( m_bmpImage ); if( !bmp ) { QString str( text() ); dc.fillRect( rcClient, Qt::black ); dc.setPen( Qt::white ); dc.drawText( rcClient, str, QTextOption( Qt::AlignVCenter | Qt::AlignHCenter ) ); m_nOrignImageHeight = 0; } else { dc.drawImage( rcClient, *bmp, QRect( 0, 7, bmp->width(), bmp->height()-14 ) ); m_nOrignImageHeight = bmp->height()-14; } update(); }
void CSingleExamDlg::DrawBorder(CDC *pDC) { CPen *pOldPen = NULL; CPen pPen; CRect rcClient(0, 0, 0, 0); GetClientRect(&rcClient); if (!_bMouseInDlg) pPen.CreatePen(PS_SOLID, 1, RGB(166, 218, 239)); else pPen.CreatePen(PS_SOLID, 1, RGB(106, 218, 239)); pDC->SelectStockObject(NULL_BRUSH); pOldPen = pDC->SelectObject(&pPen); // pDC->Rectangle(&rcClient); pDC->RoundRect(rcClient, CPoint(10, 10)); pDC->SelectObject(pOldPen); pPen.Detach(); // ReleaseDC(pDC); }
bool NewBrowserInstance(IUIControler *pUIControl,PVOID *ppPageRef,CString strUrl,LONG * nNewPageID/*=NULL*/) { IWBCoreNotifyer *pCoreNotify = NULL; IUINotifyer *pUINotify = NULL; if( pUIControl == NULL ) { //创建一个新框架 pUIControl = NewMainFrame(NULL,NULL,theApp.m_bMutiTab,theApp.m_bMenuBar,theApp.m_bToolBar,theApp.m_bCommandBar); //创建一个新的UI和浏览器内核通知实例 pUINotify = new INotifyerInstance(pUIControl); } else { pUIControl->GetNofiyerPoint(&pUINotify); } pCoreNotify = dynamic_cast<IWBCoreNotifyer *>(pUINotify); //创建一个新的浏览器内核 HANDLE hPageThread = NULL; CRect rcClient(0,0,800,600); pUIControl->ControlQueryClientRect(&rcClient); IWBCoreControler *pWBCoreControl = NewWBCore( pCoreNotify, ppPageRef,&hPageThread,NULL ,rcClient,nNewPageID); HWND hCoreWnd = NULL; pWBCoreControl->ControlQueryWnd(&hCoreWnd); SetPropW(hCoreWnd,L"CorePageThread",hPageThread); pUIControl->SetNofiyerPoint(pUINotify); //连接内核和框架 AttachWBCoreToFrame(pWBCoreControl,pCoreNotify,pUIControl); if ( strUrl.GetLength() > 0 ) { pWBCoreControl->ControlGotoUrl(strUrl); } return true; }
static void DrawProperties(HWND hwnd, HDC hdc) { PropertiesLayout *layoutData = FindPropertyWindowByHwnd(hwnd); ScopedFont fontLeftTxt(CreateSimpleFont(hdc, LEFT_TXT_FONT, LEFT_TXT_FONT_SIZE)); ScopedFont fontRightTxt(CreateSimpleFont(hdc, RIGHT_TXT_FONT, RIGHT_TXT_FONT_SIZE)); HGDIOBJ origFont = SelectObject(hdc, fontLeftTxt); /* Just to remember the orig font */ SetBkMode(hdc, TRANSPARENT); ClientRect rcClient(hwnd); RECT rTmp = rcClient.ToRECT(); ScopedGdiObj<HBRUSH> brushAboutBg(CreateSolidBrush(GetAboutBgColor())); FillRect(hdc, &rTmp, brushAboutBg); SetTextColor(hdc, WIN_COL_BLACK); /* render text on the left*/ SelectObject(hdc, fontLeftTxt); for (size_t i = 0; i < layoutData->Count(); i++) { PropertyEl *el = layoutData->At(i); const WCHAR *txt = el->leftTxt; rTmp = el->leftPos.ToRECT(); DrawText(hdc, txt, -1, &rTmp, DT_RIGHT | DT_NOPREFIX); } /* render text on the right */ SelectObject(hdc, fontRightTxt); for (size_t i = 0; i < layoutData->Count(); i++) { PropertyEl *el = layoutData->At(i); const WCHAR *txt = el->rightTxt; RectI rc = el->rightPos; if (rc.x + rc.dx > rcClient.x + rcClient.dx - PROPERTIES_RECT_PADDING) rc.dx = rcClient.x + rcClient.dx - PROPERTIES_RECT_PADDING - rc.x; rTmp = rc.ToRECT(); UINT format = DT_LEFT | DT_NOPREFIX | (el->isPath ? DT_PATH_ELLIPSIS : DT_WORD_ELLIPSIS); DrawText(hdc, txt, -1, &rTmp, format); } SelectObject(hdc, origFont); }
bool CHtmlCtrl::Create(CWnd* pParent, const RECT& rc, LPCTSTR pszHomeURL /*= NULL*/, bool fBtnText /*= true*/) { AfxEnableControlContainer(); CRect rcClient(rc); if (!CreateControl(CLSID_WebBrowser, NULL, WS_VISIBLE | WS_CHILD, rcClient, pParent, AFX_IDW_PANE_FIRST)) { TRACE0("Unable to create control"); return false; } LPUNKNOWN lpUnk = GetControlUnknown(); HRESULT hr = lpUnk->QueryInterface(IID_IWebBrowser2, (void**) &m_pBrowser); if (FAILED(hr)) { m_pBrowser = NULL; TRACE0("Unable to create web browser"); return false; } return true; }
NPError NP_LOADDS NPP_SetWindow(NPP instance, NPWindow *npwin) { InstanceData *data; if (!instance) { plogf("sp: NPP_SetWindow() errro: NPERR_INVALID_INSTANCE_ERROR"); return NPERR_INVALID_INSTANCE_ERROR; } plogf("sp: NPP_SetWindow()"); data = (InstanceData *)instance->pdata; if (!npwin) { data->npwin = NULL; } else if (data->npwin != npwin) { HWND hWnd = (HWND)npwin->window; data->npwin = npwin; SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG_PTR)data); SetWindowLongPtr(hWnd, GWLP_WNDPROC, (LONG_PTR)PluginWndProc); } else { // The plugin's window hasn't changed, just its size HWND hWnd = (HWND)npwin->window; HWND hChild = FindWindowEx(hWnd, NULL, NULL, NULL); if (hChild) { ClientRect rcClient(hWnd); MoveWindow(hChild, rcClient.x, rcClient.y, rcClient.dx, rcClient.dy, FALSE); } } return NPERR_NO_ERROR; }
BOOL COptLgnDlg::OnInitDialog() { CDialog::OnInitDialog(); CRect rcClient(0, 0, 469, 179); MoveWindow(&rcClient, FALSE); CRgn rgn; rgn.CreateRoundRectRgn(0, 0, rcClient.Width(), rcClient.Height(), 10, 10); CRect rc = CRect(10, 5, 10 + 100, 30); m_btnCaption.MoveWindow(&rc); rc = CRect(rcClient.right-56, 3, rcClient.right-15, 24+3); m_btnClose.MoveWindow(&rc); m_btnClose.SetImage(TEXT("Skin/Wnd/SysSet/按钮_关闭_默认状态.png"), TEXT("Skin/Wnd/SysSet/按钮_关闭_鼠标经过.png"), TEXT("Skin/Wnd/SysSet/按钮_关闭_鼠标按下.png")); rc = CRect(188, 60, 400, 85); m_btnTip.MoveWindow(&rc); rc.OffsetRect(5, 32); rc.right = rc.left + 245; rc.bottom = rc.top + 16; m_edtPassword.MoveWindow(&rc); rc = CRect(200, 130, 200+97, 130+25); m_btnOK.SetImage(TEXT("Skin/Wnd/optlogin/按钮_登陆_默认状态.png"), TEXT("Skin/Wnd/optlogin/按钮_登陆_鼠标经过.png")); m_btnOK.MoveWindow(&rc); rc.OffsetRect(rc.Width() + 20, 0); m_btnCancel.SetImage(TEXT("Skin/Wnd/optlogin/按钮_取消_默认状态.png"), TEXT("Skin/Wnd/optlogin/按钮_取消_鼠标经过.png")); m_btnCancel.MoveWindow(&rc); SetWindowRgn(rgn, TRUE); CenterWindow(); m_edtPassword.SetFocus(); return FALSE; }
BOOL CXTPHeaderCtrl::RecalcLayout() { if (!::IsWindow(m_hWnd)) return FALSE; HD_LAYOUT hdl; CXTPClientRect rcClient(this); hdl.prc = &rcClient; WINDOWPOS wp; ZeroMemory(&wp, sizeof(WINDOWPOS)); hdl.pwpos = ℘ if (!Header_Layout(m_hWnd, &hdl)) return FALSE; // Set the size, position, and visibility of the header window. ::SetWindowPos(m_hWnd, wp.hwndInsertAfter, wp.x, wp.y, wp.cx, wp.cy, wp.flags | SWP_FRAMECHANGED); CWnd* pWndParent = GetParent(); if (!::IsWindow(pWndParent->GetSafeHwnd())) return FALSE; // Force list control to recalculate it's layout. CXTPWindowRect rcWindow(pWndParent); const int cx = rcWindow.Width(); const int cy = rcWindow.Height(); pWndParent->SetWindowPos(NULL, 0, 0, cx, cy+1, SWP_NOMOVE | SWP_FRAMECHANGED); pWndParent->SetWindowPos(NULL, 0, 0, cx, cy, SWP_NOMOVE | SWP_FRAMECHANGED); return TRUE; }
void QAdvancedCalibrationWidget::paintEvent(QPaintEvent *) { QPainter painter; QRect rcClient( 0, 0, width()-1, height()-1 ); painter.begin( this ); switch( m_eCurrentPart ) { case spDetectionRange: m_DetectionRange.draw( painter, rcClient ); break; case spBent: m_BentAdjustment.draw( painter, rcClient ); break; default: break; } QFont ft( font() ); ft.setPixelSize( rcClient.height() / 30 ); ft.setWeight(QFont::Black); painter.setFont( ft ); QFontMetricsF fm( ft ); qreal dW = fm.width( m_strEscapeMsg ); qreal dH = fm.height(); QRectF rcText( rcClient.center().x() - (dW / 2.f), rcClient.height() / 4 - (dH / 2.f), dW, dH ); QPen penText( Qt::SolidLine ); penText.setColor( QColor(160,160,160) ); painter.setPen( penText ); painter.drawText( rcText, m_strEscapeMsg, QTextOption(Qt::AlignCenter) ); painter.end(); }
BOOL CUptOptDlg::OnInitDialog() { CDialog::OnInitDialog(); CRect rcClient(0, 0, 356, 218); CRgn rgn; rgn.CreateRoundRectRgn(rcClient.left, rcClient.top, rcClient.right, rcClient.bottom, 5, 5); CRect rc = rcClient; rc.left = rc.right - 51; rc.right = rc.right - 10; rc.bottom = rc.top + 24; m_btnClose.MoveWindow(&rc); m_btnClose.SetImage(TEXT("Skin/Wnd/GongGao/x.png"), TEXT("Skin/Wnd/GongGao/x_a.png")); rc = CRect(60, 52, 260, 76); m_btnQuick.MoveWindow(&rc); m_btnQuick.SetCheck(BST_CHECKED); rc.OffsetRect(0, 40); m_btnForce.MoveWindow(&rc); rc.OffsetRect(-10, 60); rc.right = rc.left + 97; rc.bottom = rc.top + 25; m_btnOK.SetImage(TEXT("Skin/Wnd/GongGao/按钮_确定_默认状态.png"), TEXT("Skin/Wnd/GongGao/按钮_确定_鼠标经过.png")); m_btnOK.MoveWindow(&rc); rc.OffsetRect(rc.Width() + 20, 0); m_btnCancel.SetImage(TEXT("Skin/Wnd/GongGao/button03.png"), TEXT("Skin/Wnd/GongGao/按钮_取消_鼠标经过.png")); m_btnCancel.MoveWindow(&rc); MoveWindow(&rcClient, FALSE); CenterWindow(); SetWindowRgn(rgn, TRUE); return TRUE; }
void CTrashCleanCtrl::OnPaint(CDCHandle /*dcHandle*/) { CPaintDC dc(m_hWnd); CBitmap memBmp; CDC memDC; CRect rcClient(m_rcClient); CString str; // str.Format(L"paint times is %d\n", counter++); // OutputDebugStr(str); // dc.FillSolidRect(m_rcRealClient, RGB(255, 255, 255)); if (m_vecTrashItems.size() <= 0) { CString strWait = L"正在加载,请稍候..."; HFONT hFont = KuiFontPool::GetFont(FALSE, FALSE, FALSE); HFONT oldFont = dc.SelectFont(hFont); CRect rcDraw(m_rcClient); rcDraw.top += 50; dc.FillSolidRect(m_rcRealClient, RGB(255, 255, 255)); dc.DrawText(strWait, strWait.GetLength(), &rcDraw, DT_CENTER | DT_VCENTER); dc.SelectFont(oldFont); return; } memDC.CreateCompatibleDC(dc.m_hDC); memBmp.CreateCompatibleBitmap(dc.m_hDC, m_rcRealClient.Width(), m_rcRealClient.Height()); memDC.SetBkMode(TRANSPARENT); SelectObject(memDC, memBmp); memDC.FillSolidRect(m_rcRealClient, RGB(255, 255,255)); _OnRealPaint(memDC); m_nHeight = int((m_rcRealClient.Height() - m_rcClient.Height()) * (m_nPos * 1.0) / (m_rcRealClient.Height())); dc.BitBlt(0, 0, m_rcClient.Width(), m_rcClient.Height(), memDC, 0, m_nHeight, SRCCOPY); ReleaseDC(memDC); }
BOOL CMsgDlg::OnInitDialog() { CDialog::OnInitDialog(); CRect rcClient(0, 0, 463, 215); CRgn rgn; rgn.CreateRoundRectRgn(rcClient.left, rcClient.top, rcClient.right, rcClient.bottom, 5, 5); CRect rc = rcClient; rc.left = rc.right - 51; rc.right = rc.right - 10; rc.bottom = rc.top + 24; m_btnClose.MoveWindow(&rc); m_btnClose.SetImage(TEXT("Skin/Wnd/Msg/x.png"), TEXT("Skin/Wnd/Msg/x_a.png")); rc.left = 10; rc.top = 5; rc.bottom = rc.top + 24; rc.right = rc.left + 100; m_btnTip.MoveWindow(&rc); m_btnTip.SetTextStyle(DEFAULT_FONT_NAME, 12, RGB(255, 255, 255), RGB(255, 255, 255), RGB(255, 255, 255), RGB(255, 255, 255)); rc.left = 200; rc.top = 175; rc.right = rc.left + 97; rc.bottom = rc.top + 25; m_btnOK.SetImage(TEXT("Skin/Wnd/Msg/button01.png")); m_btnOK.MoveWindow(&rc); m_btnContent.MoveWindow(10, 40, 440, 80); m_btnContent.SetWindowText(m_strContent); m_btnContent.SetTextStyle(DEFAULT_FONT_NAME, 12, RGB(255, 255, 0), RGB(255, 255, 0), RGB(255, 255, 0), RGB(255, 255, 0), CButtonEx::BTEXT_CENTER); MoveWindow(&rcClient, FALSE); CenterWindow(); SetWindowRgn(rgn, TRUE); return TRUE; }
void CChildFrame::ActivateFrame(int nCmdShow) { // TODO: ここに特定なコードを追加するか、もしくは基本クラスを呼び出してください。 CMainFrame * pMain = (CMainFrame *)GetMDIFrame( ); CRect rcClient(pMain->m_OldClientRect); //新しい扉が開くとき親扉の空間を全て占める switch(pMain->m_iCurrWndCnt){ case 1: this->m_bLeftMost = TRUE; break; } CRect lR; if(pMain->m_bSlided){ lR = pMain->m_leftRect; } else lR = CRect(rcClient.left-1,rcClient.top+21,rcClient.right,rcClient.bottom-68); this->SetWindowPos(&CWnd::wndBottom ,lR.left,lR.top,lR.right,lR.bottom,SWP_NOREDRAW); CMDIChildWnd::ActivateFrame(nCmdShow); }
extern "C" LRESULT CALLBACK ComboBoxListBoxProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam) { switch (nMsg) { case WM_RBUTTONDOWN: { // If you want to select all/unselect all using the // right button, remove this ifdef. Personally, I don't really like it #if FALSE if (g_pCurComboBox != 0) { INT nCount = g_pCurComboBox->GetCount(); INT nSelCount = 0; for (INT i = 0; i < nCount; i++) { if (g_pCurComboBox->GetCheck(i)) nSelCount++; } g_pCurComboBox->SelectAll(nSelCount != nCount); // Make sure to invalidate this window as well InvalidateRect(hWnd, 0, FALSE); g_pCurComboBox->GetParent()->SendMessage(WM_COMMAND, MAKELONG(GetWindowLongPtr(g_pCurComboBox->m_hWnd, GWLP_ID), CBN_SELCHANGE), (LPARAM)g_pCurComboBox->m_hWnd); } #endif break; } // Make the combobox always return -1 as the current selection. This // causes the lpDrawItemStruct->itemID in DrawItem() to be -1 // when the always-visible-portion of the combo is drawn case LB_GETCURSEL: { return -1; } case WM_CHAR: { if (wParam == VK_SPACE) { // Get the current selection INT nIndex = CallWindowProc(g_pCheckComboBoxWndProc, hWnd, LB_GETCURSEL, wParam, lParam); CRect rcItem; rcItem.SetRectEmpty(); SendMessage(hWnd, LB_GETITEMRECT, nIndex, (LONG_PTR)(VOID *)&rcItem); InvalidateRect(hWnd, rcItem, FALSE); // Invert the check mark g_pCurComboBox->SetCheck(nIndex, !g_pCurComboBox->GetCheck(nIndex)); // Notify that selection has changed g_pCurComboBox->GetParent()->SendMessage(WM_COMMAND, MAKELONG(GetWindowLongPtr(g_pCurComboBox->m_hWnd, GWLP_ID), CBN_SELCHANGE), (LPARAM)g_pCurComboBox->m_hWnd); return 0; } break; } case WM_LBUTTONDOWN: { CRect rcClient(0, 0, 0, 0); GetClientRect(hWnd, rcClient); CPoint pt; pt.x = LOWORD(lParam); pt.y = HIWORD(lParam); if (PtInRect(rcClient, pt)) { INT nItemHeight = SendMessage(hWnd, LB_GETITEMHEIGHT, 0, 0); INT nTopIndex = SendMessage(hWnd, LB_GETTOPINDEX, 0, 0); // Compute which index to check/uncheck INT nIndex = nTopIndex + pt.y / nItemHeight; CRect rcItem(0, 0, 0, 0); SendMessage(hWnd, LB_GETITEMRECT, nIndex, (LONG_PTR)(VOID *)&rcItem); if (PtInRect(rcItem, pt)) { // Invalidate this window InvalidateRect(hWnd, rcItem, FALSE); g_pCurComboBox->SetCheck(nIndex, !g_pCurComboBox->GetCheck(nIndex)); // Notify that selection has changed g_pCurComboBox->GetParent()->SendMessage(WM_COMMAND, MAKELONG(GetWindowLongPtr(g_pCurComboBox->m_hWnd, GWLP_ID), CBN_SELCHANGE), (LPARAM)g_pCurComboBox->m_hWnd); } } // Do the default handling now (such as close the popup // window when clicked outside) break; } case WM_LBUTTONUP: { // Don't do anything here. This causes the combobox popup // windows to remain open after a selection has been made return 0; } } return CallWindowProc(g_pCheckComboBoxWndProc, hWnd, nMsg, wParam, lParam); }
void CXTPShortcutBarPane::RecalcLayout() { if (!m_hWnd) return; CXTPClientRect rc(this); CXTPShortcutBarPaintManager* pPaintManager = m_pShortcutBar->GetPaintManager(); ASSERT(pPaintManager); if (!pPaintManager) return; int nPaneCaptionHeight = m_bShowCaption ? pPaintManager->DrawPaneCaption(NULL, this, FALSE) : 0; int nItemCaptionHeight = pPaintManager->DrawPaneItemCaption(NULL, NULL, FALSE); int nTop = nPaneCaptionHeight; for (int i = 0; i < m_arrItems.GetSize(); i++) { CXTPShortcutBarPaneItem* pItem = m_arrItems[i]; int nClientTop = nTop + (pItem->m_bShowCaption ? nItemCaptionHeight : 0); pItem->m_rcCaption.SetRect(0, nTop, rc.right, nClientTop); if (pItem->IsExpanded()) { CRect rcClient(0 + m_rcIndent.left, m_rcIndent.top + nClientTop, rc.right - m_rcIndent.right, m_rcIndent.top + nClientTop + pItem->m_nHeight); if (rcClient.bottom > rc.bottom) rcClient.bottom = rc.bottom; if (i == m_arrItems.GetSize() - 1) rcClient.bottom = rc.bottom; pItem->m_rcClient = rcClient; nTop = nClientTop + pItem->m_nHeight + m_rcIndent.top + m_rcIndent.bottom; if (pItem->m_pWndClient) { pItem->m_pWndClient->SetWindowPos(0, rcClient.left, rcClient.top, rcClient.Width(), rcClient.Height(), SWP_NOZORDER | SWP_SHOWWINDOW); } } else { pItem->m_rcClient.SetRectEmpty(); nTop = nClientTop; if (pItem->m_pWndClient) { pItem->m_pWndClient->SetWindowPos(0, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_HIDEWINDOW); } } } m_rcMinimizeButton.SetRectEmpty(); if (m_pShortcutBar->IsMinimizeButtonVisible() && (nPaneCaptionHeight > 0 || m_bFlatStyle)) { CSize sz(18, 18); m_rcMinimizeButton = CRect(CPoint(rc.right - sz.cx - 4, max(0, (nPaneCaptionHeight - sz.cy) / 2)), sz); } m_bMinimizeButtonHighlighted = FALSE; Invalidate(FALSE); }