<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Themed menu&#8217;s icons, a complete Vista and XP solution</title>
	<atom:link href="http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution/feed" rel="self" type="application/rss+xml" />
	<link>http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution</link>
	<description>Yet another self-employee site &#38; blog</description>
	<pubDate>Wed, 03 Dec 2008 23:40:23 +0000</pubDate>
	
		<item>
		<title>By: Adam</title>
		<link>http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-394</link>
		<dc:creator>Adam</dc:creator>
		<pubDate>Fri, 10 Oct 2008 13:46:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-394</guid>
		<description>&lt;strong&gt;Carlos&lt;/strong&gt;: Indeed &lt;em&gt;hbmp(Un)checked&lt;/em&gt; makes all icons to be inverted when item is focused, this is the way it works, probably due it was designed to handle monochrome bitmaps in most circumstances.

&lt;strong&gt;Dieter&lt;/strong&gt;: Are you sure they are not present in the system? AFAIK &lt;em&gt;GdiPlus&lt;/em&gt; is shipped with all &lt;em&gt;Windows &lt;/em&gt;begging with &lt;em&gt;XP&lt;/em&gt;, please have a look coz newer systems may not have &lt;tt&gt;GdiPlus.dll&lt;/tt&gt; inside of &lt;tt&gt;system32&lt;/tt&gt; folder directly but inside &lt;tt&gt;WinSxS&lt;/tt&gt;, i.e.:
&lt;tt&gt;C:\WINDOWS\WinSxS\amd64_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.3790.3959_x-ww_B45BA3BE\GdiPlus.dll&lt;/tt&gt;
&lt;tt&gt;C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.3790.3959_x-ww_8251BDDE\GdiPlus.dll&lt;/tt&gt;
Having them in &lt;tt&gt;WinSxS&lt;/tt&gt; requires proper manifest inside your application to load.

&lt;strong&gt;Anders&lt;/strong&gt;: If you have read the article more carefully you'd see that the problem is actually &lt;em&gt;ownerdraw&lt;/em&gt; method that requires much more code and attention, also it makes keyboards shortcuts stop working. Moreover &lt;em&gt;"themed"&lt;/em&gt; is just a term, you say XP menus are not themed, but they may be flat or not. But isn't this flatness a part of XP theming functionality? How do you tell menu is flat or now w/o using &lt;em&gt;uxtheme&lt;/em&gt; API?</description>
		<content:encoded><![CDATA[<p><strong>Carlos</strong>: Indeed <em>hbmp(Un)checked</em> makes all icons to be inverted when item is focused, this is the way it works, probably due it was designed to handle monochrome bitmaps in most circumstances.</p>
<p><strong>Dieter</strong>: Are you sure they are not present in the system? AFAIK <em>GdiPlus</em> is shipped with all <em>Windows </em>begging with <em>XP</em>, please have a look coz newer systems may not have <tt>GdiPlus.dll</tt> inside of <tt>system32</tt> folder directly but inside <tt>WinSxS</tt>, i.e.:<br />
<tt>C:\WINDOWS\WinSxS\amd64_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.3790.3959_x-ww_B45BA3BE\GdiPlus.dll</tt><br />
<tt>C:\WINDOWS\WinSxS\x86_Microsoft.Windows.GdiPlus_6595b64144ccf1df_1.0.3790.3959_x-ww_8251BDDE\GdiPlus.dll</tt><br />
Having them in <tt>WinSxS</tt> requires proper manifest inside your application to load.</p>
<p><strong>Anders</strong>: If you have read the article more carefully you&#8217;d see that the problem is actually <em>ownerdraw</em> method that requires much more code and attention, also it makes keyboards shortcuts stop working. Moreover <em>&#8220;themed&#8221;</em> is just a term, you say XP menus are not themed, but they may be flat or not. But isn&#8217;t this flatness a part of XP theming functionality? How do you tell menu is flat or now w/o using <em>uxtheme</em> API?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Anders</title>
		<link>http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-393</link>
		<dc:creator>Anders</dc:creator>
		<pubDate>Thu, 02 Oct 2008 23:49:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-393</guid>
		<description>XP does not have themed menus (Other than start-menu .. all programs, but that is not a menu, its a toolbar (yes, really)) The only thing you need to do to get 100% correct icons on XP is to check to see if flat menus are on, if they are, the selection rectangle needs a border with COLOR_HIGHLIGHT and fill it with COLOR_MENUHILIGHT</description>
		<content:encoded><![CDATA[<p>XP does not have themed menus (Other than start-menu .. all programs, but that is not a menu, its a toolbar (yes, really)) The only thing you need to do to get 100% correct icons on XP is to check to see if flat menus are on, if they are, the selection rectangle needs a border with COLOR_HIGHLIGHT and fill it with COLOR_MENUHILIGHT</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dieter Lunn</title>
		<link>http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-331</link>
		<dc:creator>Dieter Lunn</dc:creator>
		<pubDate>Mon, 18 Feb 2008 21:50:54 +0000</pubDate>
		<guid isPermaLink="false">http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-331</guid>
		<description>I am using Vista Home Premium 64bit and there is no gdiplus installed by default afaik.  Are you sure that this is the easiest method available?  I don't really like to install PSDK just so use TortoiseSVN and I am sure more other users aren't going to like it much either.</description>
		<content:encoded><![CDATA[<p>I am using Vista Home Premium 64bit and there is no gdiplus installed by default afaik.  Are you sure that this is the easiest method available?  I don&#8217;t really like to install PSDK just so use TortoiseSVN and I am sure more other users aren&#8217;t going to like it much either.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Carlos Alloatti</title>
		<link>http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-154</link>
		<dc:creator>Carlos Alloatti</dc:creator>
		<pubDate>Wed, 24 Oct 2007 01:56:30 +0000</pubDate>
		<guid isPermaLink="false">http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-154</guid>
		<description>Very well explained, thank you. Just one question, when using the hbmp(Un)checked method, the icons get color-inverted when highlighted? because that is what I get.</description>
		<content:encoded><![CDATA[<p>Very well explained, thank you. Just one question, when using the hbmp(Un)checked method, the icons get color-inverted when highlighted? because that is what I get.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Peter</title>
		<link>http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-57</link>
		<dc:creator>Peter</dc:creator>
		<pubDate>Mon, 09 Jul 2007 14:06:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.nanoant.com/programming/themed-menus-icons-a-complete-vista-xp-solution#comment-57</guid>
		<description>Adam, thank you for wonderful post. I tried to implement owner-draw method today, but there are too much problems. WM_MENUCHAR doesn't work at all. As far as I understand, shell interpret this message itself and doesn't pass it to HandleMenuMsg2. (This article - http://www.codeproject.com/shell/ShellExtGuide7.asp - confirms that only WM_MEASUREITEM and WM_DRAWITEM are passed to HandleMenuMsg / HandleMenuMsg2.) So you must not use owner-draw menu items in context menu if you want keyboard accelerators.

When using owner-draw method, there is also a minor problem with positioning the icon on Win98. And, as you said, a lot of code need to be written (I wrote 83 lines by now, and it's still not perfect).

So, I'm thinking of swithing to hbmp(un)checked method. Could you please tell how does it look on Vista? If you have a screenshot, please post it. Thank you in advance.</description>
		<content:encoded><![CDATA[<p>Adam, thank you for wonderful post. I tried to implement owner-draw method today, but there are too much problems. WM_MENUCHAR doesn&#8217;t work at all. As far as I understand, shell interpret this message itself and doesn&#8217;t pass it to HandleMenuMsg2. (This article - <a href="http://www.codeproject.com/shell/ShellExtGuide7.asp" rel="nofollow">http://www.codeproject.com/shell/ShellExtGuide7.asp</a> - confirms that only WM_MEASUREITEM and WM_DRAWITEM are passed to HandleMenuMsg / HandleMenuMsg2.) So you must not use owner-draw menu items in context menu if you want keyboard accelerators.</p>
<p>When using owner-draw method, there is also a minor problem with positioning the icon on Win98. And, as you said, a lot of code need to be written (I wrote 83 lines by now, and it&#8217;s still not perfect).</p>
<p>So, I&#8217;m thinking of swithing to hbmp(un)checked method. Could you please tell how does it look on Vista? If you have a screenshot, please post it. Thank you in advance.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
