Changing tab stops


The rich edit control has tab stops set every half inch by default. The tab stop is a paragraph attribute and you can change it by changing the paragraph format. The tab stop setting applies to the current selection, and if nothing is selected, the format will apply to the new text inserted at that point. The following code sets the tab stop to every inch.

We set the cTabCount to MAX_TAB_STOPS which is defined by Windows. When you specify the value for the tab stops, you specify absolute values. For instance, the first stop at = inch, the second at 1 inch, the third at 1= inch and so forth. Also, the values are specified in twips. A twip is 1/20 of a point and a point is 1/72 of an inch. That is, an inch is 1440 twips.

Although, we specify all the tab stops, you may choose to change only one or just thefirst few of the tab stops. The remainder of the tab stops would then be at the = inch interval.

	PARAFORMAT pf ;
	pf.cbSize = sizeof(PARAFORMAT);
	pf.dwMask = PFM_TABSTOPS ;
	pf.cTabCount = MAX_TAB_STOPS;
	// Set tab stops every inch (=1440 twip)
	for( int itab = 0 ; itab < pf.cTabCount  ; itab++ )
		pf.rgxTabs[itab] = (itab+1) * 1440 ;	
	SetParaFormat( pf );



Comments

  • How to get to jump five char with "tab"

    Posted by Legacy on 08/05/2002 12:00am

    Originally posted by: kenerl

    and how to get to jump two lines with "return"
    

    Reply
  • Initializing rich edit control at windows 2000.

    Posted by Legacy on 12/04/2000 12:00am

    Originally posted by: D

    in windows 2000, the control has a lot of problems.
    GetRtf, SetRtf, using the control with tabs, etc.

    How do i intialize the control in windows 2000?

    Reply
  • RichEdit 3.0 understands atbout tabs in 'plain' mode

    Posted by Legacy on 08/22/2000 12:00am

    Originally posted by: Petter Hesselberg

    RichEdit 3.0 supports the EM_SETTABSTOPS message; RichEdit 1.0 and RichEdit 2.0 do not. RichEdit 3.0 is only available with Windows 2000. It still resides in a DLL named Riched20.dll, though; see http://msdn.microsoft.com/library/psdk/winui/richedit_9d2r.htm

    Reply
  • This only works on the selected text. Example for full text :

    Posted by Legacy on 07/01/1999 12:00am

    Originally posted by: Franky Braem

    The code on the article only works when there is a text 
    
    selected in the view. This is an example for setting the
    tabs for the entire text :

    long lOldX;
    long lOldY;

    CRichEditCtrl &EditControl = GetRichEditCtrl();
    EditControl.GetSel(lOldX, lOldY);
    EditControl.HideSelection(TRUE, FALSE);
    EditControl.SetSel(0, -1); // Full selection

    PARAFORMAT pf;
    pf.cbSize = sizeof(PARAFORMAT);
    pf.dwMask = PFM_TABSTOPS;
    pf.cTabCount = MAX_TAB_STOPS;
    for(int i = 0; i < pf.cTabCount; i++)
    pf.rgxTabs[i] = (i + 1) * 1440;
    SetParaFormat(pf);

    EditControl.SetSel(lOldX, lOldY);
    EditControl.HideSelection(FALSE, FALSE);

    Reply
  • Adding "Center, Right, and Decimal tabs" in a RichEdit control?

    Posted by Legacy on 04/22/1999 12:00am

    Originally posted by: Bryan Street

    I'm trying to create a CRichEditCtrl that supports other tab
    alignments: Center, Right, Decimal - like most word processors.
    I don't know where to start. Any suggestions?

    Thanks!

    Reply
  • Does not work in plain text mode

    Posted by Legacy on 02/16/1999 12:00am

    Originally posted by: Petter Hesselberg

    You can set the rich edit control to plain text mode by sending the EM_SETTEXTMODE message with a TM_PLAINTEXT parameter. After this, the EM_SETPARAFORMAT message returns 0, indicating failure, and no tab stops are changed. The EM_SETTABSTOPS message doesn't work either (well, it's not supposed to, so no surprises there).

    In fact, I haven't found *any* way to change the tab settings on a rich edit control in plain text mode. Ideas, anybody?

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • When it comes to desktops – physical or virtual – it's all about the applications. Cloud-hosted virtual desktops are growing fast because you get local data center-class security and 24x7 access with the complete personalization and flexibility of your own desktop. Organizations make five common mistakes when it comes to planning and implementing their application management strategy. This eBook tells you what they are and how to avoid them, and offers real-life case studies on customers who didn't let …

  • Live Event Date: May 6, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT While you likely have very good reasons for remaining on WinXP after end of support -- an estimated 20-30% of worldwide devices still are -- the bottom line is your security risk is now significant. In the absence of security patches, attackers will certainly turn their attention to this new opportunity. Join Lumension Vice President Paul Zimski in this one-hour webcast to discuss risk and, more importantly, 5 pragmatic risk mitigation techniques …

Most Popular Programming Stories

More for Developers

Latest Developer Headlines

RSS Feeds