user32: Select text control content while setting initial dialog focus

Piotr Caban piotr.caban at gmail.com
Tue Feb 16 01:58:31 CST 2016



On 16/02/16 01:04, Dmitry Timoshkov wrote:
> Piotr Caban <piotr at codeweavers.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.

Thanks,
Piotr



More information about the wine-devel mailing list