字段具有默认文字
c++ - 编辑获得焦点时清除文本-LMLPHP

我有一些默认文本的编辑。编辑获得焦点时如何清除文本。

        hEdit=CreateWindowEx(WS_EX_CLIENTEDGE,
            "EDIT",
            "",
            WS_CHILD|WS_VISIBLE|
            ES_MULTILINE|ES_AUTOVSCROLL|ES_AUTOHSCROLL,
            5,
            85,
            200,
            30,
            hwnd,
            (HMENU)IDC_MAIN_EDIT,
            GetModuleHandle(NULL),
            NULL);
        HGDIOBJ hfDefault=GetStockObject(DEFAULT_GUI_FONT);
        SendMessage(hEdit,
            WM_SETFONT,
            (WPARAM)hfDefault,
            MAKELPARAM(FALSE,0));
        SendMessage(hEdit,
            WM_SETTEXT,
            NULL,
            (LPARAM)"Click here, before scan QR!");

最佳答案

要在编辑获得焦点时清除文本,请在处理SetWindowText()通知时使用EN_SETFOCUS函数:

case WM_COMMAND:
{
    if (HIWORD(wParam) == EN_SETFOCUS && LOWORD(wParam) == IDC_MAIN_EDIT)
    {
        SetWindowText(hEdit, 0);
    }
}
break;

09-07 04:41