IPアドレスコントロールにツールチップを出したい

[戻る]
Bun 2002/12/19(木) 14:10:29
お世話になっています。
久しぶりに質問させていただきます。

エディットは
CToolTipCtrl::AddTool()とCToolTipCtrl::RelayEventによって
ツールヒントが表示されますが

IPアドレスコントロールはCWndの派生ですが
CToolTipCtrl::AddTool()してもツールヒントが表示されません。

どうすれば表示されるでしょうか?
ご存知のかた、教えてください。m(__)m

環境: Win98, VC6.0, MFC, ダイアログベースで作成しています。

tib 2002/12/19(木) 14:35:08
CIPAddressCtrlはあくまでCWndの派生であって、CToolTipCtrlを継承しているわけではな
いので、CToolTipCtrlのメンバ関数が呼べないのは当然ではないでしょうか。

CIPAddressCtrlとCToolTipCtrlの両方を継承するクラスを作るといいかも(動作未確認)。

Bun 2002/12/19(木) 15:45:10
レスありがとうございます。説明不足でした。

>CIPAddressCtrlはあくまでCWndの派生であって、CToolTipCtrlを継承しているわけではな
>いので、CToolTipCtrlのメンバ関数が呼べないのは当然ではないでしょうか。

CToolTipCtrl
BOOL AddTool( CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, UINT nIDTool 
= 0 );

で第1引数の CWnd* にエディットのポインタを渡すとツールチップは表示されますが
IPアドレスコントロールのポインタを渡してもツールチップは表示されないということです。

NEG(ねぐ) [E-Mail] [HomePage] 2002/12/19(木) 15:45:18
 以下のようにできるようです。(記述外は勝手に想像してください。)

    CWnd *cwn;
    int i;
    char buf[256];

    cwn=GetDlgItem(IDC_IPADDRESS1)->GetWindow(GW_CHILD);//CIPAddressCtrl
    for(i=1;cwn;++i)
    {
        sprintf(buf,"ADD%d",i);
        m_ctt.AddTool(cwn,buf);
        cwn=cwn->GetNextWindow();
    }

Bun 2002/12/19(木) 16:02:17
[[解決]]
NEG(ねぐ)さん レスありがとうございます。

spy++でみたらエディットが4つ、くっついていました。(笑)
う〜ん、読みが浅い。

危ないかな?下記のコードで実現しました。

CWnd *pChild = GetDlgItem(IDC_IPADDRESS1)->GetWindow(GW_CHILD);
while (pChild)
{
  m_ToolTip.AddTool(pChild, "表示できたよ〜ん");
  pChild = pChild->GetNextWindow();
}

tibさん、NEG(ねぐ)さん
お世話になりました。

古いスレッドには追加発言できません。