日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

GDI 和GDI+ 混合编程

發布時間:2025/3/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 GDI 和GDI+ 混合编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主要來源于這篇文章

http://www.cnblogs.com/jcily/archive/2009/05/30/1492222.html?login=1#commentform

?

在Win32平臺下圖形繪制相關開發中,都會使用MM_HIMETRIC映射模式,因為這樣的邏輯繪制坐標精度比MM_TEXT要高很多。偶爾我也會使用GDI+的來繪制一些反走樣線條或GDI不能達到的效果。

遇到的問題:

??????1,使用MM_HIMETRIC映射模式的DC進行GDI+繪文字,其效果是文字是倒的。

??????2,同上映射模式下,對于同位置的圖形,分別使用GDI和GDI+繪制,顯示效果上會有一些偏移(相對的輸出誤差)。

至于問題的原因,我沒辦法得知,我看不到GDI+的實現。

解決方法:

??????1,MM_HIMETRIC映射模式下文字倒的問題解決代碼如下:

????//?對繪制矩陣進行臨時的變換來解決
????Graphics?m_pGp(hDC);
????Matrix?matrixOld,?matrixNow;
????m_pGp
->GetTransform(&matrixOld);????m_pGp->GetTransform(&matrixNow);
????PointF?gpPoint(
500,-500);????//?MM_HIMETRIC下文字的邏輯坐標位置
????
//?變換繪制矩陣
????matrixNow.Translate(gpPoint.X,?gpPoint.Y);
????matrixNow.Scale(
1,-1);
????matrixNow.Rotate(lf.lfEscapement
/10);
????matrixNow.Translate(
-gpPoint.X,?-gpPoint.Y);
????m_pGp
->SetTransform(&matrixNow);

?

????FontFamily??fontFamily(L

"宋體");
????Font????????font(
&fontFamily,?600,?FontStyleRegular,?UnitPixel);
????SolidBrush??solidBrush(Color(
255,255,0,0));
????Status?sresult?
=?m_pGp->DrawString(_T(文字還倒不倒),?-1,?&font,?gpPoint,?&solidBrush);
????
//?恢復全局矩陣
????m_pGp->SetTransform(&matrixOld);

?

?

??????2,MM_HIMETRIC映射模式下GDI+與GDI圖形輸出誤差解決代碼如下:

Code
????Graphics?g(pDC->GetSafeHandle());
????g.SetSmoothingMode(SmoothingModeHighQuality);
????
//?偏移修正MM_HIMETRIC映射模式下GDI與GDI+之間DP到LP的轉換值的誤差
????
//?得到同一個設備點分別由GDI+和GDI轉化的邏輯點
????Point?gpPt0(0,0);
????g.TransformPoints(CoordinateSpaceWorld,?CoordinateSpaceDevice,?
&gpPt0,?1);
????CPoint?pt(
0,0);
????pDC
->DPtoLP(pt.x,?pt.y);
????
//?相減得到誤差
????Point?szTrans(gpPt0.X-pt.x,?gpPt0.Y-pt.y);
????g.TranslateTransform(szTrans.X,?szTrans.Y);

?

?

轉載于:https://www.cnblogs.com/gadfly/archive/2010/07/28/1786572.html

總結

以上是生活随笔為你收集整理的GDI 和GDI+ 混合编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。