Dmitry Timoshkov dmitry@baikal.ru wrote:
--- a/dlls/user32/dialog.c +++ b/dlls/user32/dialog.c @@ -707,7 +707,11 @@ static HWND DIALOG_CreateIndirect( HINSTANCE hInst, LPCVOID dlgTemplate, focus = GetNextDlgTabItem( hwnd, 0, FALSE ); if (!focus) focus = GetNextDlgGroupItem( hwnd, 0, FALSE ); if (focus)
{
if (SendMessageW( focus, WM_GETDLGCODE, 0, 0 ) & DLGC_HASSETSEL)
SendMessageW( focus, EM_SETSEL, 0, -1 ); SetFocus( focus );
} }
Selecting the text on SetFocus() is the job of DefDlgProc(), it's worth to investigate why it doesn't work.
It works as expected. Calling SetFocus on edit HWND is not selecting the text on windows either.
The text will be selected if you call SetFocus/WM_NEXTDLGCTL on the dialog window.
A message test would be more convincing then.
There is a possibility that it's the edit control who is responsible for selecting and deselecting the text on focus events, so more tests is required to show what the correct behaviour is.