Click here to Skip to main content
12,404,251 members (73,507 online)
Click here to Skip to main content
Add your own
alternative version

Stats

106.3K views
3.6K downloads
47 bookmarked
Posted

A nice multiline ToolTipCtrl example.

, 8 Feb 2004
Rate this:
Please Sign up or sign in to vote.
A nice multiline ToolTipCtrl example looking like the one available in Delphi.

Sample Image - ToolTipEx.jpg

Introduction

Well there is nothing much to say about this. This is a simple better looking multi-line tooltip control.

#pragma once
class CToolTipCtrlEx : public CToolTipCtrl
{
 DECLARE_DYNAMIC(CToolTipCtrlEx)
 enum Orientations
 {
  NW=1,
  NE,
  SW,
  SE,
 };
public:
 CToolTipCtrlEx();
 virtual ~CToolTipCtrlEx();
protected:
 DECLARE_MESSAGE_MAP()
 virtual void PreSubclassWindow();
private:
 afx_msg void OnPaint();
 afx_msg BOOL OnEraseBkgnd(CDC* pDC);
 afx_msg void OnNcPaint();
public:
 COLORREF m_bkColor;//=RGB(255,255,255);
 COLORREF m_leftColor;//=RGB(255, 210, 83);
 COLORREF m_frameColor;//=RGB(155, 110, 53);
 COLORREF m_textColor;//=RGB(0,0,0);
 COLORREF m_arrowColor;//=RGB(0,0,0);
};

Just use it like a normal ToolTipCtrl control.

In the end

This is a tooltip inspired by the Delphi Flat Hint and the arrows are using the port of the Delphi drawing algorithm. This is free to use, modify it but you can't claim it. Any feedback and rating is most welcome.

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

Share

About the Author

TomKat
Web Developer
Romania Romania
I have been programming for the past 6 years in VBasic, Delphi, C, C++ .
I also have extended knowledge of webdesign (HTML, CSS, JavaScript, VBScript), webprogramming (PHP, ASP, ASP.NET (C#)) and database integration (mySql, MSSQL Server).
And when I`m not programming I`m working out or working on some personal projects .
Last but not least I`m looking for a project-based job in programming or webdesign .

You may also be interested in...

Comments and Discussions

 
GeneralMulti Monitor support [modified] Pin
renaudgillet13-Nov-08 6:59
memberrenaudgillet13-Nov-08 6:59 
GeneralUsing ToolTipCtrlEx for toolbar Pin
Hemant K Jangid2-Oct-05 20:52
memberHemant K Jangid2-Oct-05 20:52 
GeneralTooltip for MSFlexGrid Cells Pin
ana4raj25-Oct-04 23:56
sussana4raj25-Oct-04 23:56 
GeneralTooltip for MSFlexGrid Cells Pin
Anonymous25-Oct-04 23:55
sussAnonymous25-Oct-04 23:55 
GeneralRe: Tooltip for MSFlexGrid Cells Pin
rajroy_2419-Jul-07 3:21
memberrajroy_2419-Jul-07 3:21 
Generaluncompleted removed border with removed return CToolTipCtrl::OnNcPaint(); Pin
tony_w200016-Aug-04 1:18
membertony_w200016-Aug-04 1:18 
GeneralRe: uncompleted removed border with removed return CToolTipCtrl::OnNcPaint(); Pin
TomKat16-Aug-04 2:31
memberTomKat16-Aug-04 2:31 
GeneralFix for XP / 2000 Pin
VoidIndigo6-Aug-04 3:39
memberVoidIndigo6-Aug-04 3:39 
Under XP / 2000 tooltips use WM_PRINT / WM_PRINTCLIENT to do the drawing. I figured this out after a half a day of tracing through Windows events by hand.

Add this to the CTooTipCtrlEx and it fixes the problem:

LRESULT CToolTipCtrlEx::WindowProc( UINT message, WPARAM wParam, LPARAM lParam )
{
	switch ( message )
	{
	case WM_PRINT:	// eat this message, tooltips under XP / 2000 use WM_PRINT + WM_PRINTCLIENT to draw
		return 0;	// if we eat this message, the WM_PRINTCLIENT will be skipped and WM_PAINT will be used
		break;		// which is what we expect with our overloaded CToolTipCtrlEx - SLC
	case WM_PRINTCLIENT:
		return 0;	// we should never get this... but just in case - SLC
		break;
	default:
		//TRACE( _T("OTHER :0x%x\r\n"), message );
		break;
	}
	return CToolTipCtrl::WindowProc( message, wParam, lParam );
}

Thanks for the great work!


-
Void
GeneralRe: Fix for XP / 2000 Pin
VoidIndigo6-Aug-04 3:52
memberVoidIndigo6-Aug-04 3:52 
GeneralRe: Fix for XP / 2000 Pin
TomKat7-Aug-04 2:32
memberTomKat7-Aug-04 2:32 

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.

| Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.160721.1 | Last Updated 9 Feb 2004
Article Copyright 2004 by TomKat
Everything else Copyright © CodeProject, 1999-2016
Layout: fixed | fluid