【问题标题】:CMFCPropertyGridProperty with multi line edit box带有多行编辑框的 CMFCPropertyGridProperty
【发布时间】:2011-04-07 21:36:06
【问题描述】:

如何使用编辑框创建多行属性?我还需要一个在多行框中显示文本的属性。

CMFCPropertyGridProperty* pGroup1 = new CMFCPropertyGridProperty(_T("Appearance"));
pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Name"), (_variant_t) _T(""), _T("Specifies the text that will be displayed in the property")));
pGroup1->AddSubItem(new CMFCPropertyGridProperty(_T("Comments"), (_variant_t) _T(""), _T("Specifies the text that will be associated with the property")));
m_wndPropList.AddProperty(pGroup1);

【问题讨论】:

    标签: c++ mfc mfc-feature-pack


    【解决方案1】:

    MFC 属性网格中似乎没有实现多行属性。您可以使用按钮创建自定义属性,并在用户单击此按钮时显示您自己的带有多行编辑控件的对话框。

    【讨论】:

      【解决方案2】:

      您可以像在旧式编辑器中一样进行操作(替换“\n”、“\n”,以便用户可以将行除以“\n”):

      初始化:

      CString s = m_initial_params.m_info;
      s.Replace("\n","\\n");
      CMFCPropertyGridProperty* pProp = new 
      CMFCPropertyGridProperty(misc_get_str_my(IDS_INFO), 
                  (_variant_t) s, misc_get_str_my(IDS_INFO));
      pProp->SetData(E_PROPERTY_DATA::OBJ_INFO);
      pPropCtrl->AddProperty(pProp);
      

      阅读价值:

      int nProperty = pProperty->GetData();
      if(E_PROPERTY_DATA::OBJ_INFO == nProperty)
      {
          m_initial_params.m_info = pProperty->GetValue().bstrVal;
          m_initial_params.m_info.Replace("\\n","\n");
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多