小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

VC中繪制粗虛線

 香山早秋 2011-07-23
以前很少畫虛線,因此不太關(guān)心繪制粗虛線該怎么辦。最近需要用到這個(gè)功能,因此學(xué)習(xí)了一下,與大家共享。

CPen類有兩個(gè)構(gòu)造函數(shù),我們經(jīng)常用第一個(gè),而忽略了第二個(gè)。其實(shí)很多網(wǎng)友問到畫粗線時(shí)希望改變線頭的默認(rèn)顯示方式,比如希望是圓弧頭而不是默認(rèn)的方形頭等。都可以用這個(gè)構(gòu)造函數(shù)定義的CPen對象來實(shí)現(xiàn)。

這里我主要說一下繪制粗虛線,其它的都可以通過MSDN上的幫助來了解。

函數(shù)原型:

BOOL CreatePen(
   int nPenStyle,
   int nWidth,
   const LOGBRUSH* pLogBrush,
   int nStyleCount = 0,
   const DWORD* lpStyle = NULL
);

參數(shù)說明我就不做MSDN的翻譯了。直接舉例說明使用方法。

這是MSDN得例子:

LOGBRUSH logBrush;
logBrush.lbStyle = BS_SOLID;
logBrush.lbColor = #00ff00;
myPen2.CreatePen(PS_DOT|PS_GEOMETRIC|PS_ENDCAP_ROUND, 2, &logBrush);

用這樣的畫筆就可以繪制2個(gè)像素寬的粗點(diǎn)虛線,而且線頭是圓的。

這里要特別說一下構(gòu)造函數(shù)中的最后兩個(gè)參數(shù),它們是用來進(jìn)行自定義虛線繪制方法的。我們知道默認(rèn)的虛線有點(diǎn)線,點(diǎn)劃線等,這都是固定的。通過最后兩 個(gè)參數(shù)的設(shè)置,可以自定義虛線的樣式。nStyleCount是指最后一個(gè)參數(shù)中DWORD的數(shù)量;而最后一個(gè)參數(shù)中DWORD的數(shù)量是2的倍數(shù),其中每 兩個(gè)為一組,第一個(gè)表示點(diǎn)的長度,第二個(gè)表示點(diǎn)之后的空長度。舉例如下:

 CPen newPen;
 LOGBRUSH logBrush;
 logBrush.lbStyle = BS_SOLID;
 logBrush.lbColor = m_Sec.lColor;
 DWORD dwF[4];
 dwF[0] = 1;
 dwF[1] = m_Sec.lWidth*2;
 dwF[2] = 1;
 dwF[3] = m_Sec.lWidth*4;
 newPen.CreatePen(PS_USERSTYLE|PS_GEOMETRIC|PS_ENDCAP_ROUND, m_Sec.lWidth, &logBrush,4,dwF);

 CPen * oldPen=pDC->SelectObject(&newPen);

 CBrush newBrush;
 if(0==m_Sec.sTexture)
  newBrush.CreateSolidBrush(m_Sec.sColor);
 else
  newBrush.CreateHatchBrush(m_Sec.sTexture,m_Sec.sColor);

 CBrush * oldBrush=pDC->SelectObject(&newBrush);
 
    pDC->Pie(m_Sec.leftx,m_Sec.lefty,m_Sec.rightx,m_Sec.righty,
  m_Sec.startx,m_Sec.starty,m_Sec.endx,m_Sec.endy);

 pDC->SelectObject(oldPen);
 pDC->SelectObject(oldBrush);

如此就可以繪制出一組點(diǎn)線,其中前兩個(gè)點(diǎn)間隔是2倍線寬,第二第三點(diǎn)間隔是4倍線寬,如此循環(huán)。

繪制粗虛線 - danshiming - danshiming的博客

    本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多