ツールチップが表示される (表示される) たびにツールチップ テキストを更新するにはどうすればよいですか?
通常の方法でツールチップを使用するCDialog
派生ダイアログがありCToolTipCtrl
、問題なく動作します。
CToolTipCtrl
CDialog
私のクラス のメンバー変数。- ツールチップを作成し、ツールに追加
CDialog::OnInitDialog
CToolTipCtrl
にリレーされたメッセージCDialog::PreTranslateMessage
CToolTipCtrl::UpdateTipText
とを使用して、コードのさまざまな場所でツールヒント テキストを更新する方法も知っています。CToolTipCtrl::Update
ただし、私が望んでいてまだ達成していないのは、次のとおり です。ツールヒントが表示される前にマウスがツールの上に移動するたびに、ツールヒントのテキストが更新されるようにしたいです。つまり、表示されるテキストは、ツールヒントが表示された瞬間の状況に依存します・テキストが表示されます。
これまでの私の作業コード(関連する行に切り捨てられました):
class CmyDialog : public CDialog
{
virtual BOOL OnInitDialog();
virtual BOOL PreTranslateMessage(MSG* pMsg);
virtual void RefreshToolTipText(); // Want to call this prior each display
CToolTipCtrl m_toolTip;
}
BOOL CmyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
m_toolTip.Create(this);
m_toolTip.AddTool( GetDlgItem(IDC_SOMECONTROLID), "Sometext" );
m_toolTip.Activate( TRUE );
}
BOOL CmyDialog::PreTranslateMessage(MSG* pMsg)
{
if(IsWindow(m_toolTip.m_hWnd))
m_toolTip.RelayEvent(pMsg);
}
void CmyDialog::RefreshToolTipText()
{
m_toolTip.UpdateTipText( "updated runtime text", GetDlgItem(IDC_SOMECONTROLID) );
m_toolTip.Update();
}