انا انشئت برنامج مثل الدفتر في الفيجوال ++c لكن عندما اعمل معاينة طباعة يصبح الكلام معكوسا من اليسار الى اليمين بدلا من العكس
فارجوا افادتي
انا انشئت برنامج مثل الدفتر في الفيجوال ++c لكن عندما اعمل معاينة طباعة يصبح الكلام معكوسا من اليسار الى اليمين بدلا من العكس
فارجوا افادتي
اخي واستاذي هاني الاتاسي....
اشكرك شكرا جزيلا لاهتمامك بموضوعي
(f) (f) (f) (f) (f) (f) (f) (f)
بالنسبة لمشكلتي فانا لم اجد بعد حلا لها ..... فلقد صممت برنامج يضاهي الدفتر لكن مشكلة معاينة الطباعة هي العائق الان...
واوعدك اول ما احصل على حل لهذه المشكلة ستكون اول شخص من بعدي يعرف به
مع تحياتي
يمكنك ذلك بسهولة إذا استخدمت الإجراء SetWindowLong لتعريب واجهة البرنامج بتعريف متغير WS_EX_LAYOUTRTL له قيمة ست عشرية 400000 وهو من نوع GWL_EXSTYLE كما يمكنك إضافته إلى سمات الـ View Class عند الإنشاء كي لا تحتاج لاستخدام الإجراء أعلاه فقط أضف المتغير المذكور إلى السمات الموسعة Extended styles و قد استخدمت هذه الطريقة شخصيا وهي فعالة إذا عرفت كيفية استخدامها بشكل جيد كما أرجو إعلامي إذا تمكنت من حل المشكلة بطريقة أخرى
(g) :cool: :D (f)
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
لقد قمت بجعل النص يظهر بسلام من اليمين إلى اليسار وذلك باستخدام الدالة DrawText في الفئة Class View الخاص بالبرنامج وذلك في الدالة الخاصة بالمعاينة OnDraw حيث يمكنك وضع قيمة للدالة DrawText ، ولكن هذه الدالة تستخدم لكل سطر تمت طباعته وهذه مشكلة يكون حلها طويل ..
أريد تفاصيل أكثر للطريقة التي قدمها الأخ msas بتفاصيل أكثر فلقد جربة الطريقة وأضفتها للدالة UpDate الخاصة للفئة View وبستخدام المساعد للـ Visual Studio وجدة القيمة الممرة للدالة (المتغير الثاني للدالة) وبدون جدوى .. أرجو الأيضاح أكثر
والسلام عليكم
للرفع
وارجوا يا اخ msas ان تكمل جميلك وتكتب الكود للمثال اللي اعطيته لنا
وشكرا
أولا تعريف المتغير هو
#define WS_EX_LAYOUT_RTL 0x400000
ثانيا
في الحدث PreCreateWindow أضف السط السطر
cs.dwExStyle &= WS_EX_LAYOUT_RTL;
قبل عبارة return في نهاية الإجراء بالنسبة لكل class
في البرنامج فيتم قلب اتجاه البرنامج بشكل عام إلى الاتجاه العربي بما في ذلك الطباعة وهذا ما يدعى بتقنية المرآة في ويندوز
:cool: :D ;) :) :cool: (f)
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
جربت طريقة الأخ عبد الفتاح ولكنها طويلة نسبيا و يصعب التحكم بطول الصفحة أرجو منه توضيح تفصيل الطريقة بشكل عملي
:'(
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
شكرا اخوي msas
انا رح اجرب طريقتك واقولك عن النتيجة بس بدك تطول
بالك علي الله لا يهينك (f)
شكرا اخوي وتراك غمرتنا بنخوتك :confused:
شكرا مرة اخرى
اخواني عبد الفتاح وهاني الاتاسي و msas
الطريقة نجحت لكن مع القوائم والازرار القياسية
وعند معاينة الطباعة يتجه النص من اليمين الى اليسار لكنه يسحب المسافات من اليسار الى اليمين
يعني ان المشكلة مازالت موجودة لكنها في الجهة المقابلة
فاريد ان اسئلكم اخواني اذا واجهتم تلك المشكلة...
واذا لا فارجوا افادتي وكيفية اصلاحها
شكرا لكم جميعا ودمتم في رعاية الله وصونه
بالنسبة لمشكلة سحب المسافات أعتقد أنك تحاول استخدام أمر تغيير اتجاه الطباعة إلى اليمين داخل إجراء الحدث On Print وهنا أعتقد أه عليك استخدام الاجراءات الافتراضية المستخدمة مع النص من اليسار إلى اليمين والكود المشروح هنا مهمته هي قلب الاتجاه للعربي والسبب في الانزياح لخارج المساحة المطبوعة هو تصميم الاجراء الافتراضي ويمكنك العودة إليه في ملفات المصدر المرفقة مع فيجول سي ولكن تعديله أو تصميم إجراء بديل أمر لايتسع وقتي لعمله مع أنه من الضروري أن يقوم أحد الإخوان في المنتدى بذلك وإتاحته للآخرين لتعم الفائدة على الجميع وأن بدوري أشكر جميع من اهتم بآراءي المتواضعة وأنا أرحب بأي سؤال أو طلب تعاون على بريدي الالكتروني
والشكر للجميع
(f) :cool: :o (g)
عن عائشة رضي الله عنها أن النبي صلى الله عليه وسلم قال: إن الله يحب إذا عمل أحدكم عملا أن يتقنه
نعيب زماننا والعيب فينا ... وما لزماننا عيب سوانا
ونهجو ذا الزمان بغير ذنب ... ولو نطق الزمان لنا هجانا
محمد سامر أبو سلو
هذا الموضوع مغلق.