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

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

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

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

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

示例1: RelayoutTocItem

static void RelayoutTocItem(LPNMTVCUSTOMDRAW ntvcd){    // code inspired by http://www.codeguru.com/cpp/controls/treeview/multiview/article.php/c3985/    LPNMCUSTOMDRAW ncd = &ntvcd->nmcd;    HWND hTV = ncd->hdr.hwndFrom;    HTREEITEM hItem = (HTREEITEM)ncd->dwItemSpec;    RECT rcItem;    if (0 == ncd->rc.right - ncd->rc.left || 0 == ncd->rc.bottom - ncd->rc.top)        return;    if (!TreeView_GetItemRect(hTV, hItem, &rcItem, TRUE))        return;    if (rcItem.right > ncd->rc.right)        rcItem.right = ncd->rc.right;    // Clear the label    RECT rcFullWidth = rcItem;    rcFullWidth.right = ncd->rc.right;    FillRect(ncd->hdc, &rcFullWidth, GetSysColorBrush(COLOR_WINDOW));    // Get the label's text    WCHAR szText[MAX_PATH];    TVITEM item;    item.hItem = hItem;    item.mask = TVIF_TEXT | TVIF_PARAM;    item.pszText = szText;    item.cchTextMax = MAX_PATH;    TreeView_GetItem(hTV, &item);    // Draw the page number right-aligned (if there is one)    WindowInfo *win = FindWindowInfoByHwnd(hTV);    DocTocItem *tocItem = (DocTocItem *)item.lParam;    ScopedMem<WCHAR> label;    if (tocItem->pageNo && win && win->IsDocLoaded()) {        label.Set(win->ctrl->GetPageLabel(tocItem->pageNo));        label.Set(str::Join(L"  ", label));    }    if (label && str::EndsWith(item.pszText, label)) {        RECT rcPageNo = rcFullWidth;        InflateRect(&rcPageNo, -2, -1);        SIZE txtSize;        GetTextExtentPoint32(ncd->hdc, label, str::Len(label), &txtSize);        rcPageNo.left = rcPageNo.right - txtSize.cx;        SetTextColor(ncd->hdc, GetSysColor(COLOR_WINDOWTEXT));        SetBkColor(ncd->hdc, GetSysColor(COLOR_WINDOW));        DrawText(ncd->hdc, label, -1, &rcPageNo, DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX);        // Reduce the size of the label and cut off the page number        rcItem.right = std::max(rcItem.right - txtSize.cx, 0);        szText[str::Len(szText) - str::Len(label)] = '/0';    }    SetTextColor(ncd->hdc, ntvcd->clrText);    SetBkColor(ncd->hdc, ntvcd->clrTextBk);    // Draw the focus rectangle (including proper background color)    HBRUSH brushBg = CreateSolidBrush(ntvcd->clrTextBk);    FillRect(ncd->hdc, &rcItem, brushBg);    DeleteObject(brushBg);    if ((ncd->uItemState & CDIS_FOCUS))        DrawFocusRect(ncd->hdc, &rcItem);    InflateRect(&rcItem, -2, -1);    DrawText(ncd->hdc, szText, -1, &rcItem, DT_SINGLELINE | DT_VCENTER | DT_NOPREFIX | DT_WORD_ELLIPSIS);}
开发者ID:wyrover,项目名称:sumatrapdf,代码行数:66,


示例2: P1

P1(PUBLIC pascal, void, SysError, short, errorcode){    GrafPort alertport;    Region viscliprgn;    HIDDEN_RgnPtr rp;    Rect r;    struct adef *ap;    char quickbytes[grafSize];    INTEGER offsetx, offsety;    Rect main_gd_rect;#if defined (BINCOMPAT)    LONGINT tmpa5;#endif /* BINCOMPAT */    main_gd_rect = PIXMAP_BOUNDS (GD_PMAP (MR (MainDevice)));    if (!DSAlertTab) {#if defined (CLIFF_CENTERING_ALGORITHM)        DSAlertTab = CL((Ptr) &myalerttab);        DSAlertRect.top    = CWC(64);        DSAlertRect.left   = CWC(32);        DSAlertRect.bottom = CWC(190);        DSAlertRect.right  = CWC(480);#else        INTEGER screen_width = CW (main_gd_rect.right);        INTEGER screen_height = CW (main_gd_rect.bottom);        DSAlertTab = RM((Ptr) &myalerttab);        DSAlertRect.top    = CW((screen_height - 126) / 3);        DSAlertRect.left   = CW((screen_width - 448) / 2);        DSAlertRect.bottom = CW(CW(DSAlertRect.top) + 126);        DSAlertRect.right  = CW(CW(DSAlertRect.left) + 448);#endif        offsetx = CW (DSAlertRect.left) - 32;        offsety = CW (DSAlertRect.top) - 64;    }    else {        offsetx = offsety = 0;    }    /* IM-362 */    /* 1. Save registers and Stack Pointer */    /*	  NOT DONE YET... signal handlers sort of do that anyway */    /* 2. Store errorcode in DSErrCode */    DSErrCode = CW(errorcode);    /* 3. If no Cx(DSAlertTab), bitch */    if (!DSAlertTab) {        write(2, "This machine thinks its a sadmac/n",              sizeof("This machine thinks its a sadmac/n")-1);        exit(255);    }    /* 4. Allocate and re-initialize QuickDraw */#if defined (BINCOMPAT)    a5 = (LONGINT) (long) US_TO_SYN68K (&tmpa5);    CurrentA5 = (Ptr) (long) CL(a5);#endif /* BINCOMPAT */    InitGraf((Ptr) quickbytes + sizeof(quickbytes) - 4);    ROMlib_initport(&alertport);    SetPort(&alertport);    InitCursor();    rp.p = RM(&viscliprgn);    alertport.visRgn = alertport.clipRgn = RM(&rp);    viscliprgn.rgnSize = CWC(10);#if 0 && !defined(MSDOS)    viscliprgn.rgnBBox = DSAlertRect;#else    viscliprgn.rgnBBox = main_gd_rect;#endif    /* 5, 6. Draw alert box if the errorcode is >= 0 */    TRAPBEGIN();    if (errorcode < 0)        errorcode = -errorcode;    else {        r = DSAlertRect;        FillRect(&r, white);#if defined (OLDSTYLEALERT)        r.right = CW(CW(r.right) - (2));        r.bottom = CW(CW(r.bottom) - (2));        FrameRect(&r);        PenSize(2, 2);        MoveTo(CW(r.left)+2, CW(r.bottom));        LineTo(CW(r.right), CW(r.bottom));        LineTo(CW(r.right), CW(r.top)+2);        PenSize(1, 1);#else /* OLDSTYLEALERT */        FrameRect(&r);        InsetRect(&r, 3, 3);        PenSize(2, 2);        FrameRect(&r);        PenSize(1, 1);#endif /* OLDSTYLEALERT */    }    /* find appropriate entry *///.........这里部分代码省略.........
开发者ID:nobled,项目名称:executor,代码行数:101,


示例3: memset

/*** Responsible for drawing each list item.*/void ToggleListView::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) {	CListCtrl& ListCtrl=GetListCtrl();	int nItem = lpDrawItemStruct->itemID;		// get item data	LV_ITEM lvi;	_TCHAR szBuff[MAX_PATH];		memset(&lvi, 0, sizeof(LV_ITEM));	lvi.mask = LVIF_TEXT;	lvi.iItem = nItem;	lvi.pszText = szBuff;	lvi.cchTextMax = sizeof(szBuff);	ListCtrl.GetItem(&lvi);	RECT rDraw;			CopyRect ( &rDraw, &lpDrawItemStruct->rcItem );	rDraw.right = rDraw.left + TOGGLELIST_ITEMHEIGHT;	rDraw.top ++;	rDraw.right ++;	FrameRect ( lpDrawItemStruct->hDC, &rDraw, (HBRUSH)GetStockObject ( BLACK_BRUSH ) );	rDraw.right --;	FillRect ( lpDrawItemStruct->hDC, &rDraw, GetSysColorBrush ( COLOR_3DFACE ) );	Draw3dRect ( lpDrawItemStruct->hDC, &rDraw, GetSysColorBrush ( COLOR_3DHILIGHT ), GetSysColorBrush ( COLOR_3DSHADOW ) );	InflateRect ( &rDraw, -3, -3 );	Draw3dRect ( lpDrawItemStruct->hDC, &rDraw, GetSysColorBrush ( COLOR_3DSHADOW ), GetSysColorBrush ( COLOR_3DHILIGHT ) );	switch(GetToggleState(lvi.iItem)) {		case TOGGLE_STATE_DISABLED:			if(disabledIcon) {				DrawIconEx ( lpDrawItemStruct->hDC, rDraw.left, rDraw.top, disabledIcon, 16, 16,0, NULL, DI_NORMAL );			}			break;		case TOGGLE_STATE_ON:			if(onIcon) {				DrawIconEx ( lpDrawItemStruct->hDC, rDraw.left, rDraw.top, onIcon, 16, 16,0, NULL, DI_NORMAL );			}			break;		case TOGGLE_STATE_OFF:			if(offIcon) {				DrawIconEx ( lpDrawItemStruct->hDC, rDraw.left, rDraw.top, offIcon, 16, 16,0, NULL, DI_NORMAL );			}			break;	};		CopyRect ( &rDraw, &lpDrawItemStruct->rcItem );	rDraw.left += TOGGLELIST_ITEMHEIGHT;	rDraw.left += 1;	if ( lpDrawItemStruct->itemState & ODS_SELECTED ) {		FillRect ( lpDrawItemStruct->hDC, &rDraw, GetSysColorBrush ( COLOR_HIGHLIGHT ) );				} else {		FillRect ( lpDrawItemStruct->hDC, &rDraw, GetSysColorBrush ( COLOR_WINDOW ) ); 	}	rDraw.left += TEXT_OFFSET;	int colorIndex = ( (lpDrawItemStruct->itemState & ODS_SELECTED ) ? COLOR_HIGHLIGHTTEXT : COLOR_WINDOWTEXT );	SetTextColor ( lpDrawItemStruct->hDC, GetSysColor ( colorIndex ) );	DrawText ( lpDrawItemStruct->hDC, szBuff, strlen(szBuff), &rDraw, DT_LEFT|DT_VCENTER|DT_SINGLELINE );}
开发者ID:0culus,项目名称:Doom3-for-MacOSX-,代码行数:72,


示例4: ColorDLG

/* Dialog procedure for the color selection dialog * Parameters: *  hDlg    - The dialog handle *  message - The message received *  wParam  - The first message parameter *  lParam  - The second message parameter * Returns: *  TRUE if the message was processed, FALSE otherwise */LRESULT CALLBACK ColorDLG(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) {	static HBRUSH hBrushWhite, hBrushBlack, hBrushDarkBlue, hBrushDarkGreen, hBrushRed,		hBrushDarkRed, hBrushPurple, hBrushOrange, hBrushYellow, hBrushGreen, hBrushVDarkGreen,		hBrushLightBlue, hBrushBlue, hBrushPink, hBrushDarkGray, hBrushGray;	static UINT ResultMsg = 0;	switch (message) 	{		case WM_INITDIALOG:			hBrushWhite = CreateSolidBrush(RGB(255,255,255));			hBrushBlack = CreateSolidBrush(RGB(0,0,0));			hBrushDarkBlue = CreateSolidBrush(RGB(0,0,127));			hBrushDarkGreen = CreateSolidBrush(RGB(0,147,0));			hBrushRed = CreateSolidBrush(RGB(255,0,0));			hBrushDarkRed = CreateSolidBrush(RGB(127,0,0));			hBrushPurple = CreateSolidBrush(RGB(156,0,156));			hBrushOrange = CreateSolidBrush(RGB(252,127,0));			hBrushYellow = CreateSolidBrush(RGB(255,255,0));			hBrushGreen = CreateSolidBrush(RGB(0,252,0));			hBrushVDarkGreen = CreateSolidBrush(RGB(0,147,147));			hBrushLightBlue = CreateSolidBrush(RGB(0,255,255));			hBrushBlue = CreateSolidBrush(RGB(0,0,252));			hBrushPink = CreateSolidBrush(RGB(255,0,255));			hBrushDarkGray = CreateSolidBrush(RGB(127,127,127));			hBrushGray = CreateSolidBrush(RGB(210,210,210));			ResultMsg = (UINT)lParam;			SetFocus(NULL);			return TRUE;		case WM_DRAWITEM: 		{			LPDRAWITEMSTRUCT lpdis = (LPDRAWITEMSTRUCT)lParam;			if (wParam == IDC_WHITE) 				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushWhite);			if (wParam == IDC_BLACK)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushBlack);			if (wParam == IDC_DARKBLUE) 				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushDarkBlue);			if (wParam == IDC_DARKGREEN) 				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushDarkGreen);			if (wParam == IDC_RED)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushRed);			if (wParam == IDC_DARKRED)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushDarkRed);			if (wParam == IDC_PURPLE)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushPurple);			if (wParam == IDC_ORANGE)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushOrange);			if (wParam == IDC_YELLOW)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushYellow);			if (wParam == IDC_GREEN)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushGreen);			if (wParam == IDC_VDARKGREEN)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushVDarkGreen);			if (wParam == IDC_LIGHTBLUE)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushLightBlue);			if (wParam == IDC_BLUE)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushBlue);			if (wParam == IDC_PINK)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushPink);			if (wParam == IDC_DARKGRAY)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushDarkGray);			if (wParam == IDC_GRAY)				FillRect(lpdis->hDC, &lpdis->rcItem, hBrushGray);			DrawEdge(lpdis->hDC, &lpdis->rcItem, EDGE_SUNKEN, BF_RECT);			return TRUE;		}		case WM_COMMAND: 		{			COLORREF clrref;			if (LOWORD(wParam) == IDC_WHITE) 				clrref = RGB(255,255,255);			else if (LOWORD(wParam) == IDC_BLACK)				clrref = RGB(0,0,0);			else if (LOWORD(wParam) == IDC_DARKBLUE)				clrref = RGB(0,0,127);			else if (LOWORD(wParam) == IDC_DARKGREEN)				clrref = RGB(0,147,0);			else if (LOWORD(wParam) == IDC_RED)				clrref = RGB(255,0,0);			else if (LOWORD(wParam) == IDC_DARKRED)				clrref = RGB(127,0,0);			else if (LOWORD(wParam) == IDC_PURPLE)				clrref = RGB(156,0,156);			else if (LOWORD(wParam) == IDC_ORANGE)				clrref = RGB(252,127,0);			else if (LOWORD(wParam) == IDC_YELLOW)				clrref = RGB(255,255,0);			else if (LOWORD(wParam) == IDC_GREEN)				clrref = RGB(0,252,0);			else if (LOWORD(wParam) == IDC_VDARKGREEN)				clrref = RGB(0,147,147);//.........这里部分代码省略.........
开发者ID:SwiftIRC,项目名称:ircd,代码行数:101,


示例5: FillRect

void CBarShader::FillRect(CDC *dc, LPRECT rectSpan, COLORREF color, bool bFlat) {	if(!color || bFlat)		dc->FillRect(rectSpan, &CBrush(color));	else		FillRect(dc, rectSpan, GetRValue(color), GetGValue(color), GetBValue(color), false);}
开发者ID:HackLinux,项目名称:eMule-Mirror,代码行数:6,


示例6: PaintClc

void PaintClc(HWND hwnd, struct ClcData *dat, HDC hdc, RECT * rcPaint){	HDC hdcMem;	RECT clRect;	int y, indent, index, fontHeight;	struct ClcGroup *group;	HFONT hOldFont;	DWORD style = GetWindowLong(hwnd, GWL_STYLE);	int status = GetGeneralisedStatus();	int grey = 0, groupCountsFontTopShift;	HBRUSH hBrushAlternateGrey = NULL;	// yes I know about GetSysColorBrush()	COLORREF tmpbkcolour = style & CLS_CONTACTLIST ? (dat->useWindowsColours ? GetSysColor(COLOR_3DFACE) : dat->bkColour) : dat->bkColour;	if (dat->greyoutFlags & pcli->pfnClcStatusToPf2(status) || style & WS_DISABLED)		grey = 1;	else if (GetFocus() != hwnd && dat->greyoutFlags & GREYF_UNFOCUS)		grey = 1;	GetClientRect(hwnd, &clRect);	if (rcPaint == NULL)		rcPaint = &clRect;	if (IsRectEmpty(rcPaint))		return;	y = -dat->yScroll;	hdcMem = CreateCompatibleDC(hdc);	HBITMAP hBmpOsb = CreateBitmap(clRect.right, clRect.bottom, 1, GetDeviceCaps(hdc, BITSPIXEL), NULL);	HBITMAP hOldBitmap = (HBITMAP)SelectObject(hdcMem, hBmpOsb);	{		TEXTMETRIC tm;		hOldFont = (HFONT)SelectObject(hdcMem, dat->fontInfo[FONTID_GROUPS].hFont);		GetTextMetrics(hdcMem, &tm);		groupCountsFontTopShift = tm.tmAscent;		SelectObject(hdcMem, dat->fontInfo[FONTID_GROUPCOUNTS].hFont);		GetTextMetrics(hdcMem, &tm);		groupCountsFontTopShift -= tm.tmAscent;	}	if (style & CLS_GREYALTERNATE)		hBrushAlternateGrey =		CreateSolidBrush(GetNearestColor(hdcMem, RGB(GetRValue(tmpbkcolour) - 10, GetGValue(tmpbkcolour) - 10, GetBValue(tmpbkcolour) - 10)));	ChangeToFont(hdcMem, dat, FONTID_CONTACTS, &fontHeight);	SetBkMode(hdcMem, TRANSPARENT);	{		HBRUSH hBrush;		hBrush = CreateSolidBrush(tmpbkcolour);		FillRect(hdcMem, rcPaint, hBrush);		DeleteObject(hBrush);		if (dat->hBmpBackground) {			BITMAP bmp;			HDC hdcBmp;			int x, y;			int maxx, maxy;			int destw, desth;			// XXX: Halftone isnt supported on 9x, however the scretch problems dont happen on 98.			SetStretchBltMode(hdcMem, HALFTONE);			GetObject(dat->hBmpBackground, sizeof(bmp), &bmp);			hdcBmp = CreateCompatibleDC(hdcMem);			SelectObject(hdcBmp, dat->hBmpBackground);			y = dat->backgroundBmpUse & CLBF_SCROLL ? -dat->yScroll : 0;			maxx = dat->backgroundBmpUse & CLBF_TILEH ? clRect.right : 1;			maxy = dat->backgroundBmpUse & CLBF_TILEV ? maxy = rcPaint->bottom : y + 1;			switch (dat->backgroundBmpUse & CLBM_TYPE) {			case CLB_STRETCH:				if (dat->backgroundBmpUse & CLBF_PROPORTIONAL) {					if (clRect.right * bmp.bmHeight < clRect.bottom * bmp.bmWidth) {						desth = clRect.bottom;						destw = desth * bmp.bmWidth / bmp.bmHeight;					}					else {						destw = clRect.right;						desth = destw * bmp.bmHeight / bmp.bmWidth;					}				}				else {					destw = clRect.right;					desth = clRect.bottom;				}				break;			case CLB_STRETCHH:				if (dat->backgroundBmpUse & CLBF_PROPORTIONAL) {					destw = clRect.right;					desth = destw * bmp.bmHeight / bmp.bmWidth;				}				else {					destw = clRect.right;					desth = bmp.bmHeight;				}				break;			case CLB_STRETCHV:				if (dat->backgroundBmpUse & CLBF_PROPORTIONAL) {					desth = clRect.bottom;					destw = desth * bmp.bmWidth / bmp.bmHeight;				}				else {					destw = bmp.bmWidth;					desth = clRect.bottom;				}//.........这里部分代码省略.........
开发者ID:MrtsComputers,项目名称:miranda-ng,代码行数:101,


示例7: WndProc

//.........这里部分代码省略.........            DeleteObject(hFont);            PostQuitMessage(0);            return 0;        }        case WM_ERASEBKGND:        {            // Don't do any erasing here.  It's done in WM_PAINT to avoid flicker.            return 1;        }        case WM_VOLUMECHANGE:        {            // get the new volume level            g_pVolumeMonitor->GetLevelInfo(&g_currentVolume);            // make window visible for 2 seconds            ShowWindow(hWnd, SW_SHOW);            InvalidateRect(hWnd, NULL, TRUE);            nTimerId = SetTimer(hWnd, 101, 2000, NULL);            return 0;        }        case WM_ENDPOINTCHANGE:        {            g_pVolumeMonitor->ChangeEndpoint();            return 0;        }        case WM_TIMER:        {            // make the window go away            ShowWindow(hWnd, SW_HIDE);            KillTimer(hWnd, nTimerId);            return 0;        }        case WM_PAINT:        {            PAINTSTRUCT     ps;            HPAINTBUFFER    hBufferedPaint = NULL;            RECT            rc;            GetClientRect(hWnd, &rc);            HDC hdc = BeginPaint(hWnd, &ps);            if (g_bDblBuffered)            {                // Get doublebuffered DC                HDC hdcMem;                hBufferedPaint = BeginBufferedPaint(hdc, &rc, BPBF_COMPOSITED, NULL, &hdcMem);                if (hBufferedPaint)                {                    hdc = hdcMem;                }            }            // black background (transparency color)            FillRect(hdc, &rc, (HBRUSH)GetStockObject(BLACK_BRUSH));            // Draw LEDs            for (UINT i = 0; i < (g_currentVolume.cSteps-1); i++)            {                RECT const rcLed = { DPIScale(i * 10), DPIScale(10), DPIScale(i * 10 + 8), rc.bottom-DPIScale(15) };                if ((i < g_currentVolume.nStep) && (!g_currentVolume.bMuted))                    FillRect(hdc, &rcLed, hbrLit);                else                    FillRect(hdc, &rcLed, hbrUnlit);            }            if (g_currentVolume.bMuted)            {                HGDIOBJ hof = SelectObject(hdc, hFont);                SetBkMode(hdc, TRANSPARENT);                SetTextColor(hdc, RGB(255, 64, 64));                RECT rcText = rc;                rcText.bottom -= DPIScale(11);                DrawText(hdc, L"MUTED", -1, &rcText, DT_CENTER | DT_SINGLELINE | DT_VCENTER);                SelectObject(hdc, hof);            }            if (hBufferedPaint)            {                // end painting                BufferedPaintMakeOpaque(hBufferedPaint, NULL);                EndBufferedPaint(hBufferedPaint, TRUE);            }            EndPaint(hWnd, &ps);            return 0;        }    }    return DefWindowProc(hWnd, message, wParam, lParam);}
开发者ID:Essjay1,项目名称:Windows-classic-samples,代码行数:101,


示例8: DialogProc

LRESULT CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam){	switch (message)	{	case WM_INITDIALOG:		Init(hDlg);		return TRUE;	case WM_COMMAND:		{			int id = LOWORD(wParam);			if (id == IDC_BUTTON_START)			{				server.Start();			}			if (id == ID_NOTITYICONMENU_EXIT)	// 点击退出菜单,退出应用			{				Shell_NotifyIcon(NIM_DELETE,&g_nid);				EndDialog(hDlg, 0);			}			break;		}	case WM_SYSCOMMAND:		if (wParam == SC_CLOSE)		// 暂时隐藏程序,不退出		{			ShowWindow(g_hMainWnd, SW_HIDE);  		}		break;	case WM_AIRSOUND_NOTIFY:		if(wParam == IDC_NOTIFYICON)		{  			if(lParam == WM_LBUTTONDOWN)			{  				ShowWindow(g_hMainWnd, SW_SHOWNORMAL);  				SetForegroundWindow(g_hMainWnd);				return TRUE;  			}			if (lParam == WM_RBUTTONDOWN)			{				HMENU hMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENU_NOTIFYICON));				POINT point;				GetCursorPos(&point);				TrackPopupMenu(hMenu, 					TPM_RIGHTBUTTON, 					point.x,					point.y,					0,					g_hMainWnd,					NULL);				PostMessage(g_hMainWnd, WM_NULL, NULL, NULL);			}		}  	case WM_PAINT:		{			BOOL bCompEnabled;			DwmIsCompositionEnabled(&bCompEnabled);			if (bCompEnabled)			{				PAINTSTRUCT ps;				HDC hDC = BeginPaint(g_hMainWnd, &ps);				RECT rcClient;				GetClientRect(g_hMainWnd, &rcClient);				HBRUSH hBrush = CreateSolidBrush(RGB(0, 0, 0));				FillRect(hDC, &rcClient, hBrush);				DrawGlowingText(hDC, IDC_STATIC);				EndPaint(g_hMainWnd, &ps);			}		}		break;	}	return FALSE;}
开发者ID:EndlessCheng,项目名称:AirSound,代码行数:73,


示例9: EventArea_WndProc

//.........这里部分代码省略.........		if (g_CluiData.bEventAreaEnabled)			SendMessage(hwnd, WM_COMMAND, MAKEWPARAM(IDC_NOTIFYBUTTON, 0), 0);		break;	case WM_COMMAND:		if (LOWORD(wParam) == IDC_NOTIFYBUTTON) {			int iSelection;			MENUITEMINFO mii = {0};			POINT pt;			struct NotifyMenuItemExData *nmi = 0;			int iCount = GetMenuItemCount(g_CluiData.hMenuNotify);			BOOL result;			GetCursorPos(&pt);			mii.cbSize = sizeof(mii);			mii.fMask = MIIM_DATA;			if (iCount > 1)				iSelection = TrackPopupMenu(g_CluiData.hMenuNotify, TPM_RETURNCMD, pt.x, pt.y, 0, hwnd, NULL);			else				iSelection = GetMenuItemID(g_CluiData.hMenuNotify, 0);			result = GetMenuItemInfo(g_CluiData.hMenuNotify, (UINT) iSelection, FALSE, &mii);			if (result != 0) {				nmi = (struct NotifyMenuItemExData *) mii.dwItemData;				if (nmi) {					CLISTEVENT *cle = MyGetEvent(iSelection);					if (cle) {						CLISTEVENT *cle1 = NULL;						CallService(cle->pszService, (WPARAM) NULL, (LPARAM) cle);						// re-obtain the pointer, it may already be invalid/point to another event if the						// event we're interested in was removed by the service (nasty one...)						cle1 = MyGetEvent(iSelection);						if (cle1 != NULL)							CallService(MS_CLIST_REMOVEEVENT, (WPARAM) cle->hContact, (LPARAM) cle->hDbEvent);					}				}			}			break;		}		break;	case WM_SIZE:		if (!g_CluiData.fLayered)			InvalidateRect(hwnd,NULL,FALSE);		return DefWindowProc(hwnd, msg, wParam, lParam);	case WM_ERASEBKGND:		return 1;	case WM_PAINT:		if (GetParent(hwnd) == pcli->hwndContactList && g_CluiData.fLayered)			CallService(MS_SKINENG_INVALIDATEFRAMEIMAGE,(WPARAM)hwnd,0);		else if (GetParent(hwnd) == pcli->hwndContactList && !g_CluiData.fLayered) {			HDC hdc, hdc2;			HBITMAP hbmp,hbmpo;			RECT rc = {0};			GetClientRect(hwnd,&rc);			rc.right++;			rc.bottom++;			hdc = GetDC(hwnd);			hdc2 = CreateCompatibleDC(hdc);			hbmp = ske_CreateDIB32(rc.right,rc.bottom);			hbmpo = (HBITMAP)SelectObject(hdc2,hbmp);			ske_BltBackImage(hwnd,hdc2,&rc);			EventArea_DrawWorker(hwnd,hdc2);			BitBlt(hdc,rc.left,rc.top,rc.right-rc.left,rc.bottom-rc.top,				hdc2,rc.left,rc.top,SRCCOPY);			SelectObject(hdc2,hbmpo);			DeleteObject(hbmp);			DeleteDC(hdc2);			SelectObject(hdc,GetStockObject(DEFAULT_GUI_FONT));			ReleaseDC(hwnd,hdc);			ValidateRect(hwnd,NULL);		}		else {			HDC hdc, hdc2;			HBITMAP hbmp, hbmpo;			RECT rc;			PAINTSTRUCT ps;			HBRUSH br = GetSysColorBrush(COLOR_3DFACE);			GetClientRect(hwnd,&rc);			hdc = BeginPaint(hwnd,&ps);			hdc2 = CreateCompatibleDC(hdc);			hbmp = ske_CreateDIB32(rc.right,rc.bottom);			hbmpo = (HBITMAP)SelectObject(hdc2,hbmp);			FillRect(hdc2,&ps.rcPaint,br);			EventArea_DrawWorker(hwnd,hdc2);			BitBlt(hdc,ps.rcPaint.left,ps.rcPaint.top,ps.rcPaint.right-ps.rcPaint.left,ps.rcPaint.bottom-ps.rcPaint.top,				hdc2,ps.rcPaint.left,ps.rcPaint.top,SRCCOPY);			SelectObject(hdc2,hbmpo);			DeleteObject(hbmp);			DeleteDC(hdc2);			ps.fErase = FALSE;			EndPaint(hwnd,&ps);		}	default:		return DefWindowProc(hwnd, msg, wParam, lParam);	}	return TRUE;}
开发者ID:0xmono,项目名称:miranda-ng,代码行数:101,


示例10: LogBegin

STDMETHODIMP CFACE::Download( BSTR URL, BSTR DownloadFile ){		USES_CONVERSION;	HANDLE hFile; TCHAR DownloadTo[ MAX_PATH ] , TXT[ 256 ] ;	HWND hDialog;	LogBegin( "File Download Method" );	LogPut( CONTINUE , IDS_LOG_DOWNLOAD , URL );	// ユ
C++ Fill_Buffer函数代码示例
C++ FillMemory函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。