void CMFCApplication3View::UpdateTextInBuffer()
{
// 锁定缓冲区以便直接访问
LPCTSTR pBuffer = LockBuffer();
if (pBuffer != nullptr)
{
// 获取缓冲区的长度
UINT nLength = GetBufferLength();
// 创建一个可修改的缓冲区
std::vector<TCHAR> tempBuffer(nLength + 1); // +1 以容纳 null 终止符
memcpy(tempBuffer.data(), pBuffer, nLength * sizeof(TCHAR));
tempBuffer[nLength] = '\0'; // 确保字符串以 null 结尾
// 解锁缓冲区
UnlockBuffer();
// 进行文本操作,例如将所有字符转换为大写
for (UINT i = 0; i < nLength; ++i)
{
tempBuffer[i] = toupper(tempBuffer[i]);
}
// 获取 CEdit 控件的指针
CEdit* pEdit = &GetEditCtrl(); // 视图中获取 CEdit 控件的指针
if (pEdit != nullptr)
{
// 设置修改后的文本
pEdit->SetWindowText(tempBuffer.data());
}
// 通知视图更新内容
Invalidate(); // 强制视图重绘
}
}
Top comments (0)