我知道有一个方法textwidth来计算字符串的文本宽度。
但是我们有2个表单,它们有自己独立的列表框。但我们要维护一个常见的.bas文件,其中包含代码。
例如,让表单名称为form1和form2。宽度可以通过form1.TextWidth(ListBox.list(i))和form2.TextWidth(ListBox.list(i))来计算
现在的问题是,既然我们正在为这两个项目维护一个公共的bas文件,那么form2项目并不知道什么是form1。
建议我获取字符串宽度的一些想法。
总的来说,如果超过字符串的最大宽度,我需要将水平滚动条添加到列表框中。因此,如果maxwidth> listboxWidth,我会调用horizontalscroll bar方法来启用它。
答案 0 :(得分:0)
这有效:) ListBox.Parent.TextWidth(ListBox.List(i))的
答案 1 :(得分:0)
您将使用WINAPI函数启用Horizontal Scrollbar,因此您不需要从Pixels To Twips进行转换,对吗?
你需要的只是一个像这样的函数:
function StringWidth(pStr as string) as long
dim sz as SIZE
hdc=CreateCompatibleDC(0)
oldFont=SelectObject(hdc,ifont.handle)
call GetTextExtentPoint32 (hdc,pStr,len(pstr), sz)
oldFont=SelectObject(hdc,oldFont)
call DeleteDC(hdc)
StringWidth=sz.cx
end function