EM_EXLINEFROMCHAR和的引數EM_LINEFROMCHAR不同。
雖然我可以找到后者的例子,但前者并沒有產生任何有用的鏈接。
我想知道的是 - 如果我像插入到插入符號所在的當前行一樣傳遞它,它會正常作業-1。不幸的是,MSDN 沒有解釋它。EM_LINEFROMCHAREM_EXLINEFROMCHAR
蒂亞!!
uj5u.com熱心網友回復:
不幸的是,檔案EM_EXLINEFROMCHAR僅說明了有關輸入引數的以下內容:
wParam
不使用該引數;它必須為零lParam
從零開始的字符索引。
沒有提及是否-1允許,因此無法保證它是否會起作用。最好不要冒險。簡單地不要傳入,傳入實際的插入符號位置,這對于使用or-1來說非常簡單,例如:EM_GETSELEM_EXGETSEL
DWORD pos = 0;
SendMessage(hwnd, EM_GETSEL, (WPARAM)&pos, 0);
int lineIndex = SendMessage(hwnd, EM_EXLINEFROMCHAR, 0, pos);
CHARRANGE rng = {};
SendMessage(hwnd, EM_EXGETSEL, 0, (LPARAM)&rng);
int lineIndex = SendMessage(hwnd, EM_EXLINEFROMCHAR, 0, rng.cpMin);
鑒于EM_LINEFROMCHAR已明確記錄并因此有合同義務接受-1作為輸入:
wParam
要檢索其編號的行中包含的字符的字符索引。如果此引數為 -1,則EM_LINEFROMCHAR檢索當前行的行號(包含插入符號的行),或者,如果有選擇,則檢索包含選擇開頭的行的行號。lParam
不使用該引數。
int lineIndex = SendMessage(hwnd, EM_LINEFROMCHAR, (WPARAM)-1, 0);
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428309.html
