Hoe Om 'n Venster In Die Hande Te Kry

INHOUDSOPGAWE:

Hoe Om 'n Venster In Die Hande Te Kry
Hoe Om 'n Venster In Die Hande Te Kry

Video: Hoe Om 'n Venster In Die Hande Te Kry

Video: Hoe Om 'n Venster In Die Hande Te Kry
Video: Откровения. Массажист (16 серия) 2024, Desember
Anonim

Die konsep van die gebruikerskoppelvlak in Windows is gebaseer op die konsep van 'n venster. Dialoog, knoppies, beheerpanele, lyste is almal vensters. Daarom moet u 'n vensterhandvatsel hê om enige aksie met enige element van die koppelvlak van u eie of iemand anders se toepassing uit te voer.

Hoe om 'n venster in die hande te kry
Hoe om 'n venster in die hande te kry

Nodig

  • - Platform SDK pakket;
  • - samesteller.

Instruksies

Stap 1

Kry die handvatsel na die venster deur dit te skep. Bel na die CreateWindow- of CreateWindowEx API-funksies, of noem die toepaslike omslagmetodes (op die nodige voorwerpe) van die klasse van die gebruikte raamwerk of biblioteek wat die funksionaliteit van werk met vensters of kontroles saamvat. Die funksies CreateWindow en CreateWindowEx gee direk die venster handvatsel op suksesvolle skepping. As onsuksesvol gebel word, keer hulle NULL terug. Die foutrede-kode kan aangevra word met behulp van die GetLastError API-funksie. Prototipes en gedetailleerde beskrywings van die parameters van die CreateWindow- en CreateWindowEx-funksies kan verkry word vanaf die skakels https://msdn.microsoft.com/en-us/library/windows/desktop/ms632679%28v=vs.85%29.aspx en https:// msdn.microsoft.com / en-us / biblioteek / windows / desktop / ms632680% 28v = vs.85% 29.aspx Wanneer klasse van verskillende raamwerke gebruik word, kan die skepping van venstervoorwerpe van die bedryfstelsel eksplisiet voorkom (deur 'n metode te noem) of implisiet (implementering van die RAII-strategie). Daarom is dit beter om die venstergreep op 'n klaargemaakte geïnisialiseerde voorwerp te kry. U kan leer oor die metodes van die klasse wat die vensterhandvatsel wat deur die voorwerp opgekap is, teruggee in die dokumentasie van die ooreenstemmende raamwerk. In MFC is 'n soortgelyke metode byvoorbeeld GetSafeHwnd van die CWnd-klas.

Stap 2

Kry 'n handvatsel by 'n venster deur daarna te soek. Gebruik die FindWindow en FindWindowEx API-funksies of die toepaslike klasomslagpakkies vir die raamwerk wat u gebruik. FindWindow gee 'n handgreep terug na die venster op die boonste vlak as dit gevind word, of NULL as dit misluk. Die soektog word volgens klasnaam en venstertitel uitgevoer. Beskrywing van die parameters en aspekte van die funksie kan gevind word op die skakel https://msdn.microsoft.com/en-us/library/windows/desktop/ms633499%28v=vs.85%29.aspx. Die semantiek van die FindWindowEx-funksie is soortgelyk aan FindWindow, met die enigste verskil dat dit na kindervensters soek. Die dokumentasie vir FindWindowEx is beskikbaar op

Stap 3

Vind die handvatsel na die venster terwyl u die stelle lys. Gebruik die API-funksies EnumWindows, EnumChildWindows, EnumThreadWindows, of metodes van klasvoorwerpe van die raamwerk wat u gebruik. Die EnumWindows- en EnumChildWindows-funksies tel onderskeidelik boonste vensters en kindervensters op. Die EnumThreadWindows-funksie gee 'n opsomming van alle nie-kindervensters van die gespesifiseerde draad. Elkeen van hierdie funksies moet as 'n wyser na 'n terugbelprosedure oorgedra word, wat tydens die werking deur die handvatsels van die gevindde vensters geslaag word. Deur die optelfunksies te kombineer, venstereienskappe in die terugbelprosedure te kry en te analiseer, kan u die handvatsel van die vereiste venster. Die dokumentasie vir die funksies wat beskryf word, word by die skakels gegee: - 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.

Stap 4

Handvatsel na 'n venster by bekende koördinate. Die WindowFromPoint, ChildWindowFromPoint, ChildWindowFromPointEx-funksies gee handvatsels terug na die vensters waartoe die gespesifiseerde punt behoort. Die WindowFromPoint-funksie is die maklikste om te gebruik, maar stuur nie handvatsels terug vir verborge of gestremde vensters nie. U kan dokumentasie oor die gebruik daarvan vind by https://msdn.microsoft.com/en-us/library/windows/desktop/ms633558%28v=vs.85%29.aspx. Die funksies ChildWindowFromPoint en ChildWindowFromPointEx vind handvatsels vir die kind vensters van 'n gegewe ouervenster wat tot 'n gegewe punt behoort. In hierdie geval kan die gedrag van ChildWindowFromPointEx soepel beheer word met behulp van 'n addisionele parameter. Die dokumentasie vir hierdie funksies word voorsien deur die skakels: - 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.

Aanbeveel: