Click here to Skip to main content
15,891,136 members
Articles / Desktop Programming / MFC

GuiToolkit MFC Extension

Rate me:
Please Sign up or sign in to vote.
4.53/5 (167 votes)
16 Aug 20044 min read 2.2M   38.6K   384   625
A set of MFC GUI classes which allow you to build applications with the new Microsoft interface style
In this article, you will learn about GuiToolkit which is a complete set of classes based on MFC. It allows you to build applications with nice and sophisticated interfaces such as Visual Studio .NET, Office 2003, etc.

Image 1

Introduction

GuiToolkit is a complete set of classes based on MFC, that allows you to build applications with nice and sophisticated interfaces such as Visual Studio .NET, Office 2003, etc. The primary target is to have a complete free library that can be used without restrictions and suitable to user or programmers needs. This class set includes file management, connection through ADO, up to complex user's interface classes.

Guitoolkit was developed based on Paul Dilascia’s classes (father of almost all of this kind of libraries), including features like a Menu System and a floating bar (Thanks Paul for let me “ruin” all its wonderful code, hope you understand that I did it with sincerely my best intention); about the NewMenu Class (written by Bruno Podetti). I used “Hook” system. As a principal fact, I have tried to focus on code simplicity, in the way that you could isolate a class to understand it. Don’t expect to find in this library complex classes embedded into other, or sophisticated programming techniques.

I’ve tried to respect and preserve original class names of different authors, so every class that doesn’t begin with “Gui”, wasn’t written by me. As you could see, I’m the author of the 9x% of this classes.

GuiToolkit Users Guide

The code is free to use, except code that is not written by me, anyways you cannot take total or partial control of this code. This library is distributed in the hope that it will be useful, but without any warranty, without even the implied warranty of merchantability or fitness for a particular purpose.

Take your time to understand the given examples, and how to use the classes. In any case, I appreciate that someone wants to document this library. This library has a few or a lot of troubles, I hope that you can understand and forgive these human failures, like: There’s no documentation available, and there’s not tech support and some bugs in Windows 98.

You can use this library as you want and to demonstrate good or bad programming techniques, for your commercial application, to play, for improve it and share with us changes and to make me feel that my job gave you a plus making free code, in other words you don’t have to ask anybody for permissions this code is FREE in the way you respect author’s rights that let me use their code; and if you want to give me some credits (your welcome!), or you could show me, tell me and give the personal satisfaction of watching your own GuiToolkit built apps! “I appreciate it a lot”.

You can criticize the code being respectful, insults can freely direct to me but exclude Paul Dilascia, Bruno Podetti and other authors that I mention in credits section; they’re not guilty about my creation.

New Features

  • OneNote ® Style MDI tabs
  • Office ® XP/2003 look
  • Auto hide dockable bars
  • Docking tab colors
  • Visual Studio .NET look
  • And all components that you already know!

If you want the latest changes, visit the library web page http://www.beyondata.com/.

Some Examples

Image 2

Office menu bar XP styles provided:

Image 3

You can dispose of almost all controls in a dialog box using the CGuiStaticStandar class and obtain an interface such as next image.

Image 4

View more http://www.beyondata.com/.

What Comes Next?

Many things should be improved in the close future, errors, more controls, a text editor, to improve some classes, windows docking, autohidden functions, etc.

Credit

  • Thanks to Paul Dilascia VC++ MFC Guru, to allow using his class set for the menu management, thanks a lot I learned a huge things of his code.
  • Thanks to Bruno Podetti for your splendid menu class.
  • Thanks to David Yuheng Zhao for your VisualStylesXP class.
  • Thanks to Mohammad Ahmad Khaleel for your Cgradient class.

History

  • 31st July, 2002 - Updated source code
  • 20th August, 2002 - Updated source code
  • 10th January, 2003 - Updated source code
  • 18th August, 2004 - Updated source code

License

This article has no explicit license attached to it, but may contain usage terms in the article text or the download files themselves. If in doubt, please contact the author via the discussion board below.

A list of licenses authors might use can be found here.


Written By
Colombia Colombia
My name is Francisco Campos, A developer as you.I have the title of Engineer of Systems of the Universidad Autonoma de Colombia.My real Job Information Security officer, experience in security assessment, applications, and other related subjects.

Francisco.camposg@outlook.com

Comments and Discussions

 
GeneralCGuiPanelAccess: Black BG Pin
DarkLizener9-Aug-05 5:18
DarkLizener9-Aug-05 5:18 
GeneralCGuiMDIChild Pin
tim6355-Aug-05 0:20
tim6355-Aug-05 0:20 
GeneralMenu with to display Pin
Crisan3-Aug-05 1:18
Crisan3-Aug-05 1:18 
GeneralUsing CGUITabWnd on dialog based program Pin
forhug1-Aug-05 23:34
forhug1-Aug-05 23:34 
GeneralBug: CGuiPanelAccess & CGuiFolder repainting of 1 row of pixels Pin
tim6351-Aug-05 21:14
tim6351-Aug-05 21:14 
GeneralCtrl+Tab key switches doc but tab does not change Pin
ana_v12328-Jul-05 5:34
ana_v12328-Jul-05 5:34 
AnswerRe: Ctrl+Tab key switches doc but tab does not change Pin
tooho20-Nov-05 22:04
tooho20-Nov-05 22:04 
GeneralGui_DevStudio App Crash, Bug in GUILib Pin
ana_v12328-Jul-05 5:32
ana_v12328-Jul-05 5:32 
First of all, Thanks Francisco Campos for this excellent toolkit.

Gui_DevStudio Sample Crashes while using Theme 2003. Use pin button to make Workspace (CGuiControlBar) in Autohide mode and 5-6 times move Mouse to show and hide Workspace, App crashes. (If I use, Theme XP, it works fine)

App crashes in both of the following environment
1) Windows 2000, Visual Studio 6.0 (SP5), Platform SDK 2003, Internet Explorer 6(SP1)
2) Windows 98 SE, Visual Studio 6.0 (SP5), Platform SDK 2003, Internet Explorer 6(SP1)

To reproduce error
1. Download sourcecode.zip and unzip.
2. Open Project "GuiToolkit.dsw"
3. Make GUILib as active project, Select Active Configuration to "Win32 Debug" and Compile GUILib (Win32 Debug Version)
4. Select Gui_DevStudio as active project, Select Active Configuration to "Win32 Debug" and Compile Gui_DevStudio (Win32 Debug Version)
5. Execute Gui_DevStudio (in debug mode)
6. Select Theme 2003 (View Menu | Theme 2003)
7. Use pin button of Workspace (Control Bar) to make it auto-hide
8. 5-6 times, move Mouse to show and hide Workspace (Control Bar), App crashes.

I am not good at programming related to CDC. But while debugging to look for error, I found that,
line -> m_dcMem->SetMapMode(MM_TEXT);
in function CGradient::PrepareVertical(CDC *pDC,UINT RTop,UINT GTop,UINT BTop,UINT RBot,UINT GBot,UINT BBot) gives error.
Which is called by CGuiControlBar::DrawGripper which is called by CGuiMiniFrame::OnNcPaint().
CGuiControlBar::DrawGripper works differently for GUISTYLE_2003 and for m_StyleDisplay == GUISTYLE_XP

Any help is appreciated.
Ana

GeneralGuiControlBar hide crash - MDI App with CFormView Pin
anand_study27-Jul-05 9:21
anand_study27-Jul-05 9:21 
GeneralRe: GuiControlBar hide crash - MDI App with CFormView Pin
anand_study27-Jul-05 9:38
anand_study27-Jul-05 9:38 
QuestionRe: GuiControlBar hide crash - MDI App with CFormView Pin
PaulaPaziani26-Oct-05 5:53
PaulaPaziani26-Oct-05 5:53 
AnswerRe: GuiControlBar hide crash - MDI App with CFormView Pin
anand_study12-Nov-05 3:17
anand_study12-Nov-05 3:17 
Questiontoolbar with 24 bits bitmap? Pin
sundee27-Jul-05 7:39
sundee27-Jul-05 7:39 
AnswerYES: toolbar with 24 bits bitmap Pin
sundee27-Jul-05 21:22
sundee27-Jul-05 21:22 
QuestionHow to use it together with a CFormView class Pin
humorstar12-Jul-05 7:17
humorstar12-Jul-05 7:17 
AnswerRe: How to use it together with a CFormView class Pin
sundee27-Jul-05 7:32
sundee27-Jul-05 7:32 
GeneralRe: How to use it together with a CFormView class Pin
anand_study27-Jul-05 9:32
anand_study27-Jul-05 9:32 
GeneralRe: How to use it together with a CFormView class Pin
anand_study27-Jul-05 9:33
anand_study27-Jul-05 9:33 
GeneralGuiControlBar hide crash Pin
jjnz5-Jul-05 10:45
jjnz5-Jul-05 10:45 
GeneralGuiTabWnd - ALN_TOP, some improvements, minor bugs fixing Pin
Anar@1-Jul-05 0:25
Anar@1-Jul-05 0:25 
GeneralRe: GuiTabWnd - ALN_TOP, some improvements, minor bugs fixing Pin
lflybear19-Jul-10 1:07
lflybear19-Jul-10 1:07 
QuestionIs A bug or not? Pin
benjamin_zong13-Jun-05 23:11
benjamin_zong13-Jun-05 23:11 
QuestionWhat exactly to do when you change a Menu? Pin
tim6358-Jun-05 23:13
tim6358-Jun-05 23:13 
GeneralCGuiPanelAccess as a controlbar/dialogbar Pin
tim63530-May-05 2:47
tim63530-May-05 2:47 
QuestionToolbar Error??? Pin
gunias22-May-05 10:55
gunias22-May-05 10:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.