Windows CE 的颜色选择器控件






4.87/5 (9投票s)
为 Windows CE 实现的 Office 97 风格颜色选择器控件。
引言
这是 Chris Maunder 的 Office 97 风格颜色选择器控件[^] 的 Windows CE (PocketPC 2002) 移植版本。代码使用预处理器宏 _WIN32_WCE
进行调整,以支持在 eVC++ 3.0 和 VC++ 6.0 中透明编译。
移植
移植的主要点如下:
通过预编译器使用 _WIN32_WCE #define
,保持了 CE 和桌面版本之间的兼容性。
由于 CE 不支持 WM_NCDESTROY
消息,因此无法动态删除弹出窗口,因此 CE 版本的弹出窗口在 CColourPicker
中静态分配。这需要添加一些属性设置方法。
当用户第二次单击按钮时,弹出窗口将被关闭,假设选择以取消行为结束。
不使用自定义文本按钮来显示 CColorDialog
。该类在 PocketPC 2002 SDK 的 MFC 中不受支持。仍然可以使用内置的 ChooseColor
API,但结果不太理想(请参阅源代码中的注释)。文本已更改为“取消”。
WM_MOUSEMOVE
不用于进行颜色选择。CE 没有鼠标支持,并且让用户拖动笔来开始选择颜色不直观。它已被 WM_LBUTTONDOWN
替换,处理程序代码相同。
此代码已在 PocketPC 2002 平台上进行了测试,在 eVC++ 3.0 的第 3 级中编译时没有错误或警告。
修订
- 2003-02-06:更改了
CColourPopup
的OnKillFocus
处理程序,以便允许弹出窗口在失去焦点时关闭。