MFC : creating a hyperlink in a button - mfc

Is there an easy way in MFC to add a hyperlink in a button? I've searched the net and they seem to offer complicated stuff.
Thanks.

This video shows how to use the SysLink common control (CLinkCtrl). Beware that MFC support for this control is new and requires VS2008 and the Feature Pack.
Bear in mind that the SysLink control is XP+. If you have to support older platforms, or if you use an older VS, your best bet is probably the good old CStaticLink by Paul DiLascia (RIP).

MFC doesn't implement buttons with hyperlinks (actually win32 common buttons don't support it).
You'll have to use 3rd party buttons.
One option is to use the FooButton class which supports hyperlinks.

Related

Nice looking MFC listbox

I am looking an extended MFC listbox able to manage
- icon and text
- nice selection (vista style)
Do you know a such component ?
CListCtrl in list/report mode could also include icon and text.
Some time ago, the bcgcontrolbar library was incorporated into MFC as a "feature pack".
I don't know if it supports listboxes with embedded images, but it will at least give you a nicer looking listbox with more features than the one in "old" MFC.
http://msdn.microsoft.com/en-us/library/bb984191.aspx

Where can I find a reference which controls are in which version of MFC?

Preferably with visual illustrations... MSDN just lists class-names and what I really want to see is which versions of MFC have nice modern functionality like dockable toobars, collapsible windows, and other graphical niceties.
Does such a 'visual catalog' exist? From MSDN it's not always clear even what each class does without a pretty picture.
I don't think there is a 'gallery' of MFC controls on MSDN.
The closest thing I can think of are the MFC samples included in Visual Studio. There should be a project like this one that shows all of the controls with examples of how to use them. The other samples in the MFC Feature Pack also have workable demos for docking windows, ribbons, etc.

Which C++ cross platform GUI framework has good skinning ability?

What is a cross-platform C++ GUI framework that has good skinning ability?
So I could (and give the users) the ability to customise the GUI.
The Qt framework allows for changing the appearance of widgets using style sheets (using css). See: http://qt-project.org/doc/qt-5.0/qtwidgets/stylesheet.html.
EDIT: As you're looking for something like wxSkin, first why not use it in the first place?
Then, if you don't want to use wxSkin, have a look at Juce. Qt's goal is definitely not themeable GUIs although windows masks and stylesheets are a way to implement them. There is the QSkingObject project on Qt-Apps.org but last time I checked it I found that the quality of the code was poor (of course this is subjective and argumentative).
You can have a look at Juce which has a dual license: GPL and commercial.
Qt (LGPL) has stylesheets to style the widgets, but it still let the operating system draw the windows decorations unless you instruct it to draw frameless windows and draw the decorations by yourself.
However, think twice before going the skinned application route. A typical example is Songbird (written in XUL) which used frameless windows and painted its own titlebar and windows buttons. Then they back-pedaled and switch back to system windows decorations after many users complained.
Qt has convenient support for that with Qt style sheets et al. The Qt labs blog had an example post that might give you an idea.
As other say, Qt's stylesheets work well.
You also have the option to customize the drawing in Qt by overriding QStyle. You could allow users to use plugins (exporting a QStyle implementation) to make it super-customizable.
(Then, I don't know if your users are C++ coders or not...)
I've used Juce (compatible with Windows, Linux and Mac OS X) in the past and it has a LookAndFeel class (gotta love the name) that allows you to do that.
I'd have to vote for XULRunner because it's extremely skinnable. However, it's not pure C++: application code is written in JavaScript while extensions can be implemented as C++ XPCOM components.

Detail Grid in MFC

I want a detail grid kind of control in MFC, where on expanding each row of the grid an embedded dialog would appear for it (not a popup but inside the same parent control, inside which I can show other controls).
Can you please point me if there is any such existing library providing this kind of a control? Or else how to go about implementing it. I want to do it in C/C++, MFC, Win32.
Best,
Sourabh
You can try Codejock Xtreme Toolkit Pro (Link). I had the opportunity to use its Grid Control to create an excel like sheet in MFC. It was quite good for my needs.
Refer to this link, i think it has what you are looking for.
HTH

User Interface Controls for Win32

I see many user interface control libraries for .NET, but where can I get similar stuff for win32 using simply C/C++?
Things like prettier buttons, dials, listviews, graphs, etc.
Seems every Win32 programmers' right of passage is to end up writing his own collection. :/
No MFC controls please. I only do pure C/C++. And with that said, I also don't feel like adding a multi-megabyte framework to my application just so that I can have a prettier button.
I apologize for leaving out one tiny detail, and that is that my development is for Windows Mobile.
So manifest files are out.
I just notice how many developer companies have gone crazy with making pretty looking .NET components and wondered where the equivalent C/C++ Win32 components have gone?
I read about how many people ended up writing their own gradient button class, etc. So you would think that there would be some commercial classes for this stuff. It's just weird.
I'll take a closer look at QT and investigate its GUI support for such things. This is the challenge when you're the one man in your own uISV. No other developers to help you "get things done".
I've used Trolltech's Qt framework in the past and had great success with it:
In addition, it's also cross-platform, so in theory you can target Win, Mac, & Linux (provided you don't do anything platform-specific in the rest of your code, of course ;) )
Edit: I notice that you're targeting Windows Mobile; that definitely adds to Qt's strength, as its cross-platform support extends to WinCE and Embedded Linux as well.
The Code Project has lots of UI controls for C/C++
Most of them are focussed on MFC or WTL but there are some that are pure Win32.
As an aside if you're not using a framework, you really should consider WTL over pure Win32. It's low overhead and about a million times more productive.
For prettier buttons, etc., if you aren't already doing it, embed an application manifest so that your program is linked to version 6 of the common controls library. Doing so will get you the Windows XP- or Vista-styled versions of the standard Windows controls.
If you want types of controls beyond what Windows offers natively, you'll likely have to either write it yourself or be more specific about what kind of control you are looking for.
I you don't mind using the MFC libraries you should try the Visual C++ 2008 Feature Pack
Stingray
CodeJock - Toolkit Pro for MFC/ C++
The MFC feature pack is derived from BCGSoft components.
Using winAPI's you can do almost anything you want and really fast too. It takes some time to figure it out but it works. Go to MSDN, lookup MessageBox(), check out DialogBox() and go from there.
I personally do not care for MFC by the way. If you want to use an MFC like approach I'd recommend Borland's C++ Builder. Pretty old but still very usefull I think.