user32: Select text control content while setting initial dialog focus

Dmitry Timoshkov dmitry at baikal.ru
Tue Feb 16 02:07:15 CST 2016


Piotr Caban <piotr.caban at gmail.com> 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.

-- 
Dmitry.



More information about the wine-devel mailing list