下面是超出行数后清除EDIT,但是字符串超长会导致超出EDIT最大字节数,导致行数永远达不到90行,而不会被清理,导致无法再输入内容解决方法:
static CEdit* print1 = (CEdit*)GetDlgItem(IDC_EDIT_Print1);
static uint16_t oldlen1 = print1->GetWindowTextLength();
uint16_t newlen1 = print1->GetWindowTextLength();
if (print1 != nullptr && (print1->GetLineCount() >= 90)) { print1->SetWindowText(L""); print1->Invalidate(); }
解决方法:可以在定时器事件处理函数中检查编辑框中的文本长度,并在必要时执行清理操作:
int nTextLength = print1->SendMessage(WM_GETTEXTLENGTH);
if (nTextLength >= (20000 * sizeof(TCHAR))) { print1->SetWindowText(L""); }