要通过对话框动态设置Tab缩进字符大小 View类是CRichEditCtrl 问题整理如下: 
1)如何通过对话框设置来改变文档的Tab缩进字符大小(默认为4个字符) 
2)在View中使用GetParaFormat,返回的cTabCount和rgxTabs[]中总是0; 
  dwMask已设为PFM_TABSTOPS; 
3)在View中使用SetParaFormat,返回总是false; 不知道是不是放的位置不对,或是要用其他方法?请教各位!

解决方案 »

  1.   


    memset( &m_pf, 0, sizeof(m_pf) );
    m_pf.cbSize = sizeof(m_pf); m_pf.dwMask = PFM_TABSTOPS ;
    m_pf.cTabCount = 5; // Set tab stops every half inch (1 inch=1440 twip)
    for( int itab = 0 ; itab < m_pf.cTabCount; itab++ )
    m_pf.rgxTabs[itab] = (itab+1) * 1440 / 2;

    bool b = SetParaFormat( m_pf );
    b返回的总是false
      

  2.   

    代码看起来没问题,你是不是使用的PARAFORMAT2结构,而RichEdit用的1.0?
      

  3.   

    用的1.0的想问下 放的位置有问题吗? 上面代码是OnCreate中设置的 
    我在其他一些位置SetParaFormat返回false
      

  4.   

    m_pf是PARAFORMAT还是PARAFORMAT2类型?如果是1.0,应该用PARAFORMAT类型。
      

  5.   


    class CToyView : public CRichEditCtrl
    {
    public: /**
    */
    CToyView();
    ~CToyView();       ..... PARAFORMAT m_pf;
      

  6.   

    可以正常显示,我在这段代码前面还设置了CHARFORMAT,这个改变有效,
    设置PARAFORMAT时就没效果,显示的是CRichEditCtrl默认的Tab大小和段落格式
      

  7.   


    已经解决了 是前面 SetTextMode(TM_PLAINTEXT) 设置的问题
    还是很感谢你的回复