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

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

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

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

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

示例1: GetWindowDC

// Windows-specific code to set the horizontal extent of the listbox, if// necessary. If s is non-NULL, it's used to calculate the horizontal extent.// Otherwise, all strings are used.void wxListBox::SetHorizontalExtent(const wxString& s){    // Only necessary if we want a horizontal scrollbar    if (!(m_windowStyle & wxHSCROLL))        return;    TEXTMETRIC lpTextMetric;    if ( !s.empty() )    {        int existingExtent = (int)SendMessage(GetHwnd(), LB_GETHORIZONTALEXTENT, 0, 0L);        HDC dc = GetWindowDC(GetHwnd());        HFONT oldFont = 0;        if (GetFont().Ok() && GetFont().GetResourceHandle() != 0)            oldFont = (HFONT) ::SelectObject(dc, (HFONT) GetFont().GetResourceHandle());        GetTextMetrics(dc, &lpTextMetric);        SIZE extentXY;        ::GetTextExtentPoint32(dc, (LPTSTR) (const wxChar *)s, s.Length(), &extentXY);        int extentX = (int)(extentXY.cx + lpTextMetric.tmAveCharWidth);        if (oldFont)            ::SelectObject(dc, oldFont);        ReleaseDC(GetHwnd(), dc);        if (extentX > existingExtent)            SendMessage(GetHwnd(), LB_SETHORIZONTALEXTENT, LOWORD(extentX), 0L);    }    else    {        int largestExtent = 0;        HDC dc = GetWindowDC(GetHwnd());        HFONT oldFont = 0;        if (GetFont().Ok() && GetFont().GetResourceHandle() != 0)            oldFont = (HFONT) ::SelectObject(dc, (HFONT) GetFont().GetResourceHandle());        GetTextMetrics(dc, &lpTextMetric);        for (int i = 0; i < m_noItems; i++)        {            wxString str = GetString(i);            SIZE extentXY;            ::GetTextExtentPoint32(dc, str.c_str(), str.length(), &extentXY);            int extentX = (int)(extentXY.cx + lpTextMetric.tmAveCharWidth);            if (extentX > largestExtent)                largestExtent = extentX;        }        if (oldFont)            ::SelectObject(dc, oldFont);        ReleaseDC(GetHwnd(), dc);        SendMessage(GetHwnd(), LB_SETHORIZONTALEXTENT, LOWORD(largestExtent), 0L);    }}
开发者ID:gitrider,项目名称:wxsj2,代码行数:56,


示例2: DrawGaugeBorder

// Draws a recessed border around the gaugestatic voidDrawGaugeBorder(HWND hWnd){	HDC		hDC = GetWindowDC(hWnd);	RECT	rect;	int		cx, cy;	HPEN	hShadowPen = CreatePen(PS_SOLID, 1, GetSysColor(COLOR_BTNSHADOW));	HGDIOBJ	hOldPen;	GetWindowRect(hWnd, &rect);	cx = rect.right - rect.left;	cy = rect.bottom - rect.top;	// Draw a dark gray line segment	hOldPen = SelectObject(hDC, (HGDIOBJ)hShadowPen);	MoveToEx(hDC, 0, cy - 1, NULL);	LineTo(hDC, 0, 0);	LineTo(hDC, cx - 1, 0);	// Draw a white line segment	SelectObject(hDC, GetStockObject(WHITE_PEN));	MoveToEx(hDC, 0, cy - 1, NULL);	LineTo(hDC, cx - 1, cy - 1);	LineTo(hDC, cx - 1, 0);	SelectObject(hDC, hOldPen);	DeleteObject(hShadowPen);	ReleaseDC(hWnd, hDC);}
开发者ID:rn10950,项目名称:RetroZilla,代码行数:30,


示例3: DrawMap

void DrawMap(HWND hWnd){	HDC hDc = GetWindowDC(hWnd);	HDC memDc = CreateCompatibleDC(NULL);  //缓存DC	HBITMAP hBitMap = CreateCompatibleBitmap(hDc, 850, 650);	SelectObject(memDc, hBitMap);	//背景刷成绿色	HBRUSH hBrushBack = CreateSolidBrush(RGB(0, 255, 0));	RECT rectBack;	rectBack.top = 0;	rectBack.bottom = 650;	rectBack.left = 0;	rectBack.right = 850;	FillRect(memDc, &rectBack, hBrushBack);	DrawStoneAndBrike(memDc);		DrawMan(memDc);	BitBlt(hDc, 3, 25, 850, 650, memDc, 0, 0, SRCCOPY);//拷贝	DeleteObject(memDc);	DeleteObject(hBitMap);	DeleteObject(hBrushBack);		ReleaseDC(hWnd, hDc);}
开发者ID:YangMingYu,项目名称:BomberMan,代码行数:28,


示例4: GetWindowDC

void CConfigMsgLogDlg::OnTimer(UINT nIDEvent){    if (nIDEvent == m_unDispUpdateTimerId)    {        static bool bSwitchDisplay = true;        CDC* pdc= GetWindowDC();        pdc->SetTextColor(RGB(253,153,4));        pdc->SetBkMode(TRANSPARENT);        if(bSwitchDisplay)        {            SetWindowText("");            pdc->DrawText(m_strCurrWndText,CRect(4,4,400,50),DT_END_ELLIPSIS);            bSwitchDisplay = false;        }        else        {            pdc->DrawText(m_strCurrWndText,CRect(4,4,400,50),DT_END_ELLIPSIS);            SetWindowText(m_strCurrWndText);            bSwitchDisplay = true;        }        ReleaseDC(pdc);    }    CDialog::OnTimer(nIDEvent);}
开发者ID:BlackVodka,项目名称:busmaster,代码行数:25,


示例5: CaptureWindow

HBITMAP CaptureWindow(HWND hWnd){	RECT wnd;	if ( ! GetWindowRect(hWnd, & wnd) )		return NULL;	HDC hDC = GetWindowDC(hWnd);	HBITMAP hBmp = CreateCompatibleBitmap(hDC, wnd.right - wnd.left, wnd.bottom - wnd.top);	if ( hBmp )	{		HDC hMemDC   = CreateCompatibleDC(hDC);		HGDIOBJ hOld = SelectObject(hMemDC, hBmp);		BitBlt(hMemDC, 0, 0, wnd.right - wnd.left, wnd.bottom - wnd.top, 			hDC, 0, 0, SRCCOPY);		SelectObject(hMemDC, hOld);		DeleteObject(hMemDC);	}		ReleaseDC(hWnd, hDC);	return hBmp;}
开发者ID:b2kguga,项目名称:CodesAndNotes,代码行数:27,


示例6: aigisHwnd

bool CFrame::findColor(CPnt5* pnt5){	HWND hwnd = aigisHwnd();	if (!hwnd)	{		return false;	}	HDC hdc = GetWindowDC(hwnd);	if (!hdc)	{		return false;	}	bool bSame = true;	for (size_t i = 0; i < EPD_MAX; i++)	{		POINT pntTmp = pnt5->getPoint((E_POINT_DIRECTION)i);		COLORREF colorDefi = pnt5->getColor((E_POINT_DIRECTION)i);		COLORREF colorFind = GetPixel(hdc, pntTmp.x, pntTmp.y);		if (!CPnt5::isSameColor(colorDefi, colorFind ))		{			bSame = false;			break;		}	}	ReleaseDC(hwnd, hdc);	return bSame;}
开发者ID:kpli,项目名称:AigisDmm,代码行数:29,


示例7: GetWindowDC

void IWindow::selectWindow(){    hWndDC = GetWindowDC(hWnd);	hBufferDC = CreateCompatibleDC(hWndDC);	hWndBitmap = CreateCompatibleBitmap(hWndDC, wndWidth, wndHeight);	hWndBitmap = (HBITMAP)SelectObject(hBufferDC, hWndBitmap);	if(!BitBlt(hBufferDC, 0, 0, wndWidth, wndHeight, hWndDC, 0, 0, SRCCOPY)){		DWORD dwError = GetLastError();		_tprintf(_T("BitBlt: dwError = %i /n"), dwError);	}	if(hWndDC != NULL)	{		HPEN hPen = CreatePen(PS_SOLID, 3, RGB(0, 0, 0));		hPen = (HPEN)SelectObject(hWndDC, hPen);		MoveToEx(hWndDC, 1, 1, NULL);		LineTo(hWndDC, wndWidth - 1, 1);		LineTo(hWndDC, wndWidth - 1, wndHeight - 1);		LineTo(hWndDC, 1, wndHeight - 1);		LineTo(hWndDC, 1, 1);		DeleteObject(SelectObject(hWndDC, hPen));	}}
开发者ID:KostjaStern,项目名称:WinInfo,代码行数:26,


示例8: ToolbarWndProc

LRESULT CALLBACK ToolbarWndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam){  switch (Msg)  {    case WM_NOTIFY:    {      switch (((LPNMHDR) lParam)->code)      {        case TTN_GETDISPINFOA:        case TTN_GETDISPINFOW:        {          LPNMTTDISPINFO Info = (LPNMTTDISPINFO) lParam;          Info->hinst = GetModuleHandle(NULL);          Info->lpszText = MAKEINTRESOURCE(Info->hdr.idFrom);          break;        }      }      return 0;    }    case WM_NCPAINT:    {      RECT R;      GetWindowRect(hWnd, &R);      R.right -= R.left;      R.bottom -= R.top;      R.left = 0;      R.top = 0;      HDC DC = GetWindowDC(hWnd);      DrawEdge(DC, &R, EDGE_ETCHED, BF_RECT);      ReleaseDC(hWnd, DC);      return 0;    }  }  return CallWindowProc((WNDPROC)DefaultToolbarWndProc, hWnd, Msg, wParam, lParam);}
开发者ID:Malbeth81,项目名称:lambda-html-editor,代码行数:35,


示例9: GetWindowDC

void CttView::BsmLine(CPoint st, CPoint ed){	CDC* pDC = GetWindowDC();	COLORREF color = RGB(0,0,0);	int x,y;	int dx=(((ed.x-st.x)>0)<<1)-1;	int dy=(((ed.y-st.y)>0)<<1)-1;	//算y的增量是1还是-1	//x若相等,则为横着的直线	if(ed.x==st.x){		int x=st.x, y=st.y;		while(y!=ed.y){			pDC->SetPixel(x,y,color);			y+=dy;		}		pDC->SetPixel(x,y,color);		return;	}	//斜率小于等于1 / 大于1	if(fabs((1.0*ed.y-st.y)/(1.0*ed.x-st.x)) <= 1.0){		if(st.x > ed.x)swap(st,ed);		//将小的x放st、大的放ed		dy=(((ed.y-st.y)>0)<<1)-1;		x=st.x;		y=st.y;		int dtx=ed.x-st.x;		int dty=(ed.y-st.y)*dy;		int e=2*dty-dtx;		while(x!=ed.x || y!=ed.y){			pDC->SetPixel(x,y,color);			if(e>=0){				x++;				y+=dy;				e+=dty+dty-dtx-dtx;			}else{				x++;				e+=dty+dty;			}		}	}else{	//斜率大于1,则xy交换		if(st.y > ed.y)swap(st,ed);		//将小的y放st、大的放ed		dx=(((ed.x-st.x)>0)<<1)-1;		x=st.x;		y=st.y;		int dtx=(ed.x-st.x)*dx;		int dty=ed.y-st.y;		int e=2*dtx-dty;		while(x!=ed.x || y!=ed.y){			pDC->SetPixel(x,y,color);			if(e>=0){				y++;				x+=dx;				e+=dtx+dtx-dty-dty;			}else{				y++;				e+=dtx+dtx;			}		}	}	pDC->SetPixel(x,y,color);}
开发者ID:Yuiffy,项目名称:computer-graphics-,代码行数:60,


示例10: GetWindowDC

//-----------------------------------------------------------------------------// Name: HighlightWindow (from MSDN Spy Sample)// Object: highlight or unhightlight a window// Parameters : //     in : HWND hwnd : target window handle//          BOOL fDraw : TRUE to draw, FALSE to clear// Return : TRUE on success//-----------------------------------------------------------------------------void CSelectWindow::HighlightWindow( HWND hwnd, BOOL fDraw ){    #define DINV                3    HDC hdc;    RECT rc;    BOOL bBorderOn;    bBorderOn = fDraw;    if (hwnd == NULL || !IsWindow(hwnd))        return;    hdc = GetWindowDC(hwnd);    GetWindowRect(hwnd, &rc);    OffsetRect(&rc, -rc.left, -rc.top);    if (!IsRectEmpty(&rc))    {        PatBlt(hdc, rc.left, rc.top, rc.right - rc.left, DINV,  DSTINVERT);        PatBlt(hdc, rc.left, rc.bottom - DINV, DINV,            -(rc.bottom - rc.top - 2 * DINV), DSTINVERT);        PatBlt(hdc, rc.right - DINV, rc.top + DINV, DINV,            rc.bottom - rc.top - 2 * DINV, DSTINVERT);        PatBlt(hdc, rc.right, rc.bottom - DINV, -(rc.right - rc.left),            DINV, DSTINVERT);    }    ReleaseDC(hwnd, hdc);}
开发者ID:340211173,项目名称:hf-2011,代码行数:36,


示例11: GetWindowDC

void CAboutDlg::OnNcPaint() {	CDC*	pDC = GetWindowDC();	CRect	rc, rcCut,rcDraw;	GetWindowRect(&rc);	rcDraw.top		=  0;	rcDraw.left		=  0;	rcDraw.right	= rc.Width() ;	rcDraw.bottom	= rc.Height();	CRect rcClient;	GetClientRect(&rcClient);	ClientToScreen(&rcClient);	rcCut.left = rcClient.left - rc.left;	rcCut.right = rcClient.right - rc.left;	rcCut.top = rcClient.top - rc.top;	rcCut.bottom = rcClient.bottom - rc.top;	CRgn rgnCut,rgnResult;	  	rgnCut.CreateRectRgnIndirect(&rcCut);	rgnResult.CreateRectRgnIndirect(&rcDraw);	rgnResult.CombineRgn(&rgnResult,&rgnCut, RGN_XOR);		pDC->SelectClipRgn(&rgnResult);	pDC->FillSolidRect(rcDraw, RGB(0, 119, 158));	ReleaseDC(pDC);}
开发者ID:ZuDame,项目名称:Smart3DCoating,代码行数:27,


示例12: frame_draw_end

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