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)