一网上下载的,加了一个状态栏后,状态栏无法正常工作了源码:http://yicol1.51.net/download/ListBox2.rar
解决方案 »
- 如何使用VB控制打印口的D0位输出,比如设置D0=HIGH
- 哪个API函数可以为自己的程序在桌面上添加快捷方式。
- 水晶报表的子报表引用问题.
- 问一个菜鸟级问题
- 如何实现月份改变后,序号自动重新计数?
- 椭圆函数如何使用?!?!1
- 谁有自己写的控件的源程序,100分
- 关于ado的筛选问题
- *********************请各位大侠"VB的CLIENT如何用WINSOCK与JAVA的SVR通讯?"来者有分噢!!!****************************谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!谢谢!
- 请问有人用VB开发过与PLC进行串行通讯的程序吗?
- VB如何读取地磅中传过来的数据(我现在读进来的数据是乱码),求高人指点?
- vb中不能使用彩色的鼠标指针吗???
Public Function wndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_DRAWITEM Then
Dim dis As DRAWITEMSTRUCT, s As String * 260
'lParam传过来的是DRAWITEMSTRUCT的地址
CopyMemory dis, ByVal lParam, Len(dis)
If dis.CtlType = ODT_LISTBOX Then '如果是listbox
'随便填个背景色,主要是清除下面的DrawFocusRect画出的框
SendMessage dis.hwndItem, LB_GETTEXT, dis.itemID, ByVal s
s = Left(s, lstrlen(s))
SetBkMode dis.hdc, 1 '把画出的文字的背景设为透明
SetTextColor dis.hdc, dis.itemData
If dis.itemState = ODS_FOCUS Then '如果是当前项目
FillRect dis.hdc, dis.rcItem, 1
Else
FillRect dis.hdc, dis.rcItem, 0
End If
''---lstrlen()可以返回一个中英文混合字符串的正确长度
DrawText dis.hdc, s, lstrlen(s), dis.rcItem, &H4 '&H4 的其它值可以在API浏览器里查DT_??
wndProc = 0
Else
wndProc = CallWindowProc(lpOldProc, hwnd, Msg, wParam, lParam)
End If
'我们处理了的消息就返回0
Exit Function
End If
'其它消息让程序处理
wndProc = CallWindowProc(lpOldProc, hwnd, Msg, wParam, lParam)
End Function
窗口过程改成这样就好了
Public Function wndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
If Msg = WM_DRAWITEM Then
Dim dis As DRAWITEMSTRUCT, s As String * 260
'lParam传过来的是DRAWITEMSTRUCT的地址
CopyMemory dis, ByVal lParam, Len(dis)
If dis.CtlType = ODT_LISTBOX Then '如果是listbox
'随便填个背景色,主要是清除下面的DrawFocusRect画出的框
SendMessage dis.hwndItem, LB_GETTEXT, dis.itemID, ByVal s
s = Left(s, lstrlen(s))
SetBkMode dis.hdc, 1 '把画出的文字的背景设为透明
SetTextColor dis.hdc, dis.itemData
If dis.itemState = ODS_FOCUS Then '如果是当前项目
FillRect dis.hdc, dis.rcItem, 1
Else
FillRect dis.hdc, dis.rcItem, 0
End If
''---lstrlen()可以返回一个中英文混合字符串的正确长度
DrawText dis.hdc, s, lstrlen(s), dis.rcItem, &H4 '&H4 的其它值可以在API浏览器里查DT_??
wndProc = 0
Else
wndProc = CallWindowProc(lpOldProc, hwnd, Msg, wParam, lParam)
End If
'我们处理了的消息就返回0
Exit Function
End If
'其它消息让程序处理
wndProc = CallWindowProc(lpOldProc, hwnd, Msg, wParam, lParam)
End Function
case .....
......
......
case else
wndProc = CallWindowProc(lpOldProc, hwnd, Msg, wParam, lParam)
end select