Esempio n. 1
0
void CWndToolTip::DelTool( HWND hWnd, UINT_PTR nIDTool )
{
	// hWnd = the parent or the control depending on nIDTool
	ASSERT(hWnd);
	TOOLINFO ti;
	FillInToolInfo(ti, hWnd, nIDTool);
	::SendMessage(m_hWnd, TTM_DELTOOL, 0, (LPARAM)&ti);
}
Esempio n. 2
0
void CToolTipCtrl::DelTool(CWnd* pWnd, UINT_PTR nIDTool)
{
    ASSERT(::IsWindow(m_hWnd));
    ASSERT(pWnd != NULL);

    TOOLINFO ti;
    FillInToolInfo(ti, pWnd, nIDTool);
    ::SendMessage(m_hWnd, TTM_DELTOOL, 0, (LPARAM)&ti);
}
Esempio n. 3
0
BOOL CToolTipCtrl::GetToolInfo(LPTOOLINFO lpToolInfo, CWnd* pWnd, UINT nIDTool)
{
        ASSERT(::IsWindow(m_hWnd));
        ASSERT(pWnd != NULL);
        ASSERT(lpToolInfo != NULL);

        FillInToolInfo(*lpToolInfo, pWnd, nIDTool);
        return (BOOL)::SendMessage(m_hWnd, TTM_GETTOOLINFO, 0, (LPARAM)lpToolInfo);
}
Esempio n. 4
0
BOOL CToolTipCtrl::GetToolInfo(CToolInfo& ToolInfo, CWnd* pWnd,
                               UINT_PTR nIDTool) const
{
    ASSERT(::IsWindow(m_hWnd));
    ASSERT(pWnd != NULL);

    FillInToolInfo(ToolInfo, pWnd, nIDTool);
    ToolInfo.lpszText = ToolInfo.szText;
    return (BOOL)::SendMessage(m_hWnd, TTM_GETTOOLINFO, 0, (LPARAM)&ToolInfo);
}
Esempio n. 5
0
void CToolTipCtrl::UpdateTipText(LPCTSTR lpszText, CWnd* pWnd, UINT nIDTool)
{
        ASSERT(::IsWindow(m_hWnd));
        ASSERT(pWnd != NULL);

        TOOLINFO ti;
        FillInToolInfo(ti, pWnd, nIDTool);
        ti.lpszText = (LPTSTR)lpszText;
        ::SendMessage(m_hWnd, TTM_UPDATETIPTEXT, 0, (LPARAM)&ti);
}
Esempio n. 6
0
void CToolTipCtrl::GetText(CString& str, CWnd* pWnd, UINT nIDTool)
{
        ASSERT(::IsWindow(m_hWnd));
        ASSERT(pWnd != NULL);

        TOOLINFO ti;
        FillInToolInfo(ti, pWnd, nIDTool);
        ::SendMessage(m_hWnd, TTM_GETTEXT, 0, (LPARAM)&ti);
        str = ti.lpszText;
}
Esempio n. 7
0
void CToolTipCtrl::UpdateTipText(LPCTSTR lpszText, CWnd* pWnd, UINT_PTR nIDTool)
{
    ENSURE(::IsWindow(m_hWnd));
    ENSURE_ARG(pWnd != NULL);
    ENSURE_ARG(_tcslen(lpszText) <= MAX_TIP_TEXT_LENGTH);

    TOOLINFO ti;
    FillInToolInfo(ti, pWnd, nIDTool);
    ti.lpszText = (LPTSTR)lpszText;
    ::SendMessage(m_hWnd, TTM_UPDATETIPTEXT, 0, (LPARAM)&ti);
}
Esempio n. 8
0
void CToolTipCtrl::SetToolRect(CWnd* pWnd, UINT_PTR nIDTool, LPCRECT lpRect)
{
    ASSERT(::IsWindow(m_hWnd));
    ASSERT(pWnd != NULL);
    ASSERT(nIDTool != 0);

    TOOLINFO ti;
    FillInToolInfo(ti, pWnd, nIDTool);
    Checked::memcpy_s(&ti.rect, sizeof(RECT), lpRect, sizeof(RECT));
    ::SendMessage(m_hWnd, TTM_NEWTOOLRECT, 0, (LPARAM)&ti);
}
Esempio n. 9
0
bool CWndToolTip::AddTool( HWND hWnd, LPCTSTR lpszText, LPCRECT lpRectTool, UINT_PTR nIDTool )
{
	// hWnd = the parent or the control depending on nIDTool
	ASSERT(hWnd);
	ASSERT(lpszText != NULL);

	TOOLINFO ti;
	FillInToolInfo(ti, hWnd, nIDTool);
	if (lpRectTool != NULL)
		memcpy(&ti.rect, lpRectTool, sizeof(RECT));
	ti.uFlags |= TTF_SUBCLASS;
	ti.lpszText = (LPTSTR)lpszText;

	return ::SendMessage(m_hWnd, TTM_ADDTOOL, 0, (LPARAM)&ti) ? true : false;
}
Esempio n. 10
0
void CToolTipCtrl::GetText(CString& str, CWnd* pWnd, UINT_PTR nIDTool) const
{
    ASSERT(::IsWindow(m_hWnd));
    ASSERT(pWnd != NULL);

    TOOLINFO ti;
    FillInToolInfo(ti, pWnd, nIDTool);
    //Dogtag to detect buffer overruns in TTM_GETTEXT (Cannot query for text len).
    const TCHAR _OverrunDetector[] = _T("M\0FC");
    ti.lpszText = str.GetBuffer(MAX_TIP_TEXT_LENGTH + _countof(_OverrunDetector) );
    memset(ti.lpszText,0,MAX_TIP_TEXT_LENGTH*sizeof(TCHAR));
    Checked::memcpy_s(ti.lpszText + MAX_TIP_TEXT_LENGTH, sizeof(_OverrunDetector),
                      _OverrunDetector,sizeof(_OverrunDetector));
    ::SendMessage(m_hWnd, TTM_GETTEXT, 0, (LPARAM)&ti);
    ENSURE_THROW(memcmp(_OverrunDetector,ti.lpszText + MAX_TIP_TEXT_LENGTH,sizeof(_OverrunDetector)) == 0,::AfxThrowMemoryException());
    str.ReleaseBuffer();
}
Esempio n. 11
0
BOOL CToolTipCtrl::AddTool(CWnd* pWnd, LPCTSTR lpszText, LPCRECT lpRectTool,
        UINT nIDTool)
{
        ASSERT(::IsWindow(m_hWnd));
        ASSERT(pWnd != NULL);
        ASSERT(lpszText != NULL);
        // the toolrect and toolid must both be zero or both valid
        ASSERT((lpRectTool != NULL && nIDTool != 0) ||
                   (lpRectTool == NULL) && (nIDTool == 0));

        TOOLINFO ti;
        FillInToolInfo(ti, pWnd, nIDTool);
        if (lpRectTool != NULL)
                memcpy(&ti.rect, lpRectTool, sizeof(RECT));
        ti.lpszText = (LPTSTR)lpszText;
        return (BOOL) ::SendMessage(m_hWnd, TTM_ADDTOOL, 0, (LPARAM)&ti);
}
Esempio n. 12
0
BOOL CToolTipCtrl::AddTool(CWnd* pWnd, UINT nIDText, LPCRECT lpRectTool,
                           UINT_PTR nIDTool)
{
    ASSERT(::IsWindow(m_hWnd));
    ASSERT(nIDText != 0);
    ASSERT(pWnd != NULL);
    // the toolrect and toolid must both be zero or both valid
    ASSERT((lpRectTool != NULL && nIDTool != 0) ||
           (lpRectTool == NULL) && (nIDTool == 0));

    TOOLINFO ti;
    FillInToolInfo(ti, pWnd, nIDTool);
    if (lpRectTool != NULL)
    {
        Checked::memcpy_s(&ti.rect, sizeof(RECT), lpRectTool, sizeof(RECT));
    }

    ti.hinst = AfxFindResourceHandle(MAKEINTRESOURCE((nIDText>>4)+1),
                                     RT_STRING);
    ASSERT(ti.hinst != NULL);
    ti.lpszText = (LPTSTR)MAKEINTRESOURCE(nIDText);
    return (BOOL) ::SendMessage(m_hWnd, TTM_ADDTOOL, 0, (LPARAM)&ti);
}