1,488
社区成员
发帖
与我相关
我的任务
分享

原来是它呀…………
谢谢指点! 
不知道你们有谁知道 ListBox(API创建的,不是VB6的那个),有没有让它“一次性清空所有项目”的方法?
目前我把那个WM_xxxxx 的消息看了个遍,只找到逐条删除的消息。
这样的操作,如果项目数稍多一点,就十分费时。[/quote]
'ListBox
SendMessageLongA m_lHwnd, LB_RESETCONTENT, 0&, 0&
'Combo
SendMessageLongA m_lHwnd, CB_RESETCONTENT, 0&, 0&
不知道你们有谁知道 ListBox(API创建的,不是VB6的那个),有没有让它“一次性清空所有项目”的方法?
目前我把那个WM_xxxxx 的消息看了个遍,只找到逐条删除的消息。
这样的操作,如果项目数稍多一点,就十分费时。[/quote]
CB_RESETCONTENT 删除所有的项
[/quote]
队列化和池化之后根本不需要doevents了,timer控件就很好用了。[/quote]



第二题。。。。。。
‘建个模块
Public Const GWL_WNDPROC = (-4)
Public Const TRANSPARENT = 1
Public Const WM_CTLCOLOREDIT = &H133
Public Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Public Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Public Declare Function SetTextColor Lib "gdi32" (ByVal hdc As Long, ByVal crColor As Long) As Long
Public Declare Function SetBkMode Lib "gdi32" (ByVal hdc As Long, ByVal nBkMode As Long) As Long
Public Declare Function CreateSolidBrush Lib "gdi32" (ByVal crColor As Long) As Long
Public lpPrevWndProc As Long
Public Function WindowProc(ByVal hw As Long, ByVal uMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Select Case uMsg
Case WM_CTLCOLOREDIT '在这个消息中设置字体颜色
SetBkMode wParam, TRANSPARENT
SetTextColor wParam, vbGreen '文本色
WindowProc = CreateSolidBrush(vbRed) '背景色
Case Else
WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
End Select
End Function
窗体代码里加一行
If (0& = mlhWnd) Then
picCont.Cls
picCont.Print "创建控件出错。"
Else
lpPrevWndProc = SetWindowLong(picCont.hWnd, GWL_WNDPROC, AddressOf WindowProc) '<----Bingo
Call SetWindowText(mlhWnd, StrPtr("Abc 123-XYZ"))
' List控件添加文本:
'Call SendMessage(mlhWnd, &H180&, 0&, StrPtr("列表项文本"))
End If
刚才我把服务器端改成“死等”的,编译成 EXE程序运行,
客户端连接时,它“响应”了一次,然后又卡死在那儿。
接着,客户端写数据,仍然操作失败。
[/quote]
队列化和池化之后根本不需要doevents了,timer控件就很好用了。
[/quote]
我觉得那个server有问题,你先做个死等的试试,程序死在那里就死在那里,反正那个死机是假的,有数据来的时候它会有输出的。
