CToolTipCtrl的ON_NOTIFY_EX无法响应
继承了public CButton
class CTankControl : public CButton
自绘控件
界面总是显示“Tank Control”,鼠标点一下后,就啥都不显示了
打断点,可以进入m_ttcTips.RelayEvent(pMsg);
但是无法进入SetTipText
class CTankControl : public CButton
自绘控件
void CTankControl::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
{……}
int CTankControl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CButton::OnCreate(lpCreateStruct) == -1)
return -1;
EnableToolTips();
m_ttcTips.Create(this, TTS_ALWAYSTIP);
m_ttcTips.Activate(TRUE);
m_ttcTips.AddTool(this, "Tank Control");
return 0;
}
BOOL CTankControl::PreTranslateMessage(MSG* pMsg)
{
if(pMsg->message== WM_LBUTTONDOWN ||
pMsg->message== WM_LBUTTONUP ||
pMsg->message== WM_MOUSEMOVE)
{
m_ttcTips.RelayEvent(pMsg);
}
return CButton::PreTranslateMessage(pMsg);
}
BOOL CTankControl::SetTipText(UINT nID, NMHDR *pTTTStruct, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pTTTStruct;
UINT nForm = pTTTStruct->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
nForm = ::GetDlgCtrlID((HWND)nForm);
if (nForm)
{
strcpy(pTTT->lpszText, "Test");
return TRUE;
}
}
return FALSE;
}
界面总是显示“Tank Control”,鼠标点一下后,就啥都不显示了
打断点,可以进入m_ttcTips.RelayEvent(pMsg);
但是无法进入SetTipText
...全文
相关推荐
MFC按钮控件
按钮的响应通常通过消息映射机制实现,例如,当用户点击按钮时,会发送BN_CLICKED消息,开发者可以通过ON_BN_CLICKED宏来响应这个消息。接着,我们来讨论“透明按钮”。
博客-win32 工具提示ToolTip控件的使用
创建`ToolTip`控件的第一步是调用`CreateWindowEx`函数,指定`TOOLTIPS_CLASS`作为类名,设置必要的窗口风格,如`WS_POPUP`和`WS_EX_TOPMOST`,以及回调函数
MFC工具条和状态栏属性设置
)ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA, 0, 0xFFFF, OnToolTipText)```这里定义了两个宏来响应Unicode和ASCII版本的`TTN_NEEDTEXT
CListCtrl控件代码大集合
**扩展样式**:CListCtrl支持许多扩展样式,如LVS_EX_FULLROWSELECT(全行选择)、LVS_EX_GRIDLINES(网格线)等,它们能增强用户体验和控件的外观。10.
MFC Combox中支持CheckBox
- 在`CCheckComBox`类中,我们需要响应`ON_NOTIFY_EX_RANGE(TTN_NEEDTEXT, 0, 0xFFFF)`消息,这是ToolTip需要文本时发送的。


界面
