私はボタンといくつかのデフォルトのテキストを持つ単一行のエディットコントロールを持っています。ボタンをクリックすると、エディットコントロールのテキストをすべてハイライトしたいと思います。Win32エディットコントロールEM_SETSELが機能しません
何らかの理由で、SendMessageは効果がなく、テキストが強調表示されません。何が間違っていますか?
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_CREATE:
hwndEdit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("edit"), L"Default text",
WS_CHILD | WS_VISIBLE | ES_LEFT | ES_AUTOHSCROLL,
10, 10, 150, 24, hWnd, (HMENU)IDC_EDIT,
hInst, NULL);
hwndButton = CreateWindowEx(0, TEXT("button"), L"Mark text",
WS_CHILD | WS_VISIBLE,
100, 100, 75, 24, hWnd, (HMENU)IDC_BUTTON,
hInst, NULL);
break;
case WM_COMMAND:
{
// Parse the menu selections:
switch (LOWORD(wParam))
{
case IDC_BUTTON:
SendMessage(hwndEdit, EM_SETSEL, 0, -1);
break;
case IDM_ABOUT:
DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
break;
case IDM_EXIT:
DestroyWindow(hWnd);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
}
break;
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
// TODO: Add any drawing code that uses hdc here...
EndPaint(hWnd, &ps);
}
break;
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
ありがとうございます! クリス
「ケースIDC_BUTTON」がヒットしていますか? – Neil
はい、IDC_BUTTONがヒットし、エディットコントロールがEM_SETSELを受け取ります(Spy ++でチェックされています)。 – user2286339