Win32의 정적 컨트롤의 기존 텍스트에 텍스트를 추가하는 방법
문제
Visual Studio RC를 사용하여 Win32 C에서 프로그램을 만들고 있습니다.이 겉보기에 간단한 작업을 수행하는 방법을 알아낼 수 없습니다.나는 정적 텍스트 제어, 편집 컨트롤 및 버튼을 가지고 있습니다.사용자가 버튼을 클릭하면 편집 컨트롤에서 텍스트를 가져 와서 정적 텍스트 상자에있는 모든 것에 추가 할 프로그램이 없습니다.많은 두통과 다양한 시도가 난 후에 나는 여전히 이것을 일할 수 없다.편집 컨트롤에서 텍스트를 검색 할 수는 있지만 정적 제어 충돌에 추가하려는 시도.음, 실제로 명확하게하기 위해서는 텍스트를 잘 설정할 수 있습니다.프로그램이 충돌하는 기존 텍스트에 추가하는 것입니다.누군가가 GetWindowText () 및 setWindowText ()를 사용 하여이 작업을 수행 할 수있는 코드를 게시 할 수 있습니다. (또는 바람직하게는 다른 경우).여기있는 것입니다 :
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 개의 문자를 보유 할 수있는 문자열 버퍼와 종료 null char.
그러나 기능 내부의 스택에서 메모리를 예약하는 것이 좋습니다.
void OnButtonClick()
{
TCHAR editbuffer[255] = {0};
TCHAR allText[255] = {0};
...
}
. 제휴하지 않습니다 StackOverflow