ویجت باتن (BUTTON)

ایجاد یک صفحه گرافیکی با GuiBuilder و اضافه کردن فایل خروجی به پروژه emwin در کیل
آگوست 23, 2017
کیبورد شماره (NumPad) شبیه کیبورد Iphone با emwin
سپتامبر 3, 2017

ویجت باتن (BUTTON)

سلام

یکی از مهمترین و پرکاربردترین ویجت ها ، ویجت باتون ( BUTTON ) می باشد .

این ویجت مانند یک دکمه عمل می کند و معمولاً به عنوان عنصر اصلی رابط کاربری در صفحه های لمسی استفاده می شود.

اگر باتوk فوکوس شده باشد به کلیدهای GUI_KEY_SPACE و GUI_KEY_ENTER واکنش نشان می‌دهد.

باتون ها معمولا با یک متن درون آن نمایش داده می شود ، البته امکان لود عکس نیز در آن امکان پذیر است .

ویجت باتون را در شکل زیر مشاهده می کنید

ویجت باتن (BUTTON)

تمامی روتین های مرتبط با باتون در فایلهای BUTTON*.c و BUTTON.h واقع شده است شکل ویجتی که شما در بالا دیده اید شکل کلاسیک آن می باشد ، در شکل زیر باتونی که پوسته آن عوض شده است را مشاهده می کنید.

ویجت باتن (BUTTON)

پوسته یا همان اسکین برای این ویجت در دسترس است. تصویر بالا ویجت را با استفاده کردن پوسته پیش فرض نشان می دهد.

برای اطلاعات بیشتر می توانید بخش اسکین را در راهنمای emwin مطالعه کنید.

موارد پیکربندی

نوع ماکرو پیش فرض شرح
N BUTTON_3D_MOVE_X ۱  تعداد پیکسل هایی که نوشته یا عکس باتن به جهت افقی در حالت فشرده حرکت کند
N BUTTON_3D_MOVE_Y ۱   تعداد پیکسل هایی که نوشته یا عکس باتن به جهت عمودی در حالت فشرده حرکت کند
N BUTTON_ALIGN_DEFAULT GUI_TA_HCENTER
|
GUI_TA_VCENTER
 تراز متن داخل باتن
N BUTTON_BKCOLOR0_DEFAULT ۰xAAAAAA  رنگ بکگراند در حالت معمولی
N BUTTON_BKCOLOR1_DEFAULT GUI_WHITE   رنگ بکگراند در حالت فشرده
N BUTTON_FOCUSCOLOR_DEFAULT GUI_BLACK  رنگ پیش فرض برای مستطیل فوکوس
S BUTTON_FONT_DEFAULT &GUI_Font13_1  فونت پیش فرض نوشته های داخل باتن
B BUTTON_REACT_ON_LEVEL ۰  در زیر توضیح داده شده است
N BUTTON_TEXTCOLOR0_DEFAULT GUI_BLACK  رنگ متن داخل باتن در حالت غیر فشرده
N BUTTON_TEXTCOLOR1_DEFAULT GUI_BLACK  رنگ متن داخل باتن در حالت فشرده

 

BUTTON_REACT_ON_LEVEL

دو راه برای پیکره بندی رویدادهای PID در ویجت باتن (BUTTON) وجود دارد.
راه اول و پیش فرض EMWIN شناسایی و پردازش تمام حوادثی PID است که در ناحیه ی ویجت BUTTON اتفاق می افتد.

این پیکره بندی شامل PIDهایی که به این ناحیه منتقل می شوند را فشرده در نظر گرفته و شرایط فشرده شدن آنرا قبول می کند.با قبول کردن شرایط فشرده شدن حالت آنرا نیز تغییر می دهد.
این عکس العمل با ترکیب با پنل لمسی مفید است ، اما عیبی را نیز دارد و آن این است که ممکن است به اشتباه روی آنها کلیک شود. در ادامه نحوه ی اشتباه کردن را ملاحظه می کنید.
راه دیگر برای مدیریت رویداد های PID برای ویجت باتن (BUTTON) این است که روی تغییرات سطح واکنش نشان دهد. این راه باعث می شود که وضعیت باتن ، فقط در حالت PID تغییر کند.
می توان با تعریف کردن BUTTON_REACT_ON_LEVEL و مساوی قرار دادن آن با ۱ و یا فراخوانی تابع BUTTON_SetReactOnLevel() آنرا فعال کرد.

مثالی که نشان می دهد کلیک ناخواسته روی ویجت باتن (BUTTON) اتفاق می افتد.

این مثال نشان می دهد که یک ویجت باتن (BUTTON) چگونه با اشتباه می افتد ، بدون اینکه در حالت سطح پیکره بندی شده باشد.
در صورتی که اگر در حالت سطح پیکره بندی می شد این اشتباه رخ نمیداد.

 

کدهای نوتیفیکیشن

رویدادهای زیر از ویجت باتون ، به پنجره والد خود ، با عنوان WM_NOTIFY_PARENT پیام ارسال می کنند.

پیغام شرح پیغام
WM_NOTIFICATION_CLICKED روی باتن کلیک شده است
WM_NOTIFICATION_RELEASED باتنی که روی آن کلیک شده بود آزاد شد
WM_NOTIFICATION_MOVED_OUT باتنی که روی آن کلیک شده بود ، اشاره گر به خارج از باتن و بدون رها شدن حرکت کرد

واکنش به صفحه کلید

اگر روی ویجت باتن (BUTTON) فوکوس شده باشد ، ویجت به کلیدهای زیر واکنش نشان می دهد.

کلید عکس العمل
GUI_KEY_ENTER  اگر این کلید اعمال شود ، دکمه واکنش می دهد،بدین صورت که فشرده شده و بلافاصله آزاد می شود.
GUI_KEY_SPACE اگر این کلید اعمال شود ، حالت دکمه به فشرده تغییر داده می شود. اگر کلیدها آزاد باشند ، حالت دکمه به حالت غیر فشرده تغییر می کند.
حسین
حسین
من 28 سال سن دارم و رشته ی تحصیلی ام مهندسی برق قدرت بوده علاوه بر برق علاقمند به دنیای الکترونیک ، برنامه نویسی و طراحی وب هستم . این سایت رو برای آموزش رابط گرافیکی emWin راه اندازی کردم که بدون کمک شما جلو رفتن غیر ممکنه پس اگه آموزش یا مطالب مرتبطی دارید برام ایمیل کنید تا به اسم خودتون توی سایت منتشر بشه. hosseintomari@gmail.com
اشتراک
اطلاع از
guest

0 نظرات
بازخورد داخلی
مشاهده همه نظرات
0
برای بهبود مطالب، لطفاً نظر بدهید.x