Jadual Kandungan
一、窗口类的查找过程
二、注册窗口类的API RegisterClass和RegisterClassEx" >二、注册窗口类的API RegisterClass和RegisterClassEx
获取已注册的窗口信息GetClassInfo" >三、获取已注册的窗口信息GetClassInfo
卸载窗口类UnregisterClass" >四、卸载窗口类UnregisterClass
Rumah Operasi dan penyelenggaraan operasi dan penyelenggaraan tingkap Win32 SDK基础(六)之详解窗口类的查找过程和相关API

Win32 SDK基础(六)之详解窗口类的查找过程和相关API

Jun 06, 2017 am 09:44 AM

一、窗口类的查找过程

    上一文中,我们介绍了windows系统三种窗口类——系统窗口类、全局窗口类和局部窗口类。每种窗口类在操作系统中的作用域不同,而且每个作用域内注册的窗口类名称是不能重复的。而创建窗口时往往会在系统、全局、局部范围按照窗口类名称进行寻找,寻找过程总结如下:

(1)操作系统根据传入的窗口类名称,现在局部窗口类中进行查找,如果找到执行第2步,如果未找到执行第3步。

(2)比较局部窗口类和创建窗口时传入的HINSTANCE变量。如果发现相等,说明创建和注册的窗口在同一个模块,创建窗口返回。如果不相等,继续执行第3步。

(3)在应用程序全局窗口类中进行查找,如果找到,执行第4步,如果未找到执行第5步。

(4)使用找到的窗口类的信息,创建窗口并返回。

(5)在系统窗口类中查找,如果找到就创建窗口,未找到就是创建窗口失败。

二、注册窗口类的API RegisterClass和RegisterClassEx

     RegisterClass和RegisterClassEx都能用于注册窗口类,他们两个的原型分别如下:

1

2

3

4

5

6

ATOM WINAPI RegisterClass(

  _In_ const WNDCLASS *lpWndClass

);

ATOM WINAPI RegisterClassEx(

  _In_ const WNDCLASSEX *lpwcx

);

Salin selepas log masuk

API原型上看可以看出,二者的区别主要在于接收的参数上,这个参数就是我们需要注册的窗口类。这两个窗口类声明如下:

1

2

3

4

5

6

7

8

9

10

11

12

typedef struct tagWNDCLASS {

  UINT      style;

  WNDPROC   lpfnWndProc;

  int       cbClsExtra;

  int       cbWndExtra;

  HINSTANCE hInstance;

  HICON     hIcon;

  HCURSOR   hCursor;

  HBRUSH    hbrBackground;

  LPCTSTR   lpszMenuName;

  LPCTSTR   lpszClassName;

} WNDCLASS, *PWNDCLASS;

Salin selepas log masuk

1

2

3

4

5

6

7

8

9

10

11

12

13

14

typedef struct tagWNDCLASSEX {

  UINT      cbSize;

  UINT      style;

  WNDPROC   lpfnWndProc;

  int       cbClsExtra;

  int       cbWndExtra;

  HINSTANCE hInstance;

  HICON     hIcon;

  HCURSOR   hCursor;

  HBRUSH    hbrBackground;

  LPCTSTR   lpszMenuName;

  LPCTSTR   lpszClassName;

  HICON     hIconSm;

} WNDCLASSEX, *PWNDCLASSEX;

Salin selepas log masuk

从上面的代码可以看到,两个窗口类结构体的主要区别在于WNDCLASSEX含有cbSize窗口的结构体大小和hIconSm窗口的小图标句柄。其他参数的含义请自行参考MSDN

三、获取已注册的窗口信息GetClassInfo

GetClassInfo() API可以获取已经注册的窗口的信息,其函数原型如下:

1

2

3

4

5

BOOL WINAPI GetClassInfo(

  _In_opt_ HINSTANCE  hInstance,

  _In_     LPCTSTR    lpClassName,

  _Out_    LPWNDCLASS lpWndClass

);

Salin selepas log masuk

hInstance—— 是设置查找的作用域,如果设为NULL,会从系统、全局和局部三个作用域查找。

lpClassName —— 是要查找的窗口类名称。

lpWndClass —— 传入的WndClass结构体变量的地址,用于接收窗口类信息。

我们来查找上文创建的Button类的窗口信息:

1

2

3

WNDCLASS wc;

if (GetClassInfo(NULL, "Button", &wc) == false)

MessageBox(NULL,"GetClassInfo Faile",NULL,NULL);

Salin selepas log masuk

我们来通过设置断点,查看获取的Button窗口类的信息:

四、卸载窗口类UnregisterClass

我们可以通过UnregisterClass可以将已经注册的窗口类进行卸载,其原型如下:

1

2

3

4

BOOL WINAPI UnregisterClass(

  _In_     LPCTSTR   lpClassName,

  _In_opt_ HINSTANCE hInstance

);

Salin selepas log masuk

lpClassName —— 是要卸载的窗口类名称。

hInstance —— 是设置查找的作用域,如果设为NULL,会从系统、全局和局部三个作用域查找。

以下代码,将注册的Button窗口类进行卸载:

1

2

if (UnregisterClass("Button",NULL) == false)

MessageBox(NULL, "UnregisterClass Faile", NULL, NULL);

Salin selepas log masuk

Atas ialah kandungan terperinci Win32 SDK基础(六)之详解窗口类的查找过程和相关API. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Windows 11 22H2 membawa reka bentuk mika/akrilik kepada lebih banyak apl desktop Win32 Windows 11 22H2 membawa reka bentuk mika/akrilik kepada lebih banyak apl desktop Win32 Apr 14, 2023 pm 04:58 PM

Apl asli Windows 11 (seperti File Explorer) dan apl cangkerang lain menggunakan penjuru bulat dan elemen Reka Bentuk Fasih (seperti Akrilik) secara lalai. Selain sudut bulat, satu lagi ciri reka bentuk penting Windows 11 ialah bahan seperti mika, yang menjajarkan warna latar belakang aplikasi dengan desktop. Mika serupa dengan akrilik tetapi berfungsi sedikit berbeza. Seperti yang diterangkan oleh Microsoft, Bahan Windows Mica mencipta "hierarki warna dengan menjajarkan latar belakang dengan aplikasi

Trojan/win32.casdet Rfn dalam Windows 11 Trojan/win32.casdet Rfn dalam Windows 11 Apr 14, 2023 pm 02:49 PM

Perisian antivirus kadangkala boleh memaparkan amaran yang menyatakan Trojan/win11.casdet rfn pada komputer riba Windows 32. Ia menunjukkan bahawa PC dijangkiti malware Trojan, menyebabkan ia tidak berfungsi. Nasib baik, terdapat beberapa cara yang mungkin untuk menyelesaikan masalah ini, seperti yang dijelaskan di bawah. Selain itu, anda mungkin berminat dengan panduan terperinci kami tentang sama ada cdn.districtm.io ialah pop timbul/virus/perisian hasad atau tidak. Apakah Trojan/win32.casdet rfn? Trojan/win32.casdet rfn ialah jangkitan virus Trojan yang teruk yang boleh mengatasi sistem dan membunuh prosesnya, menjadikannya mudah

Apakah perbezaan antara win32 dan win64 Apakah perbezaan antara win32 dan win64 May 29, 2023 pm 05:22 PM

Perbezaan antara win32 dan win64 ialah: 1. win32 merujuk kepada persekitaran 32-bit sistem pengendalian Microsoft Windows, dan win64 merujuk kepada versi 64-bit sistem pengendalian Microsoft Windows, yang lebih stabil dan lebih pantas daripada 32 -versi bit; 2. win32 menyokong sehingga 2G memori, win64 mesti mempunyai lebih daripada 4G memori;

Microsoft mula menguji reka bentuk OneNote baharu untuk Windows 11 Microsoft mula menguji reka bentuk OneNote baharu untuk Windows 11 Apr 19, 2023 pm 08:01 PM

Kembali pada Ogos 2021, Microsoft berjanji bahawa OneNote pada Windows 10 dan Windows 11 akan menerima satu siri kemas kini ciri utama dalam beberapa bulan akan datang, kerana gergasi teknologi itu menyatukan berbilang versi aplikasi pengambilan nota menjadi satu bahagian daripada pelanggan. OneNote telah mengalami banyak perubahan sejak beberapa tahun yang lalu. Pada tahun 2018, apabila Microsoft benar-benar mahu orang ramai menggunakan versi UWP OneNote, syarikat itu berhenti menggabungkan versi asal dan kaya ciri OneNote dengan aplikasi Office yang diprapasang. Sebaliknya, Microsoft hanya menyediakan klien UWP dan menambah ciri baharu untuk versi moden. Microsoft kemudiannya berubah

Microsoft mengeluarkan pembetulan untuk Ralat Behavior:Win32/Hive.ZY dalam Windows Defender Microsoft mengeluarkan pembetulan untuk Ralat Behavior:Win32/Hive.ZY dalam Windows Defender Apr 28, 2023 pm 04:01 PM

Seorang pegawai Microsoft mengesahkan laporan meluas bahawa Google Chrome, ChromiumEdge, Discord dan beberapa aplikasi lain telah dibenderakan sebagai "Behavior:Win32/Hive.ZY" oleh perisian antivirus terbina dalam Microsoft "WindowsDefender". Gergasi teknologi itu mengesahkan dalam satu kenyataan bahawa ia sedang mengusahakan pembetulan yang akan dilancarkan kepada semua orang dalam beberapa jam akan datang. Jadi apakah sebenarnya "Behavior:Win32/Hive.ZY"? Menurut dokumen yang disiarkan pada portal keselamatan Microsoft, mana-mana fail bertanda "Behavior:Win32/Hive.ZY" ialah

Apakah yang baharu dalam Microsoft Store pada Windows 11? Apakah yang baharu dalam Microsoft Store pada Windows 11? Apr 28, 2023 pm 06:13 PM

Microsoft meletakkan banyak ciri baharu ke dalam Microsoft Store. Ini akan memberi manfaat kepada pengguna akhir dan pembangun kerana syarikat meneruskan usahanya untuk menjadikan Gedung lebih baik untuk semua orang yang menggunakan Windows. Salah satu sorotan terbesar perubahan ini ialah ciri "Pulihkan Apl" baharu dalam Microsoft Store pada Windows 11. Ia akan disambungkan ke akaun Microsoft pengguna, jadi selepas log masuk ke Windows 11 PC baharu, mereka boleh memulihkan aplikasi secara automatik dengan hanya beberapa klik. "Untuk memudahkan pelanggan beralih kepada PC baharu mereka dengan cepat dan lancar, kami akan memperkenalkan

Cara membetulkan tingkah laku Windows Defender: Makluman Win32/Hive.ZY Cara membetulkan tingkah laku Windows Defender: Makluman Win32/Hive.ZY May 06, 2023 am 08:04 AM

Ramai pengguna Windows 11 dan 10 bermasalah dengan melihat pemberitahuan amaran daripada Windows Defender yang menyatakan bahawa ancaman "Behavior: Win32/Hive.ZY" telah dikesan. Menurut laporan, amaran atau amaran Windows Defender ini dicetuskan apabila pengguna cuba membuka beberapa aplikasi yang biasa digunakan seperti Google Chrome atau Chromium Edge, Whatsapp, Discord dan Spotify. Walaupun anda telah menyekat ancaman ini pada PC anda, ia akan muncul dengan mesej MicrosoftDefenderAntivi pada kali seterusnya anda membuka aplikasi yang terjejas ini

Perisian reka bentuk grafik Win32 Canva melancarkan alat AI percuma untuk mencabar Adobe gergasi Perisian reka bentuk grafik Win32 Canva melancarkan alat AI percuma untuk mencabar Adobe gergasi Mar 05, 2024 pm 04:34 PM

Menurut berita baru-baru ini, Canva telah melancarkan satu siri fungsi alat imej AI dalam usaha untuk bersaing dengan Firefly Adobe Ia bertujuan untuk memudahkan proses penciptaan kandungan di tempat kerja, menjadikannya lebih mudah dan lebih cekap untuk profesional bukan reka bentuk untuk mencipta kandungan. , dan membenarkan pereka grafik untuk Fokus pada tugas kritikal misi dan mencabar penguasaan Adobe dalam pasaran. Menurut laporan, Visual Worksuite Canva telah menyepadukan BrandHub baharu, yang bertujuan untuk menyediakan pengguna dengan satu set alatan untuk membantu mereka memastikan konsistensi dengan identiti visual organisasi mereka. Pengguna boleh menggunakan alat ini untuk mencipta BrandKit (kit alat IP jenama) yang mengandungi maklumat budaya syarikat (seperti LOGO, fon, warna dan gaya reka bentuk bersatu).

See all articles