On Sun, 18 May 2003 11:54:36 -0600, you wrote:
I am looking into it. It looks odd, but windows, at least Win2k, does return DLGC_HASSETSEL | DLGC_WANTCHARS | DLGC_WANTARROWS | DLGC_WANTMESSAGE always!
Uhh, this is the output of spy++ under win2000, which corresponds to the broken TAB response in Agent:
| <00201> 00030218 P WM_KEYDOWN nVirtKey:VK_TAB cRepeat:1 ScanCode:0F fExtended:0 fAltDown:0 fRepeat:0 fUp:0 [wParam:00000009 lParam:000F0001 time:4:47:52.206] | <00202> 00030218 S ..................WM_GETDLGCODE wParam:00000009 lParam:0012F434 | <00203> 00030218 R ..................WM_GETDLGCODE fuDlgCode:DLGC_WANTARROWS | DLGC_HASSETSEL | DLGC_WANTCHARS [lResult:00000089]
(00030218 is the hwnd of the editcontrol). In my previous email there where two other examples where windows did not return the DLGC_WANTMESSAGE flag. If I did not mention it then: that was with Win2K.
But there is something more going on here. Windows checks for wParam, and if it's not null adds 0x4 to some window/class flag. If this flag is set, control does not react to [ENTER].
I'm trying to find out what this flag is and what wParam is, since it is "currently unused" according to MSDN.
Here is a part of code from windows:
if (wParam) wnd[0x62] |= 0x4; return DLGC_HASSETSEL | DLGC_WANTCHARS | DLGC_WANTARROWS | DLGC_WANTMESSAGE;
Nice for a parameter that is not supposed to be used ;-) Anyway I see that two of my cases have a non NULL wparam , but still don't return DLGC_WANTMESSAGE.
Perhaps you can put a small example on the net that is giving you the problems?
Rein.