• 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

Tạm ngừng Sub WndProc(ByRef m As Message)

Nơi trao đổi về các vấn đề trong lập trình Windows Forms, Console dùng cú pháp ngôn ngữ Visual Basic .NET và C#

Điều hành viên: tungblt, vuathongtin

Hình đại diện của người dùng
nhatlinh0207
Thành viên tâm huyết
Thành viên tâm huyết
Bài viết: 378
Ngày tham gia: T.Tư 15/08/2012 7:54 pm
Has thanked: 54 time
Been thanked: 45 time

Tạm ngừng Sub WndProc(ByRef m As Message)

Gửi bàigửi bởi nhatlinh0207 » T.Năm 28/09/2017 2:59 pm

Xin chào mọi người. Mình dùng code này để kiểm tra Clipboard có thay đổi hay không.
  1. Protected Overrides Sub WndProc(ByRef m As Message)
  2.  
  3.         Select Case (m.Msg)
  4.             Case WM_CLIPBOARDUPDATE
  5.                 Dim iData As IDataObject = Clipboard.GetDataObject()
  6.                 ' Clipboard's data.
  7.                 ' Depending on the clipboard's current data format we can process the data differently.
  8.                 '         * Feel free to add more checks if you want to process more formats.
  9.                 If iData.GetDataPresent(DataFormats.Text) Then
  10.                     ' do something with it
  11.                     Dim text As String = DirectCast(iData.GetData(DataFormats.UnicodeText), String)
  12.                     AddText(text)
  13.                     'ElseIf iData.GetDataPresent(DataFormats.Bitmap) Then
  14.                     '    'Do something with it
  15.                     '    Dim image As Bitmap = DirectCast(iData.GetData(DataFormats.Bitmap), Bitmap)
  16.                 End If
  17.         End Select
  18.         MyBase.WndProc(m)
  19.     End Sub


và kèm theo đó là 1 cái animation(cái này nghịch thôi bỏ đi cũng chẳng sao)

  1. For i = 1 To 90
  2.             Me.Location = New Point(Me.Location.X - 5, Me.Location.Y - 5)
  3.             Application.DoEvents()
  4.             System.Threading.Thread.Sleep(1)
  5.         Next
  6.  
  7.         For i = 1 To 44
  8.             Me.Size = New Size(Me.Size.Width + 10, Me.Size.Width + 10)
  9.             Application.DoEvents()
  10.             System.Threading.Thread.Sleep(1)
  11.         Next


Nhưng khi sử dụng animation kia thì WndProc bắt sự kiện liên tục, và sẽ gây cho animation đơ đơ theo.
Mình muốn hỏi làm sao để tạm dừng WndProc kia và kích hoạt nó lại thì animation xong.
Xin cảm ơn.



Hình đại diện của người dùng
thuanfun
Thành viên tích cực
Thành viên tích cực
Bài viết: 129
Ngày tham gia: T.Năm 06/11/2008 7:46 pm
Been thanked: 8 time

Re: Tạm ngừng Sub WndProc(ByRef m As Message)

Gửi bàigửi bởi thuanfun » T.Năm 05/10/2017 12:29 am

Bạn thử dùng Timer xem sao


Quay về “Visual Basic .NET và C# (VB.NET & C#)”

Đ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.3 khách