BCG控件---Grid消息响应函数
最新推荐文章于 2023-05-21 08:42:25 发布
原创
最新推荐文章于 2023-05-21 08:42:25 发布
·
7.1k 阅读
·
1
·
4
·
CC 4.0 BY-SA版权
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
文章标签:
#null
#dialog
#class
在处理BCG控件的Grid消息时,尤其是BCGPGN_SELCHANGED消息,需要注意它可能会被触发两次。当Grid嵌入到Dialog中时,直接响应Grid消息可能导致问题。建议使用ON_CLICK或WM_LBUTTONDOWN来替代,但实际情况是这些方法在Dialog上下文中可能无法正常工作。
代码中所使用的Grid控件是:class CGridCtrlBCG : public CBCGPGridCtrl{...}
CGridCtrlBCG m_wndSrvLayer;
该控件中BCGPGN_SELCHANGED 和 BCGPGN_SELCHANGING都会发送两次消息,两次消息的不同地方可以根据a处提到参数区分,第一次值是0,第二次是1。
控件第一次打开后,做selchanged操作时只发送一次消息并且pNMGrid->lParam值为1,所以只需要处理LParam为1 的消息即可。
void CSdhAddServiceLayerDlg::OnSelChangedGrid(NMHDR *pNotifyStruct, LRESULT *pResult)
{
BCGPGRID_NOTIFICATION *pNMGrid = reinterpret_cast
if (NULL != pNMGrid)
{
int iCurCol = pNMGrid->nCol;
if (0 == pNMGrid->lParam || colSel == iCurCol)