როგორ მივიღოთ სახელური ფანჯარასთან

Სარჩევი:

როგორ მივიღოთ სახელური ფანჯარასთან
როგორ მივიღოთ სახელური ფანჯარასთან

ვიდეო: როგორ მივიღოთ სახელური ფანჯარასთან

ვიდეო: როგორ მივიღოთ სახელური ფანჯარასთან
ვიდეო: Лайфхаки для ремонта квартиры. Полезные советы.#2 2024, მაისი
Anonim

Windows– ში მომხმარებლის ინტერფეისის კონცეფცია ემყარება ფანჯრის კონცეფციას. დიალოგები, ღილაკები, მართვის პანელები, სიები ყველა ფანჯარაა. ამიტომ, თქვენი ან სხვისი პროგრამის ინტერფეისის ნებისმიერი ელემენტის ნებისმიერი მოქმედების შესასრულებლად, უნდა მიიღოთ ფანჯრის სახელური.

როგორ მივიღოთ სახელური ფანჯარასთან
როგორ მივიღოთ სახელური ფანჯარასთან

აუცილებელია

  • - პლატფორმის SDK პაკეტი;
  • - შემდგენელი.

ინსტრუქციები

Ნაბიჯი 1

მიიღეთ სახელური ფანჯარაში მისი შექმნით. დარეკეთ CreatWindow ან CreateWindowEx API ფუნქციებზე, ან დარეკეთ გამოყენებული ჩარჩოს ან ბიბლიოთეკის კლასების შესაბამის შესაფუთ მეთოდებზე (აუცილებელ ობიექტებზე), რომლებიც ათავსებს ვინდოუსთან ან კონტროლთან მუშაობის ფუნქციურობას. ფანჯრის სახელური წარმატებული შექმნის შესახებ. თუ წარუმატებლად დარეკეს, ისინი აბრუნებენ NULL. შეცდომის მიზეზის კოდის მოთხოვნა შესაძლებელია GetLastError API ფუნქციის გამოყენებით. CreatWindow და CreateWindowEx ფუნქციების პროტოტიპები და დეტალური აღწერილობა შეგიძლიათ მიიღოთ ბმულებიდან https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx და https:// msdn.microsoft.com / en-us / ბიბლიოთეკა / 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– ისთვის შეგიძლიათ იხილოთ

ნაბიჯი 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 ფუნქცია არის ყველაზე მარტივი გამოყენება, მაგრამ არ აბრუნებს სახელურებს ფარული ან გამორთული ფანჯრებისთვის. მის გამოყენებასთან დაკავშირებული დოკუმენტაცია შეგიძლიათ იხილოთ შემდეგ ვებსაიტზე: მოცემული წერტილის კუთვნილი მოცემული მშობლის ფანჯრის ფანჯრები. ამ შემთხვევაში, 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.

გირჩევთ: