منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : استفسار عن تغير خلفيه المشروع
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2 3
معلش تعبتك معايا بس الحاجه دي مهمه بالنسبه ليه و مشكور مره اخري Smile
nin9e كتب :تمام اخي اشتغلت طيب و لو انا عاوز اول ما اختار اللون يطبق علطول مفضلش ادوس في كود ل كده؟

بسهولة نستخدم أداة الTimer

في المشاريع ال3

اما المشروع الاساسي لاتغير فيه
طيب وفي كود للتيمر؟؟
^

نحط الكود الموجود حاليا في button1Big Grin

في حدث timer_tick
شكرا لهذا الصبر الوفير و المجود الرائع معلش بقي خبرتي قليله Smile وشكرا مره اخري علي مشركتك انت والاخ 3body
ممكن اضع طريقة أخرى

الطريقة باستخدام PostMessage

تعتمد الطريقة على ارسال رسالة الى التطبيق الهدف بدلالة عنوان نافذته

يوجد كودين، واحد لارسال الرسالة والآخر لاستقبال الرسالة

كود ارسال الرسالة: يكون في البرنامج اللي بيتحكم في البرنامج الآخر
كود :
Const WM_USER = &H400
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
<Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=Runtime.InteropServices.CharSet.Auto)> _
Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim myColorDialog As New ColorDialog
    If myColorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim hwnd As Integer = FindWindow(vbNullString, "عنوان نافذة البرنامج الهدف")
        If hwnd <> 0 Then
            PostMessage(hwnd, WM_USER, myColorDialog.Color.ToArgb, 0)
        End If

    End If

End Sub

كود استقبال الرسالة: ويكون في البرامج اللي تستقبل الرسالة وتنفذ العملية اللي تريدها
كود :
Const WM_USER = &H400
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    Select Case m.Msg
        Case WM_USER
            Me.BackColor = Color.FromArgb(m.WParam)

    End Select
    MyBase.WndProc(m)
End Sub

كيف الفكرة إن شاء الله سهلة ومفيدة.
MSDOS كتب :ممكن اضع طريقة أخرى

الطريقة باستخدام PostMessage

تعتمد الطريقة على ارسال رسالة الى التطبيق الهدف بدلالة عنوان نافذته

يوجد كودين، واحد لارسال الرسالة والآخر لاستقبال الرسالة

كود ارسال الرسالة: يكون في البرنامج اللي بيتحكم في البرنامج الآخر
كود :
Const WM_USER = &H400
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
<Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=Runtime.InteropServices.CharSet.Auto)> _
Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim myColorDialog As New ColorDialog
    If myColorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim hwnd As Integer = FindWindow(vbNullString, "عنوان نافذة البرنامج الهدف")
        If hwnd <> 0 Then
            PostMessage(hwnd, WM_USER, myColorDialog.Color.ToArgb, 0)
        End If

    End If

End Sub

كود استقبال الرسالة: ويكون في البرامج اللي تستقبل الرسالة وتنفذ العملية اللي تريدها
كود :
Const WM_USER = &H400
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    Select Case m.Msg
        Case WM_USER
            Me.BackColor = Color.FromArgb(m.WParam)

    End Select
    MyBase.WndProc(m)
End Sub

كيف الفكرة إن شاء الله سهلة ومفيدة.


وبعد اقول 10 / 10
الشاكي لله كتب :وبعد اقول 10 / 10

بارك الله فيك، والله إنك ترفع المعنويات، أشكرك
الصفحات : 1 2 3