クラスがあります
クラスCCfgUserPage:public CPropertyPage
チェックボックスからテキスト領域まで、さまざまなコントロールも所有しています。各コントロールにツールチップを追加したいのですが、問題があるようです。
CCfgUserPageで、これをメッセージマップに追加しました
ON_NOTIFY_EX(TTN_NEEDTEXT、0、OnToolTipText)
このオブジェクトがそのメッセージをキャッチすると、次のような関数OnToolTipTextを呼び出します。
BOOL CCfgUserPage::OnToolTipText( UINT id, NMHDR * pNMHDR, LRESULT * pResult )
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pNMHDR;
UINT nID = pNMHDR->idFrom;
CString ttStr;
int partOrient = GetDlgItem(IDC_PARTORIENT_CHECK)->GetDlgCtrlID();
if (pTTT->uFlags & TTF_IDISHWND)
{
// idFrom is actually the HWND of the tool
nID = ::GetDlgCtrlID((HWND)nID);
if( nID == partOrient ) // Only Display TT for The buttons with these ID's
{
if( nID == partOrient )
ttStr = "Part Orient";
pTTT->lpszText = (LPTSTR)(LPCTSTR)ttStr;
pTTT->hinst = AfxGetResourceHandle();
return TRUE;
}
}
return FALSE;
}
でツールのヒントも有効にしました
CCfgUserPage :: OnInitDialog
OnToolTipTextがTRUEを返すたびに、アプリケーションがクラッシュし、通知します
アクセス違反の読み取り場所
私はスタックフレームを通過しようとしていますが、何が問題になっているのかを理解するには、MFCに深く入り込んでいます。これが起こる原因となる何が欠けている可能性がありますか?