如何在Win32中将文本添加到静态控制中的现有文本
题
我正在使用Visual Studio RC在Win32 C中进行程序,我无法弄清楚如何做到这一看似简单的任务。我有一个静态文本控制,编辑控件和一个按钮。当用户单击按钮时,我不会将程序拍摄编辑控件中的文本,并将其添加到静态文本框中的任何内容。经过很多头痛和各种各样的尝试,我仍然无法做到这一点。我可以从编辑控制罚款中检索文本,但任何尝试将其添加到静态控制崩溃。实际上只是为了澄清,我可以设置细本;它只是添加到崩溃程序的现有文本。有人可以发布一些代码,这些代码可以使用getwindowtext()和setwindowtext(),(或者如果是others的其他东西)。这是我有的:
SendMessage(hwndEditControl, WM_GETTEXT,255,(LPARAM)editbuffer);
GetWindowText(hwndTextControl, (LPWSTR)allText, GetWindowTextLength(hwndTextControl));
//function to add data, please create on
SetWindowText(hwndTextControl, (LPCWSTR)allText);}
//where
static TCHAR* editbuffer = new TCHAR; //feel free to change these declarations
static TCHAR* allText = new TCHAR;
.
任何帮助非常感谢!谢谢!
解决方案
您只为字符串缓冲区保留一个char。所以而不是
static TCHAR* editbuffer = new TCHAR;
static TCHAR* allText = new TCHAR;
.
您必须保留更多内存,例如:
static TCHAR* editbuffer = new TCHAR[255];
static TCHAR* allText = new TCHAR[255];
.
将为您提供可以容纳254个字符和终止空字符的字符串缓冲区。
但是我会建议您只需在函数内堆栈中的内存保留:void OnButtonClick()
{
TCHAR editbuffer[255] = {0};
TCHAR allText[255] = {0};
...
}
. 不隶属于 StackOverflow