:9.968KB : :1 :2019-12-15 08:27:22
模块名称:组合框_自适应宽度
---------------------------
模块 MD5:59f1884d07e281db10fe17b176f9f61c
---------------------------
模块大小:0.009045600891113 MB(9.2626953125 KB)
.子程序 _组合框_自适应宽度
.参数 hwnd, 整数型
.局部变量 hDC, 整数型
.局部变量 maxWidth, 整数型
.局部变量 str, 文本型
.局部变量 len, 整数型
.局部变量 i, 整数型
.局部变量 size, Size
.局部变量 hDC2, 整数型
.局部变量 hFont, 整数型
.局部变量 hFontOld, 整数型
hDC = GetDC (hwnd)
' 直接取出的hDC竟然不包含字体信息,很奇怪,GetTextFace() 取hDC的字体名称始终为“System”
' 为了不破坏原始DC,这里新建一个临时DC,并选入正确的字体
hFont = SendMessage_ (hwnd, #WM_GETFONT, 0, 0)
hDC2 = CreateCompatibleDC (hDC)
hFontOld = SelectObject (hDC2, hFont)
' 遍历组合框中的所有项目,找出最长的一项
.计次循环首 (SendMessage_ (hwnd, #CB_GETCOUNT, 0, 0), i)
len = SendMessage_ (hwnd, #CB_GETLBTEXTLEN, i - 1, 0)
str = 取空白文本 (len + 1)
SendMessage_is (hwnd, #CB_GETLBTEXT, i - 1, str)
GetTextExtentPoint32 (hDC2, str, 取文本长度 (str), size) ' 自适应的关键就是这里了
.如果真 (maxWidth < size.cx)
maxWidth = size.cx
.如果真结束
.计次循环尾 ()
.如果真 (maxWidth ≠ 0)
SendMessage_ (hwnd, #CB_SETDROPPEDWIDTH, maxWidth + 10, 0) ' 增加一点边距
.如果真结束
.如果真 (hDC ≠ 0)
ReleaseDC_ (hwnd, hDC)
.如果真结束
.如果真 (hFontOld ≠ 0)
SelectObject (hDC2, hFontOld)
.如果真结束
.如果真 (hDC2 ≠ 0)
DeleteDC (hDC2)
02-18易语言的自用CAD插件开源
02-17飓风填表模块例子,改自队长模块
02-17会员管理插件源码
02-17环形进度条,大恩环形模块
02-17组件排列可以自适应窗口高宽
02-16易语言打造的最简单易用的http服务框架
02-1613位EAN码批量生成,无任何模块
10-03Excel中加载数据分析模块
08-29Excel柱状图柱子的宽度设置方法
11-20Word设置不均匀分栏使各栏的宽度不一致
11-17excel中表格宽度不一样设置方法
11-01excel2016天机使用数据分析模块