我有一个包含几页的属性表。大多数页面都有一个或多个编辑控件。大多数控件不是从页面对话框初始化,而是从创建属性表的对话框初始化;然而,有些是在页面对话框中初始化的,它们的行为相同。
一切开始都很好。可以在页面之间移动。所有控件都没有输入焦点。
如果单击属性表页面中的编辑控件之一建立输入焦点,则可以修改该控件。一切似乎都井然有序。
如果随后移动到不同的属性页,则该页中的第一个编辑控件将获得输入焦点,并且该控件中的所有文本都将被选中!此行为适用于所有页面,但具有只读样式的编辑控件的页面除外。之后,可以移回其他页面,并且最初没有选择任何输入焦点行为。
所有页面都处理 PSN_QUERYINITIALFOCUS 通知并通过 SetWindowLong 机制返回零。
这是预期的行为吗?
为什么最初没有给予一些控制?
我在这里的主要兴趣是以某种方式杀死选择。我尝试在 PSN_SETACTIVE 通知中使用 EM_SETSEL 终止选择,但无济于事。
MSDN 在 PSN_QUERYINITIALFOCUS 下说:“否则,返回零,焦点将转到默认控件。” 如何将控件设置为默认值?