آسف جداً ، ولكنني أحتاج مساعدة حضراتكم
وسؤالي هو كيف يمكنني إدراج زر أمر علي الـ Title Bar سواء كان الـ Command Button أو أزرار الأوامر المنتشرة علي النت ، كيف يمكنني بذلك ؟؟؟
آسف جداً ، ولكنني أحتاج مساعدة حضراتكم
وسؤالي هو كيف يمكنني إدراج زر أمر علي الـ Title Bar سواء كان الـ Command Button أو أزرار الأوامر المنتشرة علي النت ، كيف يمكنني بذلك ؟؟؟
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
فعلاً أخي الكريم ، المثال المرفق هو المقصود ، ولكن هل من الممكن أن يتم عرض أكثر من زر امر ، يعني مثلاً 2 زر أمر أو إثنين أو ثلاثة او حسب ؟؟؟
شكراً
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
السلام عليكم
حضرتك لو لحظت ان الكومنت الذى يظهر فى الفورم يوجد داخل Picture box تدعى picbtn لودخلنا فى الموديول الخاص بوضع كومنت وهو modCapBtn
نلاحظ ان الكود معتمد علىpicbtn فاعتقد يمكن ان نعطى Picture box تانى عن طريق تكرار الكود ونقوم بتغير اسمها وتغير الابعاد
الكود بالاسفل المسئول عن مكان وضع كومنت فى صندوق العنوان
Call SetWindowPos(frmMain.picbtn.hwnd, 0, R.Right - 110, _
R.Top + 4, Str$(GetSystemMetrics(SM_CXSIZE)), Str$(GetSystemMetrics(SM_CYSIZE)), SWP_FRAMECHANGED)مثلا ضف Picture box وقم بوضع مثلا R.Right - 170 بدلا R.Right - 110
ملحوظة قم باضافة فى picbtn_Resize الامر بالاسفل لجعل Picture box لا تظهر
Command1.Width = picbtn.Width
Command1.Height = picbtn.Heightالأخ الكريم ، أشكرك كل الشكر علي المتابعة ، والحمد لله توصلت الي أن أدرج أكثر من زر علي الشاشة ، وكمان جعلت الوضع يكون ديناميكي ، بمعني لو لدي 5 شاشات الأولي تحتاج الي 2 زر أمر ، والثانية تحتاج الي 3 زر أمر ، المهم أنا ارفقت لك المثال مرة أخري كي يستفاد منها الجميع بعون الله ، ولكن واجهتني مشكلة أتمني أن تعاونني فيها
عند عرض الأزرار علي شاشة واحدة ليس هناك أي إشكاليات ، ولكن عند عرض نفس الأزرار أو أزرار أخري علي شاشات متعددة تظهر الإشكاليات !!!!
حتي لا إطيل في الحديث أنظر المثال المرفق لعل وعسي أن تجد حل معي لهذه المشكلة
مع العلم أنني حاولت دمج الكود في مكتبة DLL بحيث أن يكون لدي Class لكل صنف Class أقدر أجلب بيها نفس الكود متكرر في الذاكرة ، ولكن للأسف لم يعرض لي أي نتيجة ، لذلك إسمح لي بإرفاق الكود مرة ثانية متضمنة المشكلة
منتظر مساعدتك
شكراً مقدماً
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
السلام عليكم
اولا : ما شاء الله عليك الكود اصبح اكثر ديناميكية
ثانيا : يمكن ان نحل مشكلة التى ظهرت ان نضع كود بالاسفل فى كومنت عرض النموذج الثانى وهى عمل unload للفورم الاولى
Call RemoveTrayIcon
Terminate
Unload Me
Form2.Showوفى الفورم 2 نضع كود فى حدث form2_unload لكى نظهر الفورم الاولى وهى الاساسية بالنسبة للمشروع form1.show
طيب لو مش عاوزين نعمل unload للفورم الاولى ممكن نعمل اخفاء للفورم
الطريقة فى مشروع المرفق
هو بصراحة فكرة جيدة في حالة عرض شاشة واحدة من ضمن مجموعة شاشات ، ولكن فرضاً لو أنا عايز أعرض أعرض 2 شاشة مرة واحدة بحيث أن يتم عرض تلك الأزرار مرة واحدة ، كيف يتم ذلك ؟؟؟؟
أنا للأسف شغال علي شاشات MDI ، ومطالب مني أني أضيف لكل شاشة مجموعة محددة من الأزرار ، وهذه الحالة الحمد لله حلتها بالديناميكية ، ولكن كيف أعرض أكثر من شاشة في آن واحد مع عرض أزرار كل شاشة ؟؟؟؟
يا ريت لو لديك حل عملي تمنحة لي
شكراً لك علي سعة صدرك لي ومتابعتك
السلام عليكم
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
السلام عليكم
إخوانى الأعزاء :
جاءتنى فكره و لم أستطع تنفيذها أرجو أن تفيدكم
و هي إستخدام ِActivate و Deactivate حاولت تنفيذها و لم أستطع أرجو أن تجربوها و تفيدونا بالنتيجه
و السلام ختام .....
السلام على من إتبع السلام وخشي وجه ربه ذو الجلال والإكرام
السلام عليكم
للاسف ليس لدى حل لهذه المشكلة بحاول ومش عارف اوصل خالص :angry:
ان شاء الله يكون فى حل عند احد من اعضاء المنتدى
حاولت ابحث فى الويب عن مثال اخر او حل للمشكلة لقيت مثال اخر بس اعتقد المثال الاول افضل
مفيش أي مشاكل ، أنا مبدئياً هستخدم أحداث Activete + Dectivate كما أشار الزميل لحين إيجاد حل جزري للمشكلة
في رعاية الله وحفظة
السلام عليكم ورحمة الله وبركاتة
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
السلام عليكم
أخي العزيز MMA_EG_Cairo إذا إستخدمت Activate و Dectivate و فلحت معك نرجو وضع مثال عليها
و السلام ختام ......
السلام على من إتبع السلام وخشي وجه ربه ذو الجلال والإكرام
بص يا أخي ، كل الحكاية وما فيها أن بحول الكود المدرج في حدث Load وبحطة في حدث Activate ، وبعيد كتابة الكود المدرج في حدث Unload في حدث Dectivate وبعد كدة الكود بيشتغل كويس ، بس خذ بالك الكود مش هيشتغل غير علي شاشات وليدة مدرجة ضمن نموذج MDI ، أما بالنسبة للبرنامج الذي لا يحتوي علي الـ MDI لا يعمل الكود
كوضع مبدئي أنا بستخدم هذه الطريقة لحين إيجال حل جزري للمشكلة
شكراً للجميع
السلام عليكم ورحمة الله وبركاتة
لا تخلط ما بين شخصيتي وأسلوبي .. فشخصيتي هي
ما أنا عليه وتحت تصرفي .. وأسلـوبي يعتمد عليـك
أنت وتصرفاتك
ولحظاتي صمت... وصمـت لحظاتي كلام ... كلامه
اشد آلام ... فصمتي أنا عنوان
لم ارى هذا الموضوع إلا الأن و احببت مشاركتكم بهذا الرابط الذى يحتوى على مثال شيق للغايه و لكنه بلغة الـ C
لقراءة المثال اضغط هنا
بشكل عام اضافة ازرار داخل شريط العنوان ستنجح تماما فى حالة استخدام الـ Classic Style لويندوز XP (هذا إذا كنت تعمل عليه) و لكن مع Styles اخرى ستلاحظ ان النافذه التى تحتوى على هذا الزر هى الوحيده التى لا ينطبق عليها هذا الأمر و السب فى ذلك يرجع الى انك تحتاج بإستمرار لتحديث النافذه كلما تتحرك او يتم تحجيمها لإعادة رسم الزر.
الحل لذلك الأمر يكمن فى استخدام لدوال الرسم الخاصه بالـ Windows Styles الموجوده بـ UxTheme.dll.
و كمثال لإستخدام دوال UxTheme لرسم الأدوات اعطيكم هذا الرابط الذى يحتوى على درس من vbAccelerator للتعامل مع دوال UxTheme.

و هذا هو رابط تحميل المثال إذا لم تستطيع الوصول إليه من داخل الموقع.
ملحوظه : يحتوى موقع vbAccelerator على العديد من الأدوات المتقدمه بلغة الـ VB6 و بالكود.
مدونتي: C++ Tips and Tricks