我在这里读到的内容(当用户选择一个编辑控件时,....并使用反向视频突出显示其文本),如果我理解正确,CEdit 应该突出显示(我希望它与选择相同)我单击时的文本在上面。
我将 CMFCPropertyGridCtrl 与 CMFCPropertyGridProperty 一起使用。但是当我点击网格(一个属性值)时,它没有选择任何东西。
我发现:属性在内部创建 CEdit,用于手动编辑属性值。它已创建,其字体已设置等。然后调用 SetFocus 并在 UpdateWindow 之后 - 这将重绘编辑框并将光标设置在第一个字符之前。在此之后,再次触发鼠标单击以单击编辑框 - 这似乎是正确的。但是没有选择文本。
我还尝试创建自己的属性类,它派生自 CMFCPropertyGridProperty。在这一切之后,我已经调用了 SetSel。它确实选择了我的文本,但随后它只是取消选择它(在下一次重绘中)。我还实现的是,在重绘之后,只选择了从开始到鼠标单击的文本(当我在第 4 个字符之后单击时,只选择了前 4 个字符)。
我的问题:
CEdit真的应该在第一次鼠标点击后自动选择文本吗?(你有一些资源吗?)
你不知道,为什么这在 CMFCPropertyGridProperty 中不起作用?
CMFCPropertyGridCtrl 和 CMFCPropertyGridProperty 可以在 mfc 源代码目录的 afxpropertygridctrl.h/.cpp 中找到。