当前位置: 首页>>代码示例>>C++>>正文


C++ SetMapMode函数代码示例

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


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

示例1: SetHIMETRICtoDP

void SetHIMETRICtoDP(HDC hdc, SIZE* sz)
{
	POINT pt;
	int nMapMode = GetMapMode(hdc);
	if (nMapMode < MM_ISOTROPIC && nMapMode != MM_TEXT) {
		// when using a constrained map mode, map against physical inch
		SetMapMode(hdc, MM_HIMETRIC);
		pt.x = sz->cx;
		pt.y = sz->cy;
		LPtoDP(hdc, &pt, 1);
		sz->cx = pt.x;
		sz->cy = pt.y;
		SetMapMode(hdc, nMapMode);
	}
	else {
		// map against logical inch for non-constrained mapping modes
		int cxPerInch, cyPerInch;
		cxPerInch = GetDeviceCaps(hdc, LOGPIXELSX);
		cyPerInch = GetDeviceCaps(hdc, LOGPIXELSY);
		sz->cx = MulDiv(sz->cx, cxPerInch, HIMETRIC_INCH);
		sz->cy = MulDiv(sz->cy, cyPerInch, HIMETRIC_INCH);
	}

	pt.x = sz->cx;
	pt.y = sz->cy;
	DPtoLP(hdc, &pt, 1);
	sz->cx = pt.x;
	sz->cy = pt.y;
}
开发者ID:tweimer,项目名称:miranda-ng,代码行数:29,代码来源:image_utils.cpp

示例2: widget_

	RenderContext::RenderContext(Widget* widget)
		: widget_(widget)
		, gdi_(NULL)
	{
		HDC wnd_dc = BeginPaint(widget->hwnd(), &ps_);
		SetGraphicsMode(wnd_dc, GM_ADVANCED);
		SetMapMode(wnd_dc, MM_TEXT);
		SetBkMode(wnd_dc, OPAQUE);
		//SetBkMode(wnd_dc, TRANSPARENT);

		dc_ = ::CreateCompatibleDC(wnd_dc);
		//dc_ = wnd_dc;
		SetGraphicsMode(dc_, GM_ADVANCED);
		SetMapMode(dc_, MM_TEXT);
		SetBkMode(dc_, OPAQUE);
		//SetMapMode(dc_, MM_LOENGLISH);
		//SetWorldTransform(dc_, &Matrix().ToXFORM());

		RECT rc;
		::GetClientRect(widget->hwnd(), &rc);
		rect_ = rc;

		bitmap_ = CreateDIB(rect_.width(), rect_.height());
		bitmap_prev_ = (HBITMAP)::SelectObject(dc_, bitmap_);
		gdi_ = new Gdiplus::Graphics(dc_);
	}
开发者ID:blueantst,项目名称:DuiFramework,代码行数:26,代码来源:render_context.cpp

示例3: SendMessage

 int TooltipManagerWin::CalcTooltipHeight()
 {
     // Ask the tooltip for it's font.
     int height;
     HFONT hfont = reinterpret_cast<HFONT>(
         SendMessage(tooltip_hwnd_, WM_GETFONT, 0, 0));
     if(hfont != NULL)
     {
         HDC dc = GetDC(tooltip_hwnd_);
         HFONT previous_font = static_cast<HFONT>(SelectObject(dc, hfont));
         int last_map_mode = SetMapMode(dc, MM_TEXT);
         TEXTMETRIC font_metrics;
         GetTextMetrics(dc, &font_metrics);
         height = font_metrics.tmHeight;
         // To avoid the DC referencing font_handle_, select the previous font.
         SelectObject(dc, previous_font);
         SetMapMode(dc, last_map_mode);
         ReleaseDC(NULL, dc);
     }
     else
     {
         // Tooltip is using the system font. Use gfx::Font, which should pick
         // up the system font.
         height = gfx::Font().GetHeight();
     }
     // Get the margins from the tooltip
     RECT tooltip_margin;
     SendMessage(tooltip_hwnd_, TTM_GETMARGIN, 0, (LPARAM)&tooltip_margin);
     return height + tooltip_margin.top + tooltip_margin.bottom;
 }
开发者ID:Strongc,项目名称:Chrome_Library,代码行数:30,代码来源:tooltip_manager_win.cpp

示例4: CWallBrowserStretchView

/*
	CWallBrowserStretchView()
*/
CWallBrowserStretchView::CWallBrowserStretchView()
{
	m_pWinAppEx = (CWinAppEx*)AfxGetApp();
	m_bLoaded = FALSE;
	m_bHavePicture = FALSE;
	memset(m_szFileName,'\0',sizeof(m_szFileName));
	m_nViewType = m_pWinAppEx->m_Config.GetNumber(WALLBROWSER_OPTIONS_KEY,WALLBROWSER_VIEWTYPE_KEY);
	if(m_nViewType==VIEWTYPE_SCROLL)
	{
		// modalita' visualizzazione (centrato/isotropic)
		SetCenterMode(TRUE);
		SetMapMode(MM_ANISOTROPIC);
		SetCursorZoomMode(CURSOR_MODE_BYCLICK);
	}
	else if(m_nViewType==VIEWTYPE_STRETCH)
	{
		// modalita' visualizzazione (centrato/text)
		SetCenterMode(FALSE);
		SetMapMode(MM_TEXT);
		SetCursorZoomMode(CURSOR_MODE_NONE);
	}
	m_nDrawMode = m_pWinAppEx->m_Config.GetNumber(WALLBROWSER_OPTIONS_KEY,WALLBROWSER_DRAWMODE_KEY);
	m_rcInvalid.SetRect(-1,-1,-1,-1);
	m_rcClient.SetRect(-1,-1,-1,-1);
	m_ImageOperation.SetImage(NULL);
	m_ImageDraw.SetImage(NULL);
	m_bRebuildPalette = FALSE; // mettere a TRUE con le operazioni che cambiano l'immagine (ad es. grayscale)
	memset(m_szStatus,'\0',sizeof(m_szStatus));
	m_pMainFrameStatusBar = NULL;
	m_nUndoLevel = 0;
	m_nRedoLevel = 0;
	m_nLastOperation = -1;
	m_nRedo = -1;
}
开发者ID:code4bones,项目名称:crawlpaper,代码行数:37,代码来源:WallBrowserStretchView.cpp

示例5: IntersectRect

void ALMAPI TABLE_WLAY::Draw(HDC hDC, RECT *clipRect)
  {
  RECT tmpRect;
  BOOL bIntersect;
  bIntersect = IntersectRect(&tmpRect, clipRect, &m_rcItem);

  tmpRect = m_rcItem; // always draw to the entire
                      // visual rect

  if (bIntersect)
    {
    OWndLStoDS(m_oiParent, (LPPOINT)&tmpRect, 2);

    int saveDC = SaveDC(hDC);
    int mode = SetMapMode(hDC, MM_TEXT);
    table->WIDR_Draw(hDC, &tmpRect); //widr->rectPtr);
    SetMapMode(hDC, mode); // restore LOMETRIC mode
    RestoreDC(hDC, saveDC);

    if (table->VertScroll())
      {
      UpdateWindow(table->hVertScroll);
      }
    if (table->HorzScroll())
      {
      UpdateWindow(table->hHorzScroll);
      }
    }
  }
开发者ID:benbucksch,项目名称:AppWare,代码行数:29,代码来源:TBL_WLAY.CPP

示例6: while

void __fastcall TTaeQRRichText::Print(int OfsX, int OfsY){
    TFormatRange        Range;
    int                 LogX,LogY,TextLength,OldMapMode;
    bool                HasExpanded;
    TTaeRichEdit*       ARichEdit;
    Extended            Expanded;

    ARichEdit=ParentRichEdit==NULL?FRichEdit:ParentRichEdit;
    {
        register i=sizeof(TFormatRange);
        register char *c=(char *) &Range;
        while(i--) *c++=0;
    }
    Range.hdc= ParentReport->QRPrinter->Canvas->Handle;
    Range.hdcTarget= Range.hdc;
    LogX= GetDeviceCaps(Range.hdc, LOGPIXELSX);
    LogY= GetDeviceCaps(Range.hdc, LOGPIXELSY);
    Range.rc=Rect(QRPrinter->XPos(OfsX + Size->Left) * 1440 / LogX,
                  QRPrinter->YPos(OfsY + Size->Top) * 1440 / LogY,
                  QRPrinter->XPos(OfsX + Size->Width + Size->Left) * 1440 / LogX,
                  QRPrinter->YPos(OfsY + Size->Height + Size->Top) * 1440 / LogY);
    Range.rcPage=Rect(0,0,
                      QRPrinter->XSize(QRPrinter->PaperWidth) * 1440 / LogX,
                      QRPrinter->YSize(QRPrinter->PaperLength) * 1440 / LogY);

    if(PrintFinished) LastChar= 0;
    HasExpanded=false;
    Expanded=0;
    TextLength=ARichEdit->GetTextLen();
    Range.chrg.cpMax= -1;
    Range.chrg.cpMin= LastChar;
    OldMapMode= SetMapMode(Range.hdc, MM_TEXT);

    SendMessage(ARichEdit->Handle, EM_FORMATRANGE,0,0);

    LastChar= SendMessage(ARichEdit->Handle, EM_FORMATRANGE, 0, (long)&Range);
    if(LastChar<TextLength&&AutoStretch&&TextLength>0&&Parent->InheritsFrom(__classid(TQRCustomBand))){
        PrintFinished=false;
        while(LastChar<=TextLength&&((TQRCustomBand*)Parent)->CanExpand(50)){
          ((TQRCustomBand*)Parent)->ExpandBand(50,Expanded,HasExpanded);
          Range.rc.bottom = QRPrinter->YPos(OfsY+Size->Top+Size->Height+Expanded) * 1440 / LogY;
          LastChar= SendMessage(ARichEdit->Handle, EM_FORMATRANGE, 0, (long)&Range);
        }
        LastChar= SendMessage(ARichEdit->Handle, EM_FORMATRANGE, 1, (long)&Range);
        if(LastChar>=TextLength||LastChar==-1){
            LastChar=TextLength;
            PrintFinished=true;
        }
    } else {
        LastChar= SendMessage(ARichEdit->Handle, EM_FORMATRANGE, 1, (long)&Range);
        PrintFinished=true;
        inherited::Print(OfsX,OfsY);
    }
    SetMapMode(ParentReport->QRPrinter->Canvas->Handle, OldMapMode);
    if(PrintFinished)
      SendMessage(ARichEdit->Handle, EM_FORMATRANGE, 0, 0);
}
开发者ID:dxzl,项目名称:tae-richedit,代码行数:57,代码来源:TaeQRRichText.cpp

示例7: SetMapMode

void CLCDGfx::DrawText(int nX, int nY, LPCTSTR sText)
{
    // map mode text, with transparency
    int nOldMapMode = SetMapMode(m_hDC, MM_TEXT);
    int nOldBkMode = SetBkMode(m_hDC, TRANSPARENT); 
    
    ::TextOut(m_hDC, nX, nY, sText, (int)_tcslen(sText));
    
    // restores
    SetMapMode(m_hDC, nOldMapMode);
    SetBkMode(m_hDC, nOldBkMode);

}
开发者ID:Fluffiest,项目名称:mpc-hc,代码行数:13,代码来源:LCDGfx.cpp

示例8: CalculateWindowHeight

static void CalculateWindowHeight(void)
{
   HDC hdc = GetDC(GetDesktopWindow());
   int oldMapMode = SetMapMode(hdc,MM_TEXT);
   HFONT hOldFont = (HFONT) SelectObject(hdc,GetFont(FONT_INPUT));
   TEXTMETRIC tm;

   GetTextMetrics(hdc,&tm);
   inputHeight = tm.tmHeight + tm.tmInternalLeading;
   SelectObject(hdc,hOldFont);
   SetMapMode(hdc,oldMapMode);
   ReleaseDC(GetDesktopWindow(),hdc);
}
开发者ID:AlleyCat1976,项目名称:Meridian59_103,代码行数:13,代码来源:textin.c

示例9: BDRAW_TransparentBlt

void BDRAW_TransparentBlt (HDC hdc, COLORREF clrTran)
    {
//
// Method #1 -- By Jeff Prosise
//
    HDC hdcImage, hdcAnd, hdcXor, hdcTemp ;
    HBITMAP htAnd, htXor, htTemp ;
    HBITMAP htOldImage, htOldAnd, htOldXor, htOldTemp ;
    int nImage, nAnd, nXor, nTemp ;

    hdcImage   = CreateCompatibleDC (hdc) ;
    htOldImage = (HBITMAP) SelectObject (hdcImage, BoardCfg.htTemp) ;
    nImage     = SetMapMode (hdcImage, GetMapMode (hdc)) ;

    hdcAnd = CreateCompatibleDC (hdc) ;
    nAnd   = SetMapMode (hdcAnd, GetMapMode (hdc)) ;
    htAnd  = CreateBitmap (BoardCfg.nss, BoardCfg.nss, 1, 1, NULL) ;
    htOldAnd = (HBITMAP) SelectObject (hdcAnd, htAnd) ;

    SetBkColor (hdcImage, clrTran) ;
    BitBlt (hdcAnd, 0, 0, BoardCfg.nss, BoardCfg.nss, hdcImage, 0, 0, SRCCOPY) ;

    hdcXor   = CreateCompatibleDC (hdc) ;
    nXor     = SetMapMode (hdcXor, GetMapMode (hdc)) ;
    htXor    = CreateCompatibleBitmap (hdcImage, BoardCfg.nss, BoardCfg.nss) ;
    htOldXor = (HBITMAP) SelectObject (hdcXor, htXor) ;

    BitBlt (hdcXor, 0, 0, BoardCfg.nss, BoardCfg.nss, hdcImage, 0, 0, SRCCOPY ) ;
    BitBlt (hdcXor, 0, 0, BoardCfg.nss, BoardCfg.nss, hdcAnd,   0, 0, 0x220326) ;

    hdcTemp   = CreateCompatibleDC (hdc) ;
    nTemp     = SetMapMode (hdcTemp, GetMapMode (hdc)) ;
    htTemp    = CreateCompatibleBitmap (hdcImage, BoardCfg.nss, BoardCfg.nss) ;
    htOldTemp = (HBITMAP) SelectObject (hdcTemp, htTemp) ;

    BitBlt (hdcTemp, 0, 0, BoardCfg.nss, BoardCfg.nss, hdc,     0, 0, SRCCOPY  ) ;
    BitBlt (hdcTemp, 0, 0, BoardCfg.nss, BoardCfg.nss, hdcAnd,  0, 0, SRCAND   ) ;
    BitBlt (hdcTemp, 0, 0, BoardCfg.nss, BoardCfg.nss, hdcXor,  0, 0, SRCINVERT) ;
    BitBlt (hdc,     0, 0, BoardCfg.nss, BoardCfg.nss, hdcTemp, 0, 0, SRCCOPY  ) ;

    SetMapMode (hdcTemp,  nTemp ) ;
    SetMapMode (hdcXor,   nXor  ) ;
    SetMapMode (hdcAnd,   nAnd  ) ;
    SetMapMode (hdcImage, nImage) ;

    SelectObject (hdcTemp,  htOldTemp ) ;
    SelectObject (hdcXor,   htOldXor  ) ;
    SelectObject (hdcAnd,   htOldAnd  ) ;
    SelectObject (hdcImage, htOldImage) ;

    DeleteObject (hdcTemp ) ;
    DeleteObject (hdcXor  ) ;
    DeleteObject (hdcAnd  ) ;
    DeleteObject (hdcImage) ;

    DeleteObject (htTemp ) ;
    DeleteObject (htXor  ) ;
    DeleteObject (htAnd  ) ;
    }
开发者ID:abl17,项目名称:BugHouseClient,代码行数:59,代码来源:BDRAW.C

示例10: DrawBitmap

// petzold, pp 621-622
void DrawBitmap(HDC hdc, HBITMAP hBitmap, int xStart, int yStart)
	{
	BITMAP bm;
	HDC hdcMem;
	POINT ptSize, ptOrg;

	hdcMem = CreateCompatibleDC(hdc);
	SelectObject(hdcMem, hBitmap);
	SetMapMode(hdcMem, GetMapMode(hdc));

	GetObject(hBitmap, sizeof(BITMAP), (LPSTR) &bm);

	ptSize.x = bm.bmWidth;
	ptSize.y = bm.bmHeight;
	DPtoLP(hdc, &ptSize, 1);

	ptOrg.x = 0;
	ptOrg.y = 0;
	DPtoLP(hdcMem, &ptOrg, 1);

	BitBlt(hdc, xStart, yStart, ptSize.x, ptSize.y, hdcMem, ptOrg.x, ptOrg.y,
			SRCCOPY);

	DeleteDC(hdcMem);
	}
开发者ID:dylancarlson,项目名称:citplus,代码行数:26,代码来源:outwin.cpp

示例11: PageGDICalls

void PageGDICalls (HDC hdcPrn, int cxPage, int cyPage)
{
     static TCHAR szTextStr[] = TEXT ("Hello, Printer!") ;
     
     Rectangle (hdcPrn, 0, 0, cxPage, cyPage) ;
     
     MoveToEx (hdcPrn, 0, 0, NULL) ;
     LineTo   (hdcPrn, cxPage, cyPage) ;
     MoveToEx (hdcPrn, cxPage, 0, NULL) ;
     LineTo   (hdcPrn, 0, cyPage) ;
     
     SaveDC (hdcPrn) ;
     
     SetMapMode       (hdcPrn, MM_ISOTROPIC) ;
     SetWindowExtEx   (hdcPrn, 1000, 1000, NULL) ;
     SetViewportExtEx (hdcPrn, cxPage / 2, -cyPage / 2, NULL) ;
     SetViewportOrgEx (hdcPrn, cxPage / 2,  cyPage / 2, NULL) ;
     
     Ellipse (hdcPrn, -500, 500, 500, -500) ;
     
     SetTextAlign (hdcPrn, TA_BASELINE | TA_CENTER) ;
     TextOut (hdcPrn, 0, 0, szTextStr, lstrlen (szTextStr)) ;

     RestoreDC (hdcPrn, -1) ;
}
开发者ID:Jeanhwea,项目名称:petzold-pw5e,代码行数:25,代码来源:Print.c

示例12: SetIsotropic

void SetIsotropic(HDC hdc, int cxClient, int cyClient)
{
	SetMapMode(hdc, MM_ISOTROPIC);
	SetWindowExtEx(hdc, 1000, 1000, NULL);
	SetViewportExtEx(hdc, cxClient / 2, -cyClient / 2, NULL);
	SetViewportOrgEx(hdc, cxClient / 2, cyClient / 2, NULL);
}
开发者ID:Feilone,项目名称:TestCodeJustForMe,代码行数:7,代码来源:CLOCK.cpp

示例13: assert

//KMemDC
KMemDC::KMemDC(HDC hDC, const RECT* pRect):KDC(){
	assert(hDC!=NULL);
	// Some initialization
	m_hDCPaint=hDC;

	// Get the rectangle to draw
	if(!pRect)
		::GetClipBox(hDC,&m_rect);
	else 
		m_rect=*pRect;

	// Create a Memory DC
	CreateCompatibleDC(hDC);
	::LPtoDP(hDC,(POINT*)(&m_rect),2);

	m_bitmap=::CreateCompatibleBitmap(hDC, m_rect.right-m_rect.left,m_rect.bottom-m_rect.top);
	m_oldBitmap=(HBITMAP)SelectObject(m_bitmap);

	SetMapMode(::GetMapMode(hDC));

	SIZE size;
	::GetWindowExtEx(hDC,&size);	
	SetWindowExt(size);
	::GetViewportExtEx(hDC,&size);
	SetViewportExt(size);

	::DPtoLP(hDC,(POINT*)(&m_rect),2);
	SetWindowOrg(m_rect.left, m_rect.top);

	// Fill background
	FillSolidRect(&m_rect, ::GetBkColor(hDC));
}
开发者ID:asmloverX,项目名称:childish-codes,代码行数:33,代码来源:kdc.cpp

示例14: METAFILE_PlaybackGetDC

static GpStatus METAFILE_PlaybackGetDC(GpMetafile *metafile)
{
    GpStatus stat = Ok;

    stat = GdipGetDC(metafile->playback_graphics, &metafile->playback_dc);

    if (stat == Ok)
    {
        /* The result of GdipGetDC always expects device co-ordinates, but the
         * device co-ordinates of the source metafile do not correspond to
         * device co-ordinates of the destination. Therefore, we set up the DC
         * so that the metafile's bounds map to the destination points where we
         * are drawing this metafile. */
        SetMapMode(metafile->playback_dc, MM_ANISOTROPIC);

        SetWindowOrgEx(metafile->playback_dc, metafile->bounds.X, metafile->bounds.Y, NULL);
        SetWindowExtEx(metafile->playback_dc, metafile->bounds.Width, metafile->bounds.Height, NULL);

        SetViewportOrgEx(metafile->playback_dc, metafile->playback_points[0].X, metafile->playback_points[0].Y, NULL);
        SetViewportExtEx(metafile->playback_dc,
            metafile->playback_points[1].X - metafile->playback_points[0].X,
            metafile->playback_points[2].Y - metafile->playback_points[0].Y, NULL);
    }

    return stat;
}
开发者ID:elppans,项目名称:wine-staging-1.9.15_IndexVertexBlending-1.9.11,代码行数:26,代码来源:metafile.c

示例15: GetDocument

void CMFC_DemoView::OnDraw(CDC* pDC)
{
	CMFC_DemoDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

	// TODO: 在此处为本机数据添加绘制代码
	CClientDC hdc(this);
	SetMapMode(hdc, MM_ANISOTROPIC);       //设置映像模式
	HPEN hP = (HPEN)GetStockObject(BLACK_PEN);	//黑色画笔
	HBRUSH hB = (HBRUSH)GetStockObject(DKGRAY_BRUSH); //画刷
	SelectObject(hdc, hB);   //选择画刷
	SelectObject(hdc, hP);       //选择画笔
	RoundRect(hdc, 50, 120, 100, 200, 15, 15); //绘制圆角矩形
	hB = (HBRUSH)GetStockObject(LTGRAY_BRUSH);  //采用亮灰色画刷
	SelectObject(hdc, hB);  	   //选择画刷
	Ellipse(hdc, 150, 50, 200, 150); 	   //绘制椭圆
	hB = (HBRUSH)GetStockObject(HOLLOW_BRUSH); //虚画刷
	SelectObject(hdc, hB);  	  //选择画刷
	Pie(hdc, 250, 50, 300, 100, 250, 50, 300, 50);  	//绘制饼形

	hP = CreatePen(PS_DASHDOT, 1, RGB(0, 0, 255));
	hB = CreateHatchBrush(HS_HORIZONTAL, RGB(0, 255, 0));
	SelectObject(hdc, hP);
	SelectObject(hdc, hB);
	RoundRect(hdc, 35, 220, 115, 270, 15, 15);
	Ellipse(hdc, 125, 170, 225, 220);
	Pie(hdc, 250, 120, 300, 170, 300, 120, 300, 170);

}
开发者ID:D-ReBirth,项目名称:CPP_Learning,代码行数:31,代码来源:MFC_DemoView.cpp


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