お世話になっています。
久しぶりに質問させていただきます。
エディットは
CToolTipCtrl::AddTool()とCToolTipCtrl::RelayEventによって
ツールヒントが表示されますが
IPアドレスコントロールはCWndの派生ですが
CToolTipCtrl::AddTool()してもツールヒントが表示されません。
どうすれば表示されるでしょうか?
ご存知のかた、教えてください。m(__)m
環境: Win98, VC6.0, MFC, ダイアログベースで作成しています。
CIPAddressCtrlはあくまでCWndの派生であって、CToolTipCtrlを継承しているわけではな
いので、CToolTipCtrlのメンバ関数が呼べないのは当然ではないでしょうか。
CIPAddressCtrlとCToolTipCtrlの両方を継承するクラスを作るといいかも(動作未確認)。
レスありがとうございます。説明不足でした。
>CIPAddressCtrlはあくまでCWndの派生であって、CToolTipCtrlを継承しているわけではな
>いので、CToolTipCtrlのメンバ関数が呼べないのは当然ではないでしょうか。
CToolTipCtrl
BOOL AddTool( CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool = NULL, UINT nIDTool
= 0 );
で第1引数の CWnd* にエディットのポインタを渡すとツールチップは表示されますが
IPアドレスコントロールのポインタを渡してもツールチップは表示されないということです。
以下のようにできるようです。(記述外は勝手に想像してください。)
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();
}
NEG(ねぐ)さん レスありがとうございます。
spy++でみたらエディットが4つ、くっついていました。(笑)
う~ん、読みが浅い。
危ないかな?下記のコードで実現しました。
CWnd *pChild = GetDlgItem(IDC_IPADDRESS1)->GetWindow(GW_CHILD);
while (pChild)
{
m_ToolTip.AddTool(pChild, 表示できたよ~ん);
pChild = pChild->GetNextWindow();
}
tibさん、NEG(ねぐ)さん
お世話になりました。