ORANGEPRO

ORANGEPRO

وبلاگی در مورد دنیای کامپیوتر
ORANGEPRO

ORANGEPRO

وبلاگی در مورد دنیای کامپیوتر

خودت را قوی کن

استرس و چالش هاى این دنیا از بین نخواهند رفت؛ زندگى به طور معجزه آسا ,آسان تر نخواهد شد.
حقیقت این است که: ما نمى توانیم شرایط بیرونى را کنترل کنیم, اما مى توانیم واکنش خود را تغییر دهیم.
ما باید تغییر کنیم وخودمان را با شرایط سخت تطبیق دهیم.

 قدرت واقعى در این است که اجازه ندهیم وقایع بیرونى، آرامش درونى ما را از بین ببرند. 

امروز تصمیم بگیر که به جاى آرزوى تغییر دنیا, خودت را قوى ترکنى.

توابع پرکاربرد در C++-6

تابع GetAsyncKeyState() در زبان C++ (در واقع یکی از توابع WinAPI در ویندوز) برای بررسی وضعیت لحظه‌ای کلیدهای صفحه‌کلید استفاده می‌شود — یعنی به‌صورت asynchronous یا «بدون وابستگی به event queue» وضعیت کلید را مستقیماً از سخت‌افزار یا سیستم‌عامل می‌خواند. 

?? این تابع در هدر زیر تعریف شده:
#include <windows.h>

 پارامترها:

    vKeyکدی است که نشان‌دهنده کلید مورد نظر است (Virtual-Key Code).مثلاً:
        VK_LEFT کلید جهت چپ
        VK_RIGHT  کلید جهت راست
        'A'  کلید A
        VK_SPACE  فاصله (space)
نوع خروجی SHORT (16 بیتی) است.

دو بخش مختلف این مقدار، اطلاعات متفاوتی را نشان می‌دهند:
بیت                                              معنی
بیت 15 (بالاترین بیت)     اگر 1 باشد یعنی کلید در حال حاضر فشرده است
بیت 0 (پایین‌ترین بیت)     اگر 1 باشد یعنی از آخرین فراخوانی تابع، کلید حداقل یک بار فشرده شده است
?? نکات مهم:

    به event queue وابسته نیست ? یعنی حتی اگر برنامه فریم‌ها را از دست بدهد یا پنجره غیرفعال باشد، همچنان می‌تواند کلیدها را تشخیص دهد.
    برای polling استفاده می‌شود، نه برای event-driven design.اگر برنامه نیاز به پردازش دقیق ورودی‌ها (مانند بازی‌ها) دارد، معمولاً با PeekMessage() یا GetMessage() ترکیب می‌شود.
      در محیط غیر ویندوز قابل استفاده نیست (تابع خاص Win32 API است).

توابع پرکاربرد در C++-5

                                                                                                   تشریح کامل تابع clearmouseclick(event)

در محیط‌های گرافیکی، ورودی‌های کاربر (مانند فشار دادن کلید، حرکت ماوس، یا کلیک ماوس) به صورت رویداد (Events) در یک صف (Queue) ذخیره می‌شوند. برنامه شما در یک حلقه (Loop) مدام این صف را بررسی می‌کند.
1. هدف اصلی: مدیریت صف رویداد (Event Queue Management)
هدف اصلی clearmouseclick(event) این است که یک رویداد خاص را که قبلاً تشخیص داده شده و پردازش شده است، از این صف خارج کند تا از پردازش مجدد آن در تکرارهای بعدی حلقه جلوگیری شود.
2. ساختار آرگومان‌ها: event
آرگومان event مشخص می‌کند که کدام نوع رویداد باید از صف پاک شود. در محیط‌هایی که از این تابع استفاده می‌شود، این آرگومان‌ها معمولاً با مقادیری مانند:
    WM_LBUTTONDOWN: رویداد فشار دادن دکمه چپ ماوس.
    WM_LBUTTONUP: رویداد رها کردن دکمه چپ ماوس.
    WM_RBUTTONDOWN: رویداد فشار دادن دکمه راست ماوس.
    و… (که در ویندوز با نام‌های WM_... شناخته می‌شوند).

تفاوت با ismouseclick()
    ismouseclick(event): فقط بررسی می‌کند که آیا رویداد مورد نظر در حال حاضر در صف وجود دارد یا خیر (عملیات Read-Only).
    clearmouseclick(event): رویداد مورد نظر را از صف حذف می‌کند (عملیات Write/Mutating).

توابع پرکاربرد در C++-4

ismouseclick();

یک تابع نوع بولین برای تعیین وضعیت کلیک انجام شده بطورمثال:

ismouseclick(WM_LBUTTONDOWN);

تعیین میکند که آیا دکمه چپ ماوس فشرده شده یا خیر ودرون یک شرط قابل برقراری هست یا خیر.نمونه کد آن برای استفاده در شرط بگونه زیر است:

if (ismouseclick(WM_LBUTTONDOWN)){

outtext("LEFT BUTTON DETECTED");

}

این تابع می تواند 6 وضعیت را تعیین تکلیف کند که عبارت اند از:

WM_LBUTTONDOWN     کلیک دکمه چپ ماوس (فشرده شدن)
WM_RBUTTONDOWN     کلیک دکمه راست ماوس (فشرده شدن)
WM_MBUTTONDOWN     کلیک دکمه وسط ماوس (فشرده شدن)
WM_LBUTTONUP     رها شدن دکمه چپ ماوس
WM_RBUTTONUP     رها شدن دکمه راست ماوس
WM_MBUTTONUP     رها شدن دکمه وسط ماوس

توابع پرکاربرد در C++-3

برای رسم دایره در محیط گرافیکی C++ از تابع زیر استفاده میکنیم .که x1 نقطه x دایره y1نقطه y دایره و R1 را شعاع دایره میگویند. 



circle(x1,y1,R1);

توابع پرکاربرد در C++-2

برای رسم یک مستطیل در محیط گرافیکی در C++ شما بایستی از تابع زیر استفاده کنید .که x1وy1 نقطه شروع رسم و x2 وy2 نقطه پایانی رسم مستطیل هستند.در ادامه اگر سوالی داشتید از طریق بخش نظرات بپرسید حتما پاسخگو هستیم.


rectangle(x1, y1, x2, y2);




لینک های مرتبط:

توابع پرکاربرد در c++-1 (ویرایش رنگ)

توابع پرکاربرد در c++-3 (رسم دایره)

توابع پرکاربرد در C++-1

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

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

یک: اینکه شماره رنگ را از 0 تا 15 وارد کنیم.

دو:اینکه با حروف بزرگ آن رنگ را بنویسیم مانند:BLUE یا BLACK

توجه : در قسمتی که با عنوان color نوشته شده از یکی از دو روش فوق استفاده می کنیم.



    setcolor(color): رنگ فعال برای ترسیم اشکال خطی و متن را تنظیم می‌کند.

    setbkcolor(color): رنگ پس‌زمینه صفحه را تنظیم می‌کند.

لینک های مرتبط:

توابع پرکاربرد در c++-2 (رسم مستطیل)

توابع پرکاربرد در c++-3 (رسم دایره)