175 lines
9.9 KiB
C++
175 lines
9.9 KiB
C++
// =============================================================================
|
||
// Class Implementation : COXContextHelpDialog
|
||
// =============================================================================
|
||
//
|
||
// Source file : OXContextHelpDialog.cpp
|
||
// Version: 9.3
|
||
// This software along with its related components, documentation and files ("The Libraries")
|
||
// is ?1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is
|
||
// governed by a software license agreement ("Agreement"). Copies of the Agreement are
|
||
// available at The Code Project (www.codeproject.com), as part of the package you downloaded
|
||
// to obtain this file, or directly from our office. For a copy of the license governing
|
||
// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900.
|
||
// //////////////////////////////////////////////////////////////////////////
|
||
|
||
#include "stdafx.h"
|
||
#include "OXContextHelpDialog.h"
|
||
#include "UTB64Bit.h"
|
||
|
||
#ifdef _DEBUG
|
||
#undef THIS_FILE
|
||
static char BASED_CODE THIS_FILE[] = __FILE__;
|
||
#endif
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// OXContextHelpDialog
|
||
IMPLEMENT_DYNAMIC(COXContextHelpDialog, CDialog)
|
||
|
||
COXContextHelpDialog::COXContextHelpDialog()
|
||
: m_bTooltipActive(TRUE)
|
||
{
|
||
}
|
||
|
||
COXContextHelpDialog::COXContextHelpDialog(UINT nIDTemplate, CWnd* pParentWnd /* = NULL */)
|
||
: CDialog(nIDTemplate, pParentWnd),
|
||
m_bTooltipActive(TRUE)
|
||
{
|
||
}
|
||
|
||
COXContextHelpDialog::COXContextHelpDialog(LPCTSTR lpszTemplateName, CWnd* pParentWnd /* = NULL */)
|
||
: CDialog(lpszTemplateName, pParentWnd),
|
||
m_bTooltipActive(TRUE)
|
||
{
|
||
}
|
||
|
||
COXContextHelpDialog::~COXContextHelpDialog()
|
||
{
|
||
}
|
||
|
||
#ifdef _DEBUG
|
||
void COXContextHelpDialog::AssertValid() const
|
||
{
|
||
CDialog::AssertValid();
|
||
}
|
||
|
||
void COXContextHelpDialog::Dump(CDumpContext& dc) const
|
||
{
|
||
CDialog::Dump(dc);
|
||
}
|
||
#endif //_DEBUG
|
||
|
||
BOOL COXContextHelpDialog::SetTooltipActive(BOOL bActive /* = TRUE */)
|
||
{
|
||
m_bTooltipActive = bActive;
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
BOOL COXContextHelpDialog::GetTooltipActive()
|
||
{
|
||
return m_bTooltipActive;
|
||
}
|
||
|
||
BEGIN_MESSAGE_MAP(COXContextHelpDialog, CDialog)
|
||
//{{AFX_MSG_MAP(COXContextHelpDialog)
|
||
//}}AFX_MSG_MAP
|
||
ON_MESSAGE(WM_HELP, OnHelp)
|
||
ON_MESSAGE(WM_CONTEXTMENU, OnHelpContextMenu)
|
||
END_MESSAGE_MAP()
|
||
|
||
|
||
/////////////////////////////////////////////////////////////////////////////
|
||
// COXContextHelpDialog message handlers
|
||
|
||
BOOL COXContextHelpDialog::PreTranslateMessage(MSG* pMsg)
|
||
{
|
||
// Is this dialog created ?
|
||
if (m_hWnd != NULL)
|
||
{
|
||
// Is this message meant for this dialog or for one of his child controls ?
|
||
if (pMsg->hwnd == m_hWnd || ::IsChild(m_hWnd, pMsg->hwnd))
|
||
{
|
||
// Is this tooltip already created && do we really want tooltips ?
|
||
if (m_Tooltip.m_hWnd != NULL && m_bTooltipActive)
|
||
{
|
||
// PSS ID Number: Q143313 for VC++ 4.0 & 4.1
|
||
// After a modal dilaog has been popped up, MFC disables the tooltips
|
||
// but does not activated them again, so activate explicitely every time
|
||
m_Tooltip.Activate(TRUE);
|
||
m_Tooltip.RelayEvent(pMsg) ;
|
||
}
|
||
}
|
||
}
|
||
|
||
return CDialog::PreTranslateMessage(pMsg);
|
||
}
|
||
|
||
// v9.3 - update 03 - 64-bit - return value was declared as LONG - changed to LRESULT
|
||
LRESULT COXContextHelpDialog::OnHelp(UINT_PTR, LONG_PTR lParam)
|
||
{
|
||
ASSERT(AfxGetApp() != NULL);
|
||
DWORD_PTR dwID=(DWORD_PTR)(LPVOID)GetHelpIDs();
|
||
ASSERT(dwID);
|
||
|
||
::WinHelp( (HWND)((LPHELPINFO)lParam)->hItemHandle, AfxGetApp()->m_pszHelpFilePath,
|
||
HELP_WM_HELP, dwID);
|
||
|
||
return 0;
|
||
}
|
||
|
||
// v9.3 - update 03 - 64-bit - return value was declared as LONG - changed to LRESULT
|
||
LRESULT COXContextHelpDialog::OnHelpContextMenu(UINT_PTR wParam, LONG_PTR)
|
||
{
|
||
ASSERT(AfxGetApp() != NULL);
|
||
DWORD_PTR dwID=(DWORD_PTR)(LPVOID)GetHelpIDs();
|
||
ASSERT(dwID);
|
||
|
||
::WinHelp((HWND)wParam, AfxGetApp()->m_pszHelpFilePath,
|
||
HELP_CONTEXTMENU, dwID);
|
||
|
||
return 0;
|
||
}
|
||
|
||
BOOL COXContextHelpDialog::OnInitDialog()
|
||
{
|
||
CDialog::OnInitDialog();
|
||
|
||
// Deriving from this class only makes sense if the extended style WS_EX_CONTEXTHELP
|
||
// was used to create this dialog
|
||
ASSERT((::GetWindowLongPtr(m_hWnd, GWL_EXSTYLE) & WS_EX_CONTEXTHELP) == WS_EX_CONTEXTHELP);
|
||
|
||
VERIFY(SetupToolTips());
|
||
|
||
return TRUE; // return TRUE unless you set the focus to a control
|
||
// EXCEPTION: OCX Property Pages should return FALSE
|
||
}
|
||
|
||
BOOL COXContextHelpDialog::SetupToolTips()
|
||
// --- In :
|
||
// --- Out :
|
||
// --- Returns : Succeeded or not
|
||
// --- Effect : Creates and initializes tooltips for this dialog
|
||
{
|
||
// Create/Setup Tooltips
|
||
BOOL bSuccess = m_Tooltip.Create(this);
|
||
ASSERT(bSuccess);
|
||
if (bSuccess)
|
||
{
|
||
if (m_bTooltipActive)
|
||
m_Tooltip.Activate(TRUE);
|
||
|
||
AdjustToolTips();
|
||
}
|
||
|
||
return bSuccess;
|
||
}
|
||
|
||
BOOL COXContextHelpDialog::AdjustToolTips()
|
||
// --- In :
|
||
// --- Out :
|
||
// --- Returns : Succeeded or not
|
||
// --- Effect : Adjusts the tooltips for this dialog
|
||
{
|
||
return TRUE;
|
||
}
|
||
|