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