01-22-2019 08:18 PM
> I think 4 HWNDs for the primary taskbar alone and I tried sending various messages to each.
> I did find one that would refresh properly but it took up to 5 seconds to perform the task.
Are you sure? What's their class name?
Should be just 2: one the primary, and the other one for the 2nd monitor.
What message did you send?
Did you try UpdateWindow()?
Does show/hide window cause flash?
01-23-2019 02:08 AM
George, it can be nice to send messages to other Windows but unless there is an official document on MSDN or in the SDK stating that this is supposed to be the way to do it, this has a very high change to be very version dependent. Which Windows version are you using?
They redesigned the Taskbar and many other parts considerably when getting rid of the traditional Start Window in Windows Vista/7 and did a similar big change with Windows 10. So it's very possible that you see only one top level Window per taskbar but others see a different number. The actual messages to send is even a bigger secret. UpdateWindows() may cause the right sequence of events to cause a refresh but there might be others involved that are private. The fact that it seems very hard to find the right documented API functions to make this work as Microsoft has (maybe) intended it, is likely also the reason why LabVIEW is not fully cooperating here.
01-23-2019 07:53 AM - edited 01-23-2019 07:56 AM
If I dragged the finder tool to the taskbar the highlighted one is MSTaskListWClass, above that is MSTaskSwWClass, above that is ReBarWindow32, above that is the Shell_TrayWnd. I tried sending messages to all of these. Issuing the SendMessage of 0d1053 (TTM_Update) causes the taskbars to refresh but like I said it varies on how long it takes and for me would freeze for 5-10 seconds. Other messages I tried was WM_UPDATEUISTATE, TTM_UPDATETIPTEXTA, TTM_UPDATETIPTEXTW, LVM_UPDATE, and FM_REFRESH_WINDOWS, but nothing happened with these which I got from this list.. Are any of these the UpdateWindow() you are referring to?
Show/Hide with a 0ms wait between did flash the window very quickly, but I found that even if you are performing a move operation with a drag, it still sticks to the mouse. A single flicker of such a short amount of time, only once every window moves is totally fine.
Attached is 2016 of the project, it uses some OpenG.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord