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

IPアドレスコントロールにツールチップ...
 
通知
すべてクリア

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


Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
Topic starter  

お世話になっています。
久しぶりに質問させていただきます。

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

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

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

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


引用未解決
トピックタグ
tib
 tib
(@tib)
ゲスト
結合: 23年前
投稿: 468
 

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

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


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
Topic starter  

レスありがとうございます。説明不足でした。

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

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

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


返信引用
NEG(ねぐ)
 NEG(ねぐ)
(@NEG(ねぐ))
ゲスト
結合: 22年前
投稿: 178
 

 以下のようにできるようです。(記述外は勝手に想像してください。)

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
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
Topic starter  

NEG(ねぐ)さん レスありがとうございます。

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

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

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました