Windows-da foydalanuvchi interfeysi tushunchasi oyna tushunchasiga asoslangan. Dialoglar, tugmalar, boshqaruv paneli, ro'yxatlar hammasi derazalardir. Shuning uchun, o'zingizning yoki boshqa birovning dastur interfeysining biron bir elementi bilan biron bir harakatni amalga oshirish uchun siz deraza oynasini olishingiz kerak.
Kerakli
- - Platforma SDK to'plami;
- - kompilyator.
Ko'rsatmalar
1-qadam
Uni yaratish orqali derazaning dastasini oling. CreateWindow yoki CreateWindowEx API funktsiyalariga qo'ng'iroqlar qiling yoki ishlatilgan ramka yoki kutubxona sinflarining derazalar yoki boshqaruv elementlari bilan ishlash funktsiyalarini o'z ichiga olgan tegishli o'rash usullarini (zarur ob'ektlarda) chaqiring. CreateWindow va CreateWindowEx funktsiyalari to'g'ridan-to'g'ri muvaffaqiyatli yaratish bo'yicha oyna tutqichi. Agar muvaffaqiyatsiz chaqirilsa, ular NULL-ga qaytadilar. Xato sababi kodini GetLastError API funktsiyasi yordamida so'rash mumkin. Prototiplar va CreateWindow va CreateWindowEx funktsiyalari parametrlarining batafsil tavsiflarini https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx havolalari orqali olish mumkin. va https:// msdn.microsoft.com / en-us / library / windows / desktop / ms632680% 28v = vs.85% 29.aspx Turli xil ramkalar sinflaridan foydalanganda operatsion tizim oynasi ob'ektlari yaratilishi aniq bo'lishi mumkin (usulni chaqirish orqali) yoki bilvosita (RAII strategiyasini amalga oshirish). Shuning uchun, deraza dastagini tayyor boshlangan ob'ektga olish yaxshiroqdir. Ob'ekt tomonidan qamrab olingan oyna tutqichini qaytaradigan sinflarning usullari haqida tegishli ramkaning hujjatlaridan bilib olishingiz mumkin. Masalan, MFC-da shunga o'xshash usul CWnd sinfining GetSafeHwnd.
2-qadam
Derazani qidirib toping. Siz foydalanayotgan ramka uchun FindWindow va FindWindowEx API funktsiyalaridan yoki tegishli sinf ob'ektlarini o'rash vositalaridan foydalaning.. FindWindow topilgan bo'lsa yuqori darajadagi oynaga dastani qaytaradi yoki ishlamay qolganda NULL. Qidiruv sinf nomi va oynaning nomi bilan amalga oshiriladi. Parametrlar va funktsiyalarning tavsifini https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx havolasida topishingiz mumkin. FindWindowEx funktsiyasi FindWindow-ga o'xshaydi, faqat farq shundaki, u bolalar oynalarini qidiradi. FindWindowEx uchun hujjatlar bilan https://msdn.microsoft.com/en-us/library/windows/desktop/ms633500%28v=vs.85%29.aspx saytida tanishishingiz mumkin.
3-qadam
Ularning to'plamlarini ro'yxatlash paytida oynaning tutqichini toping. API funktsiyalari EnumWindows, EnumChildWindows, EnumThreadWindows yoki o'zingiz foydalanayotgan ramkaning sinf ob'ektlari usullaridan foydalaning. EnumWindows va EnumChildWindows funktsiyalari mos ravishda yuqori darajadagi derazalarni va bolalar oynalarini sanab chiqadi. EnumThreadWindows funktsiyasi ko'rsatilgan ipning barcha bolalarga tegishli bo'lmagan oynalarini sanab chiqadi. Ushbu funktsiyalarning har biri qayta qo'ng'iroq qilish protsedurasiga ko'rsatgichni uzatishi kerak, u ish paytida topilgan derazalarning tutqichlari parametr sifatida uzatiladi. Ro'yxatga olish funktsiyalarini birlashtirib, qayta chaqirish protsedurasida oyna xususiyatlarini olish va tahlil qilish orqali siz kerakli oyna. Ta'riflangan funktsiyalar uchun hujjatlar havolalarda keltirilgan: - 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-qadam
Ma'lum bo'lgan koordinatalarda oynani ushlang. WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx funktsiyalari belgilangan nuqtaga tegishli bo'lgan derazalarga ishlov beruvchilarni qaytaradi WindowFromPoint funktsiyasidan foydalanish eng oson, ammo yashirin yoki o'chirilgan oynalar uchun tutqichlarni qaytarmaydi. Siz uni ishlatish to'g'risidagi hujjatlarni https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx saytidan topishingiz mumkin. ChildWindowFromPoint va ChildWindowFromPointEx funktsiyalari bola uchun tutqichlarni topadi. berilgan nuqtaga tegishli berilgan ota-ona oynasining oynalari. Bunday holda, ChildWindowFromPointEx xatti-harakatlarini qo'shimcha parametr yordamida moslashuvchan boshqarish mumkin. Ushbu funktsiyalar uchun hujjatlar havolalar orqali taqdim etiladi: - 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.