15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Multiple-line tooltip 'Win95 style'

dobrin@itls.com
Tuesday, August 20, 1996

Environment : VC++4.2 on Windows NT3.51 and Win95.

I want to add tooltips to different buttons in a dialog box. 
CToolTipCtrl supports just a one-line text.

Win95 displays, in various apps, after pressing the "?" button in the
upper right-hand corner of a window, and selecting an item, a window
with formatted text on multiple lines.

Is there a shorter  way around this problem, without getting involved
with CRichEditCtrl ?

Thank you in advance,

Dan Dobrin
Dan Dobrin
Intertrans Logistics Solutions Ltd.
Richmond Hill, CANADA
e-mail : dan.dobrin@itls.com
phone  : (905) 771-8088, ext.251



Mats Mеnhav -- manhav@connectum.skurup.se
Sunday, August 25, 1996

-- [ From: Mats Manhav * EMC.Ver #2.5.02 ] --

Dan,

The multiline "tooltip" you are referring to are not really tooltips at all.
It is instead a pop-up window displayed byt the help engine. The text
displayed is taken
from a help file. Look at documentation on Context sensitive help to get to
know more about it.

Mats
-------- REPLY, Original message follows --------

> Date: Tuesday, 20-Aug-96 11:35 AM
> 
> From: dobrin@itls.com          \ Internet:    (dobrin@itls.com)
> To:   MFCList                  \ Internet:    (mfc-l@netcom.com)
> 
> Subject: Multiple-line tooltip "Win95 style"
> 
> Environment : VC++4.2 on Windows NT3.51 and Win95.
> 
> I want to add tooltips to different buttons in a dialog box. 
> CToolTipCtrl supports just a one-line text.
> 
> Win95 displays, in various apps, after pressing the "?" button in the
> upper right-hand corner of a window, and selecting an item, a window
> with formatted text on multiple lines.
> 
> Is there a shorter  way around this problem, without getting involved
> with CRichEditCtrl ?
> 
> Thank you in advance,
> 
> Dan Dobrin
> Dan Dobrin
> Intertrans Logistics Solutions Ltd.
> Richmond Hill, CANADA
> e-mail : dan.dobrin@itls.com
> phone  : (905) 771-8088, ext.251
> 

-------- REPLY, End of original message --------


--
==========================================================================
Mats Mеnhav (Mats Manhav for 7-bit people)
email:manhav@connectum.skurup.se   WWW: http://connectum.skurup.se/~manhav
FAX:  (int) 46 (0) 414 243 05      Phone: (int) 46 (0) 414 243 05         
==========================================================================




beriksen@cda.com
Monday, August 26, 1996

[Mini-digest: 4 responses]

     Your first problem is going to be that CWnd-derived objects support 
     tool tips, but CDialog-derived objects do not.  But what you're 
     talking about is not tool-tip related at all - it's part of the help 
     system.
     
     To do what you're talking about, you'll need to do something on 
     WM_ONKEYDOWN for each object, to get 'f1' key support, and you'll have 
     to do something really crazy (like putting your own context help 
     dialog framework together) to get the context help arrow to come up 
     when the user presses ctrl+f1 and then clicks on an item.
     
     Brian Eriksen
     beriksen@cda.com


______________________________ Reply Separator _________________________________
Subject: Multiple-line tooltip "Win95 style"
Author:  mfc-l@netcom.com at Internet_Mail
Date:    8/24/96 6:20 PM


Environment : VC++4.2 on Windows NT3.51 and Win95.
     
I want to add tooltips to different buttons in a dialog box. 
CToolTipCtrl supports just a one-line text.
     
Win95 displays, in various apps, after pressing the "?" button in the 
upper right-hand corner of a window, and selecting an item, a window 
with formatted text on multiple lines.
     
Is there a shorter  way around this problem, without getting involved 
with CRichEditCtrl ?
     
Thank you in advance,
     
Dan Dobrin
Dan Dobrin
Intertrans Logistics Solutions Ltd.
Richmond Hill, CANADA
e-mail : dan.dobrin@itls.com
phone  : (905) 771-8088, ext.251

-----From: Roger Onslow/Newcastle/Computer Systems Australia/AU

This has nothing to do with eith tool tips of rich edit controls
It is a function of the (new) WinHelp engine
You can set it up do that produces context sensitve help in this way
However, I do not have the details as to how (just know from reading that you 
can).
So, if you want to research this yourself, look at the Win32 API docco on help 
(in particular context sensitive help and context menu).

Roger
-----From: "Brad Wilson" 

Those are displayed by the help system.  Create a help file wherein each
topic is the small piece of text you're interested in, then call
CWinApp::WinHelp, with an nCmd of HELP_CONTEXTPOPUP.

--
Brad Wilson   Objectivist Philosopher, Software Engineer, Web Designer
crucial@pobox.com   http://www.thebrads.com/bradw   Objectvst@Undernet

         "I'm sick of all you hypocrites, holding me at bay
        I don't need your sympathy to get me through the day"

-----From: Antonio Jorge Marques Pires 

Try this:
"
11.25.  How do I add =91What=92s this=92 menus to my application - like W=
in95
hip apps have?
Here=92s some steps to get you started->

1. Put the following menu into a resource script:

IDR_WHAT_IS_THIS_MENU	MENU	DISCARDABLE

BEGIN

	BEGIN

		POPUP "a"

		BEGIN

			MENUITEM "What's this?", ID_WHAT_IS_THIS

		END

	END

END


2. Add to your dialog a right-click handler (OnRButtonDown) with menu
IDR_WHAT_IS_THIS_MENU. You need to store the point of the last click in
some variable - for example

	CPoint		m_cLastRClickPoint;

  and store here the client coordinates of the last right click.

4.  Put the following code into your dialog class (or probably the
parent class of all your dialogs):

BEGIN_MESSAGE_MAP(CMyDialog, CDialog)

	//{{AFX_MSG_MAP(CMyDialog)

	// whatever

	//}}

	ON_COMMAND(ID_WHAT_IS_THIS, OnWhatIsThis)

END_MESSAGE_MAP()




void CMyDialog::OnWhatIsThis()

{

	CWnd* pControl =3D ChildWindowFromPoint (m_cLastRClickPoint);

// if the click wasn't on one of the controls - open help for dialog

	if (pControl =3D=3D NULL || pControl->m_hWnd =3D=3D m_hWnd)

		WinHelp (HID_BASE_RESOURCE + m_nIDHelp,=20

		HELP_CONTEXTPOPUP);

	else

		WinHelp (HID_BASE_CONTROL + pControl->GetDlgCtrlID(),

			HELP_CONTEXTPOPUP);

}
  - and finally add the following lines to the makehelp.bat file:

echo. >>hlp\wr.hm

echo // Controls (IDC_*) >>hlp\wr.hm

makehm IDC_,HIDC_,0x50000 resource.h >>hlp\wr.hm

=09
This wires everything to your help system.

Poul A. Costinsky(PoulACost@msn.com).




| Вернуться в корень Архива |