| 以前很少畫虛線,因此不太關(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( 參數(shù)說明我就不做MSDN的翻譯了。直接舉例說明使用方法。 這是MSDN得例子: LOGBRUSH 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; CPen * oldPen=pDC->SelectObject(&newPen);  CBrush newBrush;  CBrush * oldBrush=pDC->SelectObject(&newBrush);  pDC->SelectObject(oldPen); 如此就可以繪制出一組點(diǎn)線,其中前兩個(gè)點(diǎn)間隔是2倍線寬,第二第三點(diǎn)間隔是4倍線寬,如此循環(huán)。  | 
|  |