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

  • According to a 2014 Javelin Strategy & Research Study, there is a new victim of fraud every two seconds – and that's just in the U.S. With identity theft and consumer fraud rising, and more frequent and sizable data breaches in the news, financial institutions need to work harder than ever to protect their customers and their business. Download this white paper to learn how you can use multi-channel communications to minimize the costs of fraud while also increasing customer loyalty.

  • Today, users, applications, and data exist in more places than ever before, creating an unprecedented challenge for IT. How can IT achieve the flexibility and agility it needs to offer multiple types of applications in multiple locations? To better serve business demands for information everywhere, enterprises must develop new strategies for optimizing multiple kinds of networks. Read this white paper to learn how hybrid networks provide an unprecedented level of network dynamism, enterprise agility, and the …

Most Popular Programming Stories

More for Developers

RSS Feeds

Thanks for your registration, follow us on our social networks to keep up-to-date