您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetSysColor函数代码示例

51自学网 2021-06-01 21:15:42
  C++
这篇教程C++ GetSysColor函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetSysColor函数的典型用法代码示例。如果您正苦于以下问题:C++ GetSysColor函数的具体用法?C++ GetSysColor怎么用?C++ GetSysColor使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetSysColor函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: memset

void 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: rcLabel

void 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: GetWindowRect

void 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: CreateSolidBrush

void 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: OptionsProc

INT_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: CreatePen

void 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: switch

void 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: switch

LRESULT 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: winButtonDrawImageText

static 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: OptionsDlgProc

static 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: OptionsFilterSubclassProc

static 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: Drawtabs

void 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: MoveWindow

void 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: DownloadProgressProc

LRESULT 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: TGetWindowText

void 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: PaintWorker

static 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_proc

INT_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: ASSERT

void 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: MonthCalPaint

static 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: RefillingPageTreeContentGuard

void 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: ComboBoxSubclassProc

static 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: CardImageWndProc

LRESULT 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: GetSysColor

void 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: dc

BOOL 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函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。