如何让控件中的mshflexgrid使用子类化技术?谁帮帮我?

wachel 2004-07-16 03:02:59
我已经知道怎么在窗体里使用子类化技术。可是我不知道在自定义控件里怎么使用

我做了一个控件,在控件中使用了mshflexgrid,我想让mshflexgrid可以使用滚轮,可是回调函数该怎么写?标准模块里好像不能调用自定义控件里的函数,也不能在标准模块里调整自定义控件中的大小。
...全文
144 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wachel 2004-07-20
  • 打赏
  • 举报
回复
谢谢,我已经解决了

其实我要问的问题是怎么调整列宽,主要是问了让问题共清晰些,才这样问的。不过guxizhw(失落的彩虹) 的方法提醒了我,我用了一种很奇怪或者尴尬的方法,我在控件里加了一个隐藏的按钮。在接收到mouseUP消息的时候,用sendmessage给按钮发送一个mouseUP消息,然后在mouseup事件里进行各种操作。
starsoulxp 2004-07-19
  • 打赏
  • 举报
回复
关注中……


什么是子类化技术?
guxizhw 2004-07-19
  • 打赏
  • 举报
回复
''模块中

Public Const GWL_WNDPROC = (-4)
Public Const WM_COMMAND = &H111
Public Const WM_MBUTTONDOWN = &H207
Public Const WM_MBUTTONUP = &H208
Public Const WM_MOUSEWHEEL = &H20A

Public Oldwinproc As Long
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 GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, _
ByVal nIndex As Long) As Long

Public Function FlexScroll(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'支持滚轮的滚动 Yu 2004-5-10 15:33
Select Case wMsg

Case WM_MOUSEWHEEL

Select Case wParam

Case -7864320 '向下滚
SendKeys "{PGDN}"

Case 7864320 '向上滚
SendKeys "{PGUP}"

End Select

End Select

FlexScroll = CallWindowProc(Oldwinproc, hWnd, wMsg, wParam, lParam)

End Function

Private Sub Msflexgrid1_GotFocus()

Oldwinproc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf FlexScroll
End Sub

Private Sub Msflexgrid1_LostFocus()
SetWindowLong Me.hWnd, GWL_WNDPROC, Oldwinproc

End Sub


guxizhw 2004-07-19
  • 打赏
  • 举报
回复
我真的很倒,再发一次
wachel 2004-07-19
  • 打赏
  • 举报
回复
我再顶,大家不要不理我
wachel 2004-07-17
  • 打赏
  • 举报
回复
不要沉了,大家帮帮忙
  • 打赏
  • 举报
回复
关注

1,453

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧