Important alert: (current site time 7/16/2013 3:03:43 AM EDT)
 

winzip icon

Subclassing Thunk (VB+ASM = Office XP Menus :-)) w/ Sample HookMenu 1.4

Email
Submitted on: 11/8/2002 10:21:01 AM
By: Vlad Vissoultchev 
Level: Advanced
User Rating: By 147 Users
Compatibility: VB 6.0
Views: 66623
author picture
(About the author)
 
     UPDATE(2002-12-13): Sample HookMenu 1.4 introduces RightToLeft forms support. __________________________________________________ UPDATE(2002-11-27): Sample HookMenu 1.3.5 fixes problems with MDI forms. Separators are reduced to 3 pixels to match Office XP ones. You can use DontHookMenu=1 when debugging and the control is part of your project. __________________________________________________ UPDATE(2002-11-23): Sample HookMenu 1.3.4 fixes troubles in NT 4.0, menubar background color in Win XP classic appearance and sub-menu arrow forecolor if menu text is not black. __________________________________________________ UPDATE(2002-11-21): Sample HookMenu 1.3.3 fixes an XP redraw bug, an accelerator (underlined) symbols bug and keyboard navigation in Win9x. Sample HookMenu 1.3.2 adds custom drawing of sub-menus arrows and fixes unicode strings support. Various fixes for Win95 support. __________________________________________________ UPDATE(2002-11-20): Sample HookMenu 1.3.1 fixes issues with WindowList menus and 3rd level sub-menus positioning. __________________________________________________ UPDATE(2002-11-18): Sample HookMenu 1.3 fixes issues with the subclasser (both in Win 9x and NT/2K/XP) so no more GPFs. Closer Office XP experience: menu colors are closer to Office values in 8bit color depth and in high contrast color scheme; menu shadow simplified as in Office in 8bit color depth; popup menus are positioned manually two pixels down; seamless shadow if popup is above the menubar. __________________________________________________ UPDATE(2002-11-12): Sample HookMenu 1.2 fixes the issue with TextBox popup menus (finally!). Some design time issues and menubar background color problems spotted by Ovidiu Boldea. Also, the property page is working more fluently now. I'm sick of win9x and so these are not supported from now on (ok, promise to do my best:-)). __________________________________________________ UPDATE(2002-11-10): Sample HookMenu 1.1 fixes issues in NT 4.0 and MDI child forms. Can anyone test the control under win95? __________________________________________________ This is a second attempt on moduleless window subclasser featuring "run-time dynamically generated machine code". The original was submitted by Paul Caton a couple of months ago. The present version is safer and is based on a completely rewritten assembly thunk. Also I have changed the name of the subclasser to reflect more closely what in fact it's doing. In addition to this you get the hooking thunk which (you guessed it) hooks windows hooks in a convenient and safe way. Both of the thunks' source files (assembly) are included. Both thunks are designed to be and have shown to be exceptionally safe in the IDE, they seem immune to both the end button and End statement - try to crash them and let me know what your results are. The screenshot is from a sample project (included in the zip) which subclasses a form's menus and turns them into Office XP clones - now it's not necessary to include 13000 lines of "supercode" to get the Office XP style menus under win 98/2000/XP/.Net Server (not tested on 95/NT btw). Enjoy and leave your votes!

 
winzip iconDownload code

Note: Due to the size or complexity of this submission, the author has submitted it as a .zip file to shorten your download time. Afterdownloading it, you will need a program like Winzip to decompress it.Virus note:All files are scanned once-a-day by Planet Source Code for viruses, but new viruses come out every day, so no prevention program can catch 100% of them. For your own safety, please:
  1. Re-scan downloaded files using your personal virus checker before using it.
  2. NEVER, EVER run compiled files (.exe's, .ocx's, .dll's etc.)--only run source code.
  3. Scan the source code with Minnow's Project Scanner

If you don't have a virus scanner, you can get one at many places on the net including:McAfee.com

 
Terms of Agreement:   
By using this code, you agree to the following terms...   
  1. You may use this code in your own programs (and may compile it into a program and distribute it in compiled format for languages that allow it) freely and with no charge.
  2. You MAY NOT redistribute this code (for example to a web site) without written permission from the original author. Failure to do so is a violation of copyright laws.   
  3. You may link to this code from another website, but ONLY if it is not wrapped in a frame. 
  4. You will abide by any additional copyright restrictions which the author may have placed in the code or code's description.


Other 12 submission(s) by this author

 


Report Bad Submission
Use this form to tell us if this entry should be deleted (i.e contains no code, is a virus, etc.).
This submission should be removed because:

Your Vote

What do you think of this code (in the Advanced category)?
(The code with your highest vote will win this month's coding contest!)
Excellent  Good  Average  Below Average  Poor (See voting log ...)
 

Other User Comments

11/8/2002 10:27:20 AMVlad Vissoultchev

you can find the original "superclassing" submission here:

http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=37102&lngWId =1

</wqw>

(If this comment was disrespectful, please report it.)

 
11/8/2002 11:30:59 AMRobert Rayment

Wow! Can't imagine what your advanced code is like.
(If this comment was disrespectful, please report it.)

 
11/8/2002 2:45:31 PMAntonio Ramirez Cobos [TonyDSpaniard]

This is impressive... so impressive, it made me feel like I am not a programmer at all. Your work deserves more than five gloves... Thank you very much for your input. Thank you.
(If this comment was disrespectful, please report it.)

 
11/8/2002 3:33:04 PMWill Wharton

This is some of the best codeing i have seen on this site - well - all i have to say is GOOD JOB
(If this comment was disrespectful, please report it.)

 
11/8/2002 4:30:17 PM

I am again humbled by your talent Vlad.
You make it very difficult to give others the same 5 stars I give your projects! They should have a 5+ for really outstanding stuff like yours.


(If this comment was disrespectful, please report it.)

 
11/8/2002 8:30:28 PMFred.Cpp

WOW! It's great! I couldn't believe It when I saw the ScreenShot.
Five balls*****
(If this comment was disrespectful, please report it.)

 
11/8/2002 10:15:48 PMDazz

wow! very nice man although i get some errors for some reason :S i dunno should change the level to advanced this is what i call hard core programming ;) 5globes from me man! keep up the good work ;)
(If this comment was disrespectful, please report it.)

 
11/9/2002 12:03:55 AMSlider

Great work as usual! Keep it up. 5* from me.
(If this comment was disrespectful, please report it.)

 
11/9/2002 12:22:32 AM

F**KING BRILLIANT!!!!!
best i've work i've seen here for ages.
5 globes just isn't enough!
(If this comment was disrespectful, please report it.)

 
11/9/2002 5:59:38 AMThushan Fernando

sheeeeeeet..... faaaaaaarrrQ... man i'm starting to swear and drool...

definatley a we'll deserved(we'll it deserves more but this is a limitation) 5 Globes!

Code Of The Month if not year!
(If this comment was disrespectful, please report it.)

 
11/9/2002 8:00:20 AMKenny Lai, Lai Ho Wa

Hey everyone I don't understand why there's so little people here rate it. THIS SHOULD BE PLACED AT THE TOP OF THE ALL TIME HALL OF FRAME!!!!!!!! 50 GLOBES!!!!!!!!!!!!!!!!!!!!!!!
(If this comment was disrespectful, please report it.)

 
11/9/2002 9:44:17 AM

I try to use your code on NT 4.0, but it doesn't work.
(If this comment was disrespectful, please report it.)

 
11/9/2002 9:49:27 AMVlad Vissoultchev

sorry to hear its not working on NT 4.0. i'll test it here and will try to upload a fix.

</wqw>
(If this comment was disrespectful, please report it.)

 
11/9/2002 10:35:05 AMSean Gallardy

Works on XP Pro just fine. Great job!! 5 nuts from me.
(If this comment was disrespectful, please report it.)

 
11/9/2002 11:06:07 AMZap The Dingbat

ya see now it really annoyse me that i see people giving away 5 globe marks to stuff thats such pants. when there is code like this being posted. A very Impressive bit of API.

Zap
(If this comment was disrespectful, please report it.)

 
11/9/2002 7:25:00 PM

Good code, 5.00 stars from me.

Two issues however, one that keeps me from using it (the first one):

1. it doesn't seem to work well with MDI childs (in your example form2 has an image associated with mnuNew that shows OK in IDE but at runtime, when the form is displayed inside it's MDI parent - MDIForm1, the image isn't present anymore).

2. in WinXP the menubar (the portion of the menu that is always visible on the form) has not the proper color. It seems that for WinXP or newer you should get the menubar color with GetSysColor(COLOR_MENUBAR) while in previous versions of Windows it works well now.

This would be THE PERFECT post on PSC with these two issues fixed, especially the MDI one because the second one is really easy to do ;)
You can count on my 5 stars on all of your posts if you keep it that way. Congratulations again to you and to Paul Canton.
(If this comment was disrespectful, please report it.)

 
11/10/2002 8:55:20 PMPaul Caton

Awesome Vlad !!! I knew you were the man for v2 - It rather looks like you've got people voting for the sample as well as the code at issue, cute :) I rather suspect that when all the issues are known to be dead what you'll have here is the be-all and end-all of VB window subclassing for all time. Just happy to have played my part. Regards from San-Fran
(If this comment was disrespectful, please report it.)

 
11/10/2002 9:07:51 PMPaul Caton

LOL - Just took a look at the leader board. Have you all gone assembler mad? Did I play any part in this trend or were others up to no good before me?
(If this comment was disrespectful, please report it.)

 
11/11/2002 8:41:15 AMVlad Vissoultchev

btw, to use the HookMenu control with MDI forms you need to place instances of the control BOTH in the MDIForm and the child form -- the two controls will interoperate (by forwarding win messages).

HTH,
</wqw>
(If this comment was disrespectful, please report it.)

 
11/11/2002 3:56:38 PM

A sound piece of code. Good work
(If this comment was disrespectful, please report it.)

 
11/12/2002 12:11:10 PMBehrooz Sangani

I'm really impressed. The design time change of menues was a shock. 5 globes from me.
The change in text box context menu does not work very well in xp.
(If this comment was disrespectful, please report it.)

 
11/13/2002 6:18:30 AMSven Taute

really great code, 5 globes from me!
(If this comment was disrespectful, please report it.)

 
11/13/2002 11:52:54 AMDylan Morley

Best bit of code I've seen on here for a while - 5 *'s.

I'm running NT4, worked fine?
(If this comment was disrespectful, please report it.)

 
11/14/2002 11:27:02 PM

I am desclaimed to say it is a nice menu. This type of menus are not given the attraction of a skinnable menu. But the program was good.
(If this comment was disrespectful, please report it.)

 
11/17/2002 8:16:47 PMKenny Lai, Lai Ho Wa

The code is extremely wonderful, but if I turn it to OCX, the menu shadow will disappear magically under design-run time, but no problem when complied to EXE. Can you fix the problem, and OCXize the code?
(If this comment was disrespectful, please report it.)

 
11/18/2002 12:52:41 PM

Great job 5*
(If this comment was disrespectful, please report it.)

 
11/18/2002 1:10:00 PM

great job 5 Globs
(If this comment was disrespectful, please report it.)

 
11/19/2002 4:51:37 AMTscherno

Unbelievable! 5 stars, sure!

Only one thing: how can i disable the right line in the menus?
(If this comment was disrespectful, please report it.)

 
11/19/2002 3:35:22 PM

Great Code... Just one problem when using MDI Forms. If I set a menu item to be a windowlist, it isn't drawn correctly. Any chance of a fix to this???
(If this comment was disrespectful, please report it.)

 
11/20/2002 1:30:39 PMVlad Vissoultchev

Issues fixed in version 1.3.1

</wqw>
(If this comment was disrespectful, please report it.)

 
11/21/2002 3:28:40 AM

Great work!
Better change this
ApiDrawTextEx m_MemoryDC, Text, -1, rc, dtFlags, wTextParams
to avoid unicode display error.
How about adding color selector etc?
Thanks a lot!
5 globs from me
(If this comment was disrespectful, please report it.)

 
11/21/2002 8:04:24 AMVlad Vissoultchev

Issue fixed in version 1.3.2

</wqw>
(If this comment was disrespectful, please report it.)

 
11/21/2002 9:00:26 AMRob Reffner

Under Windows XP Pro SP1 the menus just appear as black boxes until you move the mouse over them...
(If this comment was disrespectful, please report it.)

 
11/21/2002 10:52:29 AMVlad Vissoultchev

oops, issue fixed in v1.3.3

</wqw>
(If this comment was disrespectful, please report it.)

 
11/21/2002 1:30:31 PMDavid Bue Pedersen

Hi everybody!
At first i shared the exitement as all of you, but my applications turn out unstable when using the menucomponent!
My computer just suddenly reboots when i eg. click the mouse, or press a key on the keyboard. Any ideas or anyone experienced the same? I seem to be able to track the problem to the menu control!
Anyway! Nice code :-)
Kindest regards
David
(If this comment was disrespectful, please report it.)

 
11/22/2002 3:47:16 PMSmokeyDP

GREAT CODE!

One problem...
If you are running a program using the menus and u CTRL+Break then resume all the menus on other programs are messed up(no border for standard windows).(try explorer for example) They only go back to normal when u reboot the pc. I am using NT4 BTW.
(If this comment was disrespectful, please report it.)

 
11/22/2002 4:40:52 PMDondata

Man! - This keeps getting better and better.

I´m sorry that I cant vote twise dude :o)
(If this comment was disrespectful, please report it.)

 
11/25/2002 12:17:58 PM

Suggested Improvement.

Menubar items could possibly have a box around them when the mouse is over them. I believe Office XP/Visual Studio.Net does it like this.

What do you think???
(If this comment was disrespectful, please report it.)

 
11/26/2002 12:09:08 PMSebastian Mares

Holly Crop! This code is awesome! It is one of the best ones I have ever seen!
I think 5 globes are a joke when I am looking at this masterpiece.
(If this comment was disrespectful, please report it.)

 
11/27/2002 12:08:54 PMuZiGuLa

amazing code
five globes from me

keep on
(If this comment was disrespectful, please report it.)

 
11/28/2002 3:08:11 AMTscherno

How can I switch to an new version of the control, without the need to create my menus (icons) again?
(If this comment was disrespectful, please report it.)

 
11/28/2002 3:37:54 AMLeo Barsukov

Ýé, Âëàä! Òû âîò âûèãðàë, à ÿ ÷òî íå ïîñòàâëþ, âñ¸ 5, 6, 11. êàê òû ýòî äåëàåø? Ðàñêàæû ìíå ÷òî òû òâîðèø íà ýòîì!? Íó, Âîáùåòî ïîøëè ìíå äèñê "VB" êîãäà òû åãî ïîëó÷åø!!!!

˸íÿ Áàðñóêîâ
(If this comment was disrespectful, please report it.)

 
11/28/2002 3:45:20 AMLeo Barsukov

Hey, Vlad!, Ya tebe napisal ruskim shriftom, no chtoto ono ne srabotolo.
Karochi, ya ne ponimau kak ti viigral.
ne raskazhes li ti mne svoj sikret?
no esli net, poshli mne disk kogda poluchesh, Kak Zemlyaku, ponemaesh?
Nu, Koroche, tebe esho 5 sharekov.

Leonid Barsukov
(If this comment was disrespectful, please report it.)

 
11/28/2002 6:39:00 AM

Hey Vlad,

Outstanding work! Defenetly worth the best ratings and awards!
My deepest respect for not abandoning the support for your awesome release and frequent updates! It's rare to see that much of professionalism here on PSC. ***** globes from me!

Thanks for sharing,
TSD.
(If this comment was disrespectful, please report it.)

 
11/29/2002 11:27:00 AMPhantom Man

Very nice code Vlad
Although it uses machine code and this is a vb site. I'll still give you 5 stars.
It's nicley presented and it's nice to see that your quick on releasing your bug fixes.

regards
Phantom Man.

(If this comment was disrespectful, please report it.)

 
12/4/2002 2:59:37 AM

Hi Vlad, cool Menu! But I cant Algin it to the right side of the form...
Is there a solution for that?
Thanks
Eitan
(If this comment was disrespectful, please report it.)

 
12/7/2002 12:56:52 AMMichael

Great programming. Keep up the good work and thank you for sharing it with everyone. I hope everyone honors you with the proper credit. As one programmer to another, Thank you.
(If this comment was disrespectful, please report it.)

 
12/8/2002 6:10:49 PMMick Doherty

I was just about to start something like this, but it was going to be no where near as good.
I don't where I was when you submitted this though. It took me a month to find it and I check here every day. I wonder what's happened to the rest of your votes!
(If this comment was disrespectful, please report it.)

 
12/8/2002 9:56:00 PMRadioMan

Excellent Code!!, this is better i seen, Thanks to share with us!!. Best Regards / RadioMan
(If this comment was disrespectful, please report it.)

 
12/11/2002 8:07:42 AM

Spotted a bug with the accelerator keys under NT 4.0

If I hit Alt Space it brings up the System Menu, but if I then press N to minimise the window, nothing happens. I tested this under Windows Me and it works okay.

Any chance of a fix??
(If this comment was disrespectful, please report it.)

 
12/11/2002 6:19:05 PMGabe H

vlad,
let iat rip in vb! u sure got the beginners interested!
a fine coding standard
(If this comment was disrespectful, please report it.)

 
12/15/2002 6:36:00 AMPeter Hebels

Nice work, 5+ from me :)
(If this comment was disrespectful, please report it.)

 
12/18/2002 5:03:30 AMDaemonshyai

Are the drop-downs on the toolbar supposed to be skinned, as well as the context menu for the textbox? If so, there seems to be an error on Windows XP Pro, they aren't skinned at all.
(If this comment was disrespectful, please report it.)

 
12/18/2002 7:50:47 AM

really great code, 5 globes from me!

(If this comment was disrespectful, please report it.)

 
12/18/2002 7:53:10 AMTushar Goswami

This is COOOL! :) SIMPLY THE BEST!!!!!!!! :D:D:D:D:D:D
(If this comment was disrespectful, please report it.)

 
12/19/2002 3:00:13 AM

Im running under W2K, i have seen that the program open the browser with this address = "C:\Program Files\Microsoft Visual Studio\VB98\ctxHookMenu.html"

Very nice XP menu...

Thanks your great programmer...

God bless Sir.
(If this comment was disrespectful, please report it.)

 
12/19/2002 8:59:18 AMThe New iSoftware Company!

Can you help me write something to get the office xp colors? Wow awesome!!!
(If this comment was disrespectful, please report it.)

 
12/21/2002 3:20:00 AMEvil bomberman

Code of the year!!!! This guy got talent. Boy, I wish I was like him
(If this comment was disrespectful, please report it.)

 
12/25/2002 6:09:25 PM

Hi, its just great but i am facing a problem using this. As soon as run my program with your menu. other programs menu do not show border around them and looked flat. its keep in that way untill i reboot my system. I am using Windows 2000.

Any chances of fixing this bug.
Five star to you
(If this comment was disrespectful, please report it.)

 
12/27/2002 2:12:52 AM

Wonderful code. 5 globes for me.

(If this comment was disrespectful, please report it.)

 
1/8/2003 6:30:14 AM

Wonderfull job
I can't change picture during runtime
but again what a program ! :))
(If this comment was disrespectful, please report it.)

 
1/8/2003 11:06:56 AMThomas

excellent, 5 globes from me
(If this comment was disrespectful, please report it.)

 
1/10/2003 10:35:04 PM

Hi, i wrote about a bug few days back, but i think you must have forget about it in a new year rush.

I am facing a
problem using this. As soon as run my
program with your menu. other programs
menu do not show border around them and
looked flat. its keep in that way
untill i reboot my system. I am using
Windows 2000.

Any chances of fixing
this bug.

(If this comment was disrespectful, please report it.)

 
1/22/2003 1:17:55 PMDon Brady

Hi, thank you for sharing this excellent code.

A minor glitch occurs using bitmaps and menu arrays. Using a MDIForm menu only, hiding menus based on child. A bullet picture is used for group options instead of the default check. Some menus have the bullet where it belongs but other times a bullet shows up on a menu where I never set a picture and where I set a bullet for a checked item the picture is never set. Lots of loading and unloading of menus is going on.

On the flip side, I created a base 10x10x3 favorites menu array and unload and load on the fly. Every folder and docIE bitmap shows up where it belongs.

Again, great stuff.

Don
(If this comment was disrespectful, please report it.)

 
1/22/2003 1:46:21 PMDon Brady

Hi again.

Found problem.

Captions cannot have exact same name including position of '&'. Had a View menu that if a child form used a Listview, menu options of Lar&ge Icons, S&mall Icons, &List and &Details was available. Under the same View menu Toolbars -> has an option for Lar&ge Icons and S&mall Icons. By changing the position of the & in the toolbars section the bitmap property works correctly for all menu items.

Don
(If this comment was disrespectful, please report it.)

 
1/24/2003 12:19:17 AM

It is very great code.
But When I change font it take effect only to Menu Item not text on Menu bar (File , Edig...). I expect you can fix it soon. I use Win 95
(If this comment was disrespectful, please report it.)

 
2/17/2003 5:02:10 AMBrian Corbett

Superb, another great submission!! 5 globes from me.
(If this comment was disrespectful, please report it.)

 
2/27/2003 12:02:58 AMAPATEL

Can i run the project without the SubclassingSink.idl file. Or is there anyway i can embedd it into the VB application itself. Can you help ?
email me on afshaadpatel@yahoo.com thanks
(If this comment was disrespectful, please report it.)

 
2/27/2003 9:34:19 AMAPATEL

Is there anyway you can compile it ina project for me please. I do not seem to get around it somehow. The reason for not using the subclassing file is tha i want to embed it and i can simply send an EXE update to the clients. Rather than send the subclassing file and exe. It will be simpler this way.

Can you pls help thanks

(If this comment was disrespectful, please report it.)

 
2/27/2003 9:56:47 AMAPATEL

Well you are right they will be able to query it. But that is fine. Can you do it that way for me (Integrate it pls). What is the adantage and disadvantages of integrating it ?


(If this comment was disrespectful, please report it.)

 
2/27/2003 9:57:27 AMVlad Vissoultchev

come on guys! you DONT need to redistribute the typelib in anyway! just compile against it and that's all.

HTH,
</wqw>
(If this comment was disrespectful, please report it.)

 
3/1/2003 1:00:22 AMAPATEL

One problem i am facing with your menu is that when i END the program from the IDE it crashes. Any idea ?
(If this comment was disrespectful, please report it.)

 
3/1/2003 1:43:56 PMAPATEL

Crashes in the IDE when u hit the END button there. Not the END STATEMENT
(If this comment was disrespectful, please report it.)

 
3/6/2003 1:22:33 AM

amazing job!!!
very impressive.
your such a genuis Vlad.
5 * for me...
(If this comment was disrespectful, please report it.)

 
3/6/2003 12:48:24 PMAPATEL

Crashed in IDE Big time .. Reloaded OS and Installed VB6.0 still crashed.
(If this comment was disrespectful, please report it.)

 
3/6/2003 7:18:42 PM

IT'S REEEAALLLY TOOO COOL !
GREAT JOB !!!!
You're probably more intelligent that some microsoft's programers.
(If this comment was disrespectful, please report it.)

 
3/10/2003 7:27:31 AM

Any further updates planned?

I have found a couple of minor bugs. I can email details if you get in touch.
(If this comment was disrespectful, please report it.)

 
3/11/2003 11:47:51 AMAPATEL

I figured out the Crash that takes place. do you have any updates from the code. ?
(If this comment was disrespectful, please report it.)

 
3/11/2003 9:30:41 PMAPATEL

The problem that I faced was ..
Start the Application (any application with your Code)
Then click on the menu's and open then
Then hit the End button in the IDE and it crashes.

Now here is the deal with Subclassing
It is hard to correct the IDE and debugging of the component, however to debug you can call the subclassing event only after you sure u want to create an exe and distribute the same.
(If this comment was disrespectful, please report it.)

 
3/27/2003 5:33:34 PMaps

Paul, there seems to be some problem with control, If I use your Old Control Code ( ie is November Revision ) it results in spectacular system Crashes when I right click on Desktop - I have Windows 2000 Professional.

When I use the Last revised code (the one revised in December ) I doesnt displays Alpha Blend / XP Colors , But doesnt crashes my Windows 2000.
Can you help me out that .

Thank you

Amit
(If this comment was disrespectful, please report it.)

 
4/4/2003 1:19:36 AMTJ Rode

Vlad,

Mind offering a hand? I'm trying to get system messages globally, such as WD_MOUSE, MOVE, etc. What I'd like to be able to do is select the message type (enum list at the moment) and be able to track messages 'everywhere,' not just in the project. Any thoughts would be greatly appreciated!
(If this comment was disrespectful, please report it.)

 
4/14/2003 3:00:02 AM

Hi Vlad Vissoultchev,
Could you show me where can I get the latest version of this great control.

Many Thanks
(If this comment was disrespectful, please report it.)

 
4/16/2003 3:13:03 AMDondata

Vlad: I still miss the hover effect on the toplevel menus, when they´re not selected.
(If this comment was disrespectful, please report it.)

 
4/22/2003 2:13:49 AM

What about unicode ?
(If this comment was disrespectful, please report it.)

 
5/3/2003 3:50:45 AM

BUG: Please Vlad or Any one tell me how to fix this bug:
As soon as run my program with your menu. other programs menu do not show border around them and looked flat. its keep in that way untill i reboot my system. I am using Win2k Pro.

Thanks alot!
(If this comment was disrespectful, please report it.)

 
5/7/2003 7:53:38 AMJason Alls

Excellent. Simply the best menu I've come across. Well done.
(If this comment was disrespectful, please report it.)

 
5/22/2003 7:45:52 AM

Hi Mr. Vissoultchev.

Congratulations for your great control.
A little question : Is possible hook the SSTAB control too ?
I think that only you can do it !
Thank you and sorry for my poor english.

Joe Kaisaka
Brasil.
(If this comment was disrespectful, please report it.)

 
6/12/2003 6:20:15 AM3nity

That's just too good:)
I have to ask you... Can I use it in my programs... You will get credit in credit boxes... This would really improve GUI'S in my programms... Oh, 5 G's from me!!!!!
(If this comment was disrespectful, please report it.)

 
6/26/2003 10:28:55 PM

i like it ,it's good job
(If this comment was disrespectful, please report it.)

 
7/8/2003 5:41:20 PMAbhishek.NET

Found a bug:
1. when there many number of menus and you try to sroll using the down arrow it will not render correctly on all windows.
2. on xp when you are using the scroll menu effect instead of fade it flickers.

(If this comment was disrespectful, please report it.)

 
7/14/2003 11:15:27 AM

Incorrect characters when using right to left with middle eastern characters.
(If this comment was disrespectful, please report it.)

 
7/27/2003 5:44:25 PM

Super code !!!
Five !!!!

Thanx
(If this comment was disrespectful, please report it.)

 
8/29/2003 11:21:02 AM

The best code i've seen in a long time. Keep it up. And here are your 5 universes *****. God bless.
(If this comment was disrespectful, please report it.)

 
9/10/2003 4:27:33 PMJean Paul

You're good man!!!
50 stars from me!
The code is great
(If this comment was disrespectful, please report it.)

 
9/23/2003 1:20:16 AM

it cannot display unicode string in menu
(If this comment was disrespectful, please report it.)

 
9/27/2003 5:06:49 AMmike payne

Can anyone help me? this code is great and all but it doesnt work when you use it with a MANIFEST file for getting the total windows XP look...
(If this comment was disrespectful, please report it.)

 
12/11/2003 2:21:02 PMmike payne

Does this work in win 98?
(If this comment was disrespectful, please report it.)

 
1/12/2004 4:33:54 PMChase Gale

Is this supposed to change the appearance of the toolbar as well? If so, has anyone got this to work?
(If this comment was disrespectful, please report it.)

 
2/29/2004 9:56:53 PMEmiliano Scavuzzo

Great code, very helpful.
(If this comment was disrespectful, please report it.)

 
5/10/2004 6:09:36 PMchris fitzmartin

really quite nice
(If this comment was disrespectful, please report it.)

 
5/22/2004 9:22:09 PMRobert Kaltenbach

Very good code!
But it changes my 16x16 icons to 32x32.
so they wont fit in the boxes.
also i have no idea where the icons in the example are. they arent on the property page.
(If this comment was disrespectful, please report it.)

 
5/25/2004 9:11:23 PMRobert Kaltenbach

Oh, sorry!
There was a problem with my icon.
It contains a 32x32 and a 16x16 icon.
But I didnt know about this.
It works really good now! Thank you!
(If this comment was disrespectful, please report it.)

 
6/3/2004 4:26:10 PMYaser Hani

It will be an insult to give u 5 globes, I think they should create at least two more for you, but until they I'll have to give 5 only, BTW, I'll vote for you then g kill myself or something... ;-)
(If this comment was disrespectful, please report it.)

 
8/19/2004 3:32:18 AM

hi, its really a professional work
i can only give u 5
but i have one note when i use it in arabic font it works fine on some machins but it gives ?????? insted of the menu caption.
is there any solution ?

and thanks again for ur work :)

sorry becoz of my poor language :(
(If this comment was disrespectful, please report it.)

 
11/15/2004 4:43:42 PM

It's great!
There's only one little 'bug' with it.
If you have an MDI form and a child child on it, using string resources, the main form menu won't refresh properly.
Is there a solution for it?

Five BIG globes from me
(If this comment was disrespectful, please report it.)

 
3/4/2005 7:25:27 AMJENNER ALAGAO A.K.A. JHONCE XYREN

youre so greate
a really greate programmers\

please continue your job
to help like us me a begginer programmers!!!!!!!1
(If this comment was disrespectful, please report it.)

 
4/20/2005 8:55:58 AMKopciowski Dariusz

I tested and
Win95 - Error dll
WIN98 - OK
Win NT - Error runtime
Win 2k - OK
WIn XP - OK
Win 2003 - OK
(If this comment was disrespectful, please report it.)

 
6/16/2005 7:35:37 AMShawn J Cox

I found a "IDE Crash" bug. if something I call or do in ISubclassingSink_After errors, then after clicking the error msgbox the IDE is frozen and must be ctrl-alt-del. All clicks etc just go "beep" and you can't do anything. I'm using your code to catch some MDI events to draw a taskbar with all children inside, I just want it to fire when a child becomes active or a new child loads. BTW microsofts constants are pretty wrong when it comes to dealing with MDIs... WM_CHILDACTIVATE NEVER fires no matter what happens in the MDI form. I set allmsgs to true and then I converted the hex code to decimal to see if that number comes up at all and it never does. Oh well, WM_ERASEBKGND works for what I want it to do.
(If this comment was disrespectful, please report it.)

 
6/16/2005 7:39:31 AMShawn J Cox

and to the guy with the language error... you need to have the arabic language installed on that machine for it to work, if it isn't you will get ?? for everything.
(If this comment was disrespectful, please report it.)

 
7/30/2005 12:20:17 PMIslam Adel

Dear Vlad,
There's nothing more to say that "WOW! It's Awesome!!"

I got a little question:
the file ".\2_Asm\WndProc2.asm", the instruction "call dword ptr [ecx+20h]" where ecx is the "Objptr(Me)", your comment says that it calls "iSuperClass_Before". I just don't know why? and another one "call dword ptr [ecx+1Ch]" that calls "iSuperClass_After".
So, we have +20h->iSuperClass_Before and +1Ch->iSuperClass_After !!
I don't know how did you calculate it or how did you know it, and why 20h is iSuperClass_before and 1C is iSuperClass_after and what about if I had my own procedures and i want to call them from my asm function, how do i know the displacement, i mean "[ecx+?h]"

I'd really appreciate it if you'd help me... Thanks
(If this comment was disrespectful, please report it.)

 
12/17/2005 4:33:51 PMShawn J Cox

Any ideas on fixing the IDE crash bug? I've no idea where to start on that one and its rather annoying when trying to debug coding.
(If this comment was disrespectful, please report it.)

 
11/27/2007 11:38:39 PMLala

Hello there,
i've downloaded ur subclassing code.
it works well when its in IDE but the compiled version generates a Memory cannot be written error.
The line which causes this is at cSubclassingThunk::SubClass()

.OrigWndProc = SetWindowLong(hwnd, GWL_WNDPROC, ThunkAddress)

Can you think of a reason why this happens?
Im just starting with subclassing and dont know much yet, but i find ur work very good!
Thanks so much!

(If this comment was disrespectful, please report it.)

 
12/30/2007 3:50:03 PMYakov

Excellent code. very usefull and simple in use
(If this comment was disrespectful, please report it.)

 
1/22/2009 8:52:32 AMRove

Great job!!!! I was trying to make Office XP 2003 but could not suceed.
Can you help me out!!
I have tried to change the RGB but all the colour changes even the Shadow.
(If this comment was disrespectful, please report it.)

 
4/15/2011 7:59:49 AMSachin

This is the best code. But this code has one limitation. I used the cSuperClass for packet capturing. It works fine in XP. But it crashes in Windows Server 2003. I dont know what is the reason. Please help me about this.
(If this comment was disrespectful, please report it.)

 

Add Your Feedback
Your feedback will be posted below and an email sent to the author. Please remember that the author was kind enough to share this with you, so any criticisms must be stated politely, or they will be deleted. (For feedback not related to this particular code, please click here instead.)
 

To post feedback, first please login.