如何发送向tab控件发送tcn_selchange?

本文展示了一个使用WTL框架实现窗口切换的例子。通过TabControl发送TCN_SELCHANGE通知,触发OnChangeTableHeader函数来显示或隐藏特定窗口。文章包含了消息映射、处理函数及发送消息的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WTL:

a.h:

BEGIN_MSG_MAP_EX(CDlgA)
NOTIFY_HANDLER_EX(IDC_TABCTRL_ID,TCN_SELCHANGE,OnChangeTableHeader)
END_MSG_MAP()

LRESULT OnChangeTableHeader(LPNMHDR pnmh);


a.cpp:



LRESULT CDlgA::OnChangeTableHeader(LPNMHDR pnmh)
{
int nCurSelIndex = m_LoginDlgTab.GetCurSel();
if (-1 == nCurSelIndex)
return 0;


int nIndex = 0;
if (nCurSelIndex == nIndex)
{
if (NULL != pWindow)
pWindow->ShowUI(SW_SHOW);
}
else
{
if (NULL != pWindow)
pWindow->ShowUI(SW_HIDE);
}


return 0;
}


发送消息方式如下:

NMHDR      nmhdr;       
nmhdr.code=TCN_SELCHANGE;       
nmhdr.hwndFrom=m_Tab_Mode.GetSafeHwnd();       
nmhdr.idFrom=IDC_TAB_MODE;         
::SendMessage(this-> GetSafeHwnd(),WM_NOTIFY,MAKELONG(TCN_SELCHANGE,0),(LPARAM)(&nmhdr));   
NMHDR   nmhdr;  
nmhdr.code = TCN_SELCHANGE;        
nmhdr.hwndFrom =   m_pTab.GetSafeHwnd();        
nmhdr.idFrom= m_pTab.GetDlgCtrlID();        
::SendMessage(m_pTab.GetSafeHwnd(),   WM_NOTIFY,MAKELONG(TCN_SELCHANGE,0),   (LPARAM)(&nmhdr));
NMHDR nmhdr; 
nmhdr.hwndFrom= m_TabCtrl.m_hWnd; 
nmhdr.idFrom = IDC_TAB1; 
nmhdr.code = TCN_SELCHANGE; 
SendMessage(WM_NOTIFY ,NULL,(LPARAM) (LPNMHDR) &nmhdr); 




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值