Placing Logo on the Top DockBar of the Frame Window

In the demo project I put in this article I derived CLogo from MFC CBitmapButton class. But you could change my code and derive CLogo from any class derived from CWnd. I use the class, from which CLogo is derived, for visual representation of logo.
Step 1: Create a new Single document or Multiple document project by using MFC AppWizard.
Step 2: Add Logo.cpp and Logo.h files to the project.
Step 3: Change the base class of CLogo to any class derived from CWnd you want. Be sure that you have replaced all occurrences of CBitmapButton in Logo.cpp and Logo.h files.
Step 4: Add #include
Step 5: Add a member variable of CLogo type to CMainFrame:
protected: CLogo m_wndLogo;
Step 6: Add creation code for the CLogo base class at the end of OnCreate handler of CMainFrame. Be sure that you have used the top dockbar as a parent window for the logo. Since I use CBitmapButton, I added the next lines:
// LOGO SUPPORT
CControlBar* pTopDockBar = GetControlBar(AFX_IDW_DOCKBAR_TOP);
if (pTopDockBar
&& m_wndLogo.Create(NULL,
WS_CHILD | WS_VISIBLE | BS_OWNERDRAW,
CRect(0,0,0,0),
pTopDockBar,
IDC_LOGO_BUTTON))
{
m_wndLogo.LoadBitmaps(IDB_LOGO_BITMAP, IDB_LOGOSEL_BITMAP);
m_wndLogo.SizeToContent();
}
// LOGO SUPPORT
Step 7: Add the string resource with the integer identifier of the logo window for displaying tooltips and the message line in the status bar. I added the next string resource:
IDC_LOGO_BUTTON "Go to Sunbay's home page\nGo to Sunbay's Home Page"
Step 8: Add the handler of ON_LOGO_CLICK registered window message to CMainFrame. You could handle this message as you want. For example, my demo application launches a registered internet browser and goes to the home page of my company.
That is all. Now you could compile your project and try out how the program behaves.
Downloads
Download demo project - 36 KbDownload source - 3 Kb

Comments
Destroy all tooltip of windows
Posted by Legacy on 07/19/2002 12:00amOriginally posted by: Dylan
When I implement the CLogo, it work good but all the tooltips of any application were destroy....
Have you a suggestion to undestroy tooltip
Thanks...
Replywhat's new in your article?
Posted by Legacy on 07/15/2002 12:00amOriginally posted by: Nguyen minh Tam
ReplyOptimization and avoid flickering
Posted by Legacy on 06/13/2002 12:00amOriginally posted by: Avi Dahan
Reply
Another way to add logo to the main frame
Posted by Legacy on 11/27/2001 12:00amOriginally posted by: Ali
Replytoolbar
Posted by Legacy on 11/11/2001 12:00amOriginally posted by: harish
hey how do i use it in sdk. :O
ReplyVB
Posted by Legacy on 07/18/2001 12:00amOriginally posted by: Shihan
I Want VB Project With Coding
ReplyIt does not work under Windows 2000
Posted by Legacy on 07/06/2001 12:00amOriginally posted by: Carlos A.
The logo does not work properly under Windows 2000. It appears and dissapears. Do you know why?
Carlos A.
ReplyDoes not flicker any more...
Posted by Legacy on 06/03/2001 12:00amOriginally posted by: Jakub
What to do to avoid flickering:
change line 71 of CLogo.cpp from:
CRect UnionToolbarRect;
to
CRect UnionToolbarRect(0,0,0,0);
I hope it works.
ReplyJakub
Why does the logo fickle??
Posted by Legacy on 04/27/2001 12:00amOriginally posted by: pipi
I notice that the logo fickle in a undesirable way in release build?? any suggestion?
Replysuggestion
Posted by Legacy on 03/22/2001 12:00amOriginally posted by: Romdles
Having a create function take a set of parameters not needing change (the null, the style, and a rect of dimensions 0) seems silly to me. Rather, I would suggest you have some overloaded constructors or overloaded create functions:
one that takes the string, and control bar
another that takes string, control bar, and two uint bitmap identifiers
This makes the whole thing easier and more obvious to implement. Just a suggestion.
ReplyLoading, Please Wait ...