12-23-2008 03:56 AM - edited 12-23-2008 04:03 AM
Dennis Knutson wrote:
All of your other applications probably were created with the Microsoft api. You cannot get a Windows (as in the OS) handle with a LabVIEW window because as I said, NI uses it's own windows (not referring to the OS) scheme. I'm doing some speculating here since I do not use this third-party app.
This is only partly correct. LabVIEW does use Windows window handles for all its windows. But that is just about everything it really uses from the Windows GUI objects. It lets Windows handle the basic stuff such as keyboard handling, global clipping and maybe, but just maybe drawing the window border and title bar but anything inside the window, including menus, scrollbars and such are fully handled by LabVIEW itself.Specifically all widgets you see on a LabVIEW front panel are not implemented as Windows controls using a Windows window handle but are entirely handled by LabVIEW itself
However the bug the OP poster sees could be a specific handling in how LabVIEW handles certain window messages but I would hazard greatly that the way LabVIEW does it is maybe an uncommon but fully supported way of using the Windows API. So I suspect that the bug is in fact more to be searched in the virtual desktop software itself in not supporting a certain message sequence in the way Windows legally allows it to be used.
I would say it's really the same as with the Wine project here. If an app works on Windows but not on Wine (or here the Virtual Desktop software) it is a bug in Wine and not the application, no matter how braindamaged the possible use in Windows may seem.
And yes the interaction with the Windows messages queues in LabVIEW is very nasty and involved. Partly because of its Windows 3.1 inheritations, partly because of various complications with every new version of Windows that came up. Cleaming up the window manager in LabVIEW would be a very difficult project and very thankless. With every change done you would likely introduce 2 issues on one or the other platform LabVIEW is still running on.
Rolf Kalbermatter