我有一個編輯控件:Edit控件不能設置文本空字符串
HWND hInput = CreateWindowEx(WS_EX_CLIENTEDGE, "EDIT", "",
WS_CHILD | WS_VISIBLE | WS_VSCROLL | ES_MULTILINE | ES_AUTOVSCROLL |
ES_WANTRETURN,
0, 0, 100, 100, hwnd, (HMENU)IDC_MAIN_INPUT, GetModuleHandle(NULL), NULL);
當一個按鈕被按下,我正從它的文本,並嘗試用空字符串替換它:
TCHAR buff[2048];
memset(buff,0,2048);
GetWindowText(hInput, buff, 2048);
SetWindowText(hInput,"");
但之後在編輯控件中還剩下一條新線。
任何想法如何刪除這條新線?提前致謝。
編輯: 其實然後按下按鈕沒關係,沒有新行。
編輯控件具有一個消息過程,該過程捕獲輸入鍵,並在按下按鈕時執行與按鈕相同的操作。這裏是程序:
LRESULT CALLBACK SubClassProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
switch (msg)
{
case WM_KEYDOWN:
switch (wParam)
{
case VK_RETURN:
TCHAR buff[2048];
memset(buff,0,2048);
GetWindowText(hInput, buff, 2048);
SetWindowText(hInput,"");
break;
}
break;
}
return CallWindowProc(DefProc, hwnd, msg, wParam, lParam);
}
但這裏它留下了新的路線。
似乎很難相信。作爲memset的意思是無意義的,你不檢查錯誤。 – 2013-04-05 19:51:55
你是否在任何機會將它設置爲空字符串後按回車? – 2013-04-05 19:53:09
對不起,我錯了。我做了一個編輯。 – 2013-04-05 20:21:00