Paano Makakuha Ng Hawakan Sa Isang Window

Talaan ng mga Nilalaman:

Paano Makakuha Ng Hawakan Sa Isang Window
Paano Makakuha Ng Hawakan Sa Isang Window

Video: Paano Makakuha Ng Hawakan Sa Isang Window

Video: Paano Makakuha Ng Hawakan Sa Isang Window
Video: Необычная перегородка из стекла и металла Своими руками 2. ПЕРЕДЕЛКА ХРУЩЕВКИ от А до Я # 25 2024, Mayo
Anonim

Ang konsepto ng interface ng gumagamit sa Windows ay batay sa konsepto ng isang window. Ang mga dayalogo, pindutan, control panel, listahan ay pawang mga bintana. Samakatuwid, upang maisagawa ang anumang pagkilos sa anumang elemento ng interface ng iyong sarili o aplikasyon ng ibang tao, kailangan mong makakuha ng isang hawakan ng window.

Paano makakuha ng hawakan sa isang window
Paano makakuha ng hawakan sa isang window

Kailangan

  • - Platform SDK package;
  • - tagatala.

Panuto

Hakbang 1

Kunin ang hawakan sa window sa pamamagitan ng paglikha nito. Tumawag sa pag-andar ng CreateWindow o CreateWindowEx API, o tawagan ang naaangkop na mga pamamaraan ng pambalot (sa mga kinakailangang bagay) ng mga klase ng ginamit na balangkas o silid-aklatan na nagpapaloob sa pag-andar ng pagtatrabaho sa mga bintana o kontrol. Ang mga pag-andar ng CreateWindow at CreateWindowEx na direktang ibabalik hawakan ang window sa matagumpay na paglikha. Kung hindi matagumpay na tinawag, ibabalik nila ang Null. Ang code ng dahilan ng error ay maaaring hilingin gamit ang GetLastError API function. Ang mga prototype at detalyadong paglalarawan ng mga parameter ng mga pag-andar ng CreateWindow at CreateWindowEx ay maaaring makuha mula sa mga link https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx at https:// msdn.microsoft.com / en-us / library / windows / desktop / ms632680% 28v = vs.85% 29.aspx Kapag gumagamit ng mga klase ng iba't ibang mga balangkas, ang paglikha ng mga object ng window ng operating system ay maaaring mangyari alinman sa malinaw. (sa pamamagitan ng pagtawag sa isang pamamaraan) o implicitly (pagpapatupad ng diskarte sa RAII). Samakatuwid, mas mahusay na makuha ang hawakan ng window sa isang handa nang gawing inisyal na bagay. Maaari mong malaman ang tungkol sa mga pamamaraan ng mga klase na ibabalik ang window handle na naka-encapsulate ng object sa dokumentasyon ng kaukulang balangkas. Halimbawa, sa MFC, ang isang katulad na pamamaraan ay GetSafeHwnd ng klase ng CWnd.

Hakbang 2

Kumuha ng hawakan sa isang window sa pamamagitan ng paghahanap para dito. Gamitin ang FindWindow at FindWindowEx API na mga function o ang naaangkop na mga wrappers ng object ng klase para sa balangkas na iyong ginagamit. Ibinabalik ng FindWindow ang isang hawakan sa pinakamataas na window na window kung nahanap, o Null sa pagkabigo. Ginagawa ang paghahanap sa pamamagitan ng pangalan ng klase at pamagat ng window. Ang paglalarawan ng mga parameter at aspeto ng pagpapaandar ay matatagpuan sa link na https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. Ang semantika ng ang FindWindowEx function ay katulad sa FindWindow na may pagkakaiba lamang na naghahanap ito ng mga window ng bata. Ang dokumentasyon para sa FindWindowEx ay magagamit sa

Hakbang 3

Hanapin ang hawakan sa window habang naglilista ng kanilang mga set. Gamitin ang mga pagpapaandar ng API na EnumWindows, EnumChildWindows, EnumThreadWindows, o mga pamamaraan ng mga object ng klase ng balangkas na iyong ginagamit. Ang mga function ng EnumWindows at EnumChildWindows ay nagbibilang ng mga top-level na bintana at window ng bata, ayon sa pagkakabanggit. Ang pagpapaandar ng EnumThreadWindows ay nagbibilang ng lahat ng mga bintana na hindi pang-bata ng tinukoy na thread. Ang bawat isa sa mga pagpapaandar na ito ay dapat na maipasa isang pointer sa isang callback na pamamaraan, na ipapasa ang mga hawakan ng mga nahanap na bintana bilang mga parameter sa panahon ng pagpapatakbo. Sa pamamagitan ng pagsasama-sama ng mga pagpapaandar sa pag-isa, pagkuha at pag-aralan ang mga katangian ng window sa pamamaraan ng callback, mahahanap mo ang hawakan ng ang kinakailangang window. Ang dokumentasyon para sa mga pagpapaandar na inilarawan ay ibinibigay sa mga link: - 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.

Hakbang 4

Kumuha ng hawakan sa isang window sa mga kilalang coordinate. Ang mga pagpapaandar ng WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx ay nagbabalik ng mga hawakan sa mga bintana na kabilang sa tinukoy na punto. Ang pagpapaandar ng WindowFromPoint ay ang pinakamadaling gamitin, ngunit hindi ibabalik ang mga humahawak para sa mga nakatagong o hindi pinagana na mga bintana. Maaari mong makita ang dokumentasyon sa paggamit nito sa https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Ang mga pag-andar ng ChildWindowFromPoint at ChildWindowFromPointEx ay makahanap ng mga humahawak para sa bata mga bintana ng isang naibigay na window ng magulang na kabilang sa isang naibigay na punto. Sa kasong ito, ang pag-uugali ng ChildWindowFromPointEx ay maaaring madaling kontrolin gamit ang isang karagdagang parameter. Ang dokumentasyon para sa mga pagpapaandar na ito ay ibinibigay ng mga link: - 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.

Inirerekumendang: