لم أتفحص الكود جيدا ، و لكن حاولت التعديل فيه علي السريع ، و مبدأيا هو يقوم بنقل النص المكتوب فى المربع الاصفر ( خاصية ال caption ) , و درجة الدوران التي يتم تسجيلها فى خاصية ال tag لل label بناء علي الرقم المختار
و يتم النقل الي احدي خواص ملف صورة metafile باستخدام دوال ال api و بذلك يتم العرض علي هيئة صورة و يمكن التحكم فى دورانها ، و فى النص المعروض بها , و يتم نقل خصائص التنسيق أيضا من ال label
و هنا طبعا فى حالتك لسنا فى حاجة الي دوران مستمر ، فسنلغي ال loop و نحدد درجة الدوران ، و قد نمرر القيمة مباشرة الي الدالة ، و مرفق مثال به ادارة النص مرة واحدة فقط 90 درجة و طبعا يمكن استبدال ال 90 ب 180 درجة
و هو مازال بتاء علي النص المكتوب و يمكن تمرير القيمة الي الدالة مباشرة
و قد غيرت أبعاد الصورة من هنا
' Convert Pixels back to TWIPS
ctlImage.Width = 2 * (lpRect.Right * (1440 / lngXdpi))
ctlImage.Height = 5 * (lpRect.Bottom * (1440 / lngXdpi))
و درجة الدوران من هنا
و يمكن تغييرها بدل 90 الي 180
و أيضا أوقفت ال loop لمنع الدوران
Private Sub Label26_Click()
' ************************
' WARNING!!!!!!
' DO NOT USE THIS METHOD
' FOR ANIMATION.
' There is a Resource Leak
' in the PlayEnhMetafile API.
'
Dim lngRet As Long
Dim x As Integer
Dim y As Integer
'For y = 1 To 10
'For x = 0 To 360 Step 1
Me.Label26.Tag = 90
lngRet = fRotateRunTime(Me.Label26, Me.Image0)
DoEvents
'Next x
'Next y
' WARNING!!!!!!
' ************************
End Sub
و كاتب الكود ، أشار فىالملحوظات المكتوبة فى الكود بانه يوجد ربط لملف الصورة الي حقل ، و لكن عليك بزيارة موقعه للحصول عليه
'Stephen Lebans
Stephen@lebans.com
www.lebans.com
و توجد فيه أداة لادارة النص و محاذاته
NEW Ver 2.0 JustifyText and RotateText ActiveX controls
=============
ايضا عند كتابة نص عربي ، لم يظهر جيدا ، ربما بسبب الفونت ، لكن هذه ليس هي المشكلة
بصراحة أشعر بوجود حلول أسهل من كل هذا ، فهل لابد أن نفعل كل هذا لكي ندير النص !!!
صراحة بهدلة :)
أعتقد أننا علينا أن لا نستمر فى بحث هذه الطريقة ، و انما نحاول البحث عن حل بديل
حاليا لا يخطر ببالي هذا الحل ، و لكن قد يكون هناك حل سهل متاح ، فنحاول البحث عنه
مع تحياتي
فى انتظار مشاركاتكم
Rotate_it.rar