| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 833 人关注过本帖
标题:请教一个api函数如何理解,谢谢.
只看楼主 加入收藏
ggyy66
Rank: 1
等 级:新手上路
帖 子:427
专家分:0
注 册:2007-8-14
结帖率:86.25%
收藏
 问题点数:0 回复次数:9 
请教一个api函数如何理解,谢谢.
请教一个api函数如何理解,谢谢.
以下是窗工程的全部代码,只有一个窗体,在窗体加一个列表框就行.
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, _
ByVal wMsg As Long, _
ByVal wParam As Long, _
lParam As Any) As Long
Private Const LB_SETHORIZONTALEXTENT = &H194

Private Sub setListWidth()
'如果列表框不够宽,则增加水平滚动条
Dim i As Integer
Dim List_MaxL As Integer

' 获得选项内容的最大长度
For i = 0 To demo_lbox.ListCount - 1
'让list_maxl中保存最长的一条字串
If Len(demo_lbox.List(i)) > List_MaxL Then
List_MaxL = Len(demo_lbox.List(i)) + 2
End If
Next i

' 判断是否内容显示不完全,如果是则添加水平滚动条
If Me.TextWidth("AA") * List_MaxL > demo_lbox.Width Then
SendMessage demo_lbox.hwnd, LB_SETHORIZONTALEXTENT, Me.TextWidth("AA") * List_MaxL, ByVal 0&
End If
End Sub


Private Sub Form_Load()
Dim i As Integer
' 为ListBox控件添加选项
For i = 0 To 100
demo_lbox.AddItem ("这是列表框中的一项,最后数字表示这是第几行数据:(第 " + CStr(i)) & "行)"
'demo_lbox.AddItem ("(第 " + CStr(i)) & "行)"
Next i

' 设置窗体坐标尺度模式和字体大小
Me.ScaleMode = vbPixels
Me.FontSize = demo_lbox.FontSize
'设置列表框的水平滚动条
Call setListWidth
End Sub
-----------------------------
我要问的是:
这个api函数如何理解,当然它的功能就是为列表框加一个水平滚动条.
可是有几个地方我不明白:
第一:下面定义常数的作用是什么?
Private Const LB_SETHORIZONTALEXTENT = &H194

第二:以下这一句,几个参数不明白
SendMessage demo_lbox.hwnd, LB_SETHORIZONTALEXTENT, Me.TextWidth("AA") * List_MaxL, ByVal 0&

&H194是消息的标识符,我最不明白的就是这个常数对应的是什么意思呀,还有,最后一个参数是什么意思?
搜索更多相关主题的帖子: api函数 ByVal Long 
2007-09-28 09:08
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 

百度搜索结果:
Win32 API消息函数:SendMessage

函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。

函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);

参数:

hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。

Msg:指定被发送的消息。

wParam:指定附加的消息指定信息。

IParam:指定附加的消息指定信息。

返回值:返回值指定消息处理的结果,依赖于所发送的消息。

备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。

如果指定的窗口是由调用线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。

Windows CE:Windows CE不支持Windows桌面平台支持的所有消息。使用SendMesssge之前,要检查发送的消息是否被支持。

速查:Windows NT:3.1及以上版本:Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。


PS:
LB_SETHORIZONTALEXTENT设置水平滚动条 消息


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-09-28 09:14
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
LB_SETHORIZONTALEXTENT消息可以设置列表的横向滚动条以及滚动长度。
ByVal 0& 代表传入一个空指针

VB QQ群:47715789
2007-09-28 09:23
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 
偶的偶像,这几天不忙了啊?

[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-09-28 09:30
那边有朵蘑菇云
Rank: 1
来 自:很……那啥的一个地方
等 级:新手上路
威 望:1
帖 子:390
专家分:0
注 册:2007-9-3
收藏
得分:0 
不忙了

身不残 志更不坚
2007-09-28 11:17
随风逐流
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:passerby
等 级:版主
威 望:8
帖 子:4054
专家分:271
注 册:2007-6-13
收藏
得分:0 
以下是引用那边有朵蘑菇云在2007-9-28 11:17:26的发言:
不忙了

没问你....


[url=http://www./html/6/6694/]极道金丹[/url][url=http://www./html/2/2849/]九阴九阳[/url][url=http://www./html/2/2596/]凡人修仙传[/url]
2007-09-28 11:42
coachard
Rank: 3Rank: 3
等 级:新手上路
威 望:7
帖 子:1251
专家分:0
注 册:2007-8-12
收藏
得分:0 
以下是引用那边有朵蘑菇云在2007-9-28 11:17:26的发言:
不忙了

嗯,这脸皮与长城城墙有得一比。。。


偶学编程,也许本身就是一个错。。。
2007-09-28 11:55
Joforn
Rank: 6Rank: 6
等 级:贵宾
威 望:23
帖 子:1242
专家分:122
注 册:2007-1-2
收藏
得分:0 
以下是引用随风逐流在2007-9-28 9:30:55的发言:
偶的偶像,这几天不忙了啊?

呵,不是问我吧?


VB QQ群:47715789
2007-09-28 16:05
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 

师兄,他问得就是你啦.


Repeat  Life=Study;Until (death);
2007-09-28 16:27
qlong0728
Rank: 3Rank: 3
等 级:新手上路
威 望:8
帖 子:272
专家分:0
注 册:2007-6-15
收藏
得分:0 

API详解

内容已超12640,不可以发贴

只有上传了

rErmPP3c.txt (44.74 KB) 请教一个api函数如何理解,谢谢.



程序人员写程序,又拿程序换酒钱。 奔驰宝马贵者趣,公交自行程序员。 不见满街漂亮妹,哪个归得程序员。
2007-09-28 16:54
快速回复:请教一个api函数如何理解,谢谢.
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.046004 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved