vs2010创建的多文档带属性栏的应用,属性栏中的combox不能手动指定选择项的问题

snoyfl 2012-05-03 10:05:27
我用vs2010自动生成的多文档带属性栏的工程,属性栏内通过添加项自动生成了类似combox的下拉框,当我通过代码修改下拉框内的项目时,内容不会立刻更新,必须当属性栏失去焦点后再得到焦点,下拉框才会更新,并且我无法指定我想选择的某一项,把里面的函数都试了一遍,msdn也翻了两天了,都找不到有效地办法,请高手们指点
关于属性框中的下拉列表代码如下

CMFCPropertyGridCtrl m_wndPropList;//属性栏
CMFCPropertyGridProperty* pmyProp; //属性栏中的下拉框属性
pmyProp=new CMFCPropertyGridProperty(_T("数量"), (_variant_t) 1l,_T("某个数量"));
m_wndPropList.AddProperty(pmyProp); //将属性添加到属性栏中

当通过按钮点击事件触发下面两句话时,属性栏不会更新下拉框内容,即使我用了各种redraw都不行,除非下拉框失去焦点后再获得焦点,下拉框中才会出现下面两个选项
但是如果是普通的文本框属性,非下拉框的形式的话,通过redraw函数都可以更新到数据

pmyProp->AddOption("1111");
pmyProp->AddOption("2222");
pmyProp->Redraw();

问题1:如何通过代码让他强制更新下拉框
问题2:如何通过代码手动指定选项,例如添加完项目后,动态选择第二项
...全文
271 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
songjinn 2012-10-07
  • 打赏
  • 举报
回复
问题1:如何通过代码让他强制更新下拉框
SetValue();
问题2:如何通过代码手动指定选项,例如添加完项目后,动态选择第二项
默认应该是这样的,没有具体研究过。
snoyfl 2012-09-03
  • 打赏
  • 举报
回复
当然是初始化的时候或者show的时候,或者直接setvalue后调用属性床后的重绘函数
tt_cainiao 2012-08-24
  • 打赏
  • 举报
回复
嘿嘿 请问setvalue写在哪里啊??我把他写在LRESULT CPropertiesWnd::OnPropertyChanged (WPARAM,LPARAM lParam)这里 可是我发现这里根本就转换不了commbo上面选择的值。。。
snoyfl 2012-06-04
  • 打赏
  • 举报
回复
来个人接分行吗?看来这分都没人想要啊
snoyfl 2012-06-01
  • 打赏
  • 举报
回复
麻烦随便来个人接分啊,我这没法结贴啊
snoyfl 2012-05-03
  • 打赏
  • 举报
回复
刚才又试了半天,发现只有用setvalue()的方式才能强制这个属性段更新,那就代表上面两个问题都可以用这个方法解决了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧