草庐IT

windows - 为什么 EM_SETMARGINS 在 Windows 7 下不起作用?

我有一个复合视觉控件,它由编辑框和一个下拉按钮组成。下拉按钮不是窗口控件,而是绘制在编辑框上。我通过以下调用限制编辑的宽度:SendMessage(Handle,EM_SETMARGINS,EC_RIGHTMARGIN,(DropDownButtonWidth+2)shl16);它在WindowsXP下工作正常但在Windows7下不起作用。在后一种情况下,当焦点编辑框与下拉按钮重叠并删除其图像时。在两种操作系统下限制编辑框矩形的正确方法是什么?PS:我也试过另一种方法:SendMessage(Handle,EM_GETRECT,0,LongInt(@Loc));Loc.Bottom: