Visual c++ MFC功能包-如何更新属性网格控件

Visual c++ MFC功能包-如何更新属性网格控件,visual-c++,mfc,mfc-feature-pack,Visual C++,Mfc,Mfc Feature Pack,我是MFC新手,对MFC功能包的新特性有点困惑。通过向导,我现在有了一个看起来像IDE的应用程序——左侧有一个可固定的文件资源管理器,右侧有一个可固定的属性窗口。我可以通过on_WM_lbuttondblck和GetItemText在文件浏览器窗口中获取所选项目 问题: 单击“文件资源管理器”窗口中的项目后,应更新“属性”窗口。我点击树控件中的一个项目按钮,属性窗口应该显示图像、字体和颜色,我怎么做?如何更新propertygridCtrl的内容?要填充属性网格,请查看向导生成的内容。您需要为“

我是MFC新手,对MFC功能包的新特性有点困惑。通过向导,我现在有了一个看起来像IDE的应用程序——左侧有一个可固定的文件资源管理器,右侧有一个可固定的属性窗口。我可以通过on_WM_lbuttondblck和GetItemText在文件浏览器窗口中获取所选项目

问题:
单击“文件资源管理器”窗口中的项目后,应更新“属性”窗口。我点击树控件中的一个项目按钮,属性窗口应该显示图像、字体和颜色,我怎么做?如何更新propertygridCtrl的内容?

要填充属性网格,请查看向导生成的内容。您需要为“item button”单击事件设置一个处理程序,清除网格内容,然后再次填充它。这似乎是一个显而易见的答案,所以可能我误解了这个问题。

我不明白你的困难在哪里。只要有一个从CMFCPropertyGrid派生的类,在它上面添加一个公共成员函数来更新它的数据,只有一个参数。从“文件资源管理器”窗口调用该函数,并将所选元素作为参数


也许您选择了错误的方法来处理用户正在更改所选项目的事实?我不知道您的文件资源管理器控件是什么类,但我建议您使用与更改的项目相关的内容,而不是单击或LButton,因为所选项目可以通过其他方式更改,即箭头键

这正是背后的逻辑。我能够通过void CPropertiesWnd::OnProperties1清除和填充网格内容,它在消息映射上作为on COMMANDID\u PROPERTIES1,OnProperties1调用。这意味着我希望在单击树项目后调用CViewTree类中的OnProperties1。如何调用afx_msg void OnProperties1?呃,像调用所有其他方法和函数一样调用它:OnProperties1?它和其他函数一样,只是一个函数,您可以手动调用它,即使它也是从消息处理程序调用的?六羟甲基三聚氰胺六甲醚。。。但是,如果您从另一个类调用它,它就不会以这种方式工作。您肯定会遇到错误…请准确说明您遇到的错误。前面用afx_msg声明的函数是普通函数,您不能称它们为“像函数”——它们是函数。afx_msg在MFC的最新版本中甚至没有做任何您必须使用的事情,因为您正在使用功能包。afx_msg是预处理器“删除”的空定义。只要您的函数是公共函数,您就可以从任何地方调用它,显然,您可以使用正确的参数调用它,但像您这样的消息处理程序不接受参数。