代码中所使用的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<BCGPGRID_NOTIFICATION *>(pNotifyStruct);
if (NULL != pNMGrid)
{
int iCurCol = pNMGrid->nCol;
if (0 == pNMGrid->lParam || colSel == iCurCol)
BCG控件---Grid消息响应函数
最新推荐文章于 2022-04-03 13:02:44 发布
在处理BCG控件的Grid消息时,尤其是BCGPGN_SELCHANGED消息,需要注意它可能会被触发两次。当Grid嵌入到Dialog中时,直接响应Grid消息可能导致问题。建议使用ON_CLICK或WM_LBUTTONDOWN来替代,但实际情况是这些方法在Dialog上下文中可能无法正常工作。


4240

被折叠的 条评论
为什么被折叠?



