所以在的WinForms,每一个下拉组合框有这个小箭头,啄来,告诉它的用户一个下拉的权利,有点像这样:宽度下拉的箭头
现在我该如何找出像素有多宽?原因是,我正在使用ControlDrawToBitmap,它不会为组合框正确绘制文本,并且我可以重新绘制内容,我只是敲掉一些箭头(正确绘制)。
所以在的WinForms,每一个下拉组合框有这个小箭头,啄来,告诉它的用户一个下拉的权利,有点像这样:宽度下拉的箭头
现在我该如何找出像素有多宽?原因是,我正在使用ControlDrawToBitmap,它不会为组合框正确绘制文本,并且我可以重新绘制内容,我只是敲掉一些箭头(正确绘制)。
想到的第一个想法:检查是否组合框按钮宽度的轨道与滚动条的宽度。滚动条宽度可以在用户偏好中修改。使用GetSystemMetrics()API来获取各种滚动条的宽度。如果您更改系统滚动条宽度并且不影响正常组合框的大小,请忽略此设置。
第二个想法:使用编辑控件的格式化矩形找出编辑控件认为是可用的显示区域(减去组合框)。见EM_GETRECT in MSDN。
但是,它听起来像这只是一个黑客的解决方法,你真正的问题:如果你可以让控件正确绘制到位图,那么你不会需要这个hackery。
我计算出它是9个像素宽在Photoshop
此箭头在Aero风格中完全不同。我无法解读你的理由。 – 2010-08-03 20:15:53