以前很少畫虛線,因此不太關心繪制粗虛線該怎么辦。最近需要用到這個功能,因此學習了一下,與大家共享。
CPen類有兩個構(gòu)造函數(shù),我們經(jīng)常用第一個,而忽略了第二個。其實很多網(wǎng)友問到畫粗線時希望改變線頭的默認顯示方式,比如希望是圓弧頭而不是默認的方形頭等。都可以用這個構(gòu)造函數(shù)定義的CPen對象來實現(xiàn)。 這里我主要說一下繪制粗虛線,其它的都可以通過MSDN上的幫助來了解。 函數(shù)原型: BOOL CreatePen( 參數(shù)說明我就不做MSDN的翻譯了。直接舉例說明使用方法。 這是MSDN得例子: LOGBRUSH logBrush; 用這樣的畫筆就可以繪制2個像素寬的粗點虛線,而且線頭是圓的。 這里要特別說一下構(gòu)造函數(shù)中的最后兩個參數(shù),它們是用來進行自定義虛線繪制方法的。我們知道默認的虛線有點線,點劃線等,這都是固定的。通過最后兩 個參數(shù)的設置,可以自定義虛線的樣式。nStyleCount是指最后一個參數(shù)中DWORD的數(shù)量;而最后一個參數(shù)中DWORD的數(shù)量是2的倍數(shù),其中每 兩個為一組,第一個表示點的長度,第二個表示點之后的空長度。舉例如下: CPen newPen; CPen * oldPen=pDC->SelectObject(&newPen); CBrush newBrush; CBrush * oldBrush=pDC->SelectObject(&newBrush); pDC->SelectObject(oldPen); 如此就可以繪制出一組點線,其中前兩個點間隔是2倍線寬,第二第三點間隔是4倍線寬,如此循環(huán)。 ![]() |
|