امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
برنامه نمایش لوگوهای حرفه ای
نویسنده پیام
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #1
برنامه نمایش لوگوهای حرفه ای
سلام

امروز می خوام راجع به یک برنامه خیلی عالی که این حقیر نوشتمش کمی توضیح بدم.
البته برادرم نسخه آزمایشی اون رو یکی دو ماه پیش تو بخش تبلیغات برای فروش گذاشته بود که مورد لطف دوستان قرار گرفت و پاکش کردند. و حالا از اونجایی که کد های نسخه اصلی رو در غالب یک برنامه کامل تر از من خریدند (البته نه حق انتشار کد رو), بد ندیدم که برای دوستان ایرانویج ی مطرح کنم چون نکات و مسائل نوی زیادی درش هست.
می تونید سورس کد رو از همین سایت و آدرس زیر دانلود کنید نظر یادتون نره.
http://www.iranvig.com/4529.html

اما لوگو چی هست که لازمه نمایش داده بشه؟
لوگو به یک نقاشی (طرح) گفته می شه که نشون دهنده یک پروژه, طرح و یا یک برنامست و اغلب شما در ابتدای اجرای برنامه های بزرگ یک کادری در وسط صفحه می بینید که در اون کادر نام برنامه, نسخه و به ویژه شرکت, گروه یا عوامل پیدید آورنده اون محصول, به چشم می خوره (یک جور پوستر کوچک دیجیتالی).

حالا شما که چند ماه زحمت ساخت برنامه ای رو کشیدید بهتره یک همچین لوگویی رو برای برنامه طراحی کنید تا جهت نگاه به برنامه شما, مثل برنامه ها و کار های حرفه ای بشه.

به عنوان مثال خود من یک برنامه حسابداری نوشتم (که البته سفارش گرفته بودم) و در ابتدای اجرای اون برنامه لوگوی زیر به نمایش در میومد.

[تصویر:  MD_Sample2.png]
دانلود

اسم اون برنامه ساحل بود! در اختصار SOf .و طرح بالا نمونه لوگو هست که خود اصلش بسیار بزرگتر و با کیفیت تره.

اما از اونجایی که اضافه کردن و پرداختن به کد در غالب یک کار گرافیکی درون یک برنامه (یا پروژه) غیر گرافیکی نظیر یک سیستم حساب داری یا کنترل تولید و یا انبار بسیار هزینه بر هست (اینجا هزینه منظور هزینه مالی به طور مستقیم نیست, منظور کد نویسی مضاعف به همراه صرف وقت بیشتر برای برنامه, همین طور کار های گرافیکی به دنبال خودش منابع حافظه بیشتری رو مشغول می کنه) که این در نهایت می تونه به پروژه شما صدمه بزنه. چرا که پرداختن به جنبه تزئینی کار و صرف چنین امکاناتی فقط برای نمایش یک لوگو که کاربر اون رو شاید روزی 2 ثانیه هم مشاهده نکنه, اصلا عقلانی نیست.

از این جهت این برنامه می تونه کمک خیلی بزرگی برای شما باشه چطور؟
-شما وقت و انرژی خودتون رو می زارید برای برنامتون
-به گرافیستتون سفارش طراحی یک لوگو مناسب با برنامهتون رو می دید (اگر هم خودتون طراحی کنید ایرادی نداره!)
-در نهایت که برنامه و فایل لوگو آماده شدند شما تنها کاری که باید انجام بدید اینه که به Mask Desktop بگید لوگو رو اول اجرای برنامتون نمایش بده.

برای اینکه بدونید چه لوگوهایی برای برنامتون مناسب تره توضیحات چگونگی استفاده از برنامه Mask Desktop (به اختصار دیگه می گم MD) رو در ادامه مطالعه کنید.

چطور از Mask Desktop استفاده کنید.
کد ها رو کامپایل کنید تا فایل اجرایی برنامه در اختبارتون باشه.
حالا با اجرای فایل اجرایی برنامه لوگوی خود برنامه MD به نمایش در میاد. خوب نگاه کنید که یک لوگو باید چنین مشخصه هایی داشته باشه.
برای اینکه برنامه MD بتونه لوگو یا فایل تصویری شما رو به نمایش در بیاره سه کار می تونید انجام بدید.

1-فایل اجرایی برنامه رو همراه با نام و مسیر فایل (های) تصویری خودتون اجرا کنید به عنوان مثال:

MaskDesk.exe "C:\Test.Png"

2-فایل یا فایل های تصویری خودتون رو در پنجره اکسپلورر انتخاب کنید و اون ها رو بکشید و بندازید داخل فایل اجرایی برنامه!

3- فایل یا فایل های تصویری خودتون رو در پنجره اکسپلورر انتخاب کنید و اون ها رو بکشید و بندازید داخل یکی از فرم هایی که برنامه MD در حال نمایش اون هاست.

نکته: هر برنامه نویسی می دونه که روش های یک و دو یکی هستند!

اما مسئله برنامه نمویسی: یعنی اینکه برنامه MD چه روشی برای انجام این کار داره معرفی می کنم اما چگونگیش رو خودتون از طریق بررسی کد متوجه می شید و اگر سردرگم شدید می تونید از خود من در همین بحث سوال کنید.

# چطور میشه یک یا چند فایل (آدرس فایل) رو در مسیر ورودی به فایل اجرایی (Command$) شناسایی کرد. توجه کنید که مسئله مهم اینجا خود فرمان Command$ در وی بی نیست بلکه, اینکه چطور MD می تونه چند مسیر فایل رو حتی از داخل یک رشته بی معنی ورودی شناسایی کنه. کد رو مطالعه کنید ماژول mMain زیر برنامه main

# چطور میشه از خاصیت DragDrop درون برنامه ها (منظور ارتباط منابع خارجی با خود برنامه ما از طریق OleDragMode اشیاء است) استفاده کرد. به برنامه MD فرم FrmLogo خصوصیت OleDragMode و رویداد Form_OLEDragDrop مراجعه کنید.

شما با MD علاوه بر فرمت های bmp,Gif,Jpg,Wmf,Emf که وی بی 6 ازشون پشتیبانی می کنه می تونید از فرمت های PNG,Tif و همه فرمت هایی کهGDIP ازشون حمایت می کنه استفاده کنید چون موتور نمایش تصاویر در MD توابع GDI+ هست که به جای خودش مفصل براتون توضیح می دم که چطور این کار انجام می شه.
خوب حالا دونستید که چطور فایل تصویری خودتون رو با MD نمایش بدید. حالا اگر روی هر کدوم از تصاویر دابل کلیک کنید می تونید اون تصویر رو ببیندید.
برای بستن فایل اجرایی که ممکنه در حال نمایش چند تصویر باشه, کافیه روی یکی از فرم ها راست کلیک کنید و از منوی ظاهر شده گزینه آخر Exit رو انتخاب کنید. راه ساده تر استفاده از Hotkry هست:Ctrl+X یا Ctrl+End
اما با فرض اینکه شما تعداد زیادی فرم و برنامه MD در حال اجرا دارید با سوئیچ CloseAll به ترتیب زیر می تونید تمام پنجره ها همین طور تمام برنامه های MD در حال اجرا رو ببندید.

MaskDesk.exe CloseAll

نکته: شما با انتخاب گزینه Exit از منوی راست کلیک فقط فایل اجرایی جاری رو می بندید اما اگر MD رو با فرمان CloseAll اجرا کنید MD تازه اجرا شده تمام MD های در حال اجرا رو می بنده (همین طور خودش رو)
#چطورMD با فرمان CloseAll می تونه بقیه MD های در حال اجرا رو ببنده به ترتیب زیره:
با نمایش هر تصویر )فرم) MD دستگیره هندل اون پنجررو در رجیستری ثبت می کنه و در موقع بستن اون فرم کد هندل از رجیستری پاک میشه. به هنگام اجرای CloseAll برنامه تمام پنجره های باز (ثبت شده) را می بنده. به کد توجه کنید ماژول mMain زیر برنامه های Save_hWnd CloseAllLogos, LoadLogo, و فرم FrmLogo زیر برنامه Form_Unload

دیگه دیروقته من فعلا سریع امکانات برنامرو لیست می کنم اگر علاقهمند بودید در مورد چون و چرای انجام اون ها براتون مفصل توضیح می دم.
-تنظیم شفافیت یا به قولی Transparency تصاویر (در اصلاح GDI+ بهش می گند ConstantAlpha)

-تنظیم و تغییر سایز تصویر
-امکان ثابت یا قابل جابجایی کردن هر یک از تصاویر
-سیستم پیچیده و پیشرفته سویچینگ با استفاده از منطق اپریتور
-امکان ایجاد فایل اجرایی مجزاء برای هر تصویر
-امکان ایجاد یک فایل اجرایی مجزاء برای مجموعه ای از تصاویر
-امکان ذخیره تنظیمات اعمالی شما در هر یک از فایل های اجرایی مجزایی که می سازید
و کلی کارکرد و امکان دیگه که توضیح خواهم داد بعدا...

این هم هدیه من به شما یک فایل PNG زیبا که خودم طراحی کردم با MD اجرا کنید کیفش رو ببرید.

[تصویر:  MD_Sample1.png]
دانلود
(آخرین ویرایش در این ارسال: ۲۴-مرداد-۱۳۸۶, ۲۱:۱۳:۲۶، توسط Darg.)
۲۴-مرداد-۱۳۸۶, ۲۰:۱۹:۵۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh, behzady
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #2
RE: برنامه نمایش لوگوهای حرفه ای
خیلی جالب بود! اولین بار بود که همچین تکنیک هایی می دیدم. البته روش 2 که بنظر من از همه جالبتر بود کار نمی کرد! شاید هم من درست متوجه نشدم. من که وقت ندارم کداش رو نگاه کنم. کاش چند وقت دیگه اینو می فرستادی. چون ایرانویج خیلی خلوت شده. کسی نیست که در مورد کدهایی که نوشتی بحث کنه و خوب مطلب برا همه جا بیفته. این کدا جا برای صحبت کردن داره.
یه سوال :
این لوگوی برنامت رو با چی طراحی کردی؟

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
(آخرین ویرایش در این ارسال: ۲۴-مرداد-۱۳۸۶, ۲۲:۴۴:۰۶، توسط محمد حسینی.)
۲۴-مرداد-۱۳۸۶, ۲۲:۴۰:۵۲
ارسال‌ها
پاسخ
NabiKAZ آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 520
موضوع‌ها: 48
تاریخ عضویت: اسفند ۱۳۸۲

تشکرها : 6
( 60 تشکر در 46 ارسال )
ارسال: #3
RE: برنامه نمایش لوگوهای حرفه ای
جالب بود.
فقط بهتر بود مدلهای effect زمان نمایش عکس هم cutomize میکردی.
و دیگه اینکه فایل exe تولید شده وقتی اجرا میشه ، دلیل نداره right click فعال باشه و option ها نمایش داده بشه.

۲۴-مرداد-۱۳۸۶, ۲۲:۵۳:۴۹
وب سایت ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #4
RE: برنامه نمایش لوگوهای حرفه ای
اما توضیح در باره سیستم سوئیچیگ برنامه

می شه گفت 95 درصد امکانات برنامه رو شما می تونید با سوئیچ های ورودی به فایل اجرایی کنترل کنید در زیر لیست همه سوئیچ های مورد استفاده MD رو ملاحظه می کنید:

1-CloseAll باعث بسته شدن همه پنجره ها و MD های باز می شود
2-DontOnTop باعث می شود تصویر به طور پیش فرض برای همیشه برروی همه پنجره های ویندوز قرار نداشته باشد
4-DontMoveable باعث می شود کاربر قادر به جابجا کردن پنجره تصاویر نباشد
8-DontDragActive مانع از فعال بودن خاصیت DragDrop موجود در برنامه MD می شود. یعنی با این سوئیچ دیگر کاربر نمی تواند فایل جدید به داخل پنجره های MD بیاندازد تا تصویر جدید نمایش داده شود.
16-DontLoadEffect مانع از فعال بودن Effect ظاهر شدن تصویر در ابتدای نمایش آن می شود. یعنی تصویر (ها) به یک باره نمایش خواهند یافت.

بدون کد: سوئیچ Top number شما با آوردن سوئیچ Top و یک عدد بعد از آن مشخص می کنید که تصویر شما در کدام منطقه از محور Y ها در صفحه نمایش ظاهر شود.

بدون کد: سوئیچ Left number شما با آوردن سوئیچ Left و یک عدد بعد از آن مشخص می کنید که تصویر شما در کدام منطقه از محور X ها در صفحه نمایش ظاهر شود.
در واقع با سوئیچ Left و Top محل نمایش تصویر خود را مشخص می کنید!
نکته بعدی اینکه اگر از دو سوئیچ Top و Left استفاده نکنید MD تصویر را دقیقا در وسط صفحه نمایش قرار خواهد داد.

بدون کد: سوئیچ Opacity number عدد بعد از سوئیچ Opacity مشخص کننده درصد شفافیت تصویر است. این عدد به طور پیش فرض برنامه 100 یعنی با شفافیت کامل می باشد.

بدون کد: سوئیچ Size number عدد بعد از سوئیچ سایز در واقع ضریبی است که در اندازه اصلی تصویر (های) ورودی شما اعمال خواهد شد. که اگر مثلا عدد وارده کوچکتر از یک باشد تصویر شما کوچکتر و اگر بزرگتر از یک باشد تصویر (ها) بزرگتر خواهند شد.

خوب اگر دقت کنید برای سوئیچ های ابتدایی کدی در نظر گرفته شده و بقیه سوئیچ ها کد ندارند. توجه کنید:
1-CloseAll
2-DontOnTop
4-DontMoveable
8-DontDragActive
16-DontLoadEffect

این کد ها برای این هستند که اگر شما کلمه سوئیچ را حفظ نبودید فقط با وارد کردن هر یک از این اعداد در ورودی MD می توانید همان کار سوئیچ مربوطه را انجام دهید مثلا:
MaskDesk.exe CloseAll
دقیقا برابر فرمان:
MaskDesk.exe 1
خواهد بود. از این جهته که قبلا گفتم برنامه سیستم سوئیچینگ پیشرفته ای داره و کار به همین جا ختم نمی شه. به ادامه توجه کنید:
به عنوان مثال اگر شما بخواهید یک تصویر هم غیر قابل جابجایی باشه و هم روی بقیه پنجره های ویندوز نباشد باید فرمان زیر رو صادر کنید:
MaskDesk.exe "C:\test.png" DontOnTop DontMoveable
اما راه ساده ترش اینه که کد های دو سوئیچ نامبرده رو با هم Or منطقی کنید:
کد:
2 Or 4 = 6
حالا فرمان زیر دقیقا کار فرمان قبلی رو انجام می ده:
MaskDesk.exe "C:\test.png" 6
یک مثال دیگه:
به جای فرمان زیر از معادلش استفاده کنید
MaskDesk.exe "C:\test.png" DontOnTop DontDragActive DontLoadEffect
MaskDesk.exe "C:\test.png" 16

به سیستم کد هی که در بالا معرفی شد منطق اپریتور در برنامه نویسی می گند
# چطور برنامه MD متوجه منطق کدهای سوئیچ ورودی میشه رو در ماژول mMain زیر برنامه Main می تونید ببینید.

اما یک مثال کلی:
MaskDesk.exe "C:\Test1.png" "C:\Test2.png" 4 Top 100 Left 500 Size 0.5 Opacity 80

توضیحات ادامه خواهد داشت...
(آخرین ویرایش در این ارسال: ۲۵-مرداد-۱۳۸۶, ۰۲:۵۲:۳۴، توسط Darg.)
۲۵-مرداد-۱۳۸۶, ۰۲:۴۷:۲۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #5
RE: برنامه نمایش لوگوهای حرفه ای
spiderman نوشته است:...البته روش 2 که بنظر من از همه جالبتر بود کار نمی کرد!...
من هم منظورت رو از روش دو متوجه نشدم.
در ضمن ممنون باببت نظری که دادی
نقل قول: این لوگوی برنامت رو با چی طراحی کردی؟
خود لوگو فایل PNG هست که با برنامه PhotoImpact طراحی شده!

نقل قول: ...بهتر بود مدلهای effect زمان نمایش عکس هم cutomize میکردی...
فقط یک effect برای نمایش وجود داره که اون هم با سوئیچ DontLoadEffect یا کد 16 از کار میافته
در ضمن از شما هم ممنونم

نقل قول: ...فایل exe تولید شده وقتی اجرا میشه ، دلیل نداره right click فعال باشه و option ها نمایش داده بشه
درسته این برای اینکه کاربر جدید بتونه باز هم روی تصویر نمایش داده شده تغییرات شفافیت و سایز خودش رو اعمال کنه اما مهمترین دلیل من همون گزینه About برنامه بود Cool

شما کد رو دراختیار دارید می تونید مناسب با نظر شخصی خودتون تغییرات درش بدید.
۲۵-مرداد-۱۳۸۶, ۰۲:۵۹:۱۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #6
RE: برنامه نمایش لوگوهای حرفه ای
این هم یک تصویر PNG زیبای دیگه:
[تصویر:  SampleLogo10.png]
دانلود
۲۵-مرداد-۱۳۸۶, ۰۳:۰۳:۱۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh
محمد حسینی آفلاین
کاربر فعال بخش رباتیک
****

ارسال‌ها: 1,363
موضوع‌ها: 139
تاریخ عضویت: آذر ۱۳۸۴

تشکرها : 974
( 1780 تشکر در 620 ارسال )
ارسال: #7
RE: برنامه نمایش لوگوهای حرفه ای
منظورم این بود :
نقل قول: -فایل یا فایل های تصویری خودتون رو در پنجره اکسپلورر انتخاب کنید و اون ها رو بکشید و بندازید داخل فایل اجرایی برنامه!

به راه بادیه رفتن، به از نشستن باطل ------------- اگرچه وصل نیابم، بقدر وسع بکوشمRolleyes
۲۵-مرداد-۱۳۸۶, ۱۱:۰۰:۳۷
ارسال‌ها
پاسخ
Pedram_HookEx آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 459
موضوع‌ها: 23
تاریخ عضویت: خرداد ۱۳۸۴

تشکرها : 1
( 109 تشکر در 65 ارسال )
ارسال: #8
RE: برنامه نمایش لوگوهای حرفه ای
واقعا عالی بود بهترین قابلیتش هم که من هیچ جا ندیده بودم نشون دادن لوگوهای Transparent بود بدون اینکه از تصویر پشت خود صفحه نمایش برای ایجاد افکت ها استفاده کنه یعنی اگه صفحه پشت لوگو رو عوض کنید لوگو خراب نمیشه

دستت درد نکنه

_______________________________________________________________________________
  • کشف الکتریسیته توسط پارتها برای اولین بار کلیک کنید
  • 135 نکته و آموزش از سطح پایین تا پیشرفته در غالب مثال های کوچک و قابل فهم (حجم 97KB)لینک دانلود
  • 101 آموزش پیشرفته ویژوال بیسیک. حتما دانلود کنید(حجم 314KB)لینک دانلود
  • اینم یه کتابچه ویژوال بیسیک برا اونایی که میخوان برنامه نویسی رو شروع کنن(حجم 916KB)لینک دانلود
  • تمام نکات و ترفند های مهم در ویندوز XP حتما دانلود کنید(حجم 86KB)لینک دانلود[تصویر:  new4.gif]
  • بروزرسانی ویژوال بیسک 6 به آخرین نسخه یعنی سرویس پک 6 (حجم 61MB)لینک دانلود[تصویر:  new4.gif]

۲۵-مرداد-۱۳۸۶, ۱۲:۴۹:۱۶
ارسال‌ها
پاسخ
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #9
RE: برنامه نمایش لوگوهای حرفه ای
و اما ادامه ماجرا...

براتون گفتم که MD برای نمایش تصاویر از GDIp (بخونید جی دی آی پلاس) که در واقع نسخه بسیار پیشرفته تر و بهینه شده GDI32 هست, استفاده می کنه. و همین قدر بهتون بگم که فعالیت های گرافیکی که شما در ویندوز ویستا مشاهده می کنید بدون این GDIp امکان پذیر نبودن.
اگر بخوام راجع به GDIp توضیح بدم باید یه وقت و فضا بیشتر از MSDN به این کار اختصاص داد پس فقط یک توضیح مختصری درباره GDIp می گم و بعد می ریم سراغ خود برنامه MD

ویندوز برای انجام فعالیت های گرافیکی خودش تا اونجا که می تونه این کارهای بخصوص رو به کارت گرافیک ارجاع می ده. دلیلش هم مشخصه. چون پردازنده کارت گرافیک برای پردازش های گرافیکی طراحی و پیاده شده و این کار ها رو خیلی سریع تر از سی پی یو انجام می ده. و با کم مشغله شدن خود سی پی بو, کار های اصلی و پردازشی مربوط به برنامه ها رو میندازند گردن سی پی بو که این مسئله سرعت کامپیوتر رو خیلی بالا می بره.

اما برای فعالیت های سه بعدی گرافیکی, همین طور بازی های کامپیوتری و مدل سازی های حجیم ما DirectX رو داریم. البته OpenGL هم هست که مربوط به بحث ما نمی شند.
چیزی که برای ما مهمه طراحی های دو بعدی هست که ویندوز برای اون ها در خودش از GDI استفاده می کنه.

به طور پیش فرض در ویندوز اکس پی API جاری GDI32 هست اما در عین حال GDIp هم دردسترس هست تا هر برنامه ای که خواست توابع و عملگر های اون رو فراخوانی کنه.
استفاده از واژه "به طور پیش فرض در ویندوز ویستا از GDIp استفاده می شه" درست نیست ولی خود ویندوز ویستا از GDIplus برای همه فعالیت های طراحی دو بعدی دسکتاپ خودش استفاده می کنه.
فایل سیستمی GDIp به نام GDIPLUS.DLL هست.

کار کردن با dll جی دی آی پلاس در نفس عمل شبیه همون GDI32 هست ولی به دلیل افزایش محدوده عملکرد GDIp همین طور قوی و سریع شدن توابع شما شاهد چیزهای جدید زیادی خواهید بود. مثلا برای شناختن یک رنگ در GDIp علاوه بر سه عنصر اصلی RGB ما یک عنصر جدید به نام Alpha داریم که وظیفه بخصوص خودش رو به عهده داره بنابراین عدد Long که از سیستم رنگ GDIp به دست میاد با عدد Long که در حالت عادی از تابع RGB می گیرید تفاوت داره. و این تشخیص بر عهده خود برنامه نویسه. یعنی شما باید خودتون تابعی داشته باشید که رنگ GDIp رو بتونه تبدیل کنه به استاندارد رایج وی بی 6 مثلا.

اما بیشتر از این توضیح نمی دم اگر علاقه دارید به MSDN و سند های موجود همین طور صدها کد آماده ای که روی نت موجوده, مراجعه کنید. البته الان که در مورد MD توضیح بدم باز هم یه چیزهایی دستگیرتون می شه...

چطور MD فایل های تصویری رو به این شکل خاص نمایش می ده؟
MD برای این کار از کلاس ماژول موجود در خودش که LayeredPNGWindow هست استفاده می کنه. همین جا بگم که کد نویسی اصلی این کلاس ماژول کار من نیست و برای حفظ حقوق نویسندش, اون اطلاعات اولیهش رو پاک نکردم ببینید. من فقط بهینه کردم کد رو تا برای MD آماده بشه.
برای شروع کار با GDIp ما باید اون رو استارت بزنیم که این کار بوسیله تابع GdiplusStartup انجام شده در همون ابتدای آغاز کار کلاس ماژول یعنی در زیر برنامه Class_Initialize

GdiplusStartup یه عدد Long به اسم Token بر می گردونه. ما به این عدد احتیاج داریم برای Shutdown کردن GDIp باز شده. این خیلی مهمه که شما هر GDIp که استارت می زنید به وسیله عدد Token حاصله حتما اون رو خاموش کنید تا مثلا وی بی 6 شما در اصطلاح CRASH نکنه. یعنی بعد از اتمام کارتون با GDIp در این کلاس ماژول حتما تابع UnloadPNGForm رو فراخوانی کنید تا علاوه بر بستن عناصری که در حافظه به خودش اختصاص داده GDIp جاری مورد استفادتون رو Shutdown کنه.

همه کار های مهم در این کلاس ماژول توسط زیر برنامه:

کد:
MakeTrans(ByVal pngPath As String, FormIn, ByVal ConstantAlpha As Byte, [ByVal ChangeSize As Single = 1], [ByVal LoadEffect As Boolean = False])

انجام می شه.
من طوری این زیر برنامه مرو بهینه کردم که شما قادرید حتی بدون MD هم از اون درون برنامه هاتون استفاده کنید.
فقط کافیه ورودی های زیر رو بهش بدید تا براتون کار رو انجام بده:
pngPath مسیر فایل تصویری تون. که حتی می تونه PNG هم باشه علاوه بر بقیه فرمت های تصویری رایج
FormIn باید خود فرمتون رو وارد کنید. توجه کنید اینجا منظور اسم فرم هست و نه hWnd با مثلا HDC یا هر چیز دیگه ای فقط و فقط خود فرمتون رو.
ConstantAlpha عددی که باهاش مقدار شفافیت تصویر رو مشخص می کنید. حتی اگر تصویر شما به طور پیش فرض شفافیت داشه باشه مثل تصاویر GIF یا PNG بوسیله این عدد می تونید شفافیت کل تصویرتون رو کنترل کنید. برای شفافیت کامل (یعنی اینکه برنامه در تصویرتون تغییر شفافیتی نده) از عدد 255 در ورودی استفاده کنید.
ChangeSize همون ضریب سایز هست. به طور پیش فرض عدد یک هست تا تغییر اندازه ای صورت نگیره.
LoadEffect هم اگر True باشه تصویرتون همراه با افکت به نمایش در میاد.
این هم یک مثال برای این زیر برنامه:

کد:
mPNG.MaskTrans("C:\test.gif",Me,200,,True)

اما داخل زیر برنامه MaskTrans چی میگذره رو بعدا توضیح می دم...
(آخرین ویرایش در این ارسال: ۲۸-مرداد-۱۳۸۶, ۱۱:۵۳:۴۴، توسط Darg.)
۲۸-مرداد-۱۳۸۶, ۱۱:۴۴:۲۱
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : mojtabamalaekeh
Darg غایب
مدير بازنشسته
*****

ارسال‌ها: 894
موضوع‌ها: 40
تاریخ عضویت: تير ۱۳۸۴

تشکرها : 381
( 702 تشکر در 190 ارسال )
ارسال: #10
RE: برنامه نمایش لوگوهای حرفه ای
spiderman نوشته است:منظورم این بود :
نقل قول: -فایل یا فایل های تصویری خودتون رو در پنجره اکسپلورر انتخاب کنید و اون ها رو بکشید و بندازید داخل فایل اجرایی برنامه!
نه تست کردم درست کار می کنه...
آخه در ورودی فرمان محدودیت وجود داره و حداکثر 255 کاراکتر رو میشه وارد کرد...(ممکنه ایراد از این مطلب بوده)
۲۸-مرداد-۱۳۸۶, ۲۰:۳۴:۵۱
وب سایت ارسال‌ها
پاسخ
flush آفلاین
تازه وارد

ارسال‌ها: 13
موضوع‌ها: 3
تاریخ عضویت: اسفند ۱۳۹۱

تشکرها : 13
( 46 تشکر در 14 ارسال )
ارسال: #11
RE: برنامه نمایش لوگوهای حرفه ای
سلام
الان این آدرس رو : http://www.iranvig.com/4529.html
من با چه الگوریتمی به حالت جدید این فروم برگردونم :X
(چک کردم این آدرس نبود : http://www.iranled.com/forum/thread-4529.html)
۰۲-اسفند-۱۳۹۱, ۰۸:۴۱:۵۱
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [فوری] درخواست سورس پنهان شدن فرم و نمایش فقط متن لیبل ها . مجتبی میر 1 1,066 ۳۱-فروردین-۱۳۹۹, ۱۹:۴۱:۰۳
آخرین ارسال: مجتبی میر
  جستجو بین دو دو تاریخ و نمایش اطلاعات بین دو تاریخ mahdi61 1 3,020 ۰۵-دى-۱۳۹۵, ۰۲:۳۰:۳۴
آخرین ارسال: Ghoghnus
  گرفتن متن فارسی و نمایش آن از فایل متنی GTAexcess 2 3,065 ۱۳-اردیبهشت-۱۳۹۵, ۱۴:۰۸:۴۷
آخرین ارسال: Ghoghnus
  نمایش وایرلس و آیپی آن Vb6Moderator 1 2,803 ۲۶-شهریور-۱۳۹۴, ۰۹:۲۶:۴۷
آخرین ارسال: moderator
  نمایش آخرین خط تکت باکس mahdi321 2 3,122 ۱۷-مرداد-۱۳۹۳, ۱۸:۵۳:۴۴
آخرین ارسال: Vb6Moderator
  مدیریت و نمایش پیغام مناسب برای خطاهای احتمالی sepahbod 3 3,674 ۱۴-فروردین-۱۳۹۳, ۲۲:۰۶:۴۹
آخرین ارسال: Di Di
Question [سوال] محاسبه یا نمایش فضای cd خام mhad 9 7,742 ۲۹-آذر-۱۳۹۱, ۲۳:۰۸:۵۳
آخرین ارسال: Ghoghnus
  نمایش محتویات یک فولدر در tree aliooali 2 2,831 ۲۸-مرداد-۱۳۹۱, ۱۲:۵۱:۱۱
آخرین ارسال: aliooali
  سورس نمایش لحظه به لحظه ی ترافیک استفاده شده RAMA2009 3 3,856 ۲۰-اردیبهشت-۱۳۹۱, ۲۰:۳۸:۳۹
آخرین ارسال: lord_viper
  پیغام خطای عدم نمایش اتصال به بانک automa 10 9,000 ۳۰-فروردین-۱۳۹۱, ۲۰:۱۶:۵۲
آخرین ارسال: automa

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS