FW: WM_NEXTDLGCTL changes the default button ID and does not rest ore default control identifier

Krishna Murthy Krishna.Murthy at guptaworldwide.com
Thu Jun 17 23:16:25 CDT 2004


No, it is required. The DEFDLG_SetDefButton() is also called from message
DM_SETDEFID. In this case idResult should set to the default button ID
passed. And the current logic of DEFDLG_SetDefButton() does what is required
for DM_SETDEFID.

But when called from the  WM_NEXTDLGCTL, it should not change idResult. It
should only change the look of the button by drawing the default button
rectangle if it is a push button. 

Otherwise we need to enhance the DEFDLG_SetDefButton() to accept one more
parameter which indicates who invoked the method.
Krishna

-----Original Message-----
From: Alexandre Julliard [mailto:julliard at winehq.org] 
Sent: Thursday, June 17, 2004 8:36 PM
To: Krishna Murthy
Cc: wine-devel at winehq.org
Subject: Re: FW: WM_NEXTDLGCTL changes the default button ID and does not
rest ore default control identifier

Krishna Murthy <Krishna.Murthy at guptaworldwide.com> writes:

> +                /**
> +                 * if the next control is push button, then draw default
push button
> +                 * rectangle.
> +                 * 
> +                 * if the next control is not a push button, then draw
the push button
> +                 * rectangle for the default control.
> +                 * 
> +                 * Call SetDefButton to draw the default rectangle, but
do not change the
> +                 * default push button ID (idResult) - As Per MSDN
> +                 */
> +                 if ( !(SendMessageW(hwndDest, WM_GETDLGCODE, 0, 0 ) & 
> +                        (DLGC_UNDEFPUSHBUTTON | DLGC_BUTTON)) )
> +		            hwndDest = GetDlgItem(hwnd, idSaveResult);
> +                 DEFDLG_SetDefButton( hwnd, dlgInfo,
GetDlgCtrlID(hwndDest) );
> +                 dlgInfo->idResult = idSaveResult;

It seems you are doing redundant work here, since DEFDLG_SetDefButton will
also send the same WM_GETDLGCODE. Wouldn't a simpler fix be to have
DEFDLG_SetDefButton not set idResult unless it really changed the default
button?

--
Alexandre Julliard
julliard at winehq.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.winehq.org/pipermail/wine-devel/attachments/20040617/2c0e2633/attachment.html


More information about the wine-devel mailing list