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

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

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

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

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

示例1: BeginPaint

void CPlugin::onPaint(HWND hWnd){  RECT rc;  HDC hDC;  PAINTSTRUCT ps;  int x, y;  hDC = BeginPaint(hWnd, &ps);  GetClientRect(hWnd, &rc);  x = (rc.right / 2) - (32 / 2);  y = (rc.bottom / 2) - ((32) / 2);  if(rc.right > 34 && rc.bottom > 34)  {    if(m_hIcon != NULL)      DrawIcon(hDC, x, y, m_hIcon);    POINT pt[5];    // left vert and top horiz highlight    pt[0].x = 1;            pt[0].y = rc.bottom-1;    pt[1].x = 1;            pt[1].y = 1;    pt[2].x = rc.right-1; pt[2].y = 1;    HPEN hPen3DLight  = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_3DLIGHT));    HPEN hPen3DShadow = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_3DSHADOW));    HPEN hPen3DDKShadow = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_3DDKSHADOW));    HPEN hPenOld = SelectPen(hDC, hPen3DLight);    Polyline(hDC, pt, 3);    // left vert and top horiz shadow    pt[0].x = 2;            pt[0].y = rc.bottom-3;    pt[1].x = 2;            pt[1].y = 2;    pt[2].x = rc.right-2; pt[2].y = 2;    SelectPen(hDC, hPen3DShadow);    Polyline(hDC, pt, 3);    // right vert and bottom horiz highlight    pt[0].x = rc.right-3; pt[0].y = 2;    pt[1].x = rc.right-3; pt[1].y = rc.bottom-3;    pt[2].x = 2;            pt[2].y = rc.bottom-3;    SelectPen(hDC, hPen3DLight);    Polyline(hDC, pt, 3);    // right vert and bottom horiz shadow    pt[0].x = rc.right-1; pt[0].y = 1;    pt[1].x = rc.right-1; pt[1].y = rc.bottom-1;    pt[2].x = 0;            pt[2].y = rc.bottom-1;    SelectPen(hDC, hPen3DDKShadow);    Polyline(hDC, pt, 3);    // restore the old pen    SelectPen(hDC, hPenOld);    DeletePen(hPen3DDKShadow);    DeletePen(hPen3DShadow);    DeletePen(hPen3DLight);        DrawCommandMessage(hDC, m_szCommandMessage, &rc);  }  else    if(m_hIcon != NULL)      DrawIconEx(hDC, x, y, m_hIcon, rc.right - rc.left, rc.bottom - rc.top, 0, NULL, DI_NORMAL);  EndPaint (hWnd, &ps);}
开发者ID:MozillaOnline,项目名称:gecko-dev,代码行数:68,


示例2: GetDC

QPixmap QPixmap::fromWinHICON(HICON icon){    bool foundAlpha = false;    HDC screenDevice = GetDC(0);    HDC hdc = CreateCompatibleDC(screenDevice);    ReleaseDC(0, screenDevice);    ICONINFO iconinfo;    bool result = GetIconInfo(icon, &iconinfo); //x and y Hotspot describes the icon center    if (!result)        qWarning("QPixmap::fromWinHICON(), failed to GetIconInfo()");    int w = iconinfo.xHotspot * 2;    int h = iconinfo.yHotspot * 2;    BITMAPINFOHEADER bitmapInfo;    bitmapInfo.biSize        = sizeof(BITMAPINFOHEADER);    bitmapInfo.biWidth       = w;    bitmapInfo.biHeight      = h;    bitmapInfo.biPlanes      = 1;    bitmapInfo.biBitCount    = 32;    bitmapInfo.biCompression = BI_RGB;    bitmapInfo.biSizeImage   = 0;    bitmapInfo.biXPelsPerMeter = 0;    bitmapInfo.biYPelsPerMeter = 0;    bitmapInfo.biClrUsed       = 0;    bitmapInfo.biClrImportant  = 0;    DWORD* bits;    HBITMAP winBitmap = CreateDIBSection(hdc, (BITMAPINFO*)&bitmapInfo, DIB_RGB_COLORS, (VOID**)&bits, NULL, 0);    HGDIOBJ oldhdc = (HBITMAP)SelectObject(hdc, winBitmap);    DrawIconEx( hdc, 0, 0, icon, iconinfo.xHotspot * 2, iconinfo.yHotspot * 2, 0, 0, DI_NORMAL);    QImage image = qt_fromWinHBITMAP(hdc, winBitmap, w, h);    for (int y = 0 ; y < h && !foundAlpha ; y++) {        QRgb *scanLine= reinterpret_cast<QRgb *>(image.scanLine(y));        for (int x = 0; x < w ; x++) {            if (qAlpha(scanLine[x]) != 0) {                foundAlpha = true;                break;            }        }    }    if (!foundAlpha) {        //If no alpha was found, we use the mask to set alpha values        DrawIconEx( hdc, 0, 0, icon, w, h, 0, 0, DI_MASK);        QImage mask = qt_fromWinHBITMAP(hdc, winBitmap, w, h);        for (int y = 0 ; y < h ; y++){            QRgb *scanlineImage = reinterpret_cast<QRgb *>(image.scanLine(y));            QRgb *scanlineMask = mask.isNull() ? 0 : reinterpret_cast<QRgb *>(mask.scanLine(y));            for (int x = 0; x < w ; x++){                if (scanlineMask && qRed(scanlineMask[x]) != 0)                    scanlineImage[x] = 0; //mask out this pixel                else                    scanlineImage[x] |= 0xff000000; // set the alpha channel to 255            }        }    }    //dispose resources created by iconinfo call    DeleteObject(iconinfo.hbmMask);    DeleteObject(iconinfo.hbmColor);    SelectObject(hdc, oldhdc); //restore state    DeleteObject(winBitmap);    DeleteDC(hdc);    return QPixmap::fromImage(image);}
开发者ID:cdaffara,项目名称:symbiandump-mw3,代码行数:68,


示例3: GetFirstVisibleItem

// Draw TreeCtrl Itemsvoid VividTree::DrawItems( CDC *pDC ){	// draw items	HTREEITEM show_item, parent;	CRect rc_item;	CString name;	COLORREF color;	DWORD tree_style;	BITMAP bm;	CDC dc_mem;	CBitmap *button;	int count = 0;	int state;	bool selected;	bool has_children;	show_item = GetFirstVisibleItem();	if ( show_item == NULL )		return;	dc_mem.CreateCompatibleDC(NULL);	color = pDC->GetTextColor();	tree_style = ::GetWindowLong( m_hWnd, GWL_STYLE ); 	do	{		state = GetItemState( show_item, TVIF_STATE );		parent = GetParentItem( show_item );		has_children = ItemHasChildren( show_item ) || parent == NULL;		selected = (state & TVIS_SELECTED) && ((this == GetFocus()) || 				(tree_style & TVS_SHOWSELALWAYS));		if ( GetItemRect( show_item, rc_item, TRUE ) )		{			if( selected)			{				CRect rc_all;				GetItemRect(show_item,&rc_all, FALSE);				pDC->FillSolidRect(&rc_all, RGB(170,155,119));			}			if ( has_children  || selected )			{				COLORREF from;				CRect rect;				// Show 				if ( selected )					from = m_gradient_bkgd_sel;				else					from = m_gradient_bkgd_to - (m_gradient_bkgd_from - m_gradient_bkgd_to);				rect.top = rc_item.top;				rect.bottom = rc_item.bottom;				rect.right = m_h_size + m_h_offset;				if ( !has_children )					rect.left = rc_item.left + m_h_offset;				else					rect.left = m_h_offset;				//GradientFillRect( pDC, rect, from, m_gradient_bkgd_to, FALSE );				//pDC->SetTextColor( RGB( 0, 0, 255 ) );				pDC->SetTextColor(GetSysColor(COLOR_HIGHLIGHTTEXT));				if ( has_children )				{					// Draw an Open/Close button					if ( state & TVIS_EXPANDED )						button = &m_bmp_tree_open;					else						button = &m_bmp_tree_closed;					VERIFY(button->GetObject(sizeof(bm), (LPVOID)&bm));					CBitmap *bmp_old = (CBitmap*)dc_mem.SelectObject(button); 					pDC->TransparentBlt(rc_item.left - bm.bmWidth - 2, rc_item.top, bm.bmWidth, bm.bmHeight, 						&dc_mem, 0, 0,bm.bmWidth,bm.bmWidth, GetSysColor(COLOR_HIGHLIGHTTEXT));					//pDC->BitBlt( rc_item.left - bm.bmWidth - 2, rc_item.top, bm.bmWidth, bm.bmHeight, 					//	&dc_mem, 0, 0, SRCCOPY );					// CleanUp					dc_mem.SelectObject( bmp_old );				}			}			if ( !has_children )			{				// lookup the ICON instance (if any) and draw it				HICON icon;				icon = GetItemIcon( show_item );				if ( icon != NULL )					DrawIconEx( pDC->m_hDC, rc_item.left - 18, rc_item.top, icon, 16, 16,0,0, DI_NORMAL );			}			name = GetItemText( show_item );			rc_item.DeflateRect( 0,1,0,1 );			if ( selected )			{				if ( !has_children  )					pDC->SetTextColor( GetSysColor(COLOR_HIGHLIGHTTEXT) );				COLORREF col = pDC->GetBkColor();				//pDC->SetBkColor( /*GetSysColor(COLOR_HIGHLIGHT)*/RGB(170,155,119) );				pDC->DrawText( name, rc_item, DT_LEFT );				pDC->SetTextColor( color );				pDC->SetBkColor( col );			}			else			{//.........这里部分代码省略.........
开发者ID:jjiezheng,项目名称:pap_full,代码行数:101,


示例4: MainWindowProc

/** MainWindowProc** Purpose:** Main window procedure.**/LRESULT CALLBACK MainWindowProc(    _In_ HWND hwnd,    _In_ UINT uMsg,    _In_ WPARAM wParam,    _In_ LPARAM lParam){    INT                 mark;    RECT                ToolBarRect, crc;    LPDRAWITEMSTRUCT    pds;    LPMEASUREITEMSTRUCT pms;    switch (uMsg) {    case WM_CONTEXTMENU:        RtlSecureZeroMemory(&crc, sizeof(crc));        if ((HWND)wParam == g_hwndObjectTree) {            TreeView_GetItemRect(g_hwndObjectTree, TreeView_GetSelection(g_hwndObjectTree), &crc, TRUE);            crc.top = crc.bottom;            ClientToScreen(g_hwndObjectTree, (LPPOINT)&crc);            supHandleTreePopupMenu(hwnd, (LPPOINT)&crc);        }        if ((HWND)wParam == g_hwndObjectList) {            mark = ListView_GetSelectionMark(g_hwndObjectList);            if (lParam == MAKELPARAM(-1, -1)) {                ListView_GetItemRect(g_hwndObjectList, mark, &crc, TRUE);                crc.top = crc.bottom;                ClientToScreen(g_hwndObjectList, (LPPOINT)&crc);            }            else                GetCursorPos((LPPOINT)&crc);            supHandleObjectPopupMenu(hwnd, g_hwndObjectList, mark, (LPPOINT)&crc);        }        break;    case WM_COMMAND:        MainWindowHandleWMCommand(hwnd, wParam, lParam);        break;    case WM_NOTIFY:        MainWindowHandleWMNotify(hwnd, wParam, lParam);        break;    case WM_MEASUREITEM:        pms = (LPMEASUREITEMSTRUCT)lParam;        if (pms && pms->CtlType == ODT_MENU) {            pms->itemWidth = 16;            pms->itemHeight = 16;        }        break;    case WM_DRAWITEM:        pds = (LPDRAWITEMSTRUCT)lParam;        if (pds && pds->CtlType == ODT_MENU) {            DrawIconEx(pds->hDC, pds->rcItem.left - 15,                pds->rcItem.top,                (HICON)pds->itemData,                16, 16, 0, NULL, DI_NORMAL);        }        break;    case WM_CLOSE:        PostQuitMessage(0);        break;    case WM_LBUTTONDOWN:        SetCapture(MainWindow);        break;    case WM_LBUTTONUP:        ReleaseCapture();        break;    case WM_MOUSEMOVE:        if ((wParam & MK_LBUTTON) != 0) {            GetClientRect(MainWindow, &ToolBarRect);            SplitterPos = (SHORT)LOWORD(lParam);            if (SplitterPos < SplitterMargin)                SplitterPos = SplitterMargin;            if (SplitterPos > ToolBarRect.right - SplitterMargin)                SplitterPos = ToolBarRect.right - SplitterMargin;            SendMessage(MainWindow, WM_SIZE, 0, 0);            UpdateWindow(MainWindow);        }        break;    case WM_SIZE:        if (!IsIconic(hwnd)) {//.........这里部分代码省略.........
开发者ID:songbei6,项目名称:WinObjEx64,代码行数:101,


示例5: GetClientRect

//界面绘画函数void CSkinButton::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct){	//定义变量	CRect ClientRect;	GetClientRect(&ClientRect);	bool bDisable=((lpDrawItemStruct->itemState&ODS_DISABLED)!=0);	bool bButtonDown=((lpDrawItemStruct->itemState&ODS_SELECTED)!=0);	//设置 DC	HDC hDC=lpDrawItemStruct->hDC;	//获取文字	CString strText;	GetWindowText(strText);	//加载背景图	CImageHandle ImageHandle;	if (m_ImageBack.IsSetLoadInfo()) ImageHandle.AttachResource(&m_ImageBack);	else ImageHandle.AttachResource(&m_SkinAttribute.m_ImageBack);	if (ImageHandle.IsResourceValid())	{		//计算位图位置		int iPartWidth=ImageHandle->GetWidth()/5,iDrawPos=0;		if (bDisable) iDrawPos=iPartWidth*4;		else if (bButtonDown) iDrawPos=iPartWidth;		else if (m_bHovering) iDrawPos=iPartWidth*3;		//绘画背景图		if (m_bExpand==false) ImageHandle->BitBlt(hDC,0,0,ClientRect.Width(),ClientRect.Height(),iDrawPos,0,SRCCOPY);		else ImageHandle->StretchBlt(hDC,0,0,ClientRect.Width(),ClientRect.Height(),iDrawPos,0,iPartWidth,ImageHandle->GetHeight(),SRCCOPY);	}	else	{		//绘画默认界面		CDC * pDC=CDC::FromHandle(hDC);		pDC->FillSolidRect(&ClientRect,GetSysColor(COLOR_BTNFACE));		if (bButtonDown) pDC->Draw3dRect(&ClientRect,GetSysColor(COLOR_WINDOWFRAME),GetSysColor(COLOR_3DHILIGHT));		else pDC->Draw3dRect(&ClientRect,GetSysColor(COLOR_3DHILIGHT),GetSysColor(COLOR_WINDOWFRAME));	}	//绘画图标	if (bButtonDown) ClientRect.top+=2;	if (m_hIcon)	{		DrawIconEx(hDC,ClientRect.left+6,ClientRect.top+(ClientRect.Height()-16)/2+1,m_hIcon,16,16,0,NULL,DI_NORMAL);		ClientRect.left+=22;	}	//绘画字体	ClientRect.top+=1;	::SetBkMode(hDC,TRANSPARENT);	if(!m_bShowTextFrame)	{		if (bDisable) ::SetTextColor(hDC,GetSysColor(COLOR_GRAYTEXT));		else ::SetTextColor(hDC,m_crTextColor);		DrawText(hDC,strText,strText.GetLength(),ClientRect,DT_CENTER|DT_VCENTER|DT_SINGLELINE|DT_END_ELLIPSIS);	}	//艺术字体	else	{		CDC * pDC=CDC::FromHandle(hDC);		DrawTextString(pDC,strText,m_crTextColor,m_crTextFrameColor,ClientRect);	}	return;}
开发者ID:Michael-Z,项目名称:qipai-game,代码行数:67,


示例6: FontCombo_DrawItem

////	Fontlist owner-draw //BOOL FontCombo_DrawItem(HWND hwnd, DRAWITEMSTRUCT *dis){	TCHAR		szText[100];		BOOL		fFixed		= LOWORD(dis->itemData);	BOOL		fTrueType	= HIWORD(dis->itemData);	TEXTMETRIC	tm;	int			xpos, ypos;	HANDLE		hOldFont;	if(dis->itemAction & ODA_FOCUS && !(dis->itemState & ODS_NOFOCUSRECT))	{		DrawFocusRect(dis->hDC, &dis->rcItem);		return TRUE;	}	/*{		HTHEME hTheme = 	OpenThemeData(hwnd, L"combobox");		RECT rc;		HDC hdc=GetDC(GetParent(hwnd));		CopyRect(&rc, &dis->rcItem);		InflateRect(&rc, 3, 3);		//GetClientRect(hwnd, &rc);		//rc.bottom = rc.top + 22;		//DrawThemeBackground(		//	hTheme, 		//	dis->hDC, 		//	4,//CP_DROPDOWNBUTTON, 		//	CBXS_HOT,//CBXS_NORMAL, 		//	&rc, 		//	&rc);		CloseThemeData(hTheme);		ReleaseDC(GetParent(hwnd),hdc);		return TRUE;	}*/	//	//	Get the item text	//	if(dis->itemID == -1)		SendMessage(dis->hwndItem, WM_GETTEXT, 0, (LONG)szText);	else		SendMessage(dis->hwndItem, CB_GETLBTEXT, dis->itemID, (LONG)szText);		//	//	Set text colour and background based on current state	//	DrawItem_DefaultColours(dis);	// set the font: BOLD for fixed-width, NORMAL for 'normal'	hOldFont = SelectObject(dis->hDC, fFixed ? g_hBoldFont : g_hNormalFont);	GetTextMetrics(dis->hDC, &tm);	ypos = dis->rcItem.top  + (dis->rcItem.bottom-dis->rcItem.top-tm.tmHeight)/2;	xpos = dis->rcItem.left + 20;		// draw the text	ExtTextOut(dis->hDC, xpos, ypos,		ETO_CLIPPED|ETO_OPAQUE, &dis->rcItem, szText, _tcslen(szText), 0);	// draw a 'TT' icon if the font is TRUETYPE	if(fTrueType)		DrawIconEx(dis->hDC, dis->rcItem.left+2, dis->rcItem.top, g_hIcon2,16, 16, 0, 0, DI_NORMAL);	//else if(fTrueType == 2)	//	DrawIconEx(dis->hDC, dis->rcItem.left+2, dis->rcItem.top, g_hIcon3,16, 16, 0, 0, DI_NORMAL);	SelectObject(dis->hDC, hOldFont);	// draw the focus rectangle	if((dis->itemState & ODS_FOCUS) && !(dis->itemState & ODS_NOFOCUSRECT))	{		DrawFocusRect(dis->hDC, &dis->rcItem);	}	return TRUE;}
开发者ID:MakiseKurisu,项目名称:Neatpad,代码行数:82,


示例7: ModernOptSelector_DlgProc

INT_PTR CALLBACK ModernOptSelector_DlgProc(HWND hwndDlg, UINT  msg, WPARAM wParam, LPARAM lParam){	TSelectorData *sd = (TSelectorData *)GetWindowLongPtr(hwndDlg, GWLP_USERDATA);	switch (msg) {	case WM_INITDIALOG:		sd = new TSelectorData;		sd->obj = (MODERNOPTOBJECT*)lParam;		sd->active = sttGetActiveSkin(sd->obj);		SetWindowLongPtr(hwndDlg, GWLP_USERDATA, (LONG_PTR)sd);		BuildSkinList(GetDlgItem(hwndDlg, IDC_SKINLIST), _A2T(sd->obj->lpzThemeExtension));		return FALSE;	case WM_COMMAND:		if (LOWORD(wParam) == IDC_SKINLIST) {			switch (HIWORD(wParam)) {			case LBN_SELCHANGE:				DeleteObject(sd->hbmpPreview);				sd->hbmpPreview = 0;				RedrawWindow(GetDlgItem(hwndDlg, IDC_PREVIEW1), NULL, NULL, RDW_INVALIDATE);				break;			case LBN_DBLCLK:				int idx = SendDlgItemMessage(hwndDlg, IDC_SKINLIST, LB_GETCURSEL, 0, 0);				if (idx >= 0) {					TSkinListItem *dat = (TSkinListItem *)SendDlgItemMessage(hwndDlg, IDC_SKINLIST, LB_GETITEMDATA, idx, 0);					sttApplySkin(sd->obj, dat->filename);					mir_free(sd->active);					sd->active = sttGetActiveSkin(sd->obj);					RedrawWindow(GetDlgItem(hwndDlg, IDC_SKINLIST), NULL, NULL, RDW_INVALIDATE);				}				break;			}			break;		}		return FALSE;	case WM_MEASUREITEM:		{			LPMEASUREITEMSTRUCT lps = (LPMEASUREITEMSTRUCT)lParam;			if (lps->CtlID != IDC_SKINLIST)				break;			TSkinListItem *dat = (TSkinListItem *)lps->itemData;			if (!dat) break;			lps->itemWidth = 10;			lps->itemHeight = 30;			return FALSE;		}	case WM_DRAWITEM:		{			LPDRAWITEMSTRUCT lps = (LPDRAWITEMSTRUCT)lParam;			if (lps->CtlID == IDC_SKINLIST) {				TSkinListItem *dat = (TSkinListItem *)lps->itemData;				if (!dat) break;				SetBkMode(lps->hDC, TRANSPARENT);				COLORREF clLine1, clLine2, clBack;				if (lps->itemState & ODS_SELECTED) {					FillRect(lps->hDC, &lps->rcItem, GetSysColorBrush(COLOR_HIGHLIGHT));					clBack = GetSysColor(COLOR_HIGHLIGHT);					clLine1 = GetSysColor(COLOR_HIGHLIGHTTEXT);				}				else {					FillRect(lps->hDC, &lps->rcItem, GetSysColorBrush(COLOR_WINDOW));					clBack = GetSysColor(COLOR_WINDOW);					clLine1 = GetSysColor(COLOR_WINDOWTEXT);				}				clLine2 = RGB(					GetRValue(clLine1) * 0.66 + GetRValue(clBack) * 0.34,					GetGValue(clLine1) * 0.66 + GetGValue(clBack) * 0.34,					GetBValue(clLine1) * 0.66 + GetBValue(clBack) * 0.34);				lps->rcItem.left += 2;				lps->rcItem.top += 2;				lps->rcItem.bottom -= 2;				lps->rcItem.right -= 5;				int cxIcon = GetSystemMetrics(SM_CXSMICON);				int cyIcon = GetSystemMetrics(SM_CYSMICON);				if (sd->active && !mir_tstrcmp(sd->active, dat->filename)) {					DrawIconEx(lps->hDC, lps->rcItem.left, (lps->rcItem.top + lps->rcItem.bottom - cyIcon) / 2,						Skin_LoadIcon(SKINICON_OTHER_EMPTYBLOB),						cxIcon, cyIcon, 0, NULL, DI_NORMAL);				}				else {					DrawIconEx(lps->hDC, lps->rcItem.left, (lps->rcItem.top + lps->rcItem.bottom - cyIcon) / 2,						Skin_LoadIcon(SKINICON_OTHER_SMALLDOT),						cxIcon, cyIcon, 0, NULL, DI_NORMAL);				}				lps->rcItem.left += cxIcon;				lps->rcItem.left += 5;				SetTextColor(lps->hDC, clLine1);				DrawText(lps->hDC, dat->title, -1, &lps->rcItem, DT_LEFT | DT_NOPREFIX | DT_SINGLELINE | DT_END_ELLIPSIS | DT_TOP);				lps->rcItem.left += cxIcon;//.........这里部分代码省略.........
开发者ID:kxepal,项目名称:miranda-ng,代码行数:101,


示例8: DlgProcRecvFile

//.........这里部分代码省略.........			TimeZone_PrintTimeStamp(NULL, dbei.timestamp, _T("t d"), datetimestr, _countof(datetimestr), 0);			SetDlgItemText(hwndDlg, IDC_DATE, datetimestr);			ptrT info(Contact_GetInfo(CNF_UNIQUEID, dat->hContact));			SetDlgItemText(hwndDlg, IDC_NAME, (info) ? info : contactName);			if (db_get_b(dat->hContact, "CList", "NotOnList", 0)) {				RECT rcBtn1, rcBtn2, rcDateCtrl;				GetWindowRect(GetDlgItem(hwndDlg, IDC_ADD), &rcBtn1);				GetWindowRect(GetDlgItem(hwndDlg, IDC_USERMENU), &rcBtn2);				GetWindowRect(GetDlgItem(hwndDlg, IDC_DATE), &rcDateCtrl);				SetWindowPos(GetDlgItem(hwndDlg, IDC_DATE), 0, 0, 0, rcDateCtrl.right - rcDateCtrl.left - (rcBtn2.left - rcBtn1.left), rcDateCtrl.bottom - rcDateCtrl.top, SWP_NOZORDER | SWP_NOMOVE);			}			else if (db_get_b(NULL, "SRFile", "AutoAccept", 0)) {				//don't check auto-min here to fix BUG#647620				PostMessage(hwndDlg, WM_COMMAND, MAKEWPARAM(IDOK, BN_CLICKED), (LPARAM)GetDlgItem(hwndDlg, IDOK));			}			if (!db_get_b(dat->hContact, "CList", "NotOnList", 0))				ShowWindow(GetDlgItem(hwndDlg, IDC_ADD), SW_HIDE);		}		return TRUE;	case WM_MEASUREITEM:		return Menu_MeasureItem((LPMEASUREITEMSTRUCT)lParam);	case WM_DRAWITEM:		{			LPDRAWITEMSTRUCT dis = (LPDRAWITEMSTRUCT)lParam;			if (dis->hwndItem == GetDlgItem(hwndDlg, IDC_PROTOCOL)) {				char *szProto = GetContactProto(dat->hContact);				if (szProto) {					HICON hIcon = (HICON)CallProtoService(szProto, PS_LOADICON, PLI_PROTOCOL|PLIF_SMALL, 0);					if (hIcon) {						DrawIconEx(dis->hDC, dis->rcItem.left, dis->rcItem.top, hIcon, GetSystemMetrics(SM_CXSMICON), GetSystemMetrics(SM_CYSMICON), 0, NULL, DI_NORMAL);						DestroyIcon(hIcon);					}				}			}		}		return Menu_DrawItem((LPDRAWITEMSTRUCT)lParam);	case WM_COMMAND:		if (CallService(MS_CLIST_MENUPROCESSCOMMAND, MAKEWPARAM(LOWORD(wParam), MPCF_CONTACTMENU), (LPARAM)dat->hContact))			break;		switch (LOWORD(wParam)) {		case IDC_FILEDIRBROWSE:			{				TCHAR szDirName[MAX_PATH], szExistingDirName[MAX_PATH];				GetDlgItemText(hwndDlg, IDC_FILEDIR, szDirName, _countof(szDirName));				GetLowestExistingDirName(szDirName, szExistingDirName, _countof(szExistingDirName));				if (BrowseForFolder(hwndDlg, szExistingDirName))					SetDlgItemText(hwndDlg, IDC_FILEDIR, szExistingDirName);			}			break;		case IDOK:			{	//most recently used directories				TCHAR szRecvDir[MAX_PATH], szDefaultRecvDir[MAX_PATH];				GetDlgItemText(hwndDlg, IDC_FILEDIR, szRecvDir, _countof(szRecvDir));				RemoveInvalidPathChars(szRecvDir);				GetContactReceivedFilesDir(NULL, szDefaultRecvDir, _countof(szDefaultRecvDir), TRUE);				if (_tcsnicmp(szRecvDir, szDefaultRecvDir, mir_tstrlen(szDefaultRecvDir))) {					char idstr[32];					int i;
开发者ID:ybznek,项目名称:miranda-ng,代码行数:67,


示例9: GetWindowStyle

void PictureButton::DrawItem(LPDRAWITEMSTRUCT dis){	UINT state = DFCS_BUTTONPUSH;	int style = GetWindowStyle(_hwnd);	if (dis->itemState & ODS_DISABLED)		state |= DFCS_INACTIVE;	POINT imagePos;	RECT textRect;	int dt_flags;	if (style & BS_BOTTOM) {		 // align horizontal centered, vertical floating		imagePos.x = (dis->rcItem.left + dis->rcItem.right - _cx) / 2;		imagePos.y = dis->rcItem.top + 3;		textRect.left = dis->rcItem.left + 2;		textRect.top = dis->rcItem.top + _cy + 4;		textRect.right = dis->rcItem.right - 4;		textRect.bottom = dis->rcItem.bottom - 4;		dt_flags = DT_SINGLELINE|DT_CENTER|DT_VCENTER;	} else {		 // horizontal floating, vertical centered		imagePos.x = dis->rcItem.left + 3;		imagePos.y = (dis->rcItem.top + dis->rcItem.bottom - _cy)/2;		textRect.left = dis->rcItem.left + _cx + 4;		textRect.top = dis->rcItem.top + 2;		textRect.right = dis->rcItem.right - 4;		textRect.bottom = dis->rcItem.bottom - 4;		dt_flags = DT_SINGLELINE|DT_VCENTER/*|DT_CENTER*/;	}	if (dis->itemState & ODS_SELECTED) {		state |= DFCS_PUSHED;		++imagePos.x;		++imagePos.y;		++textRect.left;	++textRect.top;		++textRect.right;	++textRect.bottom;	}	if (_flat) {		FillRect(dis->hDC, &dis->rcItem, _hBrush);		if (style & BS_FLAT)	// Only with BS_FLAT set, there will be drawn a frame without highlight.			DrawEdge(dis->hDC, &dis->rcItem, EDGE_RAISED, BF_RECT|BF_FLAT);	} else		DrawFrameControl(dis->hDC, &dis->rcItem, DFC_BUTTON, state);	if (_hIcon)		DrawIconEx(dis->hDC, imagePos.x, imagePos.y, _hIcon, _cx, _cy, 0, _hBrush, DI_NORMAL);	else {		MemCanvas mem_dc;		BitmapSelection sel(mem_dc, _hBmp);		BitBlt(dis->hDC, imagePos.x, imagePos.y, _cx, _cy, mem_dc, 0, 0, SRCCOPY);	}	TCHAR title[BUFFER_LEN];	GetWindowText(_hwnd, title, BUFFER_LEN);	BkMode bk_mode(dis->hDC, TRANSPARENT);	if (dis->itemState & (ODS_DISABLED|ODS_GRAYED))		DrawGrayText(dis->hDC, &textRect, title, dt_flags);	else {		TextColor lcColor(dis->hDC, GetSysColor(COLOR_BTNTEXT));		DrawText(dis->hDC, title, -1, &textRect, dt_flags);	}	if (dis->itemState & ODS_FOCUS) {		RECT rect = {			dis->rcItem.left+3, dis->rcItem.top+3,			dis->rcItem.right-dis->rcItem.left-4, dis->rcItem.bottom-dis->rcItem.top-4		};		if (dis->itemState & ODS_SELECTED) {			++rect.left;	++rect.top;			++rect.right;	++rect.bottom;		}		DrawFocusRect(dis->hDC, &rect);	}}
开发者ID:svn2github,项目名称:ros-explorer,代码行数:83,


示例10: CopyScreenToBitmap

HBITMAP CopyScreenToBitmap(LPRECT lpRect, BYTE *pData, BITMAPINFO *pHeader, BOOL writeCursor){    HDC         hScrDC, hMemDC;         // screen DC and memory DC    HBITMAP     hBitmap, hOldBitmap;    // handles to deice-dependent bitmaps    int         nX, nY, nX2, nY2;       // coordinates of rectangle to grab    int         nWidth, nHeight;        // DIB width and height    int         xScrn, yScrn;           // screen resolution    // check for an empty rectangle    if (IsRectEmpty(lpRect))      return NULL;    // create a DC for the screen and create    // a memory DC compatible to screen DC       hScrDC = CreateDC(TEXT("DISPLAY"), NULL, NULL, NULL);    hMemDC = CreateCompatibleDC(hScrDC);    // get points of rectangle to grab    nX  = lpRect->left;    nY  = lpRect->top;    nX2 = lpRect->right;    nY2 = lpRect->bottom;    // get screen resolution    xScrn = GetDeviceCaps(hScrDC, HORZRES);    yScrn = GetDeviceCaps(hScrDC, VERTRES);    //make sure bitmap rectangle is visible    if (nX < 0)        nX = 0;    if (nY < 0)        nY = 0;    if (nX2 > xScrn)        nX2 = xScrn;    if (nY2 > yScrn)        nY2 = yScrn;    nWidth  = nX2 - nX;    nHeight = nY2 - nY;    // create a bitmap compatible with the screen DC    hBitmap = CreateCompatibleBitmap(hScrDC, nWidth, nHeight);    // select new bitmap into memory DC    hOldBitmap = (HBITMAP) SelectObject(hMemDC, hBitmap);    // bitblt screen DC to memory DC    BitBlt(hMemDC, 0, 0, nWidth, nHeight, hScrDC, nX, nY, SRCCOPY);	// write cursor to output bitmap	if (writeCursor)	{		CURSORINFO pci;		pci.cbSize = sizeof(CURSORINFO);		if(GetCursorInfo(&pci))		{			POINT point = pci.ptScreenPos;			DrawIconEx(hMemDC, point.x, point.y, pci.hCursor, 0, 0, 0, NULL, DI_NORMAL);		}	}    // select old bitmap back into memory DC and get handle to    // bitmap of the screen       hBitmap = (HBITMAP)  SelectObject(hMemDC, hOldBitmap);    // Copy the bitmap data into the provided BYTE buffer    GetDIBits(hScrDC, hBitmap, 0, nHeight, pData, pHeader, DIB_RGB_COLORS);    // clean up    DeleteDC(hScrDC);    DeleteDC(hMemDC);    // return handle to the bitmap    return hBitmap;}
开发者ID:tomaspsenak,项目名称:hmc,代码行数:76,


示例11: dc

void CXInfoTip::OnPaint() {	CPaintDC dc( this ); 	CRect	rc;	CBrush	WindowBrush;	CBrush	FrameBrush;	CBrush	InnerFrameBrush;	HRGN	hRegion;	CRgn	*pRegion;	CFont	*pSysFont;		GetClientRect(rc);		InnerFrameBrush.CreateSolidBrush(::GetSysColor(COLOR_SCROLLBAR));	FrameBrush.CreateSolidBrush(::GetSysColor(COLOR_WINDOWTEXT));	WindowBrush.CreateSolidBrush(::GetSysColor(COLOR_WINDOW));		GetWindowRegion(&dc, &hRegion);	pRegion = CRgn::FromHandle(hRegion);		dc.FillRgn(pRegion, &WindowBrush);	dc.FrameRgn(pRegion, &InnerFrameBrush, 3, 3);	dc.FrameRgn(pRegion, &FrameBrush, 1, 1);		rc.DeflateRect(CX_ROUNDED, CY_ROUNDED, 0, 0);	if (m_hIcon != NULL)		rc.left = rc.left + m_IconSize.cx + CX_ICON_MARGIN;			pSysFont = (CFont *)dc.SelectObject(&m_fntBold);		dc.SetBkMode( TRANSPARENT );	dc.DrawText (m_strCaption, &rc, DT_TOP | DT_LEFT);	dc.SelectObject(m_pFont);	CRect rc2 = rc;	rc2.top += m_nCaptionHeight;	dc.DrawText(m_szText, &rc2, DT_TOP | DT_LEFT);	if (m_bShowDSA && m_bPlaced == false)	{		m_bPlaced = true;		m_btnDSA.MoveWindow (rc.left, m_yDSA, m_cxDSA + 10 + 20, 20);	}		if (m_hIcon != NULL)		DrawIconEx(dc.m_hDC, CX_ROUNDED, CY_ROUNDED, m_hIcon, m_IconSize.cx, m_IconSize.cy, 0, NULL, DI_NORMAL);		::DeleteObject(hRegion);	dc.SelectObject(pSysFont);}                                        
开发者ID:naroya,项目名称:fdm,代码行数:62,


示例12: AboutDlgProc

//.........这里部分代码省略.........        hDC = GetDC(hDlg);        /* read owner and organization info from registry, load it into text box */        owner = get_reg_key(HKEY_LOCAL_MACHINE, "Software//Microsoft//Windows NT//CurrentVersion",                            "RegisteredOwner", "");        org =   get_reg_key(HKEY_LOCAL_MACHINE, "Software//Microsoft//Windows NT//CurrentVersion",                            "RegisteredOrganization", "");        SetDlgItemText(hDlg, IDC_ABT_OWNER, owner);        SetDlgItemText(hDlg, IDC_ABT_ORG, org);        SendMessage(GetParent(hDlg), PSM_UNCHANGED, 0, 0);        HeapFree(GetProcessHeap(), 0, owner);        HeapFree(GetProcessHeap(), 0, org);        /* prepare the panel */        hWnd = GetDlgItem(hDlg, IDC_ABT_PANEL);        if(hWnd)        {            GetClientRect(hDlg, &rcClient);            GetClientRect(hWnd, &rcRect);            MoveWindow(hWnd, 0, 0, rcClient.right, rcRect.bottom, FALSE);            logo = LoadImageW((HINSTANCE)GetWindowLongPtrW(hDlg, GWLP_HINSTANCE),                MAKEINTRESOURCEW(IDI_LOGO), IMAGE_ICON, 0, 0, LR_SHARED);        }        /* prepare the title text */        hWnd = GetDlgItem(hDlg, IDC_ABT_TITLE_TEXT);        if(hWnd)        {            titleFont = CreateFont(                -MulDiv(24, GetDeviceCaps(hDC, LOGPIXELSY), 72),                0, 0, 0, 0, FALSE, 0, 0, 0, 0, 0, 0, 0,                "Tahoma");            SendMessage(hWnd, WM_SETFONT, (WPARAM)titleFont, TRUE);            SetWindowTextA(hWnd, PACKAGE_NAME);        }        SetDlgItemTextA(hDlg, IDC_ABT_PANEL_TEXT, PACKAGE_VERSION);        /* prepare the web link */        SetDlgItemTextA(hDlg, IDC_ABT_WEB_LINK, "<a href=/"" PACKAGE_URL "/">" PACKAGE_URL "</a>");        ReleaseDC(hDlg, hDC);        break;    case WM_DESTROY:        if(logo)        {            DestroyIcon(logo);            logo = NULL;        }        if(titleFont)        {            DeleteObject(titleFont);            titleFont = NULL;        }        break;    case WM_COMMAND:        switch(HIWORD(wParam))        {        case EN_CHANGE:            /* enable apply button */            SendMessage(GetParent(hDlg), PSM_CHANGED, 0, 0);            break;        }        break;    case WM_DRAWITEM:        if(wParam == IDC_ABT_PANEL)        {            LPDRAWITEMSTRUCT pDIS = (LPDRAWITEMSTRUCT)lParam;            FillRect(pDIS->hDC, &pDIS->rcItem, (HBRUSH) (COLOR_WINDOW+1));            DrawIconEx(pDIS->hDC, 0, 0, logo, 0, 0, 0, 0, DI_IMAGE);            DrawEdge(pDIS->hDC, &pDIS->rcItem, EDGE_SUNKEN, BF_BOTTOM);        }        break;    case WM_CTLCOLORSTATIC:        switch(GetDlgCtrlID((HWND)lParam))        {        case IDC_ABT_TITLE_TEXT:            /* set the title to a wine color */            SetTextColor((HDC)wParam, 0x0000007F);        case IDC_ABT_PANEL_TEXT:        case IDC_ABT_LICENSE_TEXT:        case IDC_ABT_WEB_LINK:            return (INT_PTR)CreateSolidBrush(GetSysColor(COLOR_WINDOW));        }        break;    }    return FALSE;}
开发者ID:Sunmonds,项目名称:wine,代码行数:101,


示例13: GetWindowRect

void CPanelWnd::PaintCaption(CDC& dc){	CString strCaption;	CRect rc, rcWnd;		BITMAP info = { 0, 0, CAPTION_HEIGHT };	if ( Skin.m_bmPanelMark.m_hObject) Skin.m_bmPanelMark.GetBitmap( &info );	GetWindowRect( &rcWnd );	rc.SetRect( 0, 0, rcWnd.Width(), info.bmHeight );	GetWindowText( strCaption );	CSize size = rc.Size();	CDC* pBuffer = CoolInterface.GetBuffer( dc, size );	if ( ! CoolInterface.DrawWatermark( pBuffer, &rc, &Skin.m_bmPanelMark, 0, 0 ) )	{		pBuffer->FillSolidRect( &rc, Skin.m_crPanelBack );	}	int nIconY = rc.Height() / 2 - 8;	DrawIconEx( pBuffer->GetSafeHdc(), 4, nIconY,		GetIcon( FALSE ), 16, 16, 0, NULL, DI_NORMAL );	CFont* pOldFont	= (CFont*)pBuffer->SelectObject( &CoolInterface.m_fntCaption );	CSize szCaption	= pBuffer->GetTextExtent( strCaption );	pBuffer->SetBkMode( TRANSPARENT );	if ( Skin.m_crPanelBorder != CLR_NONE )	{		pBuffer->SetTextColor( Skin.m_crPanelBorder );		pBuffer->ExtTextOut( 8 + 16 - 1, rc.Height() / 2 - szCaption.cy / 2 - 1,			ETO_CLIPPED, &rc, strCaption, NULL );		pBuffer->ExtTextOut( 8 + 16 + 1, rc.Height() / 2 - szCaption.cy / 2 - 1,			ETO_CLIPPED, &rc, strCaption, NULL );		pBuffer->ExtTextOut( 8 + 16, rc.Height() / 2 - szCaption.cy / 2 - 1 - 1,			ETO_CLIPPED, &rc, strCaption, NULL );		pBuffer->ExtTextOut( 8 + 16, rc.Height() / 2 - szCaption.cy / 2 - 1 + 1,			ETO_CLIPPED, &rc, strCaption, NULL );	}	pBuffer->SetTextColor( Skin.m_crPanelText );	pBuffer->ExtTextOut( 8 + 16, rc.Height() / 2 - szCaption.cy / 2 - 1,		ETO_CLIPPED, &rc, strCaption, NULL );	if ( m_bPanelClose )	{		pBuffer->SelectObject( &theApp.m_gdiFont );		CString strText	= _T("Close");		CSize szText	= pBuffer->GetTextExtent( strText );		m_rcClose.SetRect( rc.right - szText.cx - 8, rc.top, rc.right, rc.bottom );		pBuffer->ExtTextOut( m_rcClose.left + 2,			( m_rcClose.top + m_rcClose.bottom ) / 2 - szText.cy / 2 - 1,			ETO_CLIPPED, &m_rcClose, strText, NULL );		m_rcClose.OffsetRect( rcWnd.left, rcWnd.top );	}	pBuffer->SelectObject( pOldFont );	dc.BitBlt( rc.left, rc.top, rc.Width(), rc.Height(), pBuffer, 0, 0, SRCCOPY );	dc.SelectStockObject( SYSTEM_FONT ); // GDI font leak fix	dc.SelectStockObject( NULL_BRUSH );	 // GDI brush leak fix}
开发者ID:ivan386,项目名称:Shareaza,代码行数:66,


示例14: JabberMucJidListDlgProc

//.........这里部分代码省略.........								( dat->type == MUC_OWNERLIST ) ? TranslateT( "Owner List" ) :								TranslateT( "JID List" ), xmlGetChildCount(queryNode), localFrom );							mir_free( localFrom );			}	}	}	}			SetWindowText( hwndDlg, title );			SetWindowLongPtr(GetDlgItem(hwndDlg, IDC_FILTER), GWLP_USERDATA, 0);			sttFillJidList(hwndDlg);		}		break;	case WM_NOTIFY:		if (( ( LPNMHDR )lParam )->idFrom == IDC_LIST ) {			switch (( ( LPNMHDR )lParam )->code ) {			case NM_CUSTOMDRAW:				{					NMLVCUSTOMDRAW *nm = ( NMLVCUSTOMDRAW * ) lParam;					switch ( nm->nmcd.dwDrawStage ) {					case CDDS_PREPAINT:					case CDDS_ITEMPREPAINT:						SetWindowLongPtr( hwndDlg, DWLP_MSGRESULT, CDRF_NOTIFYSUBITEMDRAW );						return TRUE;					case CDDS_SUBITEM|CDDS_ITEMPREPAINT:						{							RECT rc;							HICON hIcon;							ListView_GetSubItemRect( nm->nmcd.hdr.hwndFrom, nm->nmcd.dwItemSpec, nm->iSubItem, LVIR_LABEL, &rc );							if ( nm->iSubItem == 1 ) {								if( nm->nmcd.lItemlParam == ( LPARAM )( -1 ))									hIcon = ( HICON )LoadImage( hInst, MAKEINTRESOURCE( IDI_ADDCONTACT ), IMAGE_ICON, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), 0 );								else									hIcon = ( HICON )LoadImage( hInst, MAKEINTRESOURCE( IDI_DELETE ), IMAGE_ICON, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), 0 );								DrawIconEx( nm->nmcd.hdc, ( rc.left+rc.right-GetSystemMetrics( SM_CXSMICON ))/2, ( rc.top+rc.bottom-GetSystemMetrics( SM_CYSMICON ))/2,hIcon, GetSystemMetrics( SM_CXSMICON ), GetSystemMetrics( SM_CYSMICON ), 0, GetSysColorBrush(COLOR_WINDOW), DI_NORMAL );								DestroyIcon( hIcon );								SetWindowLongPtr( hwndDlg, DWLP_MSGRESULT, CDRF_SKIPDEFAULT );								return TRUE;				}	}	}	}				break;			case NM_CLICK:				{					NMLISTVIEW *nm = ( NMLISTVIEW * ) lParam;					LVITEM lvi;					LVHITTESTINFO hti;					TCHAR text[128];					if ( nm->iSubItem < 1 )						break;					hti.pt.x = ( short ) LOWORD( GetMessagePos());					hti.pt.y = ( short ) HIWORD( GetMessagePos());					ScreenToClient( nm->hdr.hwndFrom, &hti.pt );					if ( ListView_SubItemHitTest( nm->hdr.hwndFrom, &hti ) == -1 )						break;					if ( hti.iSubItem != 1 )						break;					lvi.mask = LVIF_PARAM | LVIF_TEXT;					lvi.iItem = hti.iItem;					lvi.iSubItem = 0;					lvi.pszText = text;					lvi.cchTextMax = sizeof( text );					ListView_GetItem( nm->hdr.hwndFrom, &lvi );					if ( lvi.lParam == ( LPARAM )( -1 )) {						TCHAR szBuffer[ 1024 ];
开发者ID:raoergsls,项目名称:miranda,代码行数:67,


示例15: ParentSubclassProc

//.........这里部分代码省略.........				}				break;			case NM_CLICK:			case NM_RCLICK:				{					TVHITTESTINFO hitTest;					hitTest.pt.x = (short)LOWORD(GetMessagePos());					hitTest.pt.y = (short)HIWORD(GetMessagePos());					ScreenToClient(dat->hTreeView, &hitTest.pt);					TreeView_HitTest(dat->hTreeView, &hitTest);					if (hitTest.hItem) {						if (TreeView_GetSelection(dat->hTreeView) == hitTest.hItem) // make sure TVN_SELCHANGED notification is sent always, even if previous selected item was the same as new							TreeView_SelectItem(dat->hTreeView, NULL);						TreeView_SelectItem(dat->hTreeView, hitTest.hItem);					}				}				break;			case NM_CUSTOMDRAW:				NMTVCUSTOMDRAW *lpNMCD = (NMTVCUSTOMDRAW*)lParam;				switch (lpNMCD->nmcd.dwDrawStage) {				case CDDS_PREPAINT: // the control is about to start painting					return CDRF_NOTIFYITEMDRAW; // instruct the control to return information when it draws items				case CDDS_ITEMPREPAINT:					return CDRF_NOTIFYPOSTPAINT;				case CDDS_ITEMPOSTPAINT:					RECT rc;					TreeView_GetItemRect(lpNMCD->nmcd.hdr.hwndFrom, (HTREEITEM)lpNMCD->nmcd.dwItemSpec, &rc, true);					int iSize = GetSystemMetrics(SM_CXSMICON);					int x = rc.left - iSize - 5;					for (int i = 0; i < _countof(SettingsList); i++) {						if (lpNMCD->nmcd.lItemlParam == dat->MsgTreePage.GetValue(SettingsList[i].DBSetting)) {							DrawIconEx(lpNMCD->nmcd.hdc, x, rc.top, Skin_LoadProtoIcon(NULL, SettingsList[i].Status), iSize, iSize, 0, GetSysColorBrush(COLOR_WINDOW), DI_NORMAL);							x -= iSize + 1;						}					}				}			}		}		break;	case WM_MOUSEMOVE:		if (dat->hDragItem) {			TVHITTESTINFO hti;			hti.pt.x = (short)LOWORD(lParam);			hti.pt.y = (short)HIWORD(lParam);			ClientToScreen(hWnd, &hti.pt);			ScreenToClient(dat->hTreeView, &hti.pt);			TreeView_HitTest(dat->hTreeView, &hti);			if (hti.hItem) {				TreeView_SelectDropTarget(dat->hTreeView, hti.hItem);				SetTimer(hWnd, MSGTREE_TIMER_ID, MSGTREE_DRAGANDDROP_GROUPEXPANDTIME, NULL);			}			else {				if (hti.flags & TVHT_ABOVE)					SendMessage(dat->hTreeView, WM_VSCROLL, MAKEWPARAM(SB_LINEUP, 0), 0);				if (hti.flags & TVHT_BELOW)					SendMessage(dat->hTreeView, WM_VSCROLL, MAKEWPARAM(SB_LINEDOWN, 0), 0);				TreeView_SelectDropTarget(dat->hTreeView, NULL);				KillTimer(hWnd, MSGTREE_TIMER_ID);			}		}		break;
开发者ID:kmdtukl,项目名称:miranda-ng,代码行数:66,


示例16: create_cgimage_from_icon_bitmaps

/*********************************************************************** *              create_cgimage_from_icon_bitmaps */CGImageRef create_cgimage_from_icon_bitmaps(HDC hdc, HANDLE icon, HBITMAP hbmColor,                                            unsigned char *color_bits, int color_size, HBITMAP hbmMask,                                            unsigned char *mask_bits, int mask_size, int width,                                            int height, int istep){    int i, has_alpha = FALSE;    DWORD *ptr;    CGBitmapInfo alpha_format;    CGColorSpaceRef colorspace;    CFDataRef data;    CGDataProviderRef provider;    CGImageRef cgimage;    /* draw the cursor frame to a temporary buffer then create a CGImage from that */    memset(color_bits, 0x00, color_size);    SelectObject(hdc, hbmColor);    if (!DrawIconEx(hdc, 0, 0, icon, width, height, istep, NULL, DI_NORMAL))    {        WARN("Could not draw frame %d (walk past end of frames)./n", istep);        return NULL;    }    /* check if the cursor frame was drawn with an alpha channel */    for (i = 0, ptr = (DWORD*)color_bits; i < width * height; i++, ptr++)        if ((has_alpha = (*ptr & 0xff000000) != 0)) break;    if (has_alpha)        alpha_format = kCGImageAlphaFirst;    else        alpha_format = kCGImageAlphaNoneSkipFirst;    colorspace = CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB);    if (!colorspace)    {        WARN("failed to create colorspace/n");        return NULL;    }    data = CFDataCreate(NULL, (UInt8*)color_bits, color_size);    if (!data)    {        WARN("failed to create data/n");        CGColorSpaceRelease(colorspace);        return NULL;    }    provider = CGDataProviderCreateWithCFData(data);    CFRelease(data);    if (!provider)    {        WARN("failed to create data provider/n");        CGColorSpaceRelease(colorspace);        return NULL;    }    cgimage = CGImageCreate(width, height, 8, 32, width * 4, colorspace,                            alpha_format | kCGBitmapByteOrder32Little,                            provider, NULL, FALSE, kCGRenderingIntentDefault);    CGDataProviderRelease(provider);    CGColorSpaceRelease(colorspace);    if (!cgimage)    {        WARN("failed to create image/n");        return NULL;    }    /* if no alpha channel was drawn then generate it from the mask */    if (!has_alpha)    {        unsigned int width_bytes = (width + 31) / 32 * 4;        CGImageRef cgmask, temp;        /* draw the cursor mask to a temporary buffer */        memset(mask_bits, 0xFF, mask_size);        SelectObject(hdc, hbmMask);        if (!DrawIconEx(hdc, 0, 0, icon, width, height, istep, NULL, DI_MASK))        {            WARN("Failed to draw frame mask %d./n", istep);            CGImageRelease(cgimage);            return NULL;        }        data = CFDataCreate(NULL, (UInt8*)mask_bits, mask_size);        if (!data)        {            WARN("failed to create data/n");            CGImageRelease(cgimage);            return NULL;        }        provider = CGDataProviderCreateWithCFData(data);        CFRelease(data);        if (!provider)        {            WARN("failed to create data provider/n");            CGImageRelease(cgimage);            return NULL;//.........这里部分代码省略.........
开发者ID:Kelimion,项目名称:wine,代码行数:101,


示例17: BoxPreview_OnPaint

static void BoxPreview_OnPaint(HWND hwnd, HDC mydc, int mode){	RECT rc;	switch (mode) {	case 0:		{ // Avatar			HDC hdcAvatar = CreateCompatibleDC(mydc);			HBITMAP hbmSave = (HBITMAP)SelectObject(hdcAvatar, hbmNoAvatar);			GetClientRect(hwnd, &rc);			BITMAP bmp;			GetObject(hbmNoAvatar, sizeof(bmp), &bmp);			StretchBlt(mydc, 0, 0, rc.right, rc.bottom, hdcAvatar, 0, 0, abs(bmp.bmWidth), abs(bmp.bmHeight), SRCCOPY);			SelectObject(hdcAvatar, hbmSave);			DeleteDC(hdcAvatar);			HRGN rgn = CreateRoundRectRgn(0, 0, rc.right, rc.bottom, 2 * PopupOptions.avatarRadius, 2 * PopupOptions.avatarRadius);			FrameRgn(mydc, rgn, (HBRUSH)GetStockObject(BLACK_BRUSH), 1, 1);			DeleteObject(rgn);			break;		}	case 1:		{ // Opacity			HBRUSH hbr = CreateSolidBrush(fonts.clBack);			HFONT hfnt = (HFONT)SelectObject(mydc, fonts.title);			GetClientRect(hwnd, &rc);			FillRect(mydc, &rc, hbr);			DrawIconEx(mydc, 10, (rc.bottom-rc.top-16)/2, IcoLib_GetIcon(ICO_POPUP_ON,0), 16, 16, 0, hbr, DI_NORMAL);			SetBkMode(mydc, TRANSPARENT);			GetClientRect(hwnd, &rc);			rc.left += 30; // 10+16+4 -- icon			rc.right -= (rc.right-rc.left)/3;			rc.bottom -= (rc.bottom-rc.top)/3;			DrawText(mydc, _T(MODULNAME_LONG), lstrlen(_T(MODULNAME_LONG)), &rc, DT_CENTER|DT_NOPREFIX|DT_SINGLELINE|DT_VCENTER);			GetClientRect(hwnd, &rc);			rc.left += 30; // 10+16+4 -- icon			rc.left += (rc.right-rc.left)/3;			rc.top += (rc.bottom-rc.top)/3;			DrawText(mydc, _T(MODULNAME_LONG), lstrlen(_T(MODULNAME_LONG)), &rc, DT_CENTER|DT_NOPREFIX|DT_SINGLELINE|DT_VCENTER);			GetClientRect(hwnd, &rc);			FrameRect(mydc, &rc, (HBRUSH)GetStockObject(BLACK_BRUSH));			SelectObject(mydc, hfnt);			DeleteObject(hbr);		}		break;	case 2:		{ // Position			HBRUSH hbr = CreateSolidBrush(GetSysColor(COLOR_WINDOW));			GetClientRect(hwnd, &rc);			FillRect(mydc, &rc, hbr);			DeleteObject(hbr);			hbr = CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT));			GetClientRect(hwnd, &rc);			rc.right -= 100;			rc.top += 100;			FillRect(mydc, &rc, hbr);			DeleteObject(hbr);			HPEN hpen = (HPEN)SelectObject(mydc, CreatePen(PS_DOT, 1, RGB(0,0,0)));			MoveToEx(mydc,   0, 100, NULL);			LineTo  (mydc, 201, 100);			MoveToEx(mydc, 100,   0, NULL);			LineTo  (mydc, 100, 201);			DeleteObject(SelectObject(mydc, hpen));			HRGN hrgn = CreateRectRgn(0,0,0,0);			GetWindowRgn(hwnd, hrgn);			FrameRgn(mydc, hrgn, (HBRUSH)GetStockObject(BLACK_BRUSH), 1, 1);			DeleteObject(hrgn);		}		break;	}}
开发者ID:0xmono,项目名称:miranda-ng,代码行数:74,


示例18: switch

BOOL CALLBACK vncConnDialog::vncConnDlgProc(HWND hwnd,											UINT uMsg,											WPARAM wParam,											LPARAM lParam) {	// This is a static method, so we don't know which instantiation we're 	// dealing with. But we can get a pseudo-this from the parameter to 	// WM_INITDIALOG, which we therafter store with the window and retrieve	// as follows:     vncConnDialog *_this = helper::SafeGetWindowUserData<vncConnDialog>(hwnd);	switch (uMsg) {	case WM_PAINT:		{			//adzm 2009-06-20			if (GetUpdateRect(hwnd, NULL, TRUE)) {				PAINTSTRUCT ps;				HDC hdc = BeginPaint(hwnd, &ps);				{					RECT rcIcon;					rcIcon.top = 0;					rcIcon.left = 0;					rcIcon.bottom = 48;					rcIcon.right = 48;										RECT rcClient;					if (GetClientRect(hwnd, &rcClient)) {						int nDifference = (rcClient.bottom - rcIcon.bottom) / 2;						if (nDifference > 0) {							rcIcon.top += nDifference;							rcIcon.bottom += nDifference;						}					}					RECT rcLabel;					HWND hwndLabel = GetDlgItem(hwnd, IDC_CONNECTION_NUMBER_STATIC);					if (GetWindowRect(hwndLabel, &rcLabel)) {						LPRECT lprcLabel = &rcLabel;						ScreenToClient(hwnd, (LPPOINT)lprcLabel);						ScreenToClient(hwnd, ((LPPOINT)lprcLabel)+1);						int nAdjustment = (rcLabel.left - rcIcon.right) / 2;						rcIcon.left += nAdjustment;						rcIcon.right += nAdjustment;					}					RECT rcIntersect;					if (IntersectRect(&rcIntersect, &rcIcon, &(ps.rcPaint))) {						if (_this->m_hicon == NULL) {							_this->m_hicon = (HICON)LoadImage(hInstResDLL, MAKEINTRESOURCE(IDI_WINVNC), IMAGE_ICON,							   48, 48, 0);						}						if (_this->m_hicon) {							HBRUSH hbr = (HBRUSH)SendMessage(hwnd, WM_CTLCOLORDLG, (WPARAM)hdc, (WPARAM)hwnd);							DrawIconEx(hdc, rcIcon.left, rcIcon.top, _this->m_hicon, 48, 48, 0, hbr, DI_NORMAL);						}					}				}				EndPaint(hwnd, &ps);			}			return 0;		}		// Dialog has just been created	case WM_INITDIALOG:		{			// Save the lParam into our user data so that subsequent calls have			// access to the parent C++ object            helper::SafeSetWindowUserData(hwnd, lParam);            vncConnDialog *_this = (vncConnDialog *) lParam;			//adzm 2009-06-20			if (g_szRepeaterHost) {				SetDlgItemText(hwnd, IDC_HOSTNAME_EDIT, g_szRepeaterHost);				//adzm 2009-06-20				if (SPECIAL_SC_PROMPT) {					HWND hwndChild = GetDlgItem(hwnd, IDC_HOSTNAME_EDIT);					if (hwndChild) {						ShowWindow(hwndChild, SW_HIDE);					}					hwndChild = GetDlgItem(hwnd, IDC_HOSTNAME_STATIC);					if (hwndChild) {						ShowWindow(hwndChild, SW_HIDE);					}					HWND hwndEdit = GetDlgItem(hwnd, IDC_IDCODE);					HWND hwndLabel = GetDlgItem(hwnd, IDC_CONNECTION_NUMBER_STATIC);					RECT rcEdit;					RECT rcLabel;					GetWindowRect(hwndEdit, &rcEdit);					GetWindowRect(hwndLabel, &rcLabel);					LPRECT lprcEdit = &rcEdit;					LPRECT lprcLabel = &rcLabel;//.........这里部分代码省略.........
开发者ID:DennisHeerema,项目名称:ultravnc,代码行数:101,


示例19: DlgProcSendFile

INT_PTR CALLBACK DlgProcSendFile(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam){	struct FileDlgData *dat;	dat=(struct FileDlgData*)GetWindowLongPtr(hwndDlg,GWLP_USERDATA);	switch (msg) {	case WM_INITDIALOG:	{		struct FileSendData *fsd=(struct FileSendData*)lParam;		dat=(struct FileDlgData*)mir_calloc(sizeof(struct FileDlgData));		SetWindowLongPtr(hwndDlg,GWLP_USERDATA,(LONG_PTR)dat);		dat->hContact=fsd->hContact;		dat->send=1;		dat->hPreshutdownEvent=HookEventMessage(ME_SYSTEM_PRESHUTDOWN,hwndDlg,M_PRESHUTDOWN);		dat->fs=NULL;		dat->dwTicks=GetTickCount();		TranslateDialogDefault(hwndDlg);		EnumChildWindows(hwndDlg,ClipSiblingsChildEnumProc,0);		OldSendEditProc=(WNDPROC)SetWindowLongPtr(GetDlgItem(hwndDlg,IDC_MSG),GWLP_WNDPROC,(LONG_PTR)SendEditSubclassProc);		Window_SetIcon_IcoLib(hwndDlg, SKINICON_EVENT_FILE);		Button_SetIcon_IcoLib(hwndDlg, IDC_DETAILS, SKINICON_OTHER_USERDETAILS, LPGEN("View User's Details"));		Button_SetIcon_IcoLib(hwndDlg, IDC_HISTORY, SKINICON_OTHER_HISTORY, LPGEN("View User's History"));		Button_SetIcon_IcoLib(hwndDlg, IDC_USERMENU, SKINICON_OTHER_DOWNARROW, LPGEN("User Menu"));        EnableWindow(GetDlgItem(hwndDlg, IDOK), FALSE);		if(fsd->ppFiles!=NULL && fsd->ppFiles[0]!=NULL) {			int totalCount,i;			for(totalCount=0;fsd->ppFiles[totalCount];totalCount++);			dat->files = ( TCHAR** )mir_alloc( sizeof(TCHAR*)*(totalCount+1)); // Leaks			for(i=0;i<totalCount;i++)				dat->files[i] = mir_tstrdup( fsd->ppFiles[i] );			dat->files[totalCount]=NULL;			SetFileListAndSizeControls(hwndDlg,dat);		}		{			char *szProto;			TCHAR* contactName = cli.pfnGetContactDisplayName( dat->hContact, 0 );			SetDlgItemText(hwndDlg,IDC_TO,contactName);			szProto=(char*)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)dat->hContact,0);			if (szProto) {				CONTACTINFO ci;				int hasName = 0;				char buf[128];				ZeroMemory(&ci,sizeof(ci));				ci.cbSize = sizeof(ci);				ci.hContact = dat->hContact;				ci.szProto = szProto;				ci.dwFlag = CNF_UNIQUEID;				if (!CallService(MS_CONTACT_GETCONTACTINFO,0,(LPARAM)&ci)) {					switch(ci.type) {						case CNFT_ASCIIZ:							hasName = 1;							mir_snprintf(buf, SIZEOF(buf), "%s", ci.pszVal);							mir_free(ci.pszVal);							break;						case CNFT_DWORD:							hasName = 1;							mir_snprintf(buf, SIZEOF(buf),"%u",ci.dVal);							break;				}	}				if ( hasName )					SetDlgItemTextA(hwndDlg,IDC_NAME,buf);				else					SetDlgItemText(hwndDlg,IDC_NAME,contactName);		}	}		if ( fsd->ppFiles == NULL ) {       		EnableWindow(hwndDlg, FALSE);			dat->closeIfFileChooseCancelled=1;			PostMessage(hwndDlg,WM_COMMAND,MAKEWPARAM(IDC_CHOOSE,BN_CLICKED),(LPARAM)GetDlgItem(hwndDlg,IDC_CHOOSE));		}		return TRUE;	}	case WM_MEASUREITEM:		return CallService(MS_CLIST_MENUMEASUREITEM,wParam,lParam);	case WM_DRAWITEM:		{			LPDRAWITEMSTRUCT dis=(LPDRAWITEMSTRUCT)lParam;			if(dis->hwndItem==GetDlgItem(hwndDlg, IDC_PROTOCOL)) {				char *szProto;				szProto=(char*)CallService(MS_PROTO_GETCONTACTBASEPROTO,(WPARAM)dat->hContact,0);				if (szProto) {					HICON hIcon = (HICON)CallProtoService(szProto,PS_LOADICON,PLI_PROTOCOL|PLIF_SMALL,0);					if (hIcon) {						DrawIconEx(dis->hDC,dis->rcItem.left,dis->rcItem.top,hIcon,GetSystemMetrics(SM_CXSMICON),GetSystemMetrics(SM_CYSMICON),0,NULL,DI_NORMAL);						DestroyIcon(hIcon);		}	}	}	}		return CallService(MS_CLIST_MENUDRAWITEM,wParam,lParam);			case M_FILECHOOSEDONE://.........这里部分代码省略.........
开发者ID:TonyAlloa,项目名称:miranda-dev,代码行数:101,


示例20: BeginPaint

void CtrlDisplayListView::onPaint(WPARAM wParam, LPARAM lParam){	if (!validDisplayList || !gpuDebug)		return;	PAINTSTRUCT ps;	HDC actualHdc = BeginPaint(wnd, &ps);	HDC hdc = CreateCompatibleDC(actualHdc);	HBITMAP hBM = CreateCompatibleBitmap(actualHdc, rect.right-rect.left, rect.bottom-rect.top);	SelectObject(hdc, hBM);	SetBkMode(hdc, TRANSPARENT);	HPEN nullPen=CreatePen(0,0,0xffffff);	HPEN condPen=CreatePen(0,0,0xFF3020);	HBRUSH nullBrush=CreateSolidBrush(0xffffff);	HBRUSH currentBrush=CreateSolidBrush(0xFFEfE8);	HPEN oldPen=(HPEN)SelectObject(hdc,nullPen);	HBRUSH oldBrush=(HBRUSH)SelectObject(hdc,nullBrush);	HFONT oldFont = (HFONT)SelectObject(hdc,(HGDIOBJ)font);		HICON breakPoint = (HICON)LoadIcon(GetModuleHandle(0),(LPCWSTR)IDI_STOP);	auto disasm = gpuDebug->DissassembleOpRange(windowStart, windowStart + (visibleRows + 2) * instructionSize);	for (int i = 0; i < visibleRows+2; i++)	{		unsigned int address=windowStart + i*instructionSize;		bool stall = address == list.stall;		int rowY1 = rowHeight*i;		int rowY2 = rowHeight*(i+1);		// draw background		COLORREF backgroundColor = stall ? 0xCCCCFF : 0xFFFFFF;		COLORREF textColor = 0x000000;				if (address >= selectRangeStart && address < selectRangeEnd)		{			if (hasFocus)			{				backgroundColor = address == curAddress ? 0xFF8822 : 0xFF9933;				textColor = 0xFFFFFF;			} else {				backgroundColor = 0xC0C0C0;			}		}		HBRUSH backgroundBrush = CreateSolidBrush(backgroundColor);		HPEN backgroundPen = CreatePen(0,0,backgroundColor);		SelectObject(hdc,backgroundBrush);		SelectObject(hdc,backgroundPen);		Rectangle(hdc,0,rowY1,rect.right,rowY1+rowHeight);				SelectObject(hdc,currentBrush);		SelectObject(hdc,nullPen);		DeleteObject(backgroundBrush);		DeleteObject(backgroundPen);		// display address/symbol		if (GPUBreakpoints::IsAddressBreakpoint(address))		{			textColor = 0x0000FF;			int yOffset = std::max(-1,(rowHeight-14+1)/2);			DrawIconEx(hdc,2,rowY1+1+yOffset,breakPoint,32,32,0,0,DI_NORMAL);		}		SetTextColor(hdc,textColor);		GPUDebugOp op = i < (int)disasm.size() ? disasm[i] : GPUDebugOp();		char addressText[64];		sprintf(addressText,"%08X %08X",op.pc,op.op);		TextOutA(hdc,pixelPositions.addressStart,rowY1+2,addressText,(int)strlen(addressText));		if (address == list.pc)		{			TextOut(hdc,pixelPositions.opcodeStart-8,rowY1,L"■",1);		}		const char* opcode = op.desc.c_str();		SelectObject(hdc,stall ? boldfont : font);		TextOutA(hdc,pixelPositions.opcodeStart,rowY1+2,opcode,(int)strlen(opcode));		SelectObject(hdc,font);	}	SelectObject(hdc,oldFont);	SelectObject(hdc,oldPen);	SelectObject(hdc,oldBrush);	// copy bitmap to the actual hdc	BitBlt(actualHdc, 0, 0, rect.right, rect.bottom, hdc, 0, 0, SRCCOPY);	DeleteObject(hBM);	DeleteDC(hdc);	DeleteObject(nullPen);	DeleteObject(condPen);	DeleteObject(nullBrush);//.........这里部分代码省略.........
开发者ID:AdmiralCurtiss,项目名称:ppsspp,代码行数:101,


示例21: GetClientRect

BOOL CMyDialog::OnEraseBkgnd(CDC* pDC) {	// TODO: Add your message handler code here and/or call default	//	BOOL bResult=CDialog::OnEraseBkgnd(pDC);	if (!m_bHaveStoreBgDC)	{		CRect rect;		GetClientRect(rect);		m_bHaveStoreBgDC=TRUE;		Color 	clrStart=Color(230,230,230);		Color 	clrEnd=Color(255,255,255);				m_StoreBgDC.DeleteDC();		m_StoreBgDC.CreateCompatibleDC(pDC);		CBitmap bmp;		bmp.CreateCompatibleBitmap(pDC,rect.Width(),rect.Height());		CBitmap *pOldBmp=m_StoreBgDC.SelectObject(&bmp);		Graphics myGraphics(m_StoreBgDC.m_hDC);			LinearGradientBrush linGrBrush(			Rect(0,0,rect.Width(),rect.Height()),			clrStart,			clrEnd, 			LinearGradientModeVertical);		myGraphics.FillRectangle(&linGrBrush, 0,31,rect.Width(),rect.Height()); 				Color clrCaptionStart(219,219,220);		Color clrCaptionEnd(190,192,193);		LinearGradientBrush linGrBrush1(			Rect(0,0,rect.Width(),30),			clrCaptionStart,			clrCaptionEnd, 			LinearGradientModeVertical);		myGraphics.FillRectangle(&linGrBrush1, 0,0,rect.Width(),30); 				DrawCloseButton(&m_StoreBgDC,DTS_NORMAL);		DrawMinButton(&m_StoreBgDC,DTS_NORMAL);				CPen MarkPen(PS_SOLID,1,RGB(158,158,158));		CBrush *pOldBrush=(CBrush *)m_StoreBgDC.SelectStockObject(NULL_BRUSH);		CPen *pOldPen=m_StoreBgDC.SelectObject(&MarkPen);		m_StoreBgDC.RoundRect(m_rcMin.left-1,m_rcMin.top-5,m_rcClose.right+1,m_rcClose.bottom+1,5,5);					CPen penBorder(PS_SOLID,1,RGB(150,150,150));		m_StoreBgDC.SelectObject(&penBorder);			m_StoreBgDC.MoveTo(0,30);		m_StoreBgDC.LineTo(rect.Width(),30);		m_StoreBgDC.MoveTo(m_rcClose.left-1,1);		m_StoreBgDC.LineTo(m_rcClose.left-1,21);		rect.DeflateRect(0,0,1,1);		m_StoreBgDC.RoundRect(rect,CPoint(7,5));		m_StoreBgDC.SelectObject(pOldPen);		m_StoreBgDC.SelectObject(pOldBrush);						rect.bottom=30;		HICON hIcon=GetIcon(FALSE);		if (hIcon)   //画Icon		{			DrawIconEx(m_StoreBgDC.m_hDC,5,7,hIcon,16,16,0,NULL,DI_NORMAL | DI_COMPAT);			rect.left+=21;			m_rcIcon.SetRect(5,7,21,23);		}		CString str;		GetWindowText(str);		if (str!="") //写标题		{			rect.left+=5;			rect.top+=4;			m_StoreBgDC.SetBkMode(TRANSPARENT);			COLORREF OldClr=m_StoreBgDC.SetTextColor(RGB(50,50,50));			CFont font;			font.CreatePointFont(100,"雅黑",&m_StoreBgDC);			CFont *pOldFont=m_StoreBgDC.SelectObject(&font);			m_StoreBgDC.DrawText(str,rect,DT_VCENTER | DT_SINGLELINE);			m_StoreBgDC.SelectObject(pOldFont);			m_StoreBgDC.SetTextColor(OldClr);			font.DeleteObject();		}		/*		m_StoreBgDC.SelectObject(pOldBmp);*/		bmp.DeleteObject();	}	CRect rect;	GetClientRect(rect);	pDC->BitBlt(0,0,rect.Width(),rect.Height(),&m_StoreBgDC,0,0,SRCCOPY);	return TRUE;}
开发者ID:likebeta,项目名称:code-snippets,代码行数:86,


示例22: 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:MrtsComputers,项目名称:miranda-ng,代码行数:84,


示例23: CreateCompatibleDC

HICON CMeterIcon::CreateMeterIcon(const int *pBarData)// the returned icon must be cleaned up using DestroyIcon(){   // begin CreateMeterIcon    ICONINFO iiNewIcon= {0};    iiNewIcon.fIcon = true;	// set that it is an icon    // create DC's    HDC hScreenDC = ::GetDC(NULL);    HDC hIconDC = CreateCompatibleDC(hScreenDC);    HDC hMaskDC = CreateCompatibleDC(hScreenDC);    if(hScreenDC == NULL)    {   // begin error check        return NULL;    }// end error check    if(hIconDC == NULL)    {   // begin error check        return NULL;    }// end error check    if(hMaskDC == NULL)    {   // begin error check        return NULL;    }// end error check    // load bitmaps    iiNewIcon.hbmColor = CreateCompatibleBitmap(hScreenDC,m_sDimensions.cx,m_sDimensions.cy);    if(iiNewIcon.hbmColor == NULL)    {   // begin error check        return NULL;    }// end error check    if(!::ReleaseDC(NULL,hScreenDC))	// release this ASAP    {   // begin DC not released        return NULL;    }// end DC not released    iiNewIcon.hbmMask = CreateCompatibleBitmap(hMaskDC,m_sDimensions.cx,m_sDimensions.cy);    if(iiNewIcon.hbmMask == NULL)    {   // begin error check        return NULL;    }// end error check    HGDIOBJ hOldIconDC = ::SelectObject(hIconDC,iiNewIcon.hbmColor);    if(hOldIconDC == NULL)    {   // begin error check        return NULL;    }// end error check    HGDIOBJ hOldMaskDC = ::SelectObject(hMaskDC,iiNewIcon.hbmMask);    if(hOldMaskDC == NULL)    {   // begin error check        return NULL;    }// end error check    // initilize the bitmaps    if(!BitBlt(hIconDC,0,0,m_sDimensions.cx,m_sDimensions.cy,NULL,0,0,BLACKNESS))    {   // begin BitBlt failed        return NULL;    }// end BitBlt failed    if(!BitBlt(hMaskDC,0,0,m_sDimensions.cx,m_sDimensions.cy,NULL,0,0,WHITENESS))    {   // begin BitBlt failed        return NULL;    }// end BitBlt failed    if(!DrawIconEx(hIconDC,0,0,m_hFrame,m_sDimensions.cx,m_sDimensions.cy,NULL,NULL,/*DI_NORMAL|*/DI_IMAGE))    {   // begin error check        return NULL;    }// end error check    if(!DrawIconEx(hMaskDC,0,0,m_hFrame,m_sDimensions.cx,m_sDimensions.cy,NULL,NULL,/*DI_NORMAL|*/DI_MASK))    {   // begin error check        return NULL;    }// end error check    // draw the meters    for(int i = 0; i < m_nNumBars; i++)        if(DrawIconMeter(hIconDC,hMaskDC,pBarData[i],i) == false)            return false;    // create icon    ::SelectObject(hIconDC,hOldIconDC);    ::SelectObject(hMaskDC,hOldMaskDC);    HICON hNewIcon = CreateIconIndirect(&iiNewIcon);    // cleanup    DeleteObject(iiNewIcon.hbmColor);    DeleteObject(iiNewIcon.hbmMask);    DeleteDC(hMaskDC);    DeleteDC(hIconDC);    return hNewIcon;}// end CreateMeterIcon
开发者ID:techpub,项目名称:archive-code,代码行数:88,


示例24: lstrcpy

void CpermoDlg::DrawInfo(CDC* pDC){	CFont font, *pOldFont;	LOGFONT logFont;	pDC->GetCurrentFont()->GetLogFont(&logFont);	logFont.lfWidth = 0;	logFont.lfHeight = nFontSize;	logFont.lfWeight = FW_REGULAR;	lstrcpy(logFont.lfFaceName, _T("微软雅黑"));	font.CreateFontIndirect(&logFont);	pOldFont = pDC->SelectObject(&font);	COLORREF cOldTextColor;	if (IDM_GREEN == nSkin || IDM_ORANGE == nSkin)	{		cOldTextColor = pDC->SetTextColor(RGB(0, 0, 0));	}	else	{		cOldTextColor = pDC->SetTextColor(RGB(255, 255, 255));	}	int nOldBkMode = pDC->SetBkMode(TRANSPARENT);	CString strCPU, strMem, strNetUp, strNetDown;	strCPU.Format(_T("%d%%"), nCPU);	strMem.Format(_T("%d%%"), nMem);	if (fNetUp >= 1000)	{		strNetUp.Format(_T("%.2fMB/S"), fNetUp/1024.0);	}	else	{		if (fNetUp < 100)		{			strNetUp.Format(_T("%.1fKB/S"), fNetUp);		}		else		{			strNetUp.Format(_T("%.0fKB/S"), fNetUp);		}	}	if (fNetDown >= 1000)	{		strNetDown.Format(_T("%.2fMB/S"), fNetDown/1024.0);	}	else	{		if (fNetDown < 100)		{			strNetDown.Format(_T("%.1fKB/S"), fNetDown);		}		else		{			strNetDown.Format(_T("%.0fKB/S"), fNetDown);		}	}	CRect rText;	rText.left = 1;	rText.right = 36;	rText.top = 2;	rText.bottom = 21;	pDC->DrawText(strCPU, &rText, DT_CENTER | DT_VCENTER | DT_SINGLELINE);	rText.left = 186;	rText.right = 219;	pDC->DrawText(strMem, &rText, DT_CENTER | DT_VCENTER | DT_SINGLELINE);	if (IDM_BLACK == nSkin || IDM_BLUE == nSkin)	{		pDC->SetTextColor(RGB(255, 255, 255));	}	else	{		pDC->SetTextColor(RGB(0, 0, 0));	}	CRect rcIcon;	rcIcon.left = 38;	rcIcon.right = 50;	rcIcon.top = 5;	rcIcon.bottom = 17;	DrawIconEx(pDC->GetSafeHdc(), rcIcon.left, rcIcon.top, LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_DOWN)), rcIcon.Width(), rcIcon.Height(), 0, NULL, DI_NORMAL);	rText.left = 52;	rText.right = 110;	pDC->DrawText(strNetDown, &rText, DT_CENTER | DT_VCENTER | DT_SINGLELINE);	rcIcon.left = 112;	rcIcon.right = 124;	DrawIconEx(pDC->GetSafeHdc(), rcIcon.left, rcIcon.top, LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_UP)), rcIcon.Width(), rcIcon.Height(), 0, NULL, DI_NORMAL);	rText.left = 126;	rText.right = 185;	pDC->DrawText(strNetUp, &rText, DT_CENTER | DT_VCENTER | DT_SINGLELINE);	pDC->SetTextColor(cOldTextColor);	pDC->SetBkMode(nOldBkMode);	pDC->SelectObject(pOldFont);	font.DeleteObject();}
开发者ID:ccxuy,项目名称:permo,代码行数:94,


示例25: GetWindowLong

/*================rvGENavigator::WndProcWindow Procedure================*/LRESULT CALLBACK rvGENavigator::WndProc( HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam ) {	rvGENavigator *nav = ( rvGENavigator * ) GetWindowLong( hWnd, GWL_USERDATA );	switch( msg ) {	case WM_INITMENUPOPUP:		return SendMessage( gApp.GetMDIFrame( ), msg, wParam, lParam );	case WM_ACTIVATE:		common->ActivateTool( LOWORD( wParam ) != WA_INACTIVE );		break;	case WM_ERASEBKGND:		return TRUE;	case WM_DESTROY:		gApp.GetOptions().SetWindowPlacement( "navigator", hWnd );		break;	case WM_CLOSE:		gApp.GetOptions().SetNavigatorVisible( false );		nav->Show( false );		return 0;	case WM_DRAWITEM: {		DRAWITEMSTRUCT	*dis = ( DRAWITEMSTRUCT * ) lParam;		idWindow		*window = ( idWindow * )dis->itemData;		if( window ) {			rvGEWindowWrapper	*wrapper	= rvGEWindowWrapper::GetWrapper( window );			idStr				name    = window->GetName();			RECT				rDraw;			float				offset;			bool				disabled;			idWindow *parent = window;			offset = 1;			disabled = false;			while( parent = parent->GetParent( ) ) {				if( rvGEWindowWrapper::GetWrapper( parent )->IsHidden( ) ) {					disabled = true;				}				offset += 10;			}			CopyRect( &rDraw, &dis->rcItem );			rDraw.right = rDraw.left + GENAV_ITEMHEIGHT;			rDraw.top ++;			rDraw.right ++;			FrameRect( dis->hDC, &rDraw, ( HBRUSH )GetStockObject( BLACK_BRUSH ) );			rDraw.right --;			FillRect( dis->hDC, &rDraw, GetSysColorBrush( COLOR_3DFACE ) );			Draw3dRect( dis->hDC, &rDraw, GetSysColorBrush( COLOR_3DHILIGHT ), GetSysColorBrush( COLOR_3DSHADOW ) );			InflateRect( &rDraw, -3, -3 );			Draw3dRect( dis->hDC, &rDraw, GetSysColorBrush( COLOR_3DSHADOW ), GetSysColorBrush( COLOR_3DHILIGHT ) );			if( !wrapper->IsHidden( ) ) {				DrawIconEx( dis->hDC, rDraw.left, rDraw.top, disabled ? nav->mVisibleIconDisabled : nav->mVisibleIcon, 16, 16, 0, NULL, DI_NORMAL );			}			CopyRect( &rDraw, &dis->rcItem );			rDraw.left += GENAV_ITEMHEIGHT;			rDraw.left += 1;			if( dis->itemState & ODS_SELECTED ) {				FillRect( dis->hDC, &rDraw, GetSysColorBrush( COLOR_HIGHLIGHT ) );			} else {				FillRect( dis->hDC, &rDraw, GetSysColorBrush( COLOR_WINDOW ) );			}			if( wrapper->CanHaveChildren( ) && window->GetChildCount( ) ) {				if( wrapper->IsExpanded( ) ) {					DrawIconEx( dis->hDC, rDraw.left + offset, rDraw.top + 3, nav->mCollapseIcon, 16, 16, 0, NULL, DI_NORMAL );				} else {					DrawIconEx( dis->hDC, rDraw.left + offset, rDraw.top + 3, nav->mExpandIcon, 16, 16, 0, NULL, DI_NORMAL );				}			}			HPEN pen = CreatePen( PS_SOLID, 1, GetSysColor( COLOR_3DSHADOW ) );			HPEN oldpen = ( HPEN )SelectObject( dis->hDC, pen );			MoveToEx( dis->hDC, rDraw.left, dis->rcItem.top, NULL );			LineTo( dis->hDC, dis->rcItem.right, dis->rcItem.top );			MoveToEx( dis->hDC, rDraw.left, dis->rcItem.bottom, NULL );			LineTo( dis->hDC, dis->rcItem.right, dis->rcItem.bottom );			SelectObject( dis->hDC, oldpen );			DeleteObject( pen );			rDraw.left += offset;			rDraw.left += 20;			int colorIndex = ( ( dis->itemState & ODS_SELECTED ) ? COLOR_HIGHLIGHTTEXT : COLOR_WINDOWTEXT );			SetTextColor( dis->hDC, GetSysColor( colorIndex ) );			DrawText( dis->hDC, name, name.Length(), &rDraw, DT_LEFT | DT_VCENTER | DT_SINGLELINE );			if( wrapper->GetVariableDict().GetNumKeyVals( ) || wrapper->GetScriptDict().GetNumKeyVals( ) ) {				DrawIconEx( dis->hDC, dis->rcItem.right - 16, ( dis->rcItem.bottom + dis->rcItem.top ) / 2 - 6, ( dis->itemState & ODS_SELECTED ) ? nav->mScriptsLightIcon : nav->mScriptsIcon, 13, 13, 0, NULL, DI_NORMAL );			}		}		break;	}	case WM_MEASUREITEM: {		MEASUREITEMSTRUCT *mis = ( MEASUREITEMSTRUCT * ) lParam;		mis->itemHeight = 22;		break;	}	case WM_CREATE: {		LPCREATESTRUCT	cs;		LVCOLUMN		col;		// Attach the class to the window first		cs = ( LPCREATESTRUCT ) lParam;		nav = ( rvGENavigator * ) cs->lpCreateParams;//.........这里部分代码省略.........
开发者ID:SL987654,项目名称:The-Darkmod-Experimental,代码行数:101,


示例26: BeginPaint

void CtrlDisAsmView::onPaint(WPARAM wParam, LPARAM lParam){	if (!debugger->isAlive()) return;	PAINTSTRUCT ps;	HDC actualHdc = BeginPaint(wnd, &ps);	HDC hdc = CreateCompatibleDC(actualHdc);	HBITMAP hBM = CreateCompatibleBitmap(actualHdc, rect.right-rect.left, rect.bottom-rect.top);	SelectObject(hdc, hBM);	SetBkMode(hdc, TRANSPARENT);	HPEN nullPen=CreatePen(0,0,0xffffff);	HBRUSH nullBrush=CreateSolidBrush(0xffffff);	HBRUSH currentBrush=CreateSolidBrush(0xffefe8);	HPEN oldPen=(HPEN)SelectObject(hdc,nullPen);	HBRUSH oldBrush=(HBRUSH)SelectObject(hdc,nullBrush);	HFONT oldFont = (HFONT)SelectObject(hdc,(HGDIOBJ)font);	HICON breakPoint = (HICON)LoadIcon(GetModuleHandle(0),(LPCWSTR)IDI_STOP);	HICON breakPointDisable = (HICON)LoadIcon(GetModuleHandle(0),(LPCWSTR)IDI_STOPDISABLE);	unsigned int address = windowStart;	std::map<u32,int> addressPositions;	const std::set<std::string> currentArguments = getSelectedLineArguments();	DisassemblyLineInfo line;	for (int i = 0; i < visibleRows; i++)	{		manager.getLine(address,displaySymbols,line);		int rowY1 = rowHeight*i;		int rowY2 = rowHeight*(i+1);		addressPositions[address] = rowY1;		// draw background		COLORREF backgroundColor = whiteBackground ? 0xFFFFFF : debugger->getColor(address);		COLORREF textColor = 0x000000;		if (isInInterval(address,line.totalSize,debugger->getPC()))		{			backgroundColor = scaleColor(backgroundColor,1.05f);		}		if (address >= selectRangeStart && address < selectRangeEnd && searching == false)		{			if (hasFocus)			{				backgroundColor = address == curAddress ? 0xFF8822 : 0xFF9933;				textColor = 0xFFFFFF;			} else {				backgroundColor = 0xC0C0C0;			}		}				HBRUSH backgroundBrush = CreateSolidBrush(backgroundColor);		HPEN backgroundPen = CreatePen(0,0,backgroundColor);		SelectObject(hdc,backgroundBrush);		SelectObject(hdc,backgroundPen);		Rectangle(hdc,0,rowY1,rect.right,rowY1+rowHeight);		SelectObject(hdc,currentBrush);		SelectObject(hdc,nullPen);		DeleteObject(backgroundBrush);		DeleteObject(backgroundPen);		// display address/symbol		bool enabled;		if (CBreakPoints::IsAddressBreakPoint(address,&enabled))		{			if (enabled) textColor = 0x0000FF;			int yOffset = max(-1,(rowHeight-14+1)/2);			if (!enabled) yOffset++;			DrawIconEx(hdc,2,rowY1+1+yOffset,enabled ? breakPoint : breakPointDisable,32,32,0,0,DI_NORMAL);		}		SetTextColor(hdc,textColor);		char addressText[64];		getDisasmAddressText(address,addressText,true,line.type == DISTYPE_OPCODE);		TextOutA(hdc,pixelPositions.addressStart,rowY1+2,addressText,(int)strlen(addressText));				if (isInInterval(address,line.totalSize,debugger->getPC()))		{			TextOut(hdc,pixelPositions.opcodeStart-8,rowY1,L"■",1);		}		// display whether the condition of a branch is met		if (line.info.isConditional && address == debugger->getPC())		{			line.params += line.info.conditionMet ? "  ; true" : "  ; false";		}		drawArguments(hdc, line, pixelPositions.argumentsStart, rowY1 + 2, textColor, currentArguments);					SelectObject(hdc,boldfont);		TextOutA(hdc,pixelPositions.opcodeStart,rowY1+2,line.name.c_str(),(int)line.name.size());		SelectObject(hdc,font);//.........这里部分代码省略.........
开发者ID:ANR2ME,项目名称:ppsspp,代码行数:101,



注:本文中的DrawIconEx函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


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