Home |
Search |
Today's Posts |
#5
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
Thanks Nick. This sounds like music to my ears! A few follow-up questions:
- So would I create (say) such a command button using CreateObject? GetObject? OLEObjects.Add? - Do you know the name (file or class) of the "common" controls used by WinXP? By Vista? - The KB article you pointed me to indicates that these ActiveX controls must support the IDataObject interface. Do you happen to know if WinXP's "common" controls support this interface? - Once I create one of these ActiveX controls, can I position it on the worksheet the way I do my current controls (e.g., by setting its Top, Left, Width and Height properties)? Will the Top and Left properties take values from the same coordinate system as I currently use for the existing controls? - Once I create one of these ActiveX controls, will I be able to field events as I currently do (e.g., Sub object_name_MouseDown(...))? I'm sure I can figure out the answers to some of these questions once I get started, but if you have any pointers I'd really appreciate it. Thanks, josh "NickHK" wrote in message ... You are free to use any* ActiveX control that is installed on the user's system and if you have an Installer routine, you can add new controls to system. Obviously this becomes more complex than just sending a WB, but installation should only be a one-time thing. * Actually, there are some limitations in which Active controls you can use; the control must expose the certain interfaces: http://support.microsoft.com/kb/168392 Whilst is quite old, I believe it still applies to Excel. NickHK "Josh Sale" <jsale@tril dot cod wrote in message ... Starting with your last point ... I could care less. However I've been hearing this drumbeat for years and have been ignoring it thinking "there must be more important things to worry about then these cosmetics". But the beat goes on and in fact intensifies. If you remember the old "Lucky" commercials well then I'm the opposite ... I'd rather switch than fight! As you point out, command buttons do have a picture property. But that really doesn't do it for me. Here are two immediate problems: First, I need to be able to dynamically set the caption of the buttons. You can't do that if the button face is coming from a graphic image. Second setting the picture property doesn't really address the user's complaints. They want "modern" controls. So for example, when you roll the mouse over a modern command button, it gets a "highlight". This doesn't happen when you set the object's Picture property. OK ... perhaps there is a mouse_over event I can trap and load a new picture into each command button as the mouse rolls over it (although I actually think there may be no such event), this is way overboard. I shouldn't have to try to replicate all of the "modern" behaviors of these controls in my code. Its a waste of my time, I'll never get it 100% right and I'll have to make a career of it (e.g., next Vista and then whatever follows that). Finally, not withstanding any of the above, the Picture solution isn't a complete solution for me. As I mentioned, I need other controls like a combo box which don't have Picture properties. I have to believe there is someway to get the "native" controls onto a worksheet. Any other suggestions? Thanks, josh "Jim Cone" wrote in message ... The command button control (and others) have a picture property. You can get free Vista pictures off the internet. Try some of those on your controls. You can link the pictures to the controls or simply paste the pictures into the picture property. Are you sure it isn't the developer that cares about "modern" controls and not the users? <g -- Jim Cone San Francisco, USA http://www.realezsites.com/bus/primitivesoftware "Josh Sale" <jsale@tril dot cod wrote in message I have an add-in that dynamically creates various kinds of OLE controls on a worksheet. I use code like the following: ActiveSheet.OLEObjects.Add(ClassType:="Forms.Comma ndButton.1", ... ActiveSheet.OLEObjects.Add(ClassType:="Forms.Combo Box.1", ... I need to use OLE objects rather than say Form controls (which at least in the case of combo boxes look a little better) because I need the events exposed by the OLE objects. Anyway, all of this works fine and has been stabile for years. Buy my users increasingly complain about the aesthetics of these controls. Without being to precise, I think the above code results in Windows 3.1 controls being created (OK, maybe its Win95) and they just look like old clunkers. I'm looking for a way to create contemporary WinXP (or perhaps even Vista) controls on my worksheets. I need command buttons, combo-boxes, text-boxes, list-box, option button and check-box controls. Installing a new dll or ocx onto my user's systems to make this happen would be OK. Anybody got any bright ideas? TIA, josh |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
Macro to Create New Worksheet and Reference Cell in Old Worksheet As Tab Name - "Object Required" Error | Excel Discussion (Misc queries) | |||
create links to check boxes marked "good" fair"and "bad" | Excel Worksheet Functions | |||
CommandBars("Worksheet Menu Bar").Controls("Tools").Enabled = Fals | Excel Programming | |||
Activating Worksheet Controls - "Excel VBA Problem" | Excel Programming | |||
Can ActiveX controls be "disabled" and "enabled"? | Excel Programming |