繪畫多行文字,設定行高,省略號

2021-06-16 18:32:07 字數 2045 閱讀 4113

一、按段落顯示,末尾省略

int  drawmultiline(cdc *pdc, const cstring& text, crect rctext, int lineheight, bool iscalcrect)  

cdc dcmem; 

cbitmap bmp; 

dcmem.createcompatibledc(pdc);

crect rect;

getclientrect(rect);

bmp.createcompatiblebitmap(pdc,rect.width(),rect.height()); 

dcmem.selectobject(&bmp); 

if (iscalcrect)

int laststartpos = 0;  

int textlen = text.getlength();  

int linecount = rctext.height() / lineheight;  

crect rcsubtext(rctext);  

for (int i(0); i < linecount; ++i)  

// 文字繪製已經完成  

if (laststartpos >= textlen)  

}  // 最後一行

else  

int height = pdc->drawtext(subtext, rcsubtext, nformat);  

if (lineheight < height)

// 認為最後一行,不需要空白

else

}  } 

dcmem.deletedc();

bmp.deleteobject();

return textheight;  

}  void cdlg***::onpaint()

}crect rc(12,37,240,120); 

int height = drawmultiline(&dc, m_text,rc, 18, true);

if(rect.height() > height) 

drawmultiline(&dc, m_text, rect, 18);

}二、按行顯示並省略(沒有優化)

int drawmultiline(cdc *pdc, const cstring& text, crect rctext, int lineheight, bool iscalcrect)  

cdc dcmem; 

cbitmap bmp; 

dcmem.createcompatibledc(pdc);

crect rect;

getclientrect(rect);

bmp.createcompatiblebitmap(pdc,rect.width(),rect.height()); 

dcmem.selectobject(&bmp); 

if (iscalcrect)

int laststartpos = 0;  

int textlen = text.getlength();  

int linecount = rctext.height() / lineheight;  

crect rcsubtext(rctext);  

int isfindlineend(-1);

cstring texttemp(text);

isfindlineend = texttemp.find('\n');

int i(0);

while (isfindlineend > -1)

// 最後一行

int height = pdc->drawtext(texttemp, rcsubtext, nformat);  

if (lineheight < height)

// 認為最後一行,不需要空白

else

}  dcmem.deletedc();

bmp.deleteobject();

return textheight;  

}  

多行文字顯示省略號

單行文字溢位顯示省略號 核心css語句 1 overflow hidden 顧名思義超出限定的寬度就隱藏內容 2 white space nowrap 設定文字在一行顯示不能換行 3 text overflow ellipsis 規定當文字溢位時顯示省略符號來代表被修剪的文字 多行文字溢位顯示省略號...

多行文字溢位顯示省略號

這裡是i喵醬,這個是乙個多行超出換行的小demo,看這裡看這裡 overflow hidden 內容會被修剪,超出隱藏。text overflow ellipsis 超出範圍顯示 display webkit box 把物件轉換成彈性盒模型 webkit box orient vertical 設定...

多行文字溢位顯示省略號

大家應該都知道用text overflow ellipsis屬性來實現單行文字的溢位顯示省略號 當然部分瀏覽器還需要加寬度width屬性。css overflow hidden text overflow ellipsis white space nowrap 但是這個屬性並不支援多行文字溢位顯示省...