form的标题栏的双击事件是什末??

woliuliudada 2003-05-31 05:06:57
有标题栏的双击事件吗?
...全文
149 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
evbsky 2003-08-12
  • 打赏
  • 举报
回复
resize和Paint事件
lihonggen0 2003-08-12
  • 打赏
  • 举报
回复
一般情况下你在 Form_Resize()事件里写代码就可以了

wingchi 2003-08-12
  • 打赏
  • 举报
回复
form_resize()
pigpag 2003-08-12
  • 打赏
  • 举报
回复
要看情况。
简单的获取改变大小事件很简单。

如果要用WM_NLCBUTTONDBLCLK,你就必须用子类WndProc,上面也列举了。这样会给调试带来麻烦。

你看着办
易道禅 2003-08-12
  • 打赏
  • 举报
回复
VB中没有这一事件,只有自己写。代码如下:
'-------------------------------------------------------------------------------'以下代码在模块中定义

Option Explicit

Public Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex 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 SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Public Const WM_NCLBUTTONDBLCLK = &HA3
Public Const GWL_WNDPROC = (-4)


Public prevWndProc As Long '记录原窗口程序变量

Public Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
'拦截Windows消息
Select Case Msg
Case WM_NCLBUTTONDBLCLK
MsgBox "标题栏被双击"
WndProc = 0
Case Else
WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
End Select
End Function
'-------------------------------------------------------------------------------


'以下代码代码在窗体中定义
'------------------------------------------------------------
Private Sub Form_Load()
'记录原窗口程序
prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
'以WndProc取代原窗口程序
SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End Sub


Private Sub Form_Unload(Cancel As Integer)
'将原窗口程序还原
SetWindowLong Me.hWnd, GWL_WNDPROC, prevWndProc
End Sub
'------------------------------------------------------------


zyl910 2003-08-11
  • 打赏
  • 举报
回复
WM_NCLBUTTONDBLCLK
The WM_NCLBUTTONDBLCLK message is posted when the user double-clicks the left mouse button while the cursor is within the nonclient area of a window. This message is posted to the window that contains the cursor. If a window has captured the mouse, this message is not posted.

WM_NCLBUTTONDBLCLK
nHittest = (INT) wParam; // hit-test value
pts = MAKEPOINTS(lParam); // position of cursor

Parameters
nHittest
Value of wParam. Specifies the hit-test value returned by the DefWindowProc function as a result of processing the WM_NCHITTEST message. For a list of hit-test values, see WM_NCHITTEST.
pts
Value of lParam. Specifies aPOINTS structure that contains the x- and y-coordinates of the cursor. The coordinates are relative to the upper-left corner of the screen.
Return Values
If an application processes this message, it should return zero.

Default Action
The DefWindowProc function tests the given point to find out the location of the cursor and performs the appropriate action. If appropriate, DefWindowProc sends the WM_SYSCOMMAND message to the window.

Remarks
A window need not have the CS_DBLCLKS style to receive WM_NCLBUTTONDBLCLK messages.

The system generates a WM_NCLBUTTONDBLCLK message when the user presses, releases, and again presses the left mouse button within the system's double-click time limit. Double-clicking the left mouse button actually generates four messages: WM_NCLBUTTONDOWN, WM_NCLBUTTONUP, WM_NCLBUTTONDBLCLK, and WM_NCLBUTTONUP again.

An application can use the MAKEPOINTS macro to convert the lParam parameter to a POINTS structure.

QuickInfo
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Unsupported.
Header: Declared in winuser.h.

pigpag 2003-08-11
  • 打赏
  • 举报
回复
对的。同时触发Paint事件
AustinLei 2003-08-11
  • 打赏
  • 举报
回复
Resize事件。
wumy_ld 2003-08-11
  • 打赏
  • 举报
回复
最大化和恢复是什么事件?
btone 2003-05-31
  • 打赏
  • 举报
回复
有,就是最大化和恢复!
bydisplay 2003-05-31
  • 打赏
  • 举报
回复
没有,

1,451

社区成员

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

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