• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

Di chuyển control trong khi Runtime

Các thủ thuật liên quan đến việc xử lý ứng dụng, biểu mẫu và control
Giang Hồ
Thành viên năng nổ
Thành viên năng nổ
Bài viết: 50
Ngày tham gia: T.Bảy 12/05/2007 2:36 pm
Đến từ: http://vn-soft.net
Been thanked: 1 time
Liên hệ:

Di chuyển control trong khi Runtime

Gửi bàigửi bởi Giang Hồ » T.Ba 22/04/2008 8:53 am

Thủ thuật: Di chuyển control trong khi Runtime
Tác giả: Trần Đại Nghĩa
Mô tả: Di chuyển Picture trong khi Runtime


Mã: Chọn hết

  1. Private Declare Function ReleaseCapture Lib "user32" () As Long
  2. 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
  3. Const WM_NCLBUTTONDOWN = &HA1
  4. Const HTCAPTION = 2
  5.  
  6. Private Sub Form_Load()
  7. Picture1.AutoRedraw = True
  8. Picture1.Print "Click here to move me!"
  9. Me.AutoRedraw = True
  10. Me.Print "Click here to move me!"
  11. End Sub
  12.  
  13. Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
  14.     ReleaseCapture
  15.     SendMessage Me.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0
  16. End Sub
  17.  
  18. Private Sub Picture1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  19.     ReleaseCapture
  20.     SendMessage Picture1.hwnd, WM_NCLBUTTONDOWN, HTCAPTION, 0
  21. End Sub


Code chỉ một lần mà fix bug thì mãi mãi
-----------------------------------
VnSecurity 2008 - Bảo vệ máy tính theo phong cách của bạn
Website: http://vn-soft.net

ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Bài viết: 261
Ngày tham gia: T.Hai 12/03/2007 10:55 pm
Đến từ: Hà Giang
Has thanked: 2 time
Been thanked: 1 time
Liên hệ:

Re: Di chuyển control trong khi Runtime

Gửi bàigửi bởi ngaydautiendihoc » T.Ba 22/04/2008 5:27 pm

Hay thế nhỉ, ai có thể cho biết hết các chức năng của cái hàm SendMessage, đặc biệt là các tham số?

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Di chuyển control trong khi Runtime

Gửi bàigửi bởi anhtuyenbk » T.Ba 22/04/2008 6:04 pm

ngaydautiendihoc đã viết:Hay thế nhỉ, ai có thể cho biết hết các chức năng của cái hàm SendMessage, đặc biệt là các tham số?

MSDN.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Bài viết: 261
Ngày tham gia: T.Hai 12/03/2007 10:55 pm
Đến từ: Hà Giang
Has thanked: 2 time
Been thanked: 1 time
Liên hệ:

Re: Di chuyển control trong khi Runtime

Gửi bàigửi bởi ngaydautiendihoc » T.Năm 24/04/2008 10:19 pm

Biết từ lâu rồi, thậm chí hỏi cả nhà sản xuất nhưng hình như họ không hiểu mình hỏi cái gì nên mình cũng chẳng hiểu họ trả lời cái gì nữa.
Bất đồng ngôn ngữ khổ thế đấy.

Hình đại diện của người dùng
anhtuyenbk
Guru
Guru
Bài viết: 1311
Ngày tham gia: T.Năm 22/09/2005 4:12 pm
Đến từ: Một nơi chừa từng biết, chưa từng nghe, chưa từng thấy
Been thanked: 38 time

Re: Di chuyển control trong khi Runtime

Gửi bàigửi bởi anhtuyenbk » T.Năm 24/04/2008 10:34 pm

Nói chung liệt kê hết thì rất khó vì số lượng giá trị truyền cho các tham số thực sự là quá lớn.
Kiếm cơm cho qua ngày tháng
https://www.facebook.com/pinduphongpisenchinhhang

Hình đại diện của người dùng
VBNewbie
Thành viên tích cực
Thành viên tích cực
Bài viết: 113
Ngày tham gia: T.Bảy 29/03/2008 7:13 pm
Đến từ: Computer
Been thanked: 3 time
Liên hệ:

Re: Di chuyển control trong khi Runtime

Gửi bàigửi bởi VBNewbie » CN 27/04/2008 10:16 am

Độc đáo quá ta. cái này thêm sự kiện lưu lại tọa độ rồi lúc bật lại vẫn y như cũ thì hay tuyệt. Dùng để cho người dùng tự sắp xếp vị trí control
-------[[[[[[[ VMind - PM trắc nghiệm đa năng ]]]]]]]]------
http://vmind.co.cc/vmind
-------[[[[ Diễn đàn trí tuệ Việt Nam ! ]]]]]]]]-----
http://vmind.co.cc

lamemmv
Bài viết: 6
Ngày tham gia: T.Tư 09/04/2008 11:09 am

Re: Di chuyển control trong khi Runtime

Gửi bàigửi bởi lamemmv » T.Hai 05/05/2008 8:54 am

Xin hỏi anh GiangHo đoạn code đó dùng để làm gì, sao mình lấy đoạn code đó gắng vào VB 2005 và có chỉnh một số cái cho thích hợp mà không thấy chạy gì hết!

Xin bạn vui lòng chỉ rõ cho mình biết với! Thanks

ngaydautiendihoc
Thành viên danh dự
Thành viên danh dự
Bài viết: 261
Ngày tham gia: T.Hai 12/03/2007 10:55 pm
Đến từ: Hà Giang
Has thanked: 2 time
Been thanked: 1 time
Liên hệ:

Re: Di chuyển control trong khi Runtime

Gửi bàigửi bởi ngaydautiendihoc » T.Hai 05/05/2008 11:26 pm

Với VB 2005 bạn thử cái này xem, tôi thấy nó hoạt dộng tốt với button và textbox nhưng với label và checkbox thì lại không được
[vb]
  1.  
  2. Public Class Form1
  3.     Public Const WM_NCLBUTTONDOWN = &HA1
  4.     Public Const HTCAPTION = 2
  5.     Private Sub MoveControl(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Label1.MouseDown, Button1.MouseDown, CheckBox1.MouseDown, TextBox1.MouseDown
  6.         If e.Button = Windows.Forms.MouseButtons.Left Then
  7.             sender.Capture = False
  8.             Dim msg As Message = Message.Create(sender.Handle, WM_NCLBUTTONDOWN, New IntPtr(HTCAPTION), IntPtr.Zero)
  9.             Me.DefWndProc(msg)
  10.         End If
  11.     End Sub
  12. End Class
  13.  
[/vb]


Quay về “[VB] Ứng dụng - Form và Control”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.0 khách