前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MFC若干小问题解决方案(1)

MFC若干小问题解决方案(1)

作者头像
帘卷西风
发布2018-08-03 16:19:00
6290
发布2018-08-03 16:19:00
举报
文章被收录于专栏:帘卷西风的专栏

一、在浮动面板中动态创建CButton之后,按钮初始状态变灰的问题

代码语言:javascript
复制
afx_msg void OnUpdateBtn(CCmdUI* pCmdUI);

ON_UPDATE_COMMAND_UI(IDC_BROWSER,  &ImageInfoView::OnUpdateBtn)

void ImageInfoView::OnUpdateBtn(CCmdUI* pCmdUI)   

{      
    pCmdUI->Enable(true);
}

二、CMFCPropertyGridCtrl控件滚动到指定位置

代码语言:javascript
复制
WPARAM wparam = MAKEWPARAM(SB_THUMBPOSITION, pos);    
pList.SendMessage(WM_VSCROLL, wparam, 0);

三、CMFCPropertyGridCtrl控件没有子属性点击事件

1、新建一个子类CMFCPropertyGridCtrlEX继承CMFCPropertyGridCtrl

2、声明和定义子属性点击事件的消息

代码语言:javascript
复制
extern UINT AFX_WM_PROPERTY_COMMAND_CLICKED;
UINT AFX_WM_PROPERTY_COMMAND_CLICKED = ::RegisterWindowMessage(_T("AFX_WM_PROPERTY_COMMAND_CLICKED"));

3、响应WM_LBUTTONUP消息

代码语言:javascript
复制
afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
ON_WM_LBUTTONUP()      
void CMFCPropertyGridCtrlEx::OnLButtonUp(UINT nFlags, CPoint point) 
{
     CMFCPropertyGridCtrl::OnLButtonUp(nFlags, point);
     CMFCPropertyGridProperty* pProp =  HitTest(point); 
     if (pProp)
     {
         GetOwner ()->SendMessage(AFX_WM_PROPERTY_COMMAND_CLICKED, GetDlgCtrlID (), LPARAM(pProp));
     }
}

4、然后就可以像AFX_WM_PROPERTY_CHANGED事件一样监听了

代码语言:javascript
复制
ON_REGISTERED_MESSAGE(AFX_WM_PROPERTY_COMMAND_CLICKED, &ImageInfoView::OnPropertyClicked)
LRESULT ImageInfoView::OnPropertyClicked(WPARAM wParam, LPARAM lParam)
{
     CMFCPropertyGridProperty* pProp = (CMFCPropertyGridProperty*)lParam;
     if (pProp)
     {
         //do something
     }
     return 0;
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2012年07月19日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、在浮动面板中动态创建CButton之后,按钮初始状态变灰的问题
  • 二、CMFCPropertyGridCtrl控件滚动到指定位置
  • 三、CMFCPropertyGridCtrl控件没有子属性点击事件
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档