چگونه یک دستگیره را به یک پنجره برسانیم

فهرست مطالب:

چگونه یک دستگیره را به یک پنجره برسانیم
چگونه یک دستگیره را به یک پنجره برسانیم

تصویری: چگونه یک دستگیره را به یک پنجره برسانیم

تصویری: چگونه یک دستگیره را به یک پنجره برسانیم
تصویری: خود ماساژ صورت و گردن. ماساژ صورت در خانه. ماساژ صورت برای چین و چروک پوست. فیلم مفصل! 2024, ممکن است
Anonim

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

چگونه یک دستگیره را به یک پنجره برسانیم
چگونه یک دستگیره را به یک پنجره برسانیم

ضروری

  • - بسته SDK پلت فرم ؛
  • - کامپایلر

دستورالعمل ها

مرحله 1

با ایجاد دسته به پنجره برسید. با توابع CreatWindow یا CreateWindowEx API تماس بگیرید یا روشهای مناسب بسته بندی (روی اشیا necessary لازم) از کلاسهای چارچوب یا کتابخانه استفاده شده را فراخوانی کنید که عملکرد کار با ویندوز یا کنترل را کپسوله کند. توابع CreateWindow و CreateWindowEx مستقیماً عملکرد دسته پنجره در ایجاد موفقیت آمیز. در صورت عدم موفقیت فراخوانی ، آنها NULL را برمی گردانند. کد دلیل خطا را می توان با استفاده از عملکرد GetLastError API درخواست کرد. نمونه های اولیه و توضیحات دقیق پارامترهای توابع CreateWindow و CreateWindowEx را می توانید از پیوندهای https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679٪28v=vs.85٪29.aspx بدست آورید. و https:// msdn.microsoft.com / en-us / library / windows / desktop / ms632680٪ 28v = vs.85٪ 29.aspx هنگام استفاده از کلاس های مختلف فریم ورک ، ایجاد اشیا window پنجره سیستم عامل می تواند به طور صریح رخ دهد (با فراخوانی یک روش) یا ضمنی (اجرای استراتژی RAII). بنابراین ، بهتر است دستگیره پنجره را روی یک شی اولیه آماده کنید. شما می توانید در مورد روش کلاسهایی که دسته پنجره را که در آن شی قرار داده شده است در مستندات مربوط به چارچوب مربوطه برگردانید. به عنوان مثال ، در MFC ، یک روش مشابه GetSafeHwnd از کلاس CWnd است.

گام 2

با جستجوی یک پنجره ، آن را بردارید. برای چارچوبی که استفاده می کنید از توابع FindWindow و FindWindowEx یا بسته بندی های شی کلاس مناسب استفاده کنید. FindWindow در صورت پیدا کردن یک دسته را به پنجره سطح بالا باز می گرداند یا در صورت خرابی NULL. جستجو با نام کلاس و عنوان پنجره انجام می شود. توضیحات پارامترها و جنبه های عملکرد را می توان در پیوند https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499٪28v=vs.85٪29.aspx پیدا کرد. تابع FindWindowEx مشابه FindWindow است با تنها تفاوت در جستجوی پنجره های کودک است. اسناد مربوط به FindWindowEx در https://msdn.microsoft.com/en-us/library/windows/desktop/ms633500٪28v=vs.85٪29.aspx در دسترس است.

مرحله 3

در حالی که مجموعه های آنها را لیست می کنید ، دسته پنجره را پیدا کنید. از توابع API EnumWindows ، EnumChildWindows ، EnumThreadWindows یا روش های اشیا class کلاسی چارچوبی که استفاده می کنید استفاده کنید. توابع EnumWindows و EnumChildWindows به ترتیب پنجره های سطح بالا و پنجره های کودک را بر می شمارند. تابع EnumThreadWindows تمام پنجره های موضوع مشخص شده غیر کودک را برمی شمارد. هر یک از این توابع باید یک نشانگر را به یک روش پاسخگویی منتقل کند ، که از دستگیره های پنجره های یافت شده به عنوان پارامتر در حین کار عبور می کند. پنجره مورد نیاز مستندات مربوط به توابع توصیف شده در پیوندها آورده شده است: - EnumWindows: https://msdn.microsoft.com/en-us/library/windows/desktop/ms633497٪28v=vs.85٪29.aspx؛ - EnumChildWindows: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms633494٪28v=vs.85٪29.aspx؛ - EnumThreadWindows: https://msdn.microsoft.com/en-us/library / windows / desktop /ms633495٪28v=vs.85٪29.aspx.

مرحله 4

در مختصات مشخص یک دستگیره به پنجره برسانید. توابع WindowFromPoint ، ChildWindowFromPoint ، ChildWindowFromPointEx دسته هایی را به پنجره هایی که نقطه مشخص شده متعلق است برمی گرداند. عملکرد WindowFromPoint ساده ترین کاربرد است ، اما برای پنجره های مخفی یا غیرفعال دستگیره ها را بر نمی گرداند. می توانید مستندات مربوط به استفاده از آن را در https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558٪28v=vs.85٪29.aspx بیابید. توابع ChildWindowFromPoint و ChildWindowFromPointEx دسته هایی برای کودک پیدا می کنند پنجره های یک پنجره والد معین متعلق به یک نقطه معین. در این حالت ، می توان رفتار ChildWindowFromPointEx را با استفاده از یک پارامتر اضافی انعطاف پذیر کنترل کرد. مستندات مربوط به این توابع توسط پیوندها ارائه می شود: - ChildWindowFromPoint: https://msdn.microsoft.com/en-us/library/windows/desktop/ms632676٪28v=vs.85٪29.aspx؛ - ChildWindowFromPointEx: https:// msdn.microsoft.com/en-us/library/windows/desktop/ms632677٪28v=vs.85٪29.aspx.

توصیه شده: