Static text to display long filenames with ellipses

The CStaticFilespec control is a lightweight class suitable for displaying long filespecs
that may need to be truncated or compressed, in order to fit the size of the display.
Here’s and example of what the control looks like when used in a dialog box.

CStaticFilespec example

By default, CStaticFilespec supports 2 drawing styles: DT_END_ELLIPSIS and
DT_PATH_ELLIPSIS. The former displays a truncated filespec with trailing
ellipses while the latter adds embedded ellipses to a compressed filespec.

Using CStaticFilespec in a dialog is quite simple:

  1. Include CStaticFilespec.h in your dialog class’ header file.

  2. Add member variables of type CStaticFilespec for every static text
    control you want to subclass.

  3. Subclass the static text controls in your dialog’s OnInitDialog() method
    and set the controls’ style.


      m_wndStaticFileEnd.SubclassDlgItem (IDC_FILE_END, this);
      m_wndStaticFilePath.SubclassDlgItem (IDC_FILE_PATH, this);
      m_wndStaticFilePath.SetPath (TRUE);

You can also use any other DT_ drawing style you like. For example, to draw right
justified text that is vertically centered and has trailing ellipses, do:

  m_wndStaticText.SubclassDlgItem (IDC_STATIC_TEXT, this);
  m_wndStaticText.SetFormat (DT_RIGHT | DT_VCENTER);
  m_wndStaticText.SetWindowText ("d:\\There\\Is\\Always\\One\\More\\Bug.cpp");

Download source files (3 K) CStaticFilespec.cpp, CStaticFilespec.h

Download example project (14 K) (includes sources)


More by Author

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Must Read