我的form的ScaleMode屬性是vbPixels, 想要與listbox控制元件保持想同,需要作什么樣的換算?
uj5u.com熱心網友回復:
listbox只有 left 、top 、width、 heigh和scalemode有關,這四個屬性在表單設計界面只要表單的scalemode改變了對應的數值也自動改變了。如果表單的scalemode一旦確定為vbpixels 這四個屬性你就按像素定義即可。只有容器 比如 form、picturebox 有 scalemode屬性,這個屬性對容器內的定位有效,普通控制元件看所處容器的scalemode屬性來確定坐標尺寸的數值含義。
uj5u.com熱心網友回復:
表單的scalemode是Pixels, 這個listbox在表單中,但是我在listbox的MouseMove事件中觀察x和y的值,和表單中的MouseMove事件中的x和y的值作對比,發現listbox的比表單的大很多,大約是14.5倍的樣子uj5u.com熱心網友回復:
我是想用SendMessage(List1.hwnd, LB_SETTABSTOPS, 3&,寬度) 這個來設設定List1中一個tab健的寬度,但是不知道這個度度是以什么為單位的uj5u.com熱心網友回復:
API中用的“度量單位”,跟你在VB6表單或某控制元件的ScaleMode無關的吧!
我“試驗”了一下,也不清楚它的那個“度量單位”是什么,大概換算關系是“1單位 = 1.5像素”。
比如,設定第1個tabstop位置為“60”,那么它會定位于“90像素”處。
并且,你說的那個“寬度”,應該是“不正確”的;比較正確的說法,是“TabStop位置表”。
你要設定多個(似乎那個“表”必須從第一個tab位開始),
那么你要把相應的資料放到一個“Long陣列”中、每個值對應其“絕對位置”,
并且呼叫API時,lParam傳遞的是“首址值”,也就是“第1個元素的記憶體地址”。
因此要注意你的API宣告格式、正確地傳遞“lParam”。
uj5u.com熱心網友回復:
有沒類似于DOCK的屬性?轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/40386.html
標籤:控件
上一篇:第三方控制元件加載不了
