ايران ويج

نسخه‌ی کامل: transparent كردن PictureBox
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام
چطوري ميشه كه مثلا يه شيء PictureBox رو بشه transparent كرد !
توجه كنيد كه بلدم يه فرم رو transparent كنم!
من ميخوام شيء PictureBox رو transparent كنم به طوري كه زمينه فرمم ديده بشه و هر چي كه رو فرمه از ميون PictureBox ديده بشه.
حالا اگر اين امكان وجود نداره. اگر اكتيو ايكسي سراغ داريد كه چيزي شبيه PictureBox است و قابليت اين رو داره كه اشياء ديگه رو توي خودش جاي بده ، يعني مثل يه فرم مستقل باشه درست مثل PictureBox يا مثل Frame عمل كنه و قابليت transparent شدن و مشاهده زمينه فرم رو داشته باشه معرفي كنيد.
ممنون ميشم .
نبي
سلام
من تازگيا يه برنامه گذاشته بودم كه چند تا بادكنك و ايران ويج روي صفحه بود فكر كنم يك نفر ديگه هم همچين برنامه اي گذاشته بود :wink:
NabiKAZ نوشته است:سلام
چطوري ميشه كه مثلا يه شيء PictureBox رو بشه transparent كرد !
توجه كنيد كه بلدم يه فرم رو transparent كنم!
من ميخوام شيء PictureBox رو transparent كنم به طوري كه زمينه فرمم ديده بشه و هر چي كه رو فرمه از ميون PictureBox ديده بشه.
حالا اگر اين امكان وجود نداره. اگر اكتيو ايكسي سراغ داريد كه چيزي شبيه PictureBox است و قابليت اين رو داره كه اشياء ديگه رو توي خودش جاي بده ، يعني مثل يه فرم مستقل باشه درست مثل PictureBox يا مثل Frame عمل كنه و قابليت transparent شدن و مشاهده زمينه فرم رو داشته باشه معرفي كنيد.
ممنون ميشم .
نبي
منظورت رو درست نگرفتم !؟؟ :?: Mask و اين حرفا ؟! :?:
mehdviruse نوشته است:سلام
من تازگيا يه برنامه گذاشته بودم كه چند تا بادكنك و ايران ويج روي صفحه بود فكر كنم يك نفر ديگه هم همچين برنامه اي گذاشته بود :wink:

من كه (بادكنك) سرچ كردم تو سايت چيزي پيدا نكردم .
اين چيزي كه ميگي لينكشو بده لطفا برم ببينم چي بوده ...
مرسي
amirjan نوشته است:
NabiKAZ نوشته است:سلام
چطوري ميشه كه مثلا يه شيء PictureBox رو بشه transparent كرد !
توجه كنيد كه بلدم يه فرم رو transparent كنم!
من ميخوام شيء PictureBox رو transparent كنم به طوري كه زمينه فرمم ديده بشه و هر چي كه رو فرمه از ميون PictureBox ديده بشه.
حالا اگر اين امكان وجود نداره. اگر اكتيو ايكسي سراغ داريد كه چيزي شبيه PictureBox است و قابليت اين رو داره كه اشياء ديگه رو توي خودش جاي بده ، يعني مثل يه فرم مستقل باشه درست مثل PictureBox يا مثل Frame عمل كنه و قابليت transparent شدن و مشاهده زمينه فرم رو داشته باشه معرفي كنيد.
ممنون ميشم .
نبي
منظورت رو درست نگرفتم !؟؟ :?: Mask و اين حرفا ؟! :?:


باشه يه جور ديگه ميگم !
ببينيد تا حالا موقع استفاده از PictureBox يا Frame دقت كرديد كه ميشه يه ايزار ديگه رو توي اونها قرار داد طوري كه اون ابزار از كنترل پيكچر يا فريم خارج نشه ! يه چيزي مشابه MIDI فرم ها ! با اونها كه حتما كار كرديد ..
اين رو تا اينجاش داشته باشيد !
از طرفي ديديد كه يه Lable رو وقتي خاصيت BackStyle اون رو به Transparent ست ميكنيد چه اتفاقي مي افته ؟ زمينه فرمتون يعني هر چي كه زير Lable هست ديده ميشه !
حالا من ميخوام يه همچين كاري رو بكنم كه زمينه كنترلم نا مرپي بشه و مثلا رنگ فرمم ديده بشه . اما نه براي هر ابزاري بلكه ابزار هايي كه اون خاصيت مورد اول كه توضيح دادم رو داشته باشند يعني مثل PictureBox ها يا Frame ها باشن.

حالا اين Mask كه گفتي چي هست ؟! بگو .. شايد هموني باشه كه ميخوام ..
ممنونم
نبي
اوني كه مهدي ميگه اينه لينكش : http://www.iranvig.com/modules.php?name=...e&sid=1040
ممنونم اشكان جان !

من مشابه اين سورس رو در برنامه (يك انيميشن پرنده) ديده بودم...
در واقع هر دوشون از تابع SetWindowRgn استفاده كرده بودند .
من متوجه نشدم كه آرگومان دوم اين تابع چيه ؟!
Public Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
لطفا يكي بگه قضيه اين (hRgn ) چيه ؟!؟!!

در مورد برنامه يه انيميشن پرنده اومده بود با يه تابع غير استاندارد يه فايل عكس رو به تابع TransparentForm ارسال كرده بود و مقدار بازگشتي اون رو به عنوان hRgn به SetWindowRgn فرستاده بود اون وقت ديده ميشد كه فرم به شكل اون فايل عكس در اومده !!!

در مورد برنامه بادكنك ها هم، اسم يه PictureBox رو به تابع ساختگي MakeRegion ارسال ميكنه و مقدار بازگشتي رو باز هم به عنوان hRgn (آرگومان دوم) به SetWindowRgn ارسال ميكنه و مشاهده ميشه شكل فرم به شكل عكس موجود در PictureBox در مياد.


هر چي هست اين hRgn حاوي اون مكانها يا مختصات ها يا مشخصه هايي از فرم مون ميشه كه قراره فعال و پيدا باشه و بقيه فرم در hRgn وجود نداره !!! حالا براي ايجاد hRgn از يه سري تابع ساختگي استفاده شده كه نتيجه مطلوب رو حاصل ميكنن.
(اين فقط برداشت منه اميدوارم درست توضيح داده باشم!)
حالا يكي لطفا در مورد اين hRgn بيشتر توضيح بده .

نتيجه :
خب! برنامه هاي بالا رو من به دقت ديدم . اما هيچ كدون چيزي نيست كه من ميخوام. مشكل اساسي همشون اينه كه باتوم ها و اشاء داخلي PictireBox رو هم همراه خود PictureBox ، Transparent ميكنند ! و من تنها ميخوام كه زمينه Transparent بشه .. و اشياء درون اون ديده بشن .
راه پيشنهادي:
به نظرم بشه يه كاري كرد كه همون طوري كه مثلا ميگفتيم جايي كه در PictureBox عكس وجود داره ديده بشه و زمينه اون كه عكس نيست Transparent بشه (كه همشم زير سره hRgn بود!) حالا ما به اين تابع SetWindowRgn بفهمونيم كه هر جايي كه CommandButoon وجود داره رو نشون بده و باقي رو Transparent كنه .. آره اينجوري همون چيزي ميشه كه من ميخوام .
فقط اين مستلزم اينه كه من ته و توي hRgn رو در بيارم .

لطفا يكي بگه hRgn چيه ؟!

باتشكر از همه دوستان
نبي
سلام مجدد
شايد بد توضيح دادم كه كسي نتونست جواب دقيق بده ...
البته دوستان خوب راهنميي كردن و سورسهاي خوبي ارائه دادن ولي هيچكدوم ج.اب من نبود.

يه تصوير ميزارم اينجا كه دقيقا متوجه ميشيد ميخوام چيكار كنم

[تصویر:  transparent.jpg]

ببينيد در يك كلام :
ميخوام Picture1 رو طوري transparent بكنم(يا در واقع حذف بكنم !!) كه ضمنه اينكه اون عكس توي زمينه فرمم ديده بشه ، بلكه اون Text1 و Command1 كه توي Picture1 واقع هستند روي فرمم باقي بمونن و ديده بشن !

به همين سادگي ...
حالا لطفا استاداش كمك كنيد
نبي
آقا نبي فك كنم گرفتم چيه قضيه.
تو يه كنترل ساختي ميخوايي اين كنترل رو بزاري توي فرمت و بعدش آبجكت هاي ديگه رو بگيري بندازي توي كنترلت و اونها همه توي اون قرار بگيرن .(يعني با حركت ككنترل ساخته شده تو اونها هم حركت كنن.
اگه اينه خوب پس بيا.
يه برنامه جديد باز كن.
بعدش بهش يه usercontrol اضافه كن.
برو و اين مقادير رو توش ست كن.
BackStyle=0
ControlContainer=true
خوب حالا كنترلت رو ببند و توي فرم اصلي برنامت كنترلت رو بزارش .
بعد يه آبجكت مثلا كامند باتم رو بگير و توي كنترلت بنداز.
حالا روي كنترلت كليك كن و حركتش بده ميبيني كه همه با هم حركت ميكنن.
سلام
اينكاري كه گفتي رو قبلا دقيقا انجام داده بودم. ولي مشكل اين روش اينه كه در برنامه اصليم ديگه به ابجكت هاي درون يوزر كنترل دسترسي ندارم !
اينو چيكارش كنم !!
توي هيچ كنترلي شما مستقيم نميتوني به آبجكتهاي درونيش دسترسي داشته باشي اين كار فقط با برنامه هست.
صفحه‌ها: 1 2