Кантип терезеге туткасын алууга болот

Мазмуну:

Кантип терезеге туткасын алууга болот
Кантип терезеге туткасын алууга болот

Video: Кантип терезеге туткасын алууга болот

Video: Кантип терезеге туткасын алууга болот
Video: ЖАНЫ ЖЫЛДЫК'S DEER НУРДУУ КОЛДОР 250 рублга ҮЧҮН | DIY Режиссёр Аптека 2024, Май
Anonim

Windows колдонуучу интерфейсинин түшүнүгү терезе түшүнүгүнө негизделген. Диалогдор, баскычтар, башкаруу панелдери, тизмелер баары терезелер. Демек, кандайдыр бир иш-аракеттерди өзүңүздүн же башка бирөөнүн тиркемесинин интерфейсинин каалаган элементи менен аткаруу үчүн, терезенин туткасын алышыңыз керек.

Кантип терезеге туткасын алууга болот
Кантип терезеге туткасын алууга болот

Зарыл

  • - Platform SDK пакети;
  • - түзүүчү.

Нускамалар

1 кадам

Аны түзүү менен терезенин туткасын алыңыз. CreateWindow же CreateWindowEx API функцияларына чалууларды жасаңыз же терезелер же башкаруу элементтери менен иштөөнүн функционалдык мүмкүнчүлүктөрүн камтыган колдонулган фреймворк же китепкана класстарынын тийиштүү оролуу ыкмаларын (керектүү объектилерде) чакырыңыз. 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 Ар кандай алкактардагы класстарды колдонууда, иштөө тутумунун терезе объектилери түзүлүп калышы мүмкүн (ыкманы чакыруу жолу менен) же жашыруун (RAII стратегиясын ишке ашыруу). Ошондуктан, терезенин туткасын даяр инициалдаштырылган объектке алган оң. Тийиштүү алкактын документтеринен объект тарабынан камтылган терезе туткасын кайтаруучу класстардын методдору жөнүндө билүүгө болот. Мисалы, MFCде окшош ыкма CWnd классындагы GetSafeHwnd.

2-кадам

Издөө менен терезени кармаңыз. FindWindow жана FindWindowEx API функцияларын же сиз колдонуп жаткан фреймге ылайыктуу класс объектинин оромдорун колдонуңуз. 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 же сиз колдонгон рамканын класс объекттеринин методдорун колдонуңуз. 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.

Сунушталууда: