All of the standard MFC controls follow tab order but the NI controls do not. In particular I am usingg the CNi NumEdit controls. Once the user selects the control it is stuck in the control until they use the mouse to click in the next control.
Is there anything special about the numerico controls? you should be able to set the tabing order in the UI editor in VC++ and it should be respected.
You can give a try to the tab order with the example project called "Simple Numeric" located in the MStudio /examples folder; you can go to the layout menu and change the tab order to the CW controls just like any other controls.
Please give this a try and let me know if I'm missing anything here.
I did tried this here, I run the project just as it is and I don't see that behaviour. I can tab or Shift+tab to any contrl; no matter if I edit the value or just tab through it. I'm running XP here; but I'll give it a try in another machine with 2000 or 9X.
I am having this problem as well. I'm using visual C++ with windows 2000. My tab order works fine if I take out the NI number edits and replace them with standard Visual C++ edit boxes. However, when the NI number edits are in my program, they act like a black hole for the cursor. The only way to get out of one is by using the mouse. This is a problem because the technicians using my software don't use a mouse. I'm tempted to use standard VC++ edit boxes and convert the text to floating point decimal myself. Can anyone shed some light on this situation? I've checked the sample code, it doesn't seem to work either. Maybe its a windows 2000 bug?
I am running XP and tab order works fine -- I use NI number edits as well as NI slide controls. Have you tried using the Tab Order tool in VC++? Layout->Tab Order
Yes, I've done this several times. I only have problems with the NI number edits. I've changed the tab order configurations to hit them in different sequences. Every time the cursor gets stuck. It seems to me that the problem lies in the OS and version of VC++. Everyone who has no problem with this uses XP, everyone who does have a problem uses 2000.
I am having the exact same problem. I do use Windows 2000. I tried intercepting with a PreTranslateMessage() overridden function to see if I could intercept the TAB key and then manually change the Focus to the next control in the dialog. Doing a GetFocus() returns a pointer to a CTempWnd. What the H.. is that? It seems my only option is to verify that the current Focus is not any other control in the dialog and then change the focus to the next one that it should be.
It works on my computer running Windows 2000 SP5 and VC++ 6.0.
Maybe you can try installaing the patch located at http://digital.ni.com/softlib.nsf/websearch/2AAC97491D073A6C86256EEF005374CE?opendocument&node=132070_US
What version of VC++, MStudio, CWNumEdit Control, and Windows are you all using?