下拉箭头的宽度

Fas*_*tAl 3 .net c# vb.net winforms

所以在winforms中,每个下拉组合框都有一个向右的小箭头告诉用户它是一个下拉列表,有点像这样:

http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif

现在我如何计算像素的宽度?原因是,我正在使用ControlDrawToBitmap,这不会为组合框正确绘制文本,我可以重绘内容,我只是敲了一些箭头(正确绘制).

dth*_*rpe 5

想到的第一个想法:检查组合框按钮宽度是否跟滚动条宽度一起跟踪.可以在用户首选项中修改滚动条宽度.使用GetSystemMetrics()API获取各种滚动条的宽度.如果更改系统滚动条宽度并且它不会影响正常组合框的大小,请忽略它.

第二个想法:使用编辑控件的格式化rect来找出编辑控件认为可用的显示区域(减去组合框).请参阅MSDN中的EM_GETRECT.

但是,听起来这只是你真正问题的一个黑客解决方法:如果你可以让控件正确地绘制到位图,那么你就不需要这个hackery了.