Edit Control with Icon and Background Text

Monday Mar 24th 2008 by Marius Bancila

Share:

Explore an edit control that can display an icon and a prompt text on the background (when the edit control has no text).

Introduction

This article presents an edit control that can display an icon and a prompt text on the background (when the edit control has no text). This is most suitable to indicate to the users that an edit control is used to input text that is used for a search.

The image below shows several such edit controls.

The same controls look like the following when text is entered.

Features of the edit control:

Displays an icon on the right side of the control

Displays a prompt text (only when the control has no text)

Changes the color of the prompt text

Changes the font of the prompt text

Implementation

The class implementing this control is called CSymbolEdit and subclasses CEdit. (If you're not familiar with subclassing, a method of customizing the behavior of a window, I suggest you read this article: "Demystifying Subclassing.")

There are two overloads for SetSymbolIcon, one that takes an HICON, and one that takes the ID of a resource. The control is responsible for releasing the icon resource only when the second overload was used. If an HICON was passed, the client of the control must release this resource.

If SetPromptTextColor is not called and a prompt text was set, this prompt text is draw by default with the color RGB(127, 127, 127).

If SetPromptFont is not called and a prompt text was set, this text is drawn with Calibri in italics.