将编辑控件的行保存为TCHAR的矢量
C++ Windows: Saving the line of an edit control into a vector of TCHAR
下面的代码可以正常工作:
int iLength = SendMessage(hWndEdit, EM_LINELENGTH, 0, 0);
if(iLength > 0) {
TCHAR* szBuffer = new TCHAR[iLength+1];
iLength = SendMessage(hWndEdit, EM_GETLINE, 0, (LPARAM)szBuffer);
szBuffer[iLength] = TEXT(' ');
MessageBox(hWnd, szBuffer, TEXT("Edit content"), MB_OK);
delete[] szBuffer;
}
现在我想用std::vector<TCHAR>
:
int iLength = SendMessage(hWndEdit, EM_LINELENGTH, 0, 0);
if(iLength > 0) {
std::vector<TCHAR> data(iLength+1, TEXT(' '));
iLength = SendMessage(hWndEdit, EM_GETLINE, 0, (LPARAM)&data[0]);
MessageBox(hWnd, &data[0], TEXT("Edit content"), MB_OK);
}
它可以编译,但是在iLength = SendMessage(hWndEdit, EM_GETLINE, 0, (LPARAM)&data[0]);
处,变量iLength
总是被设置为0,因此,没有任何东西将被写入我的向量。
这里有什么问题?
来自文档:
指向接收该行副本的缓冲区的指针。之前发送消息时,将该缓冲区的第一个字设置为大小为
TCHAR
s,缓冲区.
相关文章:
- 在createdialog创建的窗口中捕获用于编辑控件的OnMouseMove消息
- 检查TCHAR数组输入是否为带符号整数C++
- 编辑文件中的文本
- 不能将 "void *" 类型的值分配给类型 "TCHAR" 的实体
- 有没有办法在远程设备上打开和编辑visual Studio 2017解决方案
- SetDlgItemInt 不会更改嵌入资源的编辑框
- 我无法在Visual Studio代码中使用CIN输入答案,它说输入您的年龄,但它说只读文本编辑器如何解决这个问题?
- C++,Qt:仅在双击后编辑qtablewidget项目
- 编辑字符串以包含括号 c++ 之间的变量
- Arduino函数无法编辑数组
- 调试符号中缺少 QObject 类信息(编辑但存在其他 Qt 类)
- "未定义对'WinMain@16'的引用"gcc 编辑器中的错误
- C++MFC编辑框处理双击
- 是否可以使用指针访问变量以避免直接编辑变量?
- 如何在虚幻引擎4中将char*转换为TCHAR?
- 我的主窗口在创建时或单击更新区域时是否会收到编辑控件?
- 使用什么代替"静态常量 TCHAR *"
- 在 c++ 中编辑注册表项
- 无法将行编辑中的文本打印到 Qt C++ 中的标签
- 将编辑控件的行保存为TCHAR的矢量