小弟我正在制作一个软件的UI界面,希望能实现如:Windows Media Player 那样在标题栏及边框被隐藏的情况下,使用其他控件模拟他们的功能,从而能应用自定义外观。
但在使用其他控件模拟他们的功能后,如:在客户区右下角拖动窗体以改变窗体大小时,窗体会因MOUSE_MOVE事件而不断重绘窗体,而我希望能够象Windows Media Player 那样在MOUSE_MOVE事件发生时只是显示一个用于定位的虚线框,在发生MOUSE_UP事件时才重绘窗体(类似于边框的功能),还有在移动窗体时也希望使用虚线框来定位。
但我没有找到vb2005类库里有类似功能的支持,是否要用到API
请各位老大指点!
但在使用其他控件模拟他们的功能后,如:在客户区右下角拖动窗体以改变窗体大小时,窗体会因MOUSE_MOVE事件而不断重绘窗体,而我希望能够象Windows Media Player 那样在MOUSE_MOVE事件发生时只是显示一个用于定位的虚线框,在发生MOUSE_UP事件时才重绘窗体(类似于边框的功能),还有在移动窗体时也希望使用虚线框来定位。
但我没有找到vb2005类库里有类似功能的支持,是否要用到API
请各位老大指点!
解决方案 »
- 关于此功能的实现
- vb用winsock通讯问题
- 急!!!关于optionbutton与checkbox之间相互转换的问题。
- 如何访问加密的ACCESS数据库?
- 想换程序学习的网友请进。
- 怎样放大与缩小picturebox控件中的图片
- 紧急求助:关于水晶报表的使用?在线等待,急急急。回答问题者,再得50分。
- 如何隐藏listview表格中的某一列!!
- 谁可以告诉我Crystal Reports(水晶报表)有什么用的?我下载了一只Crystal Reports 9的简中文版,但不知道用途,谢谢
- 请教各位大虾
- combo或datacombo使用问题请教
- 在VB里始终无法关掉excel,excel.exe这个进程一直在任务管理器里
这里是一个,移动无标题的窗体的VB6代码,希望对你有帮助
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 Declare Sub ReleaseCapture Lib "User32" ()
Const WM_NCLBUTTONDOWN = &HA1
Const HTCAPTION = 2
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: [email protected]
Dim lngReturnValue As Long
If Button = 1 Then
'Release capture
Call ReleaseCapture
'Send a 'left mouse button down on caption'-message to our form
lngReturnValue = SendMessage(Me.hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0&)
End If
End Sub
Private Sub Form_Paint()
Me.Print "Click on the form, hold the mouse button and drag it"
End Sub
Private Sub Label1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0
End Sub' 从左下改变窗体大小
Private Sub Label2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTBOTTOMLEFT, 0
End Sub' 从右下改变窗体大小
Private Sub Label3_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTBOTTOMRIGHT, 0
End Sub' 从左上改变窗体大小
Private Sub Label4_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTTOPLEFT, 0
End Sub' 从右上改变窗体大小
Private Sub Label5_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
ReleaseCapture
SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTTOPRIGHT, 0
End Sub