CMFCPropertyGridProperty和CEdit文本自动选择

CMFCPropertyGridProperty和CEdit文本自动选择,mfc,cedit,Mfc,Cedit,我读过的内容(当用户选择编辑控件时,……并使用反向视频突出显示其文本),如果我理解正确,单击时,CEdit应突出显示(我希望与选择相同)文本 我将CMFCPropertyGridCtrl与CMFCPropertyGridProperty一起使用。但当我单击网格(一个属性值)时,它不会选择任何内容 我发现:属性在内部创建CEdit,用于手动编辑属性值。它被创建,它的字体被设置,等等。然后调用SetFocus,然后更新窗口-这会重新绘制编辑框,并在第一个字符之前设置光标。在此之后,再次触发鼠标单击以

我读过的内容(当用户选择编辑控件时,……并使用反向视频突出显示其文本),如果我理解正确,单击时,CEdit应突出显示(我希望与选择相同)文本

我将CMFCPropertyGridCtrl与CMFCPropertyGridProperty一起使用。但当我单击网格(一个属性值)时,它不会选择任何内容

我发现:属性在内部创建CEdit,用于手动编辑属性值。它被创建,它的字体被设置,等等。然后调用SetFocus,然后更新窗口-这会重新绘制编辑框,并在第一个字符之前设置光标。在此之后,再次触发鼠标单击以单击编辑框-这似乎是正确的。但未选择任何文本

我还尝试创建自己的属性类,它派生自CMFCPropertyGridProperty。在这一切之后,我给塞塞尔打了电话。它确实选择了我的文本,但它只是取消选择它(在下一次重画中)。我还实现了重画后只选择从开始到鼠标单击的文本(当我在第4个字符后单击时,只选择了前4个字符)

我的问题是:

CEdit真的应该在第一次鼠标点击后自动选择文本吗?(你有一些资源吗?)

难道你不知道,为什么这在CMFCPropertyGridProperty中不起作用


CMFCPropertyGridCtrl和CMFCPropertyGridProperty可以在mfc源代码目录中的afxpropertygridctrl.h/.cpp中找到。

因此我最终发现:

CEdit在单击文本后可能不会选择文本。这必须通过例如SetSel功能手动完成

但在CMFCPropertyGridCtrl中,如果单击,它将传递给CMFCPropertyGridProperty,并且会重复单击。所以如果我使用SetSel,它会取消选择文本。因此,我必须编写自己的类来继承CMFCPropertyGridProperty并跳过这一步(再次单击)。设置focus和setel就足够了(这也将光标设置为CEdit窗口)