![]() |
#2
sych昨天 06:43
|

DECLARE long SendMessageW IN user32 as SendMessageW2 long,long,long,string@
DECLARE long SetWindowTextW IN user32 as SetWindowTextW2 long,string
#define EM_GETLINE 0x00C4
nBufferSize = 2048 && 要足够大
cBuffer = BINTOC(nBufferSize,"4rs")+REPLICATE(0h00,nBufferSize+1)
hEdit = thisform.hEdit1.hwnd &&编辑框句柄
nLineNo = 9 &&要取的行号(通常是从0行起)
nWordCount = SendMessageW2(hEdit, EM_GETLINE, nLineNo, @cBuffer)
SetWindowTextW2(hEdit, cBuffer) && 显示结果
如标题所示:如何计算RichTextbox一屏可完整显示的行数?以及,一列能显示的字符个数?
原因:希望在不出现垂直滚动条的前提下,能够一屏显示完整内容,让用户不必频繁地上下翻滚(注:表单另外设计有翻页按钮)。
问DC,它给出的解答异常复杂,远非类似一个SendMessageW2(hEdit, EM_GETLINE, nLineNo, @cBuffer)就能解决得了的。
想想也是,“宋体,12,N”和“微软雅黑, 16, B”,同一屏能够完整显示的字符行数与列数,结果相差非常大的!