browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

在 eVC 下绘制空心文字

Posted by on 2005 年 05 月 17 日

你可以任意转载本文,但请在转载后的文章中注明作者和原始链接。
媒体约稿请联系 titilima_AT_163.com(把“_AT_”换成“@”)。

C++代码
  1. void DrawHollowText( HDC hDC, RECT *pRect, LPCTSTR lpszString )   
  2. {   
  3.     // 开始画8个方向的轮廓,从左上角开始顺时针   
  4.     SetBkMode( hDC, TRANSPARENT );   
  5.     SetTextColor( hDC, 0x000000 ); // 黑色   
  6.     // 左上角   
  7.     –pRect->top;   
  8.     –pRect->left;   
  9.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  10.     // 正上方   
  11.     ++pRect->left;   
  12.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  13.     // 右上角   
  14.     ++pRect->left;   
  15.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  16.     // 右   
  17.     ++pRect->top;   
  18.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  19.     // 右下角   
  20.     ++pRect->top;   
  21.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  22.     // 正下方   
  23.     –pRect->left;   
  24.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  25.     // 左下角   
  26.     –pRect->left;   
  27.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  28.     // 左   
  29.     –pRect->top;   
  30.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  31.     // 画中央的文字(白色)   
  32.     SetTextColor( hDC, 0xffffff );   
  33.     ++pRect->left;   
  34.     DrawText( hDC, lpszString, -1, pRect, DT_LEFT | DT_TOP | DT_SINGLELINE );   
  35. }  

说明:eVC 下对于 GDI 的支持有限,所以只能根据 DrawText 的需要而使用矩形,而不是文字坐标。

订阅本站

没有评论

(Required)
(Required, will not be published)