1. Win98 look & feel / removing manifest file effects

I haven't run Edita's Window Painter in anger for quite some time, since moving onto XP in fact. Only to find I couldn't select/drag/resize anything...

At first I thought this was something to do with a manifest file, but I ran it on 2.4 and got the same effect. I also thought it may be something like calling InitCommonControlsEx in Arwen, but I couldn't find that. Eventually I got it going by right-clicking on exw.exe (2.4), properties, disable visual themes.

My question is how might I do that from within Edita/CreateProcess, ie run with visual themes disabled?

Pete

new topic     » topic index » view message » categorize

2. Re: Win98 look & feel / removing manifest file effects

The affects are the problems found and described in ticket 616 no longer appear. I haven't heard any thing specific about negative effects. As far as I know, there aren't any.

new topic     » goto parent     » topic index » view message » categorize

3. Re: Win98 look & feel / removing manifest file effects

SDPringle said...

The affects are the problems found and described in ticket 616 no longer appear. I haven't heard any thing specific about negative effects. As far as I know, there aren't any.

Um...what?

new topic     » goto parent     » topic index » view message » categorize

4. Re: Win98 look & feel / removing manifest file effects

petelomax said...

I haven't run Edita's Window Painter in anger for quite some time, since moving onto XP in fact. Only to find I couldn't select/drag/resize anything...

At first I thought this was something to do with a manifest file, but I ran it on 2.4 and got the same effect. I also thought it may be something like calling InitCommonControlsEx in Arwen, but I couldn't find that. Eventually I got it going by right-clicking on exw.exe (2.4), properties, disable visual themes.

My question is how might I do that from within Edita/CreateProcess, ie run with visual themes disabled?

Take a look at Causing the UxTheme Manager to Ignore Top Level Windows, and in particular, SetThemeAppProperties.

In the interest of debugging, does the issue persist if you translate the code? The translator does not (currently) compile the manifest, so you get a non-themed executable.

Matt

new topic     » goto parent     » topic index » view message » categorize

5. Re: Win98 look & feel / removing manifest file effects

SDPringle said...

The affects are the problems found and described in ticket 616 no longer appear. I haven't heard any thing specific about negative effects. As far as I know, there aren't any.

I'm not sure that's coming across correctly.

Are you saying that AFTER your changes to remove the manifest file, the Win32lib example program seems to work okay on WinXP? If so, I don't think anyone is doubting that but the problem is that XP users probably want to be able to use manifest files.

new topic     » goto parent     » topic index » view message » categorize

6. Re: Win98 look & feel / removing manifest file effects

mattlewis said...

Take a look at Causing the UxTheme Manager to Ignore Top Level Windows, and in particular, SetThemeAppProperties.

In the interest of debugging, does the issue persist if you translate the code? The translator does not (currently) compile the manifest, so you get a non-themed executable.

I played around a little with this function and the example program from ticket:616. In win32lib, at least, it looks like it's necessary to send the WM_THEMECHANGED message to all of the controls. It doesn't seem to propagate to children automatically. The de-theming definitely works for me (on XP), although it didn't solve the issue brought up in the ticket.

include win32lib.ew  
constant Win1 = create(Window,"Strange",0,Default,Default,400,400,0),  
		TabCtl = create(TabControl,"",Win1,5,5,380,355,0),  
		Tab1 = create(TabItem,"First",TabCtl,0,0,0,0,0),  
		Label1 = create(CText,"Nothing important",Tab1,10,30,360,25,0),  
		Cbox1 = create(Combo,"",Tab1,20,80,250,100,0), 
		StyleButton = create( Button, "Change Style", Tab1, 20, 100, 90, 30, 0 ), 
		$ 
 
include std/dll.e 
include std/machine.e 
constant  
	UXTHEME = open_dll("UxTheme.dll"), 
	xSetThemeAppProperties = define_c_proc( UXTHEME, "SetThemeAppProperties", { C_INT } ) 
 
addItem( Cbox1, "foo") 
integer theme = 3 
constant WM_THEMECHANGED = 0x031A 
procedure StyleButton_onClick(integer self, integer event, sequence parms) 
	theme = 3 - theme 
	c_proc( xSetThemeAppProperties, { theme } ) 
	sendMessage( Win1, WM_THEMECHANGED, 0, 0 ) 
	sendMessage( TabCtl, WM_THEMECHANGED, 0, 0 ) 
	sendMessage( Label1, WM_THEMECHANGED, 0, 0 ) 
	sendMessage( Cbox1, WM_THEMECHANGED, 0, 0 ) 
	sendMessage( StyleButton, WM_THEMECHANGED, 0, 0 ) 
 
end procedure 
setHandler( StyleButton, w32HClick, routine_id("StyleButton_onClick")) 
 
WinMain(Win1,Normal)  

Matt

new topic     » goto parent     » topic index » view message » categorize

7. Re: Win98 look & feel / removing manifest file effects

mattlewis said...

Thanks, that looks like exactly what I was after...

mattlewis said...

In the interest of debugging, does the issue persist if you translate the code? The translator does not (currently) compile the manifest, so you get a non-themed executable.

... however, in the meantime I tried EnableTheming(0), which did some kind of system-wide reset that EnableTheming(1) did not restore. I managed to get themes back by right-clicking on the desktop and modifying properties - and by some miracle the original issue has gone away. I'll keep an eye on it and see if it happens again.

Regards,
Pete

PS: I don't think this has anything to do with ticket 616 - everything "worked" fine, but I thought one particular app needed themes switched off, but as it stands apparently not.

new topic     » goto parent     » topic index » view message » categorize

8. Re: Win98 look & feel / removing manifest file effects

petelomax said...

PS: I don't think this has anything to do with ticket 616 - everything "worked" fine, but I thought one particular app needed themes switched off, but as it stands apparently not.

Yes, the control drawing seems to be a Win32Lib issue. The same code, ported to wxEuphoria, looks fine.

Matt

new topic     » goto parent     » topic index » view message » categorize

9. Re: Win98 look & feel / removing manifest file effects

mattlewis said...

Yes, the control drawing seems to be a Win32Lib issue. The same code, ported to wxEuphoria, looks fine.

Looks fine on Arwen too, except the border never goes back.

new topic     » goto parent     » topic index » view message » categorize

10. Re: Win98 look & feel / removing manifest file effects

Not exactly. It runs without problems on Windows Vista. I stopped using Windows XP for development of EUPHORIA.

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu