تور لحظه آخری
امروز : پنجشنبه ، 8 شهریور 1403    احادیث و روایات:  امام علی (ع):نـادانى، مايـه مرگ زندگان و دوام بدبختى است.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها




آمار وبسایت

 تعداد کل بازدیدها : 1813139628




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

تعيين مختصات ماوس از داخل usercontrol


واضح آرشیو وب فارسی:سایت ریسک: ULF_VB 618-07-2007, 07:06 PMسلام به همه دوستان عزيز من مي‌خوام يه ocx بنويسم كه وقتي ماوس روي اون قرار مي‌گيره شكل اون تغيير مي‌كنه و وقتي از محدوده كنترل خارج شد شكلش به حالت اول برگرده. حالا مشكل اينجاست كه نمي‌دونم چجوري بايد مشخص كنم كه كرسر روي كنترل قرار داره يا نه؟ اگه راهنماييم كنيد ممنون مي‌شم. البته مطمئنم كه مي‌شه همچين كاري رو انجام داد ولي چجوريش رو نمي‌دونم. چون كنترل‌هايي هستن كه اين‌كار رو انجام مي‌دن. lucky_002020-07-2007, 02:10 AMدر کد مربوط به UserControl کد زیر را وارد کنید و به جای 3شماره شکل مورد نظر خودتون رو بگذاری. Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) UserControl.MousePointer = 3 End Sub موفق باشید. ULF_VB 620-07-2007, 12:05 PMlucky جان منظورم از شكل اون تغيير مي‌كنه اين بود كه شكل خود اون كنترل تغيير بكنه نه كرسر ماوس. در واقع مي‌خوام يه جوري تعيين كنم كه آيا ماوس توي هر لحظه روي كنترل من قرار داره يا نه؟ مثل commandbutton ويندوز XP كه وقتي ماوس مي‌ره روش يه خط دورش كشيده مي‌شه. lucky_002020-07-2007, 05:43 PMببخشید:31: البته دوست عزیر ،فرق چندانی هم نداره.از MouseMove استفاده میشه.اما برای تغییر شکل دادن Command می تونید از 2 تا Pictute استفاده کنید و حتی بیشتر. اما برای تشخیص مکان موس هم از X,Y موجود در MouseMove استفاده کنید. اگر مشکل حل نشد.ایمیل بدید براتون سورس بفرستم lucky_002020-07-2007, 06:05 PMدوست عزیز این هم یه مثال خیلی ساده: یه UserControl بوجود بیارید یک Command به نام Command 1 در آن قرار بدید و خاصیت Style آن را روی 1 قرار بدید.و کد زیر را در آن کپی کنید. Private Sub Command 1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command 1.BackColor = &H80C0FF End Sub Private Sub UserControl_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Command 1.BackColor = &H8000000F End Sub Private Sub UserControl_Resize() If (UserControl.Width < 100) Then UserControl.Width = 100 End If If (UserControl.Height < 100) Then UserControl.Height = 100 End If Command 1.Left = 50 Command 1.Top = 50 Command 1.Width = UserControl.Width - 100 Command 1.Height = UserControl.Height - 100 End Sub lucky_002020-07-2007, 06:08 PMالبته برای تشخیص مکان موس غیر از حالتی که من نوشتم می شه از X,Y هم استفاده کرد.که اگه خواستید بگید براتون ایمیل کنم. در کد بالا که براتون نوشتم اگه موس روی Command بره رنگ Command عوض می شه. ULF_VB 621-07-2007, 08:55 AMسلام، اينايي كه گفتي رو همه رو بلدم. به نظر شما اگه سايز UserControl با سايز Command يكي باشه بازم اين كدي كه نوشتي بازم جواب مي‌ده ؟!! معلومه كه جواب نمي‌ده. به نظر من بايد يه راهي پيدا كرد كه بدون استفاده از mousemove و اينا بشه فهميد كه ماوس كجاي صفحه هست. همين!!! lucky_002021-07-2007, 05:53 PMدوست عزیز. اولاً که بالای کدها نوشتم یه مثال ساده.و براتو ن هم نوشتم اگه می خواهید با مختصات کار کنید بگید براتون بفرستم.چون حجم سورس هایی که دارم زیاده.دوماً که این اتفاق هیچ وقت نمی افته.یعنی هیچ وقت این دوتا یه اندازه نمی شن.اگه به کد دقت کنید متوجه می شید چرا. سوم این که این کد یه ایراد دیگه داره.اون هم اینه که اگه دو تا کنترل کاملاً کنار هم قرار بگیرند این روش دیگه جواب نمی ده.و خودم هم از این روش فقط برای بوجود آوردن یه کنترلهای خاص استفاده می کنم.که این اتفاق توشون هرگز نیافته.در هر صورت در اولین فرصت کد مربوط به مختصات رو براتون می ذارم.چون کل Ocx حجمش زیاده. موفق باشید. ULF_VB 621-07-2007, 07:22 PMدوست عزیز. اولاً که بالای کدها نوشتم یه مثال ساده.و براتو ن هم نوشتم اگه می خواهید با مختصات کار کنید بگید براتون بفرستم.چون حجم سورس هایی که دارم زیاده.دوماً که این اتفاق هیچ وقت نمی افته.یعنی هیچ وقت این دوتا یه اندازه نمی شن.اگه به کد دقت کنید متوجه می شید چرا. سوم این که این کد یه ایراد دیگه داره.اون هم اینه که اگه دو تا کنترل کاملاً کنار هم قرار بگیرند این روش دیگه جواب نمی ده.و خودم هم از این روش فقط برای بوجود آوردن یه کنترلهای خاص استفاده می کنم.که این اتفاق توشون هرگز نیافته.در هر صورت در اولین فرصت کد مربوط به مختصات رو براتون می ذارم.چون کل Ocx حجمش زیاده. موفق باشید. منم دو روزه دارم همينو مي‌گم. اين روش هميشه جواب نمي‌ده. والا خودم بلدم اين كارو بكنم. و usercontrol رو بزرگتر از بقيه object ها بكنم. من دنبال يه روش اصولي هستم كه هميشه جواب بده. شما وقتي يه كامپوننت مي‌نويسي مي‌دي به بقيه ازش استفاده كنن نمي‌توني بهشون بگي كه اينا رو كنار هم نذاريد!!! پسر خوب اگه سورسي داري كه هميشه جواب مي‌ده منتظرم. يه جا آپ كن، لينكشو بذار. فعلا. ULF_VB 624-07-2007, 11:47 AMسلام بالاخره راه حل رو پيدا كردم. !!!! برای مشاهده محتوا ، لطفا ثبت نام کنید / وارد شوید !!!! كلي كتابامو گشتم تا اين تابع GetCursorPos رو پيدا كردم. بعدشم با يه مقدار صرف فسفر اين راه حل به ذهنم رسيد. اميدوارم به درد بقيه هم بخوره. :11: سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 438]

bt

اضافه شدن مطلب/حذف مطلب




-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن