We have a lot of VO GUI windows in our apps and which have the old style square sharp edge button and control styles. Any new windows we do in winforms, but we have 1000+ of the old windows so as you can imagine not something we can easily convert. We are going through windows gradually and re-coding them when we can, but I am looking at ways to make the existing windows look more modern without having to re-code them in winforms if at all possible as a medium term solution.
I recall there was a setup with a manifest file at one stage that could give the windows nicer XP style buttons which we never did and I am not sure if this still applies and would work in Vulcan / X#.
I am wondering if we have any options here to make the window controls look more modern?
Hmm, that's strange, no of course it shouldn't look like that. Can you please test with the attached small app I prepared? I just created a simple mdi app in VO showing a datawindow, ported it to x# and added the manifest, it now looks ok on my machine. Does this show better in your machine that the screenshot you posted? If it does, then maybe something went wrong when adding the manifest to your project, could you send it to have a look? If this still doesn't look any better, then the problem lies elsewhere and we need to investigate, maybe some environmental option.
removed the rc (BTW, would be nice, if one could "comment" it out in the ide), the look certainly changes, see screenshot.
But i think, Trevor was after that "button with rounded edges" look MS had had once, can't remember when .
FWIW, the "with manifest" looks for me like W95 forms did... And what a bunch of code got produced to get these nice "3-D"-look - only to dump it now again ;(
the manifest defines what version of the common controls are to be used - v4 vs v6. And so they define the basic look.
If you compare the both versions of the application under different versions of the operating system (AFAIK the major difference is in Windows 7), with different settings, they are very different.
With the right settings and the manifest, the pushbuttons in Windows 7 show mouse-over effects, whereas without manifest there is no mouse-over effect. And with the manifest you had the rounded windows corners, and windows with shadows.
Windows 8.x and Windows 10 AFAIK don't have this big difference because Microsoft has returned to a flat look to save computer ressources. But the aspect of the entire application changes, and there are some other differences. A combobox with the manifest opens larger than designed when the contents are longer, but with manifest this box opens only as designed.
So IMHO the manifest is an absolute must, but even with it the look is less modern that with WinForms (so I expect a big step forward when moving to X# and a mixed GUI, maybe with Roberts WinForms based GUI classes).
that influences the application look. The manifest file is important for other things too, like to demonstrate to compatibility to newer operating systems (otherwise your application will think to be used with Windows 8 even when used in Windows 10):
<!-- Windows 10 -->
<!-- Windows 8.1 -->
<!-- Windows Vista -->
<!-- Windows 7 -->
<!-- Windows 8 -->
Other options would include the side-by-side use of COM components, or the requirement of elevated rights.
I made a test app (in Vulcan) with a window containing a pushbutton and an SLE and placed the cctl6.man file in the app folder and added the manifest.rc file to the app - but the controls looked the same to me before and after adding the manifest.
I have attached my sample app so you can take a look if possible and let me know what I am missing?
This project already contains the manifest resource (it's the file CREATEPROCESS_MANIFEST_RESOURCE_ID.rc), so no need to add the one I sent you. Normally that should be enough to do the job, but if it is not working for you, I can only think that there's something environmental getting in the way.
What OS are you using? Maybe you are using a system setting that prevents changing the application look? What about the test app in VO, how does it look when you start it from VO?