代码之家  ›  专栏  ›  技术社区  ›  FastAl

下拉箭头的宽度

  •  3
  • FastAl  · 技术社区  · 14 年前

    所以在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,它不能正确地为组合框绘制文本,我可以重新绘制内容,我只需敲击一些箭头(正确地绘制)。

    2 回复  |  直到 14 年前
        1
  •  5
  •   dthorpe    14 年前

    首先想到的是:检查组合框按钮宽度是否与滚动条宽度匹配。可以在用户首选项中修改滚动条宽度。使用getSystemMetrics()API获取各种滚动条的宽度。如果您更改了系统滚动条的宽度,但它不影响普通组合框的大小,则忽略此项。

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

    然而,听起来这只是一个解决实际问题的黑客解决方案:如果你能让控件正确绘制到位图上,那么你就不需要这个黑客了。

        2
  •  0
  •   Joey    14 年前

    我在photoshop中计算出9像素宽