Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ «Русский справочник ΠΏΠΎ Win32 APIΒ». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 28

Автор Варас Π‘ΠΎΡ€ΠΎΠΊΠ°

LPPOINT lppt // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° структуру для ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ ΠΌΡ‹ΡˆΠΈ

);


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹


hDrop - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ структуру, ΠΎΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‰ΡƒΡŽ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ ΠΌΡ‹ΡˆΡŒΡŽ Ρ„Π°ΠΉΠ»Ρ‹.

lppt - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° структуру POINT , ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ функция заполняСт ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ ΠΌΡ‹ΡˆΠΈ Π² Ρ‚ΠΎΡ‚ ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ пСрСтаскивании Ρ„Π°ΠΉΠ»ΠΎΠ² Π±Ρ‹Π»Π° ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π° лСвая ΠΊΠ½ΠΎΠΏΠΊΠ° ΠΌΡ‹ΡˆΠΈ.


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния


Если отпусканиС Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ происходит Π² клиСнтской области ΠΎΠΊΠ½Π°, Ρ‚ΠΎ возвращаСтся Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Если отпусканиС Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ происходит Π²Π½Π΅ клиСнтской области ΠΎΠΊΠ½Π°, Ρ‚ΠΎ возвращаСтся Π½ΡƒΠ»ΡŒ.


ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ


ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ курсора ΠΌΡ‹ΡˆΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‚ΡΡ для ΠΎΠΊΠ½Π°, ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‰Π΅Π³ΠΎ сообщСниС WM _ DROPFILES .


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅


DragQueryFile, POINT , WM_DROPFILES.


FindExecutable


Ѐункция FindExecutable Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ имя ΠΈ дСскриптор исполняСмого (.Π•Π₯Π•) Ρ„Π°ΠΉΠ»Π°, ассоциированного с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ Ρ„Π°ΠΉΠ»ΠΎΠΌ.


HINSTANCE FindExecutable (


LPCTSTR lpFile , // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку с ΠΈΠΌΠ΅Π½Π΅ΠΌ Ρ„Π°ΠΉΠ»Π°

LPCTSTR lpDirectory , // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° строку с Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠ΅ΠΉ ΠΏΠΎ

// ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

LPTSTR lpResult // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±ΡƒΡ„Π΅Ρ€ для строки с ΠΈΠΌΠ΅Π½Π΅ΠΌ

// Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ .Π•Π₯Π• Ρ„Π°ΠΉΠ»Π°

);


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹


lpFile - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π½ΡƒΠ»Π΅ΠΌ строку, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ имя Ρ„Π°ΠΉΠ»Π°. Π€Π°ΠΉΠ» ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π»ΠΈΠ±ΠΎ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠΌ, Π»ΠΈΠ±ΠΎ исполняСмым Ρ„Π°ΠΉΠ»ΠΎΠΌ.

lpDirectory - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π½ΡƒΠ»Π΅ΠΌ строку, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ.

lpResult - ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π±ΡƒΡ„Π΅Ρ€ для ΠΈΠΌΠ΅Π½ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ Ρ„Π°ΠΉΠ»Π°. Имя Ρ„Π°ΠΉΠ»Π° прСдставляСт собой Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π½ΡƒΠ»Π΅ΠΌ строку, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΡƒΡŽ исполняСмый Ρ„Π°ΠΉΠ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСтся ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ Ρ„Π°ΠΉΠ»Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ lpFile .


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния


Π’ случаС успСха Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ большС 32. Π’ случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π½ΠΎ 32. Π’ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Ρ‹ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΎΡˆΠΈΠ±ΠΎΡ‡Π½Ρ‹Π΅ значСния:


Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

ПояснСниС

0

НСдостаток памяти ΠΈΠ»ΠΈ рСсурсов.

31

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΠ΅Ρ‚ ассоциация для Π΄Π°Π½Π½ΠΎΠ³ΠΎ Ρ‚ΠΈΠΏΠ° Ρ„Π°ΠΉΠ»ΠΎΠ².

ERROR_FILE_NOT_FOUND

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.

ERROR_PATH_NOT_FOUND

Π£ΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.

ERROR_BAD_FORMAT

НСвСрный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ .Π•Π₯Π• Ρ„Π°ΠΉΠ»Π° (Π½Π΅ Win32 .EXE ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»)


ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ


ΠŸΡ€ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ lpResult ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚ΡŒ ΠΊ сСрвСру DDE, запускаСмому, Ссли Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ ΠΎΡ‚Π²Π΅Ρ‚ Π½Π° запрос ΠΈΠ½ΠΈΡ†ΠΈΠ°Ρ†ΠΈΠΈ DDE-Π΄ΠΈΠ°Π»ΠΎΠ³Π°.


Π‘ΠΌ . Ρ‚Π°ΠΊΠΆΠ΅


ShellExecute .


Π—Π°ΠΏΠΎΠ»Π½Π΅Π½Π½Ρ‹Π΅ Ρ„ΠΈΠ³ΡƒΡ€Ρ‹

FrameRect


Ѐункция FrameRect рисуСт Π³Ρ€Π°Π½ΠΈΡ†Ρƒ Π²ΠΎΠΊΡ€ΡƒΠ³ Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ ΠΊΠΈΡΡ‚ΡŒ. Π¨ΠΈΡ€ΠΈΠ½Π° ΠΈ высота Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ всСгда Ρ€Π°Π²Π½Ρ‹ ΠΎΠ΄Π½ΠΎΠΉ логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅.


int FrameRect (


HDC hDC , // дСскриптор контСкста устройства

CONST RECT *lprc , // ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°

HBRUSH hbr // дСскриптор кисти

);


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹


hDC - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ контСкст устройства, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ нарисована Π³Ρ€Π°Π½ΠΈΡ†Π°.

lprc - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° структуру Ρ‚ΠΈΠΏΠ° RECT , которая содСрТит логичСскиС ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΈ ΠΏΡ€Π°Π²ΠΎΠ³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡƒΠ³Π»ΠΎΠ² ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°.

hbr - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΊΠΈΡΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡƒΡŽ для рисования Π³Ρ€Π°Π½ΠΈΡ†Ρ‹


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния


Π’ случаС успСха возвращаСтся TRUE.

Π’ случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ возвращаСтся FALSE. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ошибкС Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetLastError .


ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ


ΠšΠΈΡΡ‚ΡŒ, идСнтифицируСмая ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ hbr , Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ создана с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ CreateHatchBrush, CreatePatternBrush ΠΈΠ»ΠΈ CreateSolidBrush , ΠΈΠ»ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π° с использованиСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GetStockObject .

Если Ρ‡Π»Π΅Π½ bottom структуры Ρ‚ΠΈΠΏΠ° RECT мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ Ρ‡Π»Π΅Π½Ρƒ top , ΠΈΠ»ΠΈ Ρ‡Π»Π΅Π½ right мСньшС ΠΈΠ»ΠΈ Ρ€Π°Π²Π΅Π½ Ρ‡Π»Π΅Π½Ρƒ left , Ρ‚ΠΎ функция Π½Π΅ рисуСт ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ.


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅


CreateHatchBrush, CreatePatternBrush, CreateSolidBrush, GetStockObject, RECT .


Класс окна

GetClassName


Ѐункция GetClassName ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ имя класса, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ Π·Π°Π΄Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.


int GetClassName (


HWND hWnd , // дСскриптор ΠΎΠΊΠ½Π°

LPTSTR lpClassName , // адрСс Π±ΡƒΡ„Π΅Ρ€Π° для ΠΈΠΌΠ΅Π½ΠΈ класса

int nMaxCount // Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π°, Π² символах

);


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹


hWnd - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΊΠ½ΠΎ ΠΈ, нСявно, класс, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚.

lpClassName - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π±ΡƒΡ„Π΅Ρ€, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ строку с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса.

nMaxCount - опрСдСляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ Π±ΡƒΡ„Π΅Ρ€Π°, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ lpClassName , Π² символах. Π‘Ρ‚Ρ€ΠΎΠΊΠ° с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса усСкаСтся, Ссли Π΅Π΅ Π΄Π»ΠΈΠ½Π° большС Ρ€Π°Π·ΠΌΠ΅Ρ€Π° Π±ΡƒΡ„Π΅Ρ€Π°.


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния


Π’ случаС успСха возвращаСтся количСство скопированных Π² Π±ΡƒΡ„Π΅Ρ€ символов.

Π’ случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ возвращаСтся Π½ΡƒΠ»ΡŒ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ошибкС Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetLastError .


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅


FindWindow, GetClassInfo, GetClassLong, GetClassWord .


SetClassWord


Ѐункция SetClassWord Π·Π°ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ 16-Π±ΠΈΡ‚Π½ΠΎΠ΅ ( word ) Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ смСщСнии Π² Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти класса для класса ΠΎΠΊΠ½Π°, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.


WORD SetClassWord (


HWND hWnd , // дСскриптор ΠΎΠΊΠ½Π°

int nIndex , // индСкс замСняСмого значСния

WORD wNewWord // Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅

);


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹


hWnd - ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΎΠΊΠ½ΠΎ, ΠΈ, нСявно, класс, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ ΠΎΠΊΠ½ΠΎ.

nIndex - опрСдСляСт отсчитываСмоС ΠΎΡ‚ нуля смСщСниС Π·Π°ΠΌΠ΅Ρ‰Π°Π΅ΠΌΠΎΠ³ΠΎ значСния Π² Π±Π°ΠΉΡ‚Π°Ρ…. Π’Π΅Ρ€Π½Ρ‹Π΅ значСния находятся Π² Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΡ‚ нуля Π΄ΠΎ числа Π±Π°ΠΉΡ‚ Π² памяти класса минус Π΄Π²Π°. НапримСр, Ссли Π²Ρ‹ Π·Π°Π΄Π°Π»ΠΈ Π΄Π΅ΡΡΡ‚ΡŒ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Π±Π°ΠΉΡ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ памяти класса, восСмь Π±ΡƒΠ΄Π΅Ρ‚ индСксом пятого 16-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ значСния.

wNewWord - опрСдСляСт Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния


Π’ случаС успСха возвращаСтся ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 16-Π±ΠΈΡ‚Π½ΠΎΠ³ΠΎ Ρ†Π΅Π»ΠΎΠ³ΠΎ.

Π’ случаС Π½Π΅ΡƒΠ΄Π°Ρ‡ΠΈ возвращаСтся Π½ΡƒΠ»ΡŒ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ошибкС Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetLastError .


ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ


Π—Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠΉΡ‚Π΅ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ ΠΏΠ°ΠΌΡΡ‚ΡŒ класса ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ³ΠΎ значСния Ρ‡Π»Π΅Π½Π° cbClsExtra структуры Ρ‚ΠΈΠΏΠ° WNDCLASS , ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠΉ с Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ RegisterClass .

ЗначСния GCW _ Π² Win 32 API устарСли. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ SetClassLong для устновки Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ класса, Ρ€Π°Π½Π΅Π΅ устанавливаСмых с использованиСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ GCW _ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ SetClassWord .


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅


GetClassLong, GetClassWord, RegisterClass, SetClassLong, WNDCLASS .


UnregisterClass


Ѐункция UnregisterClass удаляСт класс ΠΎΠΊΠ½Π°, освобоТдая ΠΏΠ°ΠΌΡΡ‚ΡŒ, Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡƒΡŽ классу.


BOOL UnregisterClass (


LPCTSTR lpClassName , // адрСс строки с ΠΈΠΌΠ΅Π½Π΅ΠΌ класса

HINSTANCE hInstance // дСскриптор экзСмпляра прилоТСния

);


ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹


lpClassName - ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Π·Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΡƒΡŽΡΡ Π½ΡƒΠ»Π΅ΠΌ строку ΠΈΠ»ΠΈ Ρ†Π΅Π»Ρ‹ΠΉ Π°Ρ‚ΠΎΠΌ. Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этого ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° являСтся Ρ†Π΅Π»Ρ‹ΠΌ Π°Ρ‚ΠΎΠΌΠΎΠΌ, ΠΎΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹ΠΌ Π°Ρ‚ΠΎΠΌΠΎΠΌ, созданным ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ GlobalAddAtom . Атом, 16-Π±ΠΈΡ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, мСньшСС 0 xC 000, Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² младшСм словС lpClassName ; ΡΡ‚Π°Ρ€ΡˆΠ΅Π΅ слово Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ.

Если Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ lpClassName являСтся строкой, ΠΎΠ½Π° опрСдСляСт имя класса ΠΎΠΊΠ½Π°. Π­Ρ‚ΠΎ имя класса Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ зарСгистрировано ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΌ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ RegisterClass . РСгистрация систСмных Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Ρ… классов, Ρ‚Π°ΠΊΠΈΡ…, ΠΊΠ°ΠΊ классы элСмСнтов управлСния, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‚ΠΌΠ΅Π½Π΅Π½Π°.

hInstance - опрСдСляСт экзСмпляр модуля, создавшСго класс.


Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΠΌΡ‹Π΅ значСния


Π’ случаС успСха возвращаСтся Π½Π΅Π½ΡƒΠ»Π΅Π²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅.

Π’ случаС Ссли класс Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΉΠ΄Π΅Π½ ΠΈΠ»ΠΈ ΠΎΠΊΠ½ΠΎ, созданноС с этим классом, всС Π΅Ρ‰Π΅ сущСствуСт, возвращаСтся Π½ΡƒΠ»ΡŒ. Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ ΠΎΠ± ошибкС Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ GetLastError .


ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ


ΠŸΠ΅Ρ€Π΅Π΄ Π²Ρ‹Π·ΠΎΠ²ΠΎΠΌ этой Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Ρ€Π°Π·Ρ€ΡƒΡˆΠΈΡ‚ΡŒ всС ΠΎΠΊΠ½Π°, созданныС с ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ классом.