这篇教程C++ GetSysColor函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中GetSysColor函数的典型用法代码示例。如果您正苦于以下问题:C++ GetSysColor函数的具体用法?C++ GetSysColor怎么用?C++ GetSysColor使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了GetSysColor函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: memsetvoid CTreeList::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) { PULONG pMagic = (PULONG) lpDrawItemStruct->itemData; TCHAR lpBuffer[256]; LV_ITEM lvi; LV_COLUMN lvc, lvcprev ; memset(lpBuffer, 0, 256); lvi.mask = LVIF_TEXT | LVIF_PARAM ; lvi.iItem = lpDrawItemStruct->itemID ; lvi.iSubItem = 0; lvi.pszText = lpBuffer ; lvi.cchTextMax = sizeof(lpBuffer); GetItem(&lvi); ::ZeroMemory(&lvc, sizeof(lvc)); ::ZeroMemory(&lvcprev, sizeof(lvcprev)); lvc.mask = LVCF_WIDTH |LVCF_FMT; lvcprev.mask = LVCF_WIDTH | LVCF_FMT; CDC* pDC; pDC = CDC::FromHandle(lpDrawItemStruct->hDC); int nCol; CRect rcText = lpDrawItemStruct->rcItem; CFont Fnt, *pOldFont = NULL; LOGFONT lf; int cyPixels = pDC->GetDeviceCaps(LOGPIXELSY); memset(&lf, 0, sizeof(LOGFONT)); if (pMagic == NULL) { return; } if (*pMagic == EXT2_CDROM_DEVICE_MAGIC || *pMagic == EXT2_DISK_MAGIC) { if (IsVistaOrAbove()) { lstrcpy(lf.lfFaceName, "MS Sans Serif"); /*Courier New*/ lf.lfHeight = -MulDiv(8, cyPixels, 72); lf.lfWeight = TRUE; } else { lstrcpy(lf.lfFaceName, "Arial Black"); /*Courier New*/ lf.lfHeight = -MulDiv(8, cyPixels, 72); lf.lfWeight = TRUE; } } else { lstrcpy(lf.lfFaceName, "MS Sans Serif"); lf.lfHeight = -MulDiv(8, cyPixels, 72); } Fnt.CreateFontIndirect(&lf); pOldFont = (CFont *) pDC->SelectObject(&Fnt); /* loading bitmap */ if (m_hBitmap == NULL) { m_hBitmap = (HBITMAP)::LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_LINE_SEP), IMAGE_BITMAP, 0, 0, 0); if (m_hBitmap) { m_hMemDC = ::CreateCompatibleDC(this->GetDC()->m_hDC); m_hOldBmp = (HBITMAP)::SelectObject(m_hMemDC, m_hBitmap); } } if (TRUE) { if (!m_SelectionFlag) { for (nCol=0; GetColumn(nCol, &lvc); nCol++) { if (nCol > 0) { GetSubItemRect(lpDrawItemStruct->itemID, nCol,LVIR_BOUNDS, m_SelectionRect); } else { GetItemRect(lpDrawItemStruct->itemID, m_SelectionRect,LVIR_BOUNDS); m_SelectionRect.right = GetColumnWidth(0); m_SelectionRect.left = 0; } if (m_SelectionRect.PtInRect(m_Point)) { m_SelectionFlag = TRUE; break; } else { m_SelectionFlag = FALSE; } } } if ((lpDrawItemStruct->itemState & ODS_SELECTED) && m_SelectionFlag ) { CRect rc = lpDrawItemStruct->rcItem; rc.left += 4; rc.right -= 4; rc.top += 1; rc.bottom -= 0; if (*pMagic == EXT2_CDROM_DEVICE_MAGIC || *pMagic == EXT2_DISK_MAGIC) { rc.bottom -= 3; rc.top -= 1; rc.right = (rc.Width() * 7 / 8) + rc.left; } pDC->FillSolidRect(&rc, GetSysColor(m_bFocus ? COLOR_HIGHLIGHT : COLOR_INACTIVEBORDER)); } else {//.........这里部分代码省略.........
开发者ID:Axure,项目名称:Ext3Fsd,代码行数:101,
示例2: rcLabelvoid CHeaderCtrlEx::DrawItem( LPDRAWITEMSTRUCT lpDrawItemStruct ){ CDC dc; dc.Attach( lpDrawItemStruct->hDC ); // Get the column rect CRect rcLabel( lpDrawItemStruct->rcItem ); // Save DC int nSavedDC = dc.SaveDC(); // Set clipping region to limit drawing within column CRgn rgn; rgn.CreateRectRgnIndirect( &rcLabel ); dc.SelectObject( &rgn ); rgn.DeleteObject(); // Draw the background dc.FillRect(rcLabel, &CBrush(::GetSysColor(COLOR_3DFACE))); // Labels are offset by a certain amount // This offset is related to the width of a space character int offset = dc.GetTextExtent(L" ", 1 ).cx*2; // Get the column text and format wchar_t buf[256]; HD_ITEM hditem; hditem.mask = HDI_TEXT | HDI_FORMAT; hditem.pszText = buf; hditem.cchTextMax = 255; GetItem( lpDrawItemStruct->itemID, &hditem ); // Determine format for drawing column label UINT uFormat = DT_SINGLELINE | DT_NOPREFIX | DT_NOCLIP | DT_VCENTER | DT_END_ELLIPSIS ; if( hditem.fmt & HDF_CENTER) uFormat |= DT_CENTER; else if( hditem.fmt & HDF_RIGHT) uFormat |= DT_RIGHT; else uFormat |= DT_LEFT; // Adjust the rect if the mouse button is pressed on it if( lpDrawItemStruct->itemState == ODS_SELECTED ) { rcLabel.left++; rcLabel.top += 2; rcLabel.right++; } // Adjust the rect further if Sort arrow is to be displayed if( lpDrawItemStruct->itemID == (UINT)m_nSortCol ) { rcLabel.right -= 3 * offset; } rcLabel.left += offset; rcLabel.right -= offset; // Draw column label if( rcLabel.left <rcLabel.right ) dc.DrawText(buf,-1,rcLabel, uFormat); // Draw the Sort arrow if( lpDrawItemStruct->itemID == (UINT)m_nSortCol ) { CRect rcIcon( lpDrawItemStruct->rcItem ); // Set up pens to use for drawing the triangle CPen penLight(PS_SOLID, 1, GetSysColor(COLOR_3DHILIGHT)); CPen penShadow(PS_SOLID, 1, GetSysColor(COLOR_3DSHADOW)); CPen *pOldPen = dc.SelectObject( &penLight ); if( m_bSortAsc ) { // Draw triangle pointing upwards dc.MoveTo( rcIcon.right - 2*offset, offset-1); dc.LineTo( rcIcon.right - 3*offset/2, rcIcon.bottom - offset ); dc.LineTo( rcIcon.right - 5*offset/2-2, rcIcon.bottom - offset ); dc.MoveTo( rcIcon.right - 5*offset/2-1, rcIcon.bottom - offset-1 ); dc.SelectObject( &penShadow ); dc.LineTo( rcIcon.right - 2*offset, offset-2); } else { // Draw triangle pointing downwords dc.MoveTo( rcIcon.right - 3*offset/2, offset-1); dc.LineTo( rcIcon.right - 2*offset-1, rcIcon.bottom - offset + 1 ); dc.MoveTo( rcIcon.right - 2*offset-1, rcIcon.bottom - offset ); dc.SelectObject( &penShadow ); dc.LineTo( rcIcon.right - 5*offset/2-1, offset -1 ); dc.LineTo( rcIcon.right - 3*offset/2, offset -1); } // Restore the pen dc.SelectObject( pOldPen ); }//.........这里部分代码省略.........
开发者ID:leiqunni,项目名称:STEP_Unicode,代码行数:101,
示例3: GetWindowRectvoid CXPEdit::DrawEdge(void){ if ( !( GetStyle() & WS_BORDER ) && !( GetExStyle() & WS_EX_CLIENTEDGE ) ) return; BOOL bHaveScrollBar = FALSE; CRect rect; GetWindowRect ( rect ); ScreenToClient( rect ); CDC *pDC = GetDC (); int nSaveDC = pDC->SaveDC(); COLORREF BorderColor, HotColor; BorderColor = RGB(127, 157, 185); HotColor = pDC->GetPixel( rect.left + 2, rect.top + 2 ); if ( !( GetStyle() & ES_READONLY ) && IsWindowEnabled() ) { HotColor = RGB( 255, 255, 255 ); if ( m_bIsFocused ) BorderColor = RGB(127, 157, 255); if ( m_bIsMouseOver ) HotColor = RGB( 253, 216, 137 ); else if ( (GetStyle() & WS_VSCROLL) || (GetStyle() & WS_HSCROLL) ) bHaveScrollBar = TRUE; } CPen pen1, pen2, pen3; pen1.CreatePen( PS_SOLID, 1, BorderColor ); pen2.CreatePen( PS_SOLID, 1, HotColor ); pen3.CreatePen( PS_SOLID, 1, GetSysColor(COLOR_BTNFACE) ); pDC->SelectStockObject( NULL_BRUSH ); pDC->SelectObject( &pen1 ); pDC->Rectangle( rect ); rect.DeflateRect( 1, 1 ); pDC->SelectObject( &pen2 ); if ( !bHaveScrollBar ) pDC->Rectangle( rect ); else { rect.DeflateRect(0,0,1,1); pDC->MoveTo( rect.left, rect.bottom ); pDC->LineTo( rect.left, rect.top ); pDC->LineTo( rect.right, rect.top ); if ( GetStyle() & WS_VSCROLL ) pDC->SelectObject( &pen3 ); pDC->LineTo( rect.right, rect.bottom ); pDC->SelectObject( &pen2 ); if ( GetStyle() & WS_HSCROLL ) pDC->SelectObject( &pen3 ); pDC->LineTo( rect.left, rect.bottom ); } pDC->RestoreDC( nSaveDC ); ReleaseDC ( pDC);}
开发者ID:Lichanglu,项目名称:ENC-1260,代码行数:69,
示例4: CreateSolidBrushvoid CBadTrustDialog::OnInitDialog() { // // Get the background brush for our edit controls // m_hbrBackground = CreateSolidBrush(GetSysColor(COLOR_BTNFACE)); // Load the icon LPSTR idi; switch (m_rrn.hrValid) { case HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND): case TRUST_E_NOSIGNATURE: idi = IDI_EXCLAMATION; break; default: idi = IDI_HAND; break; } HICON hicon = LoadIcon(NULL, idi); ::SendDlgItemMessage(m_hWnd, IDC_BADTRUSTICON, STM_SETICON, (WPARAM)hicon, (LPARAM)0); // Set the window title { TCHAR sz[128]; WideCharToMultiByte(CP_ACP, 0, m_rrn.wszDialogTitle, -1, (LPSTR)sz, 128, NULL, NULL); ::SetWindowText(GetWindow(), sz); } // Set the banter text int cchBanter2; { const int cchMax = INTERNET_MAX_URL_LENGTH+64; TCHAR sz[cchMax]; // Set the top level banter ::LoadString(hinst, IDS_BADTRUSTBANTER1, &sz[0], cchMax); ::SetWindowText(WindowOf(IDC_BADTRUSTBANTER1), &sz[0]); // Set the program name { // // The 'program' name we see can in fact often be a full URL. URLs // can be very long, up to 1024 or so. // if (m_rrn.wszProgramName) { WideCharToMultiByte(CP_ACP, 0, m_rrn.wszProgramName, -1, &sz[0], cchMax, NULL, NULL); } else ::LoadString(hinst, IDS_UNKNOWNPROGRAM, &sz[0], cchMax); TCHAR szF[cchMax]; ::FormatMessage(hinst, &szF[0], cchMax, IDS_BADTRUSTBANTER2, &sz[0]); ::SetWindowText(WindowOf(IDC_BADTRUSTBANTER2), &szF[0]); cchBanter2 = lstrlen(&szF[0]); // // This control is read-only. Note that the text on the control // can be copied using the context menu in the control. // SendMessage(WindowOf(IDC_BADTRUSTBANTER2), EM_SETREADONLY, (WPARAM)TRUE, 0); } // Set the trailing banter UINT ids; switch (m_rrn.hrValid) { case HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND): case TRUST_E_NOSIGNATURE: ids = IDS_BADTRUSTBANTER31; break; case CERT_E_EXPIRED: case CERT_E_VALIDIYPERIODNESTING: ids = IDS_BADTRUSTBANTER32; break; case NTE_BAD_SIGNATURE: ids = IDS_BADTRUSTBANTER33; break; default: ids = IDS_BADTRUSTBANTER34; break; } ::LoadString(hinst, ids, &sz[0], cchMax); ::SetWindowText(WindowOf(IDC_BADTRUSTBANTER3), &sz[0]); } // Position the controls so that all are visible { UINT spacing = GetSystemMetrics(SM_CYFIXEDFRAME) * 2; RECT rc1, rc2, rc3; int h; POINT pt; // // Where on the screen is the client area of the dialog? // pt.x = 0;//.........这里部分代码省略.........
开发者ID:mingpen,项目名称:OpenNT,代码行数:101,
示例5: OptionsProcINT_PTR CALLBACK OptionsProc(HWND hdlg,UINT msg,WPARAM wparam,LPARAM lparam){ switch(msg) { case WM_INITDIALOG: { int startupmode,exitmode; COMBOBOXINFO cbi={0}; cbi.cbSize = sizeof(cbi); opses_count=0; g_opHdlg=hdlg; bOptionsInit=TRUE; TranslateDialogDefault(hdlg); hMarked = Skin_GetIconByHandle(iconList[1].hIcolib); hNotMarked = Skin_GetIconByHandle(iconList[2].hIcolib); hIcon=(bChecked=IsMarkedUserDefSession(opses_count))?hMarked:hNotMarked; SetDlgItemInt(hdlg, IDC_TRACK,ses_limit=db_get_b(0, MODNAME, "TrackCount", 10), FALSE); SendDlgItemMessage(hdlg, IDC_SPIN1, UDM_SETRANGE, 0, MAKELONG(10, 1)); SendDlgItemMessage(hdlg, IDC_SPIN1, UDM_SETPOS, 0, GetDlgItemInt(hdlg, IDC_TRACK, NULL, FALSE)); SendDlgItemMessage(hdlg, IDC_OPCLIST, LB_RESETCONTENT, 0, 0); SetDlgItemInt(hdlg, IDC_STARTDELAY, db_get_w(NULL, MODNAME, "StartupModeDelay", 1500), FALSE); startupmode = db_get_b(NULL, MODNAME, "StartupMode", 3); exitmode = db_get_b(NULL, MODNAME, "ShutdownMode", 2); g_bExclHidden = db_get_b(NULL, MODNAME, "ExclHidden", 0); g_bWarnOnHidden = db_get_b(NULL, MODNAME, "WarnOnHidden", 0); g_bOtherWarnings = db_get_b(NULL, MODNAME, "OtherWarnings", 1); g_bCrashRecovery = db_get_b(NULL, MODNAME, "CrashRecovery", 0); CheckDlgButton(hdlg,IDC_EXCLHIDDEN,g_bExclHidden?BST_CHECKED:BST_UNCHECKED); CheckDlgButton(hdlg,IDC_LASTHIDDENWARN,g_bWarnOnHidden?BST_CHECKED:BST_UNCHECKED); CheckDlgButton(hdlg,IDC_WARNINGS,g_bOtherWarnings?BST_CHECKED:BST_UNCHECKED); CheckDlgButton(hdlg,IDC_CRASHRECOVERY,g_bCrashRecovery?BST_CHECKED:BST_UNCHECKED); if (startupmode == 1) CheckDlgButton(hdlg,IDC_STARTDIALOG,BST_CHECKED); else if (startupmode == 3) { CheckDlgButton(hdlg,IDC_STARTDIALOG,BST_CHECKED); CheckDlgButton(hdlg,IDC_CHECKLAST,BST_CHECKED); } else if (startupmode == 2) { CheckDlgButton(hdlg,IDC_RLOADLAST,BST_CHECKED); EnableWindow(GetDlgItem(hdlg, IDC_CHECKLAST), FALSE); } else if (startupmode == 0) { CheckDlgButton(hdlg,IDC_RNOTHING,BST_CHECKED); EnableWindow(GetDlgItem(hdlg, IDC_STARTDELAY), FALSE); EnableWindow(GetDlgItem(hdlg, IDC_STATICOP), FALSE); EnableWindow(GetDlgItem(hdlg, IDC_STATICMS), FALSE); EnableWindow(GetDlgItem(hdlg, IDC_CHECKLAST), FALSE); } if (exitmode == 0) { CheckDlgButton(hdlg,IDC_REXDSAVE,BST_CHECKED); EnableWindow(GetDlgItem(hdlg,IDC_EXSTATIC1),FALSE); EnableWindow(GetDlgItem(hdlg,IDC_EXSTATIC2),FALSE); EnableWindow(GetDlgItem(hdlg,IDC_TRACK),FALSE); EnableWindow(GetDlgItem(hdlg,IDC_SPIN1),FALSE); } else if (exitmode == 1) CheckDlgButton(hdlg,IDC_REXASK,BST_CHECKED); else if (exitmode == 2) CheckDlgButton(hdlg,IDC_REXSAVE,BST_CHECKED); LoadSessionToCombobox (hdlg,1,255,"UserSessionDsc",0); if (SendDlgItemMessage(hdlg, IDC_LIST, CB_GETCOUNT, 0, 0)) { EnableWindow(GetDlgItem(hdlg,IDC_EDIT),TRUE); SendDlgItemMessage(hdlg, IDC_LIST, CB_SETCURSEL, 0, 0); if (!OpLoadSessionContacts(0,opses_count)) EnableWindow(GetDlgItem(hdlg,IDC_DEL),FALSE); } GetComboBoxInfo(GetDlgItem(hdlg,IDC_LIST),&cbi); mir_subclassWindow(cbi.hwndItem, ComboBoxSubclassProc); hComboBoxEdit=cbi.hwndItem; hComboBox=cbi.hwndCombo; SetWindowPos( hComboBoxEdit, NULL, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_FRAMECHANGED ); bOptionsInit=FALSE; } break; case WM_CTLCOLORLISTBOX: switch(GetDlgCtrlID((HWND) lparam)) { case IDC_OPCLIST: SetBkMode((HDC) wparam, TRANSPARENT); return (BOOL) CreateSolidBrush(GetSysColor(COLOR_3DFACE)); } break; case WM_NOTIFY: switch(((LPNMHDR)lparam)->code) { case PSN_APPLY: {//.........这里部分代码省略.........
开发者ID:0xmono,项目名称:miranda-ng,代码行数:101,
示例6: CreatePenvoid CUnreadWavesFlyout::PaintBottom(CDC & dc, RECT & rcBounds){ static HPEN hBorderPen = CreatePen(PS_SOLID, 1, RGB(204, 217, 234)); static HBRUSH hBackgroundBrush = CreateSolidBrush(RGB(241, 245, 251)); static HFONT hFont = CreateFontIndirectEx(GetMessageBoxFont(), FW_NORMAL, FALSE, TRUE); CHECK_HANDLE(hBorderPen); CHECK_HANDLE(hBackgroundBrush); CHECK_HANDLE(hFont); // // Draw the background // RECT rc = rcBounds; rc.top = rc.bottom - FL_BOTTOM_HEIGHT; HGDIOBJ hOriginal = dc.SelectPen(hBorderPen); dc.MoveToEx(rc.left, rc.top, NULL); dc.LineTo(rc.right, rc.top); dc.SelectObject(hOriginal); rc.top += 1; dc.FillRect(&rc, hBackgroundBrush); dc.SelectObject(hOriginal); // // Draw the label // hOriginal = dc.SelectFont(hFont); TEXTMETRIC tm; dc.GetTextMetrics(&tm); rc = rcBounds; rc.top = rc.bottom - FL_BOTTOM_HEIGHT + 1; INT nOffset = ((rc.bottom - rc.top) - tm.tmHeight) / 2; rc.top += nOffset; rc.left += nOffset; rc.right -= nOffset; dc.DrawText(L"Go to Inbox", &rc, DT_CALCRECT | DT_END_ELLIPSIS | DT_NOPREFIX | DT_SINGLELINE); dc.SetTextColor(RGB(0, 102, 204)); dc.SetBkColor(RGB(241, 245, 251)); dc.DrawText(L"Go to Inbox", &rc, DT_END_ELLIPSIS | DT_NOPREFIX | DT_SINGLELINE); INT nCount = m_lpWaves->GetChanges().size() - FL_MAXIMUM_WAVES; if (nCount > 0) { wstring szBuffer; if (nCount == 1) { szBuffer = L"1 more unread wave"; } else { szBuffer = Format(L"%d more unread waves", nCount); } RECT rc2 = rc; rc2.left = rc2.right; rc2.right = rcBounds.right - nOffset; dc.SetTextColor(GetSysColor(COLOR_BTNTEXT)); dc.SelectFont(GetMessageBoxFont()); dc.DrawText(szBuffer, &rc2, DT_END_ELLIPSIS | DT_NOPREFIX | DT_SINGLELINE | DT_RIGHT); } dc.SelectObject(hOriginal);}
开发者ID:pvginkel,项目名称:wave-notify,代码行数:84,
示例7: paint_text/* paint text of combobox, needed for read-only drop downs. */static void paint_text (HWND hwnd, HDC hdc, DWORD dwStyle, const COMBOBOXINFO *cbi){ INT id, size = 0; LPWSTR pText = NULL; UINT itemState = ODS_COMBOBOXEDIT; HFONT font = (HFONT)SendMessageW (hwnd, WM_GETFONT, 0, 0); HFONT hPrevFont = (font) ? SelectObject(hdc, font) : 0; RECT rectEdit; BOOL focused = GetFocus () == hwnd; BOOL dropped = cbi->stateButton == STATE_SYSTEM_PRESSED; TRACE("/n"); /* follow Windows combobox that sends a bunch of text * inquiries to its listbox while processing WM_PAINT. */ if( (id = SendMessageW (cbi->hwndList, LB_GETCURSEL, 0, 0) ) != LB_ERR ) { size = SendMessageW (cbi->hwndList, LB_GETTEXTLEN, id, 0); if (size == LB_ERR) FIXME("LB_ERR probably not handled yet/n"); if( (pText = HeapAlloc( GetProcessHeap(), 0, (size + 1) * sizeof(WCHAR))) ) { /* size from LB_GETTEXTLEN may be too large, from LB_GETTEXT is accurate */ size = SendMessageW (cbi->hwndList, LB_GETTEXT, id, (LPARAM)pText); pText[size] = '/0'; /* just in case */ } else return; } else if( !(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) ) return; /* * Give ourselves some space. */ CopyRect (&rectEdit, &cbi->rcItem); InflateRect( &rectEdit, -1, -1 ); if(dwStyle & (CBS_OWNERDRAWFIXED | CBS_OWNERDRAWVARIABLE)) { DRAWITEMSTRUCT dis; HRGN clipRegion; UINT ctlid = (UINT)GetWindowLongPtrW( hwnd, GWLP_ID ); /* setup state for DRAWITEM message. Owner will highlight */ if ( focused && !dropped ) itemState |= ODS_SELECTED | ODS_FOCUS; /* * Save the current clip region. * To retrieve the clip region, we need to create one "dummy" * clip region. */ clipRegion = CreateRectRgnIndirect(&rectEdit); if (GetClipRgn(hdc, clipRegion)!=1) { DeleteObject(clipRegion); clipRegion=NULL; } if (!IsWindowEnabled(hwnd)) itemState |= ODS_DISABLED; dis.CtlType = ODT_COMBOBOX; dis.CtlID = ctlid; dis.hwndItem = hwnd; dis.itemAction = ODA_DRAWENTIRE; dis.itemID = id; dis.itemState = itemState; dis.hDC = hdc; dis.rcItem = rectEdit; dis.itemData = SendMessageW(cbi->hwndList, LB_GETITEMDATA, id, 0); /* * Clip the DC and have the parent draw the item. */ IntersectClipRect(hdc, rectEdit.left, rectEdit.top, rectEdit.right, rectEdit.bottom); SendMessageW(GetParent (hwnd), WM_DRAWITEM, ctlid, (LPARAM)&dis ); /* * Reset the clipping region. */ SelectClipRgn(hdc, clipRegion); } else { static const WCHAR empty_stringW[] = { 0 }; if ( focused && !dropped ) { /* highlight */ FillRect( hdc, &rectEdit, GetSysColorBrush(COLOR_HIGHLIGHT) ); SetBkColor( hdc, GetSysColor( COLOR_HIGHLIGHT ) ); SetTextColor( hdc, GetSysColor( COLOR_HIGHLIGHTTEXT ) ); }//.........这里部分代码省略.........
开发者ID:AlexSteel,项目名称:wine,代码行数:101,
示例8: switchvoid CVolumeCtrl::OnNMCustomdraw(NMHDR* pNMHDR, LRESULT* pResult){ LPNMCUSTOMDRAW pNMCD = reinterpret_cast<LPNMCUSTOMDRAW>(pNMHDR); LRESULT lr = CDRF_DODEFAULT; if(m_fSelfDrawn) switch(pNMCD->dwDrawStage) { case CDDS_PREPAINT: lr = CDRF_NOTIFYITEMDRAW; break; case CDDS_ITEMPREPAINT: if(pNMCD->dwItemSpec == TBCD_CHANNEL) { CDC dc; dc.Attach(pNMCD->hdc); CRect r; GetClientRect(r); r.DeflateRect(8, 4, 10, 11); CopyRect(&pNMCD->rc, &r); CPen shadow(PS_SOLID, 1, GetSysColor(COLOR_3DSHADOW)); CPen light(PS_SOLID, 1, GetSysColor(COLOR_3DHILIGHT)); CPen* old = dc.SelectObject(&light); dc.MoveTo(pNMCD->rc.right, pNMCD->rc.top); dc.LineTo(pNMCD->rc.right, pNMCD->rc.bottom); dc.LineTo(pNMCD->rc.left, pNMCD->rc.bottom); dc.SelectObject(&shadow); dc.LineTo(pNMCD->rc.right, pNMCD->rc.top); dc.SelectObject(old); dc.Detach(); lr = CDRF_SKIPDEFAULT; } else if(pNMCD->dwItemSpec == TBCD_THUMB) { CDC dc; dc.Attach(pNMCD->hdc); pNMCD->rc.bottom--; CRect r(pNMCD->rc); r.DeflateRect(0, 3, 1, 0); COLORREF shadow = GetSysColor(COLOR_3DSHADOW); COLORREF light = GetSysColor(COLOR_3DHILIGHT); dc.Draw3dRect(&r, light, 0); r.DeflateRect(0, 0, 1, 1); dc.Draw3dRect(&r, light, shadow); r.DeflateRect(1, 1, 1, 1); dc.FillSolidRect(&r, GetSysColor(COLOR_3DFACE)); dc.SetPixel(r.left+7, r.top-1, GetSysColor(COLOR_3DFACE)); dc.Detach(); lr = CDRF_SKIPDEFAULT; } break; }; pNMCD->uItemState &= ~CDIS_FOCUS; *pResult = lr;}
开发者ID:Strongc,项目名称:playasa,代码行数:64,
示例9: switchLRESULT WINAPI SmpEditFrameProc( HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ // 1 switch (message) { case WM_ERASEBKGND: //2 { HDC hDC = (HDC)wParam; HBRUSH hFill; RECT rect = {0, 0, 0, 0}; GetClientRect(hWnd, &rect); if (hFill = CreateSolidBrush(GetSysColor(COLOR_WINDOW))) //3 { FillRect(hDC, (LPRECT)&rect, hFill); DeleteObject(hFill); } break; } // Nonsense code added for test case 0: //4 if (hWnd) //5 { MessageBox (hWnd,"","",MB_OK); } else { MessageBox (hWnd,"","",MB_OK); } break; // Nonsense code added for test case 1: //6 if (hWnd) //7 { MessageBox (hWnd,"","",MB_OK); } else { MessageBox (hWnd,"","",MB_OK); } break; // Nonsense code added for test case 2: //8 if (hWnd) //9 { MessageBox (hWnd,"","",MB_OK); } else { MessageBox (hWnd,"","",MB_OK); } break; // Nonsense code added for test default: if (hWnd) //10 if (hWnd) if (hWnd) if (hWnd) if (hWnd) if (hWnd) if (hWnd) if (hWnd) if (hWnd) if (hWnd) if (hWnd) // 20 if (hWnd) if (hWnd) //22 { MessageBox (hWnd,"","",MB_OK); } else { MessageBox (hWnd,"","",MB_OK); } break; } return DefWindowProc(hWnd, message, wParam, lParam);}
开发者ID:Tallmaris,项目名称:ccm,代码行数:90,
示例10: winButtonDrawImageTextstatic void winButtonDrawImageText(Ihandle* ih, HDC hDC, int rect_width, int rect_height, int border, UINT itemState){ int xpad = ih->data->horiz_padding + border, ypad = ih->data->vert_padding + border; int x, y, width, height, txt_x, txt_y, txt_width, txt_height, img_x, img_y, img_width, img_height, bpp, shift = 0, style = 0; HFONT hFont = (HFONT)iupwinGetHFontAttrib(ih); HBITMAP hBitmap, hMask; COLORREF fgcolor; char* title = iupAttribGet(ih, "TITLE"); char* str = iupStrProcessMnemonic(title, NULL, 0); /* remove & */ iupdrvFontGetMultiLineStringSize(ih, str, &txt_width, &txt_height); if (str && str!=title) free(str); if (itemState & ODS_DISABLED) fgcolor = GetSysColor(COLOR_GRAYTEXT); else fgcolor = ih->data->fgcolor; hBitmap = winButtonGetBitmap(ih, itemState, NULL, &img_width, &img_height, &bpp, &hMask); if (!hBitmap) return; if (ih->data->img_position == IUP_IMGPOS_RIGHT || ih->data->img_position == IUP_IMGPOS_LEFT) { width = img_width + txt_width + ih->data->spacing; height = iupMAX(img_height, txt_height); } else { width = iupMAX(img_width, txt_width); height = img_height + txt_height + ih->data->spacing; } if (itemState & ODS_SELECTED && !iupwin_comctl32ver6) shift = 1; if (itemState & ODS_NOACCEL && !iupwinGetKeyBoardCues()) style |= DT_HIDEPREFIX; x = winButtonCalcAlignPosX(ih->data->horiz_alignment, rect_width, width, xpad, shift); y = winButtonCalcAlignPosY(ih->data->vert_alignment, rect_height, height, ypad, shift); switch(ih->data->img_position) { case IUP_IMGPOS_TOP: img_y = y; txt_y = y + img_height + ih->data->spacing; if (img_width > txt_width) { img_x = x; txt_x = x + (img_width-txt_width)/2; } else { img_x = x + (txt_width-img_width)/2; txt_x = x; } break; case IUP_IMGPOS_BOTTOM: img_y = y + txt_height + ih->data->spacing; txt_y = y; if (img_width > txt_width) { img_x = x; txt_x = x + (img_width-txt_width)/2; } else { img_x = x + (txt_width-img_width)/2; txt_x = x; } break; case IUP_IMGPOS_RIGHT: img_x = x + txt_width + ih->data->spacing; txt_x = x; if (img_height > txt_height) { img_y = y; txt_y = y + (img_height-txt_height)/2; } else { img_y = y + (txt_height-img_height)/2; txt_y = y; } break; default: /* IUP_IMGPOS_LEFT */ img_x = x; txt_x = x + img_width + ih->data->spacing; if (img_height > txt_height) { img_y = y; txt_y = y + (img_height-txt_height)/2; } else//.........这里部分代码省略.........
开发者ID:svn2github,项目名称:iup-iup,代码行数:101,
示例11: OptionsDlgProcstatic INT_PTR CALLBACK OptionsDlgProc(HWND hdlg, UINT message, WPARAM wParam, LPARAM lParam){ OptionsPageData *opd; OptionsDlgData *dat = (OptionsDlgData*)GetWindowLongPtr(hdlg, GWLP_USERDATA); HWND hwndTree = GetDlgItem(hdlg, IDC_PAGETREE); switch (message) { case WM_CTLCOLORSTATIC: switch (GetDlgCtrlID((HWND)lParam)) { case IDC_WHITERECT: case IDC_KEYWORD_FILTER: SetBkColor((HDC)wParam, GetSysColor(COLOR_WINDOW)); return (INT_PTR)GetSysColorBrush(COLOR_WINDOW); } break; case WM_INITDIALOG: TranslateDialogDefault(hdlg); if (!ServiceExists(MS_MODERNOPT_SHOW)) ShowWindow(GetDlgItem(hdlg, IDC_MODERN), FALSE); dat = new OptionsDlgData; SetWindowLongPtr(hdlg, GWLP_USERDATA, (LONG_PTR)dat); Utils_RestoreWindowPositionNoSize(hdlg, NULL, "Options", ""); Window_SetIcon_IcoLib(hdlg, SKINICON_OTHER_OPTIONS); EnableWindow(GetDlgItem(hdlg, IDC_APPLY), FALSE); { COMBOBOXINFO cbi; cbi.cbSize = sizeof(COMBOBOXINFO); GetComboBoxInfo(GetDlgItem(hdlg, IDC_KEYWORD_FILTER), &cbi); mir_subclassWindow(cbi.hwndItem, OptionsFilterSubclassProc); if (IsAeroMode()) { mir_subclassWindow(cbi.hwndCombo, AeroPaintSubclassProc); mir_subclassWindow(cbi.hwndItem, AeroPaintSubclassProc); } PROPSHEETHEADER *psh = (PROPSHEETHEADER*)lParam; SetWindowText(hdlg, psh->pszCaption); LOGFONT lf; dat->hBoldFont = (HFONT)SendDlgItemMessage(hdlg, IDC_APPLY, WM_GETFONT, 0, 0); GetObject(dat->hBoldFont, sizeof(lf), &lf); lf.lfWeight = FW_BOLD; dat->hBoldFont = CreateFontIndirect(&lf); dat->hPluginLoad = HookEventMessage(ME_SYSTEM_MODULELOAD, hdlg, HM_MODULELOAD); dat->hPluginUnload = HookEventMessage(ME_SYSTEM_MODULEUNLOAD, hdlg, HM_MODULEUNLOAD); dat->currentPage = -1; ptrT lastPage, lastGroup, lastTab; OPENOPTIONSDIALOG *ood = (OPENOPTIONSDIALOG*)psh->pStartPage; if (ood->pszPage == NULL) { lastPage = db_get_tsa(NULL, "Options", "LastPage"); if (ood->pszGroup == NULL) lastGroup = db_get_tsa(NULL, "Options", "LastGroup"); else lastGroup = mir_a2t(ood->pszGroup); } else { lastPage = mir_a2t(ood->pszPage); lastGroup = mir_a2t(ood->pszGroup); } if (ood->pszTab == NULL) lastTab = db_get_tsa(NULL, "Options", "LastTab"); else lastTab = mir_a2t(ood->pszTab); OPTIONSDIALOGPAGE *odp = (OPTIONSDIALOGPAGE*)psh->ppsp; for (UINT i = 0; i < psh->nPages; i++, odp++) { opd = new OptionsPageData(odp); if (opd->pDialog == NULL) // smth went wrong delete opd; else dat->arOpd.insert(opd); if (!mir_tstrcmp(lastPage, odp->ptszTitle) && !mir_tstrcmp(lastGroup, odp->ptszGroup)) if ((ood->pszTab == NULL && dat->currentPage == -1) || !mir_tstrcmp(lastTab, odp->ptszTab)) dat->currentPage = (int)i; } GetWindowRect(GetDlgItem(hdlg, IDC_STNOPAGE), &dat->rcDisplay); MapWindowPoints(NULL, hdlg, (LPPOINT)&dat->rcDisplay, 2); // Add an item to count in height TCITEM tie; tie.mask = TCIF_TEXT | TCIF_IMAGE; tie.iImage = -1; tie.pszText = _T("X"); TabCtrl_InsertItem(GetDlgItem(hdlg, IDC_TAB), 0, &tie); GetWindowRect(GetDlgItem(hdlg, IDC_TAB), &dat->rcTab); MapWindowPoints(NULL, hdlg, (LPPOINT)&dat->rcTab, 2); TabCtrl_AdjustRect(GetDlgItem(hdlg, IDC_TAB), FALSE, &dat->rcTab); FillFilterCombo(hdlg, dat);//.........这里部分代码省略.........
开发者ID:Seldom,项目名称:miranda-ng,代码行数:101,
示例12: OptionsFilterSubclassProcstatic LRESULT CALLBACK OptionsFilterSubclassProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){ if (message != WM_PAINT && message != WM_PRINT) return mir_callNextSubclass(hWnd, OptionsFilterSubclassProc, message, wParam, lParam); if (GetFocus() == hWnd || GetWindowTextLength(hWnd)) return mir_callNextSubclass(hWnd, OptionsFilterSubclassProc, message, wParam, lParam); RECT rc; GetClientRect(hWnd, &rc); PAINTSTRUCT paint; HDC hdc = (message == WM_PAINT) ? BeginPaint(hWnd, &paint) : (HDC)wParam; TCHAR buf[255]; if (bSearchState == 1 && FilterLoadProgress < 100 && FilterLoadProgress > 0) mir_sntprintf(buf, TranslateT("Loading... %d%%"), FilterLoadProgress); else mir_sntprintf(buf, TranslateT("Search")); bool bDrawnByTheme = false; int oldMode = SetBkMode(hdc, TRANSPARENT); HTHEME hTheme = OpenThemeData(hWnd, L"EDIT"); if (hTheme) { if (IsThemeBackgroundPartiallyTransparent(hTheme, EP_EDITTEXT, ETS_NORMAL)) DrawThemeParentBackground(hWnd, hdc, &rc); RECT rc2; GetThemeBackgroundContentRect(hTheme, hdc, EP_EDITTEXT, ETS_NORMAL, &rc, &rc2); rc2.top = 2 * rc.top - rc2.top; rc2.left = 2 * rc.left - rc2.left; rc2.bottom = 2 * rc.bottom - rc2.bottom; rc2.right = 2 * rc.right - rc2.right; DrawThemeBackground(hTheme, hdc, EP_EDITTEXT, ETS_NORMAL, &rc2, &rc); HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0); HFONT oldFont = (HFONT)SelectObject(hdc, hFont); wchar_t *bufW = mir_t2u(buf); DrawThemeText(hTheme, hdc, EP_EDITTEXT, ETS_DISABLED, bufW, -1, 0, 0, &rc); mir_free(bufW); SelectObject(hdc, oldFont); CloseThemeData(hTheme); bDrawnByTheme = true; } SetBkMode(hdc, oldMode); if (!bDrawnByTheme) { HFONT hFont = (HFONT)SendMessage(hWnd, WM_GETFONT, 0, 0); HFONT oldFont = (HFONT)SelectObject(hdc, hFont); SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT)); FillRect(hdc, &rc, GetSysColorBrush(COLOR_WINDOW)); oldMode = SetBkMode(hdc, TRANSPARENT); DrawText(hdc, buf, -1, &rc, 0); SetBkMode(hdc, oldMode); SelectObject(hdc, oldFont); } if (message == WM_PAINT) EndPaint(hWnd, &paint); return 0;}
开发者ID:Seldom,项目名称:miranda-ng,代码行数:67,
示例13: dc//--------------------------------------------------------------------------////--------------------------------------------------------------------------//LRESULT CCtlPanel::OnDrawItem (UINT /*uMsg*/, WPARAM wParam, LPARAM lParam, BOOL &bHandled){ UINT idCtl = wParam; LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT) lParam; if (idCtl == IDC_COLOR) { CAGDC dc (lpdis->hDC); HBRUSH hbr = (HBRUSH) GetStockObject (WHITE_BRUSH); FillRect (lpdis->hDC, &lpdis->rcItem, hbr); if ((int) lpdis->itemID != -1) { COLORREF clr = (COLORREF) ::SendMessage (lpdis->hwndItem, CB_GETITEMDATA, lpdis->itemID, 0); RECT rect = lpdis->rcItem; InflateRect (&rect, -4, -2); hbr = CreateSolidBrush (clr | PALETTERGB_FLAG); FillRect (lpdis->hDC, &rect, hbr); DeleteObject (hbr); hbr = (HBRUSH) GetStockObject (BLACK_BRUSH); FrameRect (lpdis->hDC, &rect, hbr); } if (lpdis->itemState & ODS_FOCUS || lpdis->itemState & ODS_SELECTED) { hbr = (HBRUSH) GetStockObject (BLACK_BRUSH); FrameRect (lpdis->hDC, &lpdis->rcItem, hbr); } } else if (idCtl == IDC_FONT) { if ((int) lpdis->itemID != -1) { int nFont = ::SendMessage (lpdis->hwndItem, CB_GETITEMDATA, lpdis->itemID, 0); FONTARRAY &FontArray = GetFontArray (); LOGFONT NewFont = FontArray[nFont].lf; NewFont.lfHeight = m_nFontHeight; NewFont.lfWidth = 0; if (NewFont.lfCharSet == SYMBOL_CHARSET) { lstrcpy (NewFont.lfFaceName, "Arial"); NewFont.lfCharSet = ANSI_CHARSET; NewFont.lfPitchAndFamily = FF_SWISS; } SaveDC (lpdis->hDC); SetTextAlign (lpdis->hDC, TA_LEFT | TA_TOP | TA_NOUPDATECP); if (lpdis->itemState & ODS_SELECTED) SetTextColor (lpdis->hDC, GetSysColor (COLOR_HIGHLIGHTTEXT)); else SetTextColor (lpdis->hDC, GetSysColor (COLOR_WINDOWTEXT)); if (lpdis->itemState & ODS_SELECTED) SetBkColor (lpdis->hDC, GetSysColor (COLOR_HIGHLIGHT)); else SetBkColor (lpdis->hDC, GetSysColor (COLOR_WINDOW)); HFONT hFont = CreateFontIndirect (&NewFont); HFONT hOldFont = (HFONT) SelectObject (lpdis->hDC, hFont); ExtTextOut (lpdis->hDC, lpdis->rcItem.left, lpdis->rcItem.top, ETO_CLIPPED | ETO_OPAQUE, &lpdis->rcItem, FontArray[nFont].szFullName, lstrlen (FontArray[nFont].szFullName), NULL); if (lpdis->itemState & ODS_FOCUS) DrawFocusRect (lpdis->hDC, &lpdis->rcItem); SelectObject (lpdis->hDC, hOldFont); DeleteObject (hFont); RestoreDC (lpdis->hDC, -1); } } bHandled = TRUE; return (TRUE);}
开发者ID:jimmccurdy,项目名称:ArchiveGit,代码行数:83,
示例14: Drawtabsvoid CContainer::Drawtabs(CGDI* dc){ CPen light; CPen Dark; CPen Black; CPen Face; if ( m_Numtabs <= 1 && m_alnTab==ALN_BOTTOM) return; light.CreatePen(PS_SOLID,1,GetSysColor(COLOR_BTNHIGHLIGHT)); Dark.CreatePen(PS_SOLID,1,GetSysColor(COLOR_BTNSHADOW)); Black.CreatePen(PS_SOLID,1,GetSysColor(BLACK_PEN)); Face.CreatePen(PS_SOLID,1,CDrawLayer::GetRGBColorFace()); CRect rectText; HFONT hFONT= dc->SelectObject(CFont((HFONT)GetStockObject(DEFAULT_GUI_FONT))); CPen oldPen= dc->SelectObject(&Dark); LPCSTR szStrPoints=_T("..."); for (int iCont=0; iCont< m_Numtabs;iCont++) { CTab* ct=(CTab*) m_pArray[iCont]; if (iCont ==m_iSelectTab) { CGradient M(CSize(ct->rect.Width(),ct->rect.Height()+1)); M.PrepareTabs(dc,CDrawLayer::GetRGBColorWhite(),CDrawLayer::GetRGBColorWhite()); M.Draw(dc,ct->rect.left,ct->rect.top,0,0,ct->rect.Width(),ct->rect.Height(),SRCCOPY); dc->SelectObject(&Dark); dc->MoveTo(ct->rect.left,ct->rect.top); dc->LineTo(ct->rect.left,ct->rect.bottom-2); dc->MoveTo(ct->rect.left+1,ct->rect.bottom-2); dc->LineTo(ct->rect.left+2,ct->rect.bottom-1); //corner left corrections begin dc->SelectObject(&Face); dc->MoveTo(ct->rect.left,ct->rect.bottom-2); dc->LineTo(ct->rect.left,ct->rect.bottom-1); dc->MoveTo(ct->rect.left,ct->rect.bottom-1); dc->LineTo(ct->rect.left+2,ct->rect.bottom-1); //---corner corrections end dc->SelectObject(&Dark); dc->MoveTo(m_rectTab.left,ct->rect.top); dc->LineTo(ct->rect.left,ct->rect.top); dc->MoveTo(ct->rect.right,ct->rect.top); dc->LineTo(m_rectTab.right,ct->rect.top); //line bottom dc->SelectObject(&Dark); dc->MoveTo(ct->rect.left+2,ct->rect.bottom-1); dc->LineTo(ct->rect.right-3,ct->rect.bottom-1); dc->SelectObject(&Face); dc->MoveTo(ct->rect.left+2,ct->rect.bottom-2); dc->LineTo(ct->rect.right-3,ct->rect.bottom-2); //right corner dc->SelectObject(&Dark); dc->MoveTo(ct->rect.right-3,ct->rect.bottom-1); dc->LineTo(ct->rect.right,ct->rect.bottom-4); dc->SelectObject(&Face); dc->MoveTo(ct->rect.right-3,ct->rect.bottom-2); dc->LineTo(ct->rect.right-1,ct->rect.bottom-5); // corner right corrections dc->MoveTo(ct->rect.right-1,ct->rect.bottom-2); dc->LineTo(ct->rect.right,ct->rect.bottom-2); dc->MoveTo(ct->rect.right-2,ct->rect.bottom-1); dc->LineTo(ct->rect.right,ct->rect.bottom-1); // end corner right corrections //right vertical line dc->SelectObject(&Dark); dc->MoveTo(ct->rect.right-1,ct->rect.top); dc->LineTo(ct->rect.right-1,ct->rect.bottom-3); dc->SelectObject(&Face); dc->MoveTo(ct->rect.right-2,ct->rect.top+1); dc->LineTo(ct->rect.right-2,ct->rect.bottom-3); } else { if(iCont !=0 && ((iCont-1)!= m_iSelectTab)) { dc->SelectObject(&Dark); dc->MoveTo(ct->rect.left,ct->rect.top+3); dc->LineTo(ct->rect.left,ct->rect.bottom-3); } } //se dibuja el icono int nMode = dc->SetBkMode(TRANSPARENT); CSize m_sChar=dc->GetTextExtent(ct->lpMsg,strlen(ct->lpMsg)); COLORREF clrtext=RGB(0,0,0); if (iCont !=m_iSelectTab)//.........这里部分代码省略.........
开发者ID:axxapp,项目名称:winxgui,代码行数:101,
示例15: MoveWindowvoid COptionTreeItemDate::DrawAttribute(CDC *pDC, const RECT &rcRect){ // If we don't have focus, text is drawn. if (m_bFocus == TRUE) { return; } // Make sure options aren't NULL if (m_otOption == NULL) { return; } // Make sure there is a window if (!IsWindow(GetSafeHwnd())) { return; } // Set window position if (IsWindow(GetSafeHwnd())) { MoveWindow(m_rcAttribute.left, m_rcAttribute.top, m_rcAttribute.Width(), m_rcAttribute.Height()); } // Declare variables HGDIOBJ hOld; COLORREF crOld; int nOldBack; CRect rcText; CString strText; COLORREF crOldBack; // Select font hOld = pDC->SelectObject(m_otOption->GetNormalFont()); // Set text color if (IsReadOnly() == TRUE || m_otOption->IsWindowEnabled() == FALSE) { crOld = pDC->SetTextColor(GetSysColor(COLOR_GRAYTEXT)); } else { crOld = pDC->SetTextColor(GetTextColor()); } // Set background mode nOldBack = pDC->SetBkMode(TRANSPARENT); // Set background color crOldBack = pDC->SetBkColor(GetBackgroundColor()); // Get rectangle rcText = rcRect; // Get text GetWindowText(strText); // Draw text pDC->DrawText(strText, rcText, DT_SINGLELINE | DT_VCENTER); // Restore GDI ojects pDC->SelectObject(hOld); pDC->SetTextColor(crOld); pDC->SetBkMode(nOldBack); pDC->SetBkColor(crOldBack);}
开发者ID:ngphloc,项目名称:agmagic,代码行数:69,
示例16: DownloadProgressProcLRESULT CALLBACKDownloadProgressProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam, UINT_PTR uIdSubclass, DWORD_PTR dwRefData){ static WCHAR szProgressText[MAX_STR_LEN] = {0}; switch (uMsg) { case WM_SETTEXT: { if (lParam) { StringCbCopyW(szProgressText, sizeof(szProgressText), (PCWSTR)lParam); } return TRUE; } case WM_ERASEBKGND: case WM_PAINT: { PAINTSTRUCT ps; HDC hDC = BeginPaint(hWnd, &ps), hdcMem; HBITMAP hbmMem; HANDLE hOld; RECT myRect; UINT win_width, win_height; GetClientRect(hWnd, &myRect); /* grab the progress bar rect size */ win_width = myRect.right - myRect.left; win_height = myRect.bottom - myRect.top; /* create an off-screen DC for double-buffering */ hdcMem = CreateCompatibleDC(hDC); hbmMem = CreateCompatibleBitmap(hDC, win_width, win_height); hOld = SelectObject(hdcMem, hbmMem); /* call the original draw code and redirect it to our memory buffer */ DefSubclassProc(hWnd, uMsg, (WPARAM)hdcMem, lParam); /* draw our nifty progress text over it */ SelectFont(hdcMem, GetStockFont(DEFAULT_GUI_FONT)); DrawShadowText(hdcMem, szProgressText, wcslen(szProgressText), &myRect, DT_CENTER | DT_VCENTER | DT_NOPREFIX | DT_SINGLELINE, GetSysColor(COLOR_CAPTIONTEXT), GetSysColor(COLOR_3DSHADOW), 1, 1); /* transfer the off-screen DC to the screen */ BitBlt(hDC, 0, 0, win_width, win_height, hdcMem, 0, 0, SRCCOPY); /* free the off-screen DC */ SelectObject(hdcMem, hOld); DeleteObject(hbmMem); DeleteDC(hdcMem); EndPaint(hWnd, &ps); return 0; } /* Raymond Chen says that we should safely unsubclass all the things! (http://blogs.msdn.com/b/oldnewthing/archive/2003/11/11/55653.aspx) */ case WM_NCDESTROY: { ZeroMemory(szProgressText, sizeof(szProgressText)); RemoveWindowSubclass(hWnd, DownloadProgressProc, uIdSubclass); } /* Fall-through */ default: return DefSubclassProc(hWnd, uMsg, wParam, lParam); }}
开发者ID:reactos,项目名称:reactos,代码行数:76,
示例17: TGetWindowTextvoid DcxText::DrawClientArea(HDC hdc){ RECT r; // Setup alpha blend if any. LPALPHAINFO ai = this->SetupAlphaBlend(&hdc); TString wtext; TGetWindowText(this->m_Hwnd, wtext); GetClientRect(this->m_Hwnd, &r); DcxControl::DrawCtrlBackground(hdc,this,&r); HFONT oldFont = NULL; COLORREF oldClr = CLR_INVALID; COLORREF oldBkgClr = CLR_INVALID; // check if font is valid & set it. if (this->m_hFont != NULL) oldFont = SelectFont(hdc, this->m_hFont); // check if control is enabled. if (IsWindowEnabled(this->m_Hwnd)) { if (this->m_clrText != CLR_INVALID) oldClr = SetTextColor(hdc, this->m_clrText); if (this->m_clrBackText != CLR_INVALID) oldBkgClr = SetBkColor(hdc, this->m_clrBackText); } else { // disabled controls colouring oldClr = SetTextColor(hdc, GetSysColor(COLOR_GRAYTEXT)); oldBkgClr = SetBkColor(hdc, GetSysColor(COLOR_3DFACE)); } //UINT style = DT_LEFT; //if (this->isStyle(SS_CENTER)) // style = DT_CENTER; //if (this->isStyle(SS_RIGHT)) // style = DT_RIGHT; //if (this->isStyle(SS_ENDELLIPSIS)) // style |= DT_END_ELLIPSIS; //if (this->isStyle(SS_PATHELLIPSIS)) // style |= DT_PATH_ELLIPSIS; //if (this->isStyle(SS_NOPREFIX)) // style |= DT_NOPREFIX; //if (this->isStyle(SS_LEFTNOWORDWRAP)) // style |= DT_SINGLELINE; //else // style |= DT_WORDBREAK; // changed for autowrap between words //this->ctrlDrawText(hdc, wtext, &r, style); this->ctrlDrawText(hdc, wtext, &r, this->m_uiStyle); if (oldBkgClr != CLR_INVALID) SetBkColor(hdc, oldBkgClr); if (oldClr != CLR_INVALID) SetTextColor(hdc, oldClr); if (oldFont != NULL) SelectFont(hdc, oldFont); this->FinishAlphaBlend(ai);}
开发者ID:twig,项目名称:dcxdll,代码行数:61,
示例18: PaintWorkerstatic void PaintWorker(MButtonCtrl *ctl, HDC hdcPaint){ if (hdc_buttonglyph == 0) { hdc_buttonglyph = CreateCompatibleDC(hdcPaint); hbm_buttonglyph = CreateCompatibleBitmap(hdcPaint, 16, 16); hbm_buttonglyph_old = (HBITMAP)SelectObject(hdc_buttonglyph, hbm_buttonglyph); bf_buttonglyph.BlendFlags = 0; bf_buttonglyph.SourceConstantAlpha = 120; bf_buttonglyph.BlendOp = AC_SRC_OVER; bf_buttonglyph.AlphaFormat = 0; } if (hdcPaint) { HDC hdcMem; HBITMAP hbmMem, hOld; RECT rcClient; RECT rcContent; bool fAero = M->isAero(); bool fVSThemed = (!CSkin::m_skinEnabled && M->isVSThemed()); HANDLE hbp = 0; TWindowData *dat = (TWindowData *)GetWindowLongPtr(GetParent(ctl->hwnd), GWLP_USERDATA); GetClientRect(ctl->hwnd, const_cast<RECT *>(&rcClient)); CopyRect(&rcContent, &rcClient); if(CMimAPI::m_haveBufferedPaint) hbp = CMimAPI::m_pfnBeginBufferedPaint(hdcPaint, &rcContent, BPBF_TOPDOWNDIB, NULL, &hdcMem); else { hdcMem = CreateCompatibleDC(hdcPaint); hbmMem = CreateCompatibleBitmap(hdcPaint, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top); hOld = (HBITMAP)SelectObject(hdcMem, hbmMem); } CSkin::FillBack(hdcMem, &rcContent); if (ctl->pushBtn && ctl->pbState) ctl->stateId = PBS_PRESSED; if (ctl->flatBtn) { if (ctl->pContainer && CSkin::m_skinEnabled) { CSkinItem *item, *realItem = 0; if (ctl->bTitleButton) item = &SkinItems[ctl->stateId == PBS_NORMAL ? ID_EXTBKTITLEBUTTON : (ctl->stateId == PBS_HOT ? ID_EXTBKTITLEBUTTONMOUSEOVER : ID_EXTBKTITLEBUTTONPRESSED)]; else { item = &SkinItems[(ctl->stateId == PBS_NORMAL || ctl->stateId == PBS_DISABLED) ? ID_EXTBKBUTTONSNPRESSED : (ctl->stateId == PBS_HOT ? ID_EXTBKBUTTONSMOUSEOVER : ID_EXTBKBUTTONSPRESSED)]; realItem = item; } CSkin::SkinDrawBG(ctl->hwnd, ctl->pContainer->hwnd, ctl->pContainer, &rcContent, hdcMem); if (!item->IGNORED) { RECT rc1 = rcClient; rc1.left += item->MARGIN_LEFT; rc1.right -= item->MARGIN_RIGHT; rc1.top += item->MARGIN_TOP; rc1.bottom -= item->MARGIN_BOTTOM; CSkin::DrawItem(hdcMem, &rc1, item); } else goto flat_themed; } else {flat_themed: int state = IsWindowEnabled(ctl->hwnd) ? (ctl->stateId == PBS_NORMAL && ctl->defbutton ? PBS_DEFAULTED : ctl->stateId) : PBS_DISABLED; if (ctl->bToolbarButton) { if(dat) { RECT rcWin; GetWindowRect(ctl->hwnd, &rcWin); POINT pt; pt.x = rcWin.left; ScreenToClient(dat->hwnd, &pt); BitBlt(hdcMem, 0, 0, rcClient.right - rcClient.left, rcClient.bottom - rcClient.top, dat->pContainer->cachedToolbarDC, pt.x, 1, SRCCOPY); } } if (ctl->hThemeToolbar && ctl->bThemed && 1 == dat->pContainer->bTBRenderingMode) { if(fAero || PluginConfig.m_WinVerMajor >= 6) CMimAPI::m_pfnDrawThemeBackground(ctl->hThemeToolbar, hdcMem, 8, RBStateConvert2Flat(state), &rcClient, &rcClient); else CMimAPI::m_pfnDrawThemeBackground(ctl->hThemeToolbar, hdcMem, TP_BUTTON, TBStateConvert2Flat(state), &rcClient, &rcClient); } else { CSkin::m_switchBarItem->setAlphaFormat(AC_SRC_ALPHA, state == PBS_HOT ? 220 : 180); if(state == PBS_HOT || state == PBS_PRESSED) { if(state == PBS_PRESSED) { RECT rc = rcClient; InflateRect(&rc, -1, -1); HBRUSH bBack = CreateSolidBrush(PluginConfig.m_tbBackgroundLow ? PluginConfig.m_tbBackgroundLow : GetSysColor(COLOR_3DDKSHADOW)); FillRect(hdcMem, &rc, bBack); DeleteObject(bBack); } CSkin::m_switchBarItem->Render(hdcMem, &rcClient, true); } } } } else { if (ctl->pContainer && CSkin::m_skinEnabled) { CSkinItem *item, *realItem = 0; if (ctl->bTitleButton) item = &SkinItems[ctl->stateId == PBS_NORMAL ? ID_EXTBKTITLEBUTTON : (ctl->stateId == PBS_HOT ? ID_EXTBKTITLEBUTTONMOUSEOVER : ID_EXTBKTITLEBUTTONPRESSED)]; else { item = &SkinItems[(ctl->stateId == PBS_NORMAL || ctl->stateId == PBS_DISABLED) ? ID_EXTBKBUTTONSNPRESSED : (ctl->stateId == PBS_HOT ? ID_EXTBKBUTTONSMOUSEOVER : ID_EXTBKBUTTONSPRESSED)]; realItem = item; } CSkin::SkinDrawBG(ctl->hwnd, ctl->pContainer->hwnd, ctl->pContainer, &rcClient, hdcMem);//.........这里部分代码省略.........
开发者ID:TonyAlloa,项目名称:miranda-dev,代码行数:101,
示例19: _password_change_dlg_procINT_PTR CALLBACK_password_change_dlg_proc( HWND hwnd, UINT message, WPARAM wparam, LPARAM lparam){ WORD code = HIWORD(wparam); WORD id = LOWORD(wparam); wchar_t display[MAX_PATH] = { 0 }; static dlgpass *info; int k; int check_init[ ] = { IDC_CHECK_SHOW_CURRENT, IDC_USE_KEYFILES_CURRENT, IDC_CHECK_SHOW_NEW, IDC_USE_KEYFILES_NEW, -1 }; _ctl_init static_head[ ] = { { L"# Current Password", IDC_HEAD_PASS_CURRENT, 0 }, { L"# New Password", IDC_HEAD_PASS_NEW, 0 }, { L"# Password Rating", IDC_HEAD_RATING, 0 }, { STR_NULL, -1, -1 } }; switch (message) { case WM_CTLCOLOREDIT : return _ctl_color(wparam, _cl(COLOR_BTNFACE, LGHT_CLR)); break; case WM_CTLCOLORSTATIC : { HDC dc = (HDC)wparam; COLORREF bgcolor, fn = 0; SetBkMode(dc, TRANSPARENT); k = 0; while (pass_gr_ctls[k].id != -1) { if (pass_gr_ctls[k].hwnd == (HWND)lparam) fn = pass_gr_ctls[k].color; if (pass_pe_ctls[k].hwnd == (HWND)lparam) fn = pass_pe_ctls[k].color; k++; } SetTextColor(dc, fn); bgcolor = GetSysColor(COLOR_BTNFACE); SetDCBrushColor(dc, bgcolor); return (INT_PTR)GetStockObject(DC_BRUSH); } break; case WM_INITDIALOG : { info = (dlgpass *)lparam; SendMessage(GetDlgItem(hwnd, IDE_PASS_NEW_CONFIRM), EM_LIMITTEXT, MAX_PASSWORD, 0); SendMessage(GetDlgItem(hwnd, IDE_PASS_CURRENT), EM_LIMITTEXT, MAX_PASSWORD, 0); SendMessage(GetDlgItem(hwnd, IDE_PASS_NEW), EM_LIMITTEXT, MAX_PASSWORD, 0); SendMessage(hwnd, WM_COMMAND, MAKELONG(IDE_PASS_NEW, EN_CHANGE), (LPARAM)GetDlgItem(hwnd, IDE_PASS_NEW)); if (info->node) { _snwprintf(display, sizeof_w(display), L"[%s] - %s", info->node->mnt.info.status.mnt_point, info->node->mnt.info.device); } else { wcscpy(display, L"Change password"); } SetWindowText(hwnd, display); SendMessage( GetDlgItem(hwnd, IDP_BREAKABLE), PBM_SETBARCOLOR, 0, _cl(COLOR_BTNSHADOW, DARK_CLR-20) ); SendMessage( GetDlgItem(hwnd, IDP_BREAKABLE), PBM_SETRANGE, 0, MAKELPARAM(0, 193) ); k = 0; while (static_head[k].id != -1) { SetWindowText(GetDlgItem(hwnd, static_head[k].id), static_head[k].display); SendMessage(GetDlgItem(hwnd, static_head[k].id), (UINT)WM_SETFONT, (WPARAM)__font_bold, 0); k++; }//.........这里部分代码省略.........
开发者ID:capturePointer,项目名称:DiskCryptor-1,代码行数:101,
示例20: GetSysColor/////////////////////////////////////////////////////////////////////////////// OnGetDefBackColorCOLORREF MyCug::OnGetDefBackColor(int section){ return GetSysColor ( COLOR_APPWORKSPACE );}
开发者ID:whybe,项目名称:Ultimate-Grid,代码行数:6,
示例21: ASSERTvoid CTreePropSheetBase::RefreshTreeItem(HTREEITEM hItem){ ASSERT(hItem); if (hItem) { DWORD dwItemData = m_pwndPageTree->GetItemData( hItem ); if( kNoPageAssociated != dwItemData ) { // Set font if disabled. CPropertyPage* pPage = GetPage( dwItemData ); ASSERT( pPage ); if( NULL != pPage ) { // Set text color ::SendMessage( m_pwndPageTree->GetSafeHwnd(), WMU_ENABLETREEITEM, (WPARAM)hItem, (LPARAM)( IsPageEnabled( pPage ) ? m_pwndPageTree->GetTextColor():GetSysColor( COLOR_GRAYTEXT ) ) ); } } }}
开发者ID:professor-nishui,项目名称:olanguage,代码行数:19,
示例22: MonthCalPaintstatic VOIDMonthCalPaint(IN PMONTHCALWND infoPtr, IN HDC hDC, IN LPRECT prcUpdate){ LONG x, y; RECT rcCell; COLORREF crOldText, crOldCtrlText = CLR_INVALID; HFONT hOldFont; INT iOldBkMode;#if MONTHCAL_CTRLBG != MONTHCAL_DISABLED_CTRLBG if (!infoPtr->Enabled) { FillRect(hDC, prcUpdate, GetSysColorBrush(MONTHCAL_DISABLED_CTRLBG)); }#endif iOldBkMode = SetBkMode(hDC, TRANSPARENT); hOldFont = (HFONT)SelectObject(hDC, infoPtr->hFont); for (y = prcUpdate->top / infoPtr->CellSize.cy; y <= prcUpdate->bottom / infoPtr->CellSize.cy && y < 7; y++) { rcCell.top = y * infoPtr->CellSize.cy; rcCell.bottom = rcCell.top + infoPtr->CellSize.cy; if (y == 0) { RECT rcHeader; /* paint the header */ rcHeader.left = prcUpdate->left; rcHeader.top = rcCell.top; rcHeader.right = prcUpdate->right; rcHeader.bottom = rcCell.bottom; FillRect(hDC, &rcHeader, infoPtr->hbHeader); crOldText = SetTextColor(hDC, GetSysColor(infoPtr->Enabled ? MONTHCAL_HEADERFG : MONTHCAL_DISABLED_HEADERFG)); for (x = prcUpdate->left / infoPtr->CellSize.cx; x <= prcUpdate->right / infoPtr->CellSize.cx && x < 7; x++) { rcCell.left = x * infoPtr->CellSize.cx; rcCell.right = rcCell.left + infoPtr->CellSize.cx; /* write the first letter of each weekday */ DrawTextW(hDC, &infoPtr->Week[x], 1, &rcCell, DT_SINGLELINE | DT_NOPREFIX | DT_CENTER | DT_VCENTER); } SetTextColor(hDC, crOldText); } else { if (crOldCtrlText == CLR_INVALID) { crOldCtrlText = SetTextColor(hDC, GetSysColor(infoPtr->Enabled ? MONTHCAL_CTRLFG : MONTHCAL_DISABLED_CTRLFG)); } for (x = prcUpdate->left / infoPtr->CellSize.cx; x <= prcUpdate->right / infoPtr->CellSize.cx && x < 7; x++) { UINT Day = infoPtr->Days[y - 1][x]; rcCell.left = x * infoPtr->CellSize.cx; rcCell.right = rcCell.left + infoPtr->CellSize.cx; /* write the day number */ if (Day != 0 && Day < 100) { WCHAR szDay[3]; INT szDayLen; RECT rcText; SIZE TextSize; szDayLen = swprintf(szDay, L"%lu", Day); if (GetTextExtentPoint32W(hDC, szDay, szDayLen, &TextSize))//.........这里部分代码省略.........
开发者ID:HBelusca,项目名称:NasuTek-Odyssey,代码行数:101,
示例23: RefillingPageTreeContentGuardvoid CTreePropSheetBase::RefillPageTree(){ if (!IsWindow(m_hWnd)) return; // TreePropSheetEx: OnPageTreeSelChanging does not process message. TreePropSheet::CIncrementScope RefillingPageTreeContentGuard( m_nRefillingPageTreeContent ); // TreePropSheetEx: End OnPageTreeSelChanging does not process message. m_pwndPageTree->DeleteAllItems(); CTabCtrl *pTabCtrl = GetTabControl(); if (!IsWindow(pTabCtrl->GetSafeHwnd())) { ASSERT(FALSE); return; } const int nPageCount = pTabCtrl->GetItemCount(); // rebuild image list if (m_bTreeImages) { for (int i = m_Images.GetImageCount()-1; i >= 0; --i) m_Images.Remove(i); // add page images CImageList *pPageImages = pTabCtrl->GetImageList(); if (pPageImages) { for (int nImage = 0; nImage < pPageImages->GetImageCount(); ++nImage) { HICON hIcon = pPageImages->ExtractIcon(nImage); m_Images.Add(hIcon); DestroyIcon(hIcon); } } // add default images if (m_DefaultImages.GetSafeHandle()) { HICON hIcon; // add default images hIcon = m_DefaultImages.ExtractIcon(0); if (hIcon) { m_Images.Add(hIcon); DestroyIcon(hIcon); } hIcon = m_DefaultImages.ExtractIcon(1); { m_Images.Add(hIcon); DestroyIcon(hIcon); } } } // insert tree items for (int nPage = 0; nPage < nPageCount; ++nPage) { // Get title and image of the page CString strPagePath; TCITEM ti; ZeroMemory(&ti, sizeof(ti)); ti.mask = TCIF_TEXT|TCIF_IMAGE; ti.cchTextMax = MAX_PATH; ti.pszText = strPagePath.GetBuffer(ti.cchTextMax); ASSERT(ti.pszText); if (!ti.pszText) return; pTabCtrl->GetItem(nPage, &ti); strPagePath.ReleaseBuffer(); // Create an item in the tree for the page HTREEITEM hItem = CreatePageTreeItem(ti.pszText); ASSERT(hItem); if (hItem) { m_pwndPageTree->SetItemData(hItem, nPage); // set image if (m_bTreeImages) { int nImage = ti.iImage; if (nImage < 0 || nImage >= m_Images.GetImageCount()) nImage = m_DefaultImages.GetSafeHandle()? m_Images.GetImageCount()-1 : -1; m_pwndPageTree->SetItemImage(hItem, nImage, nImage); } // Set font if disabled. CPropertyPage* pPage = GetPage( nPage ); ASSERT( pPage ); if( NULL != pPage && !IsPageEnabled( pPage ) ) { ::SendMessage( m_pwndPageTree->GetSafeHwnd(), WMU_ENABLETREEITEM, (WPARAM)hItem, (LPARAM)GetSysColor(COLOR_GRAYTEXT) ); }//.........这里部分代码省略.........
开发者ID:professor-nishui,项目名称:olanguage,代码行数:101,
示例24: ComboBoxSubclassProcstatic LRESULT CALLBACK ComboBoxSubclassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ switch (msg) { case WM_ERASEBKGND: return TRUE; case EM_SETSEL: if (!hOpClistControl) return HideCaret(hwnd); break; case WM_GETDLGCODE: if (!hOpClistControl) return DLGC_WANTARROWS; break; case WM_SETCURSOR: if (!hOpClistControl) { SetCursor(LoadCursor(NULL, IDC_ARROW)); return TRUE; } break; case WM_LBUTTONDOWN: if (hOpClistControl) break; HideCaret(hwnd); case WM_LBUTTONDBLCLK: case WM_MBUTTONDOWN: case WM_MBUTTONDBLCLK: SendMessage(hComboBox,CB_SHOWDROPDOWN,1,0); return TRUE; case WM_NCLBUTTONDBLCLK: case WM_NCLBUTTONDOWN: if (!bChecked) { MarkUserDefSession(opses_count,1); hIcon = hMarked; bChecked = TRUE; RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE|RDW_UPDATENOW|RDW_FRAME); } else { MarkUserDefSession(opses_count,0); hIcon = hNotMarked; bChecked = FALSE; RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE|RDW_UPDATENOW|RDW_FRAME); } break; case WM_MOUSEMOVE: if (hOpClistControl) break; case WM_NCMOUSEMOVE: return TRUE; case WM_NCPAINT: hdc = GetDC(hwnd); GetClientRect(hwnd, &rc); rc.left=rc.right; rc.right=rc.left+16; FillRect(hdc, &rc, (HBRUSH)GetSysColor(COLOR_WINDOW)); DrawIconEx(hdc, rc.left, 0, hIcon, 16, 16, 0, NULL, DI_NORMAL); ReleaseDC(hwnd, hdc); break; case WM_NCCALCSIZE: { NCCALCSIZE_PARAMS *ncsParam = (NCCALCSIZE_PARAMS*)lParam; ncsParam->rgrc[ 0 ].right -= 16; } break; case WM_NCHITTEST: { LRESULT lr = mir_callNextSubclass(hwnd, ComboBoxSubclassProc, msg, wParam, lParam ); if (lr == HTNOWHERE ) lr = HTOBJECT; return lr; } } return mir_callNextSubclass(hwnd, ComboBoxSubclassProc, msg, wParam, lParam);}
开发者ID:0xmono,项目名称:miranda-ng,代码行数:84,
示例25: CardImageWndProcLRESULT CALLBACKCardImageWndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ PCARDBACK pCardBack = (PCARDBACK)GetWindowLongPtr(hwnd, GWL_USERDATA); static WNDPROC hOldProc = NULL; if (!hOldProc && pCardBack) hOldProc = pCardBack->hOldProc; switch (msg) { case WM_PAINT: { HDC hdc; PAINTSTRUCT ps; HPEN hPen, hOldPen; HBRUSH hBrush, hOldBrush; RECT rc; hdc = BeginPaint(hwnd, &ps); if (pCardBack->bSelected) { hPen = CreatePen(PS_SOLID, 2, RGB(0,0,0)); } else { DWORD Face = GetSysColor(COLOR_3DFACE); hPen = CreatePen(PS_SOLID, 2, Face); } GetClientRect(hwnd, &rc); hBrush = (HBRUSH)GetStockObject(NULL_BRUSH); hOldPen = (HPEN)SelectObject(hdc, hPen); hOldBrush = (HBRUSH)SelectObject(hdc, hBrush); Rectangle(hdc, rc.left+1, rc.top+1, rc.right, rc.bottom); StretchBlt(hdc, 2, 2, CARDBACK_OPTIONS_WIDTH, CARDBACK_OPTIONS_HEIGHT, __hdcCardBitmaps, pCardBack->hdcNum * __cardwidth, 0, __cardwidth, __cardheight, SRCCOPY); SelectObject(hdc, hOldPen); SelectObject(hdc, hOldBrush); EndPaint(hwnd, &ps); break; } case WM_LBUTTONDOWN: pCardBack->bSelected = pCardBack->bSelected ? FALSE : TRUE; break; } return CallWindowProc(hOldProc, hwnd, msg, wParam, lParam);}
开发者ID:hoangduit,项目名称:reactos,代码行数:77,
示例26: GetSysColorvoid MenuEditorItem::PaintPopup(CDC& dc, CRect& rect){ // draw this item dc.FillSolidRect(rect, 0xffffff); dc.Draw3dRect(rect,GetSysColor(COLOR_BTNFACE), GetSysColor(COLOR_BTNFACE)); m_rect = rect; CRect temp = rect; if(pEditor->selected == this) { for(int x = temp.left; x < temp.right; x+=2) { dc.SetPixel(x,temp.top, 0); dc.SetPixel(x + 1- temp.Height()%2,temp.bottom-1, 0); } for(int y = temp.top; y < temp.bottom; y+=2) { dc.SetPixel(temp.left,y, 0); dc.SetPixel(temp.right-1,y +1- temp.Width()%2, 0); } } temp.DeflateRect(2,2); if(pEditor->selected == this) dc.FillSolidRect(temp, GetSysColor(COLOR_MENUHILIGHT)); temp.left += 20; if(inserttext || m_Disabled) dc.SetTextColor(GetSysColor(COLOR_GRAYTEXT)); else if(pEditor->selected == this) dc.SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT)); else dc.SetTextColor(GetSysColor(COLOR_MENUTEXT)); dc.DrawText(m_Text, temp, 0); //checkbox if(m_Checked) { COLORREF color = dc.GetTextColor(); CRect drawzone = rect; drawzone.top += 8; drawzone.left += 5; drawzone.bottom = drawzone.top + 3; drawzone.right = drawzone.left + 1; for(int a = 0; a < 2;a++) { dc.FillSolidRect(drawzone, color); drawzone.OffsetRect(1,1); } for(int b = 0; b < 5;b++) { dc.FillSolidRect(drawzone, color); drawzone.OffsetRect(1,-1); } } if (m_items.size() != 1 && m_items.size() != 0) { COLORREF color = dc.GetTextColor(); CRect rect; rect = temp; rect.left = rect.right - 5; rect.right = rect.left + 1; rect.top += 4; rect.bottom -= 4; for(int a = 0; a < 4; a ++) { dc.FillSolidRect(rect, color); rect.top ++; rect.bottom --; rect.left ++; rect.right ++; } } /////////////////////// rect.OffsetRect(0, rect.Height()+1);}
开发者ID:aolko,项目名称:construct,代码行数:87,
示例27: dcBOOL CContainer::OnPaint(HDC hDC) { CRect rcClient; CPaintDC dc(GetSafeHwnd()); // device context for painting CBrush cbr; CRect m_rectDraw; cbr.CreateSolidBrush(CDrawLayer::GetRGBColorFace()); GetClientRect(rcClient); CGDI MemDC; CBitmap m_BitmapMemDC; MemDC.CreateCompatibleDC(dc.m_hDC); m_BitmapMemDC.CreateCompatibleBitmap(dc.m_hDC,rcClient.Width(),rcClient.Height()); CBitmap *m_bitmapOld=new CBitmap(MemDC.SelectObject(&m_BitmapMemDC)); MemDC.FillRect(&rcClient,&cbr); m_rectTab=m_rectCliente; m_rectDraw=m_rectCliente; if (m_alnTab==ALN_BOTTOM) { if (m_Numtabs > 1) m_rectDraw.bottom=rcClient.bottom-(m_sizeImag.cy+SPACE_TAB+2); } else m_rectDraw.top=rcClient.top+(m_sizeImag.cy+SPACE_TAB+2); if (m_style != S3D) //si son carpetas estilo excel o tabbed como devstudio 7 { if (m_alnTab==ALN_BOTTOM) { m_rectCliente.bottom=rcClient.bottom-(DEFAULT_FLAT); m_rectTab.top=rcClient.bottom+2; } else { m_rectTab.bottom=rcClient.top+(DEFAULT_FLAT)+3; } } int nVal=0; if (m_alnTab!=ALN_TOP) { MemDC.FillRect(m_rectTab,&cbr); CRect mrc=m_rectDraw; } else { CRect rc=m_rectDraw; for (int i=0; i< 2; i++) { MemDC.Draw3dRect(rc,CDrawLayer::GetRGBColorFace(),CDrawLayer::GetRGBColorFace()); rc.DeflateRect(1,1); } rc.InflateRect(3,3); if (m_bDrawFrame) MemDC.Draw3dRect(rc,GetSysColor(COLOR_BTNSHADOW),GetSysColor(COLOR_BTNSHADOW)); else { CRect mrc=m_rectDraw; mrc.top+=nVal; MemDC.Draw3dRect(mrc,GetSysColor(COLOR_BTNSHADOW),GetSysColor(COLOR_BTNSHADOW)); } rc=m_rectDraw; rc.bottom=rc.top+3; MemDC.FillRect(rc,&cbr); } Drawtabs(&MemDC); dc.BitBlt(0,0,rcClient.Width(),rcClient.Height(),MemDC.m_hDC, rcClient.left,rcClient.top,SRCCOPY); MemDC.SelectObject(m_bitmapOld); m_BitmapMemDC.DeleteObject(); MemDC.DeleteDC(); cbr.DeleteObject(); m_bitmapOld->DeleteObject(); dc.DeleteDC(); delete m_bitmapOld; return TRUE;}
开发者ID:axxapp,项目名称:winxgui,代码行数:88,
示例28: _main_dialog_proc//.........这里部分代码省略......... { int mount_cnt; dc_mount_all(NULL, &mount_cnt, 0); } break; case 1 : dc_unmount_all( ); break; case 2 : dc_clean_pass_cache( ); break; case 3 : dc_get_bsod( ); break; } return 1L; } break; case WM_ENDSESSION : { if ( lparam & ENDSESSION_LOGOFF ) { if ( __config.conf_flags & CONF_DISMOUNT_LOGOFF ) { dc_unmount_all( ); } if ( __config.conf_flags & CONF_WIPEPAS_LOGOFF ) { dc_clean_pass_cache( ); } } } break; case WM_SYSCOLORCHANGE : { COLORREF cl_light = _cl( COLOR_BTNFACE, LGHT_CLR ); COLORREF cl_button = GetSysColor( COLOR_BTNFACE ); int k; for ( k = 0; k < countof(__lists); k++ ) { if ( ( __lists[k] != HWND_NULL ) && ( __lists[k] != NULL ) ) { ListView_SetBkColor( __lists[k], cl_button ); ListView_SetTextBkColor( __lists[k], cl_button ); ListView_SetExtendedListViewStyle( __lists[k], LVS_EX_FULLROWSELECT ); if ( !IsWindowEnabled( __lists[k] ) ) { // EnableWindow( __lists[k], TRUE ); // EnableWindow( __lists[k], FALSE ); } } } TreeView_SetBkColor( GetDlgItem(hwnd, IDC_TREE), cl_light ); ListView_SetBkColor( __lists[HMAIN_DRIVES], cl_light ); ListView_SetTextBkColor( __lists[HMAIN_DRIVES], cl_light ); ListView_SetExtendedListViewStyle( __lists[HMAIN_DRIVES], LVS_EX_FULLROWSELECT ); ListView_SetImageList( __lists[HMAIN_DRIVES], __dsk_img, LVSIL_SMALL ); } break; case WM_APP + WM_APP_TRAY : { switch ( lparam ) {
开发者ID:hkerem,项目名称:dcrypt,代码行数:67,
注:本文中的GetSysColor函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ GetSystem函数代码示例 C++ GetSummoner函数代码示例 |