TDateTimePicker实际上是封装了由系统提供的SysDateTimePick32控件, 位于ComCtl32.dll中..<br><br>所以一开始遇到这个问题, 首先想到的是, 是否有专用的控件消息, 来设置/读取所谓的"焦点", 但是查了一通帮助, 翻了几遍CommCtrl.pas和CommCtrl.h, 都没找到..<br><br>发鼠标键盘消息也试过, 效果不是很好, 而且我觉得, 这也不是解决问题的好办法, 不是最直接的方法, 只能是不得已而为之..<br><br>我知道此控件内部肯定有变量来记录当前"焦点", 否则, 在绘制的时候, 它怎么知道哪一块显亮呢?<br><br>好在我手上有部分 Windows 2000 的源码, 仔细分析了此控件的窗口过程, 主要是看对WM_PAINT的处理..<br><br>结果验证我之前的许多猜测, 并且得到了"窗口变量"的结构, 然后就有了上面的代码, 并且在我的 Windows 2000 (sp5) 上测试通过..<br><br>但是不能保证在其他系统(ComCtl32.dll版本不同)上也能得到正确的结果, 因为结构的定义可能变化, 所以这也不是个好方法, 慎用!!<br><br>不过, 至少我们知道了, 此控件如何工作的, 并且, 不能设置"焦点", 是它没有提供消息"接口"而已, 所以, 这次尝试还有点意义的 ..