Introduction
This is a port of Chris Maunder's Office 97 style Colour Picker control[^] to Windows CE (PocketPC 2002). The code was adapted using the preprocessor macro _WIN32_WCE
to enable transparent compilation in both eVC++ 3.0 and VC++ 6.0.
Porting
Here are the main points of the port.
Compatibility between CE and Desktop versions has been maintained through the precompiler, using the _WIN32_WCE #define
.
The CE version of the popup is statically allocated in CColourPicker
because CE does not support the WM_NCDESTROY
message, making it impossible to dynamically delete the popup. This required the addition of a number of property set methods.
The popup is dismissed when the user clicks the button a second time, assuming a selection ended with cancel behavior.
The custom text button is not used to show up the CColorDialog
. This class is not supported in MFC for the PocketPC 2002 SDK. One can still use the built in ChooseColor
API, but the results are not very nice (see comment in the source code). The text changed to "Cancel".
WM_MOUSEMOVE
is not used to make the color selection. CE has no mouse support and it would not be intuitive for a user to drag the pen just to start selecting the color. It has been replaced by WM_LBUTTONDOWN
, and the handler code is the same.
This code has been tested in the PocketPC 2002 platform, compiles with no errors or warnings in Level 3 of eVC++ 3.0.
Revisions
- 2003-02-06: Changed the
OnKillFocus
handler of CColourPopup
in order to allow the popup to close when it loses focus.