It seems that disabling a checkbox through the Disabled property also grays out the caption. Does anyone know how to keep the caption enabled but disable input?
EDIT
Based on Paul’s idea, I’ve done the following (now that I figured out that the static label and checkbox has a transparent property).
- Added a couple checkboxes.
- Set the checkbox captions to nothing.
- Set checkbox transparent property to true.
- Add a couple labels beside checkbox.
- Change transparent property of labels to true.
- Expand the checkboxes to encompass the label (so clicking on the label will trigger the check box to change).
But, this gives me very weird results. When I expand the checkbox over the label, it covers the label even though both are transparent. Again, I’m new to MFC (I’m a C# guy) so maybe I’m missing something.
The quick and simple workaround is to not use the checkbox’ text member (set it to ""), size down the checkbox to just the click-able square and simply place a label next to the checkbox.
To get a little fancier you could create a custom control that hosts a checkbox and a label which would enable reuse. It wold also be easier way to make the custom checkbox behave as expected for the end user e.g. being able to set the checkbox to selected or unselected when the label gets clicked as well as the checkbox itself. (The simple solution would not automatically relate the label and the checkbox. You could code that within the form but that might get ugly fast if you tend to reuse the paradigm.)
You could also look around for a 3rd-party checkbox control (there are numerous MFC UI libraries out there) but that might be overkill.
See this pseudo-layout:
You have this: (lone check box control)
Lay it out like this: (label control aligned right next to the checkbox)
Handle the clicked event of the label with something like: