我所读到的这里 (当用户选择一个编辑控件,.并通过使用反向视频突出显示它的文本),如果我理解正确,CEdit应该突出显示(我希望它是相同的)文本时,我点击它。
我将CMFCPropertyGridCtrl与CMFCPropertyGridProperty结合使用。但是当我点击网格(一个属性值)时,它不会选择任何东西。
我发现:属性在内部创建CEdit,用于手动编辑属性值。它被创建,它的字体被设置等等。然后调用SetFocus,在那个UpdateWindow之后-这个重新绘制编辑框和设置光标在第一个字符之前。在此之后,鼠标单击再次引起点击编辑框-这似乎是正确的。但是没有选择文本。
我还尝试创建自己的property类,它是从CMFCPropertyGridProperty派生的。在这一切之后,我给SetSel打了电话。它确实选择了我的文本,但它只是取消了它(在下一次重绘)。我还实现的是,在重绘后,只选择了从开始到鼠标单击的文本(当我单击第4个字符后,只选择了前4个字符)。
我的问题:
CEdit真的应该在鼠标第一次点击后选择自动文本吗?(你有什么资源吗?)
你不知道,为什么这在CMFCPropertyGridProperty不起作用?
CMFCPropertyGridCtrl和CMFCPropertyGridProperty可以在mfc源代码目录的afxpropertygridctrl.h tygridctrl.h/..cpp中找到。
发布于 2012-01-13 09:15:57
所以我终于发现:
CEdit可能不会在点击文本后选择文本。这必须通过手动完成,例如SetSel函数。
但在CMFCPropertyGridCtrl中,如果单击,则会将其传递给CMFCPropertyGridProperty,然后单击“重复”。因此,如果我使用SetSel,它会取消文本的选择。因此,我不得不编写自己的类,它继承了CMFCPropertyGridProperty并跳过了这个步骤(再次单击)。它已经足够SetFocus和SetSel (这也将光标设置为CEdit窗口)。
https://stackoverflow.com/questions/8831867
复制相似问题