我想使用CDateTimeCtrl
来允许用户选择非周末日期。因此,如果用户增加一天(通过按键) - 并且发现结果日落在周末 - 那么控件应该跳到下一个星期一(不要让关于月份变化的问题分散你的注意力,这不是有关)。
通常这不是问题:当我处理DTN_DATETIMECHANGE
通知时,我可以检查新的日期/时间,如果发现它是周末,那么我可以在控件上调用SetTime
来更新日期。 但是,如果我将样式设置为DTS_SHOWNONE
,则此SetTime
调用会导致控件将输入“焦点”(松散使用的术语)移至“无”复选框,例如远离白天的田野。这可以防止用户使用键盘输入继续递增日期,除非他们随后使用右箭头键重置'焦点',这只是讨厌。
我非常希望防止这种焦点转移发生。它甚至可能吗?
答案 0 :(得分:2)
不确定,但有一种可行的解决方法:
keybd_event(VK_RIGHT, 0, 0, NULL);
keybd_event(VK_RIGHT, 0, KEYEVENTF_KEYUP, NULL);