ebook img

Win32 API. Разработка приложений для Windows PDF

593 Pages·2008·10.47 MB·Russian
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Win32 API. Разработка приложений для Windows

Щупак Юрий Абрамович Win32 API. Разработка приложений ДЛЯ Windows Серия «Библиотека программиста» Заведующий рсдащисй А. caндpыкuu Руховодиreль проекта л Маннинен Ведущий редактор Ю. Cepгueнк.o Коррeжrop Е.Каюрова Воротка С.Романов ББК 32.973.2-018.2 УДК 004.451 ЩупакЮ.А Щ95 Win32 API. Разработка приложений ДnЯ Windows. - СПб.: Питер, 2008. - 592 с.: ил. ISBN 978-5-388-00301-0 в ЭТОЙ mиre изложены: основные IWВЦeIЩИИ и приемы программированив: ДШI Windows на sэыкe С/С++ с примсиеиием Win32.APl Кни:ra ориeнmpована на широкий :круг читателей: от начинающих :upOIpaММИCТOВ, студентов ву­ :ЮВ, 8CШIpВlПOВ и преподавателей до профессионалов в области программирования, владеющих язы­ КОМ С++, НО не имеющих OIIlolТll разрaбoncи пршroжeв:ий ДШI Wшdows. lIpaIcrиxa похазывает, 'по сели прorpaммиcты начинают рaэpaбarкy проспов сразу с примснением библиareк жлассов, подобных МFC ШIИ Wшdows Forms, не имев при ЭТОМ опыта рa6oп.I с Wш32 АР!, то они C'I'IIЛПIВ8ЮТCЯ с ctpъcзIIыми проблемами, :как ТOJIЫCO дело доxoдиr ДО СOЗД8ИИJ[ реальных при­ ложев:ий. Нaupomв, опыт:upcпpaим:иpoван:иа с Wш32 АР! П03ВO.J!RТ ОСВ8ИВаTh более высокие техво­ лomи гораздо гармоничнсй и проДУКТИВнСЙ. Владение базовыми званиями Win32 .АР! JIВJDIercJI надежной ОСНОВОЙ дш[ вашero профессиовалъ­ ного роста в сфере программироВIШШI. © 000 «Питер Пресс», 2008 Все права защищены. Никакая часть данной книги не может быть воспроизведена в какоЙ бы то ни было форме без письменного разрешения владепщев авторских прав. Информация, содержащаяся в данной книге, получена из источников, рассматриваемых ИЗД8ТeJlbCJВOМ как НВ­ дежные. Тем не менее, имея в вмду возможные человеческие или технические ошибки, издательство не может гарантировать абсолютную точность и полноту приводимых сведений и не несет атветственности за возмож­ ные ошибки, связанные с использованием книги. ISBN 978-5-388-00301-0 000 «Ihrrep Пресс», 198206, Cabrr-IIeтepбург, Петергофcme шоссе, Д. 73, пит. А29. НалоГОВIUI льгота - общеросСИЙCIИЙ классифицтор ПРОдyIЦИИ ОК 005-93, том 2; 95 3005 - шrrepaтура учеБЩU[. Подписаво в печать 28.05.08. Формат7ОхlОOl16. Ycn. п. л. 47,73. ТНpaz2500. Зпаз Omeчaтаво ПО теПЮJIОГВИ CtP в ОАО «IIeчa'lЯЬ1Й двор» им. А М. Гориого. 197110, Cahrr-IIeтepбург, Ч:nnОВС:&ИЙ пр., 15. Êðàòêîå ñîäåðæàíèå Ïðåäèñëîâèå...............................................................................13 Ãëàâà 1. «Hello, World!», èëè Ïåðâûå øàãè ê ïîíèìàíèþ îñíîâíûõ êîíöåïöèé Windows.........16 Ãëàâà 2. GDI — ãðàôè÷åñêèé èíòåðôåéñ óñòðîéñòâà. Ðèñîâàíèå ëèíèé, ôèãóð, òåêñòà.........58 Ãëàâà 3 . GDI. Ïàëèòðû, ðàñòðû, ìåòàôàéëû.......................159 Ãëàâà 4. Ñðåäñòâà ââîäà........................................................213 Ãëàâà 5 . Ðåñóðñû Windows-ïðèëîæåíèÿ .............................242 Ãëàâà 6. Ìåíþ è áûñòðûå êëàâèøè .....................................272 Ãëàâà 7. Äèàëîãîâûå îêíà ....................................................304 Ãëàâà 8. Ýëåìåíòû óïðàâëåíèÿ îáùåãî ïîëüçîâàíèÿ .......379 Ãëàâà 9. Ìíîãîçàäà÷íîñòü ....................................................441 Ãëàâà 10. Òàéìåðû è âðåìÿ.....................................................485 Ãëàâà 11. Áèáëèîòåêè äèíàìè÷åñêîé êîìïîíîâêè DLL........515 Ãëàâà 12. Ñïåöèàëüíûå ïðèëîæåíèÿ.....................................539 Ïðèëîæåíèå 1. Èíòåãðèðîâàííàÿ ñðåäà Visual C++ 6.0.......563 Ïðèëîæåíèå 2. Èíòåãðèðîâàííàÿ ñðåäà Visual Studio.NET ..577 Ïðèëîæåíèå 3. Ðàáîòà ñ óòèëèòîé Spy++ .............................584 Ëèòåðàòóðà ...............................................................................587 Àëôàâèòíûé óêàçàòåëü ...........................................................588 4 Ñîäåðæàíèå Ñîäåðæàíèå Ïðåäèñëîâèå...............................................................................13 Êîìó àäðåñîâàíà ýòà êíèãà........................................................................ 14 Êàê ðàáîòàòü ñ êíèãîé............................................................................... 14 Îò èçäàòåëüñòâà........................................................................................ 15 Ãëàâà 1. «Hello, World!», èëè Ïåðâûå øàãè ê ïîíèìàíèþ îñíîâíûõ êîíöåïöèé Windows ...........16 Áàçîâûå êîíöåïöèè................................................................................... 16 Ãðàôè÷åñêèé èíòåðôåéñ ïîëüçîâàòåëÿ................................................. 16 Ìíîãîçàäà÷íîñòü.................................................................................. 17 Óïðàâëåíèå ïàìÿòüþ............................................................................ 18 Íåçàâèñèìîñòü îò àïïàðàòíûõ ñðåäñòâ................................................. 19 Âûçîâû ôóíêöèé è DLL......................................................................... 19 Îáúåêòíî-îðèåíòèðîâàííîå ïðîãðàììèðîâàíèå ................................... 20 Òèïû äàííûõ Win32.............................................................................. 20 Àðõèòåêòóðà, óïðàâëÿåìàÿ ñîáûòèÿìè.................................................. 21 Îêîííàÿ ïðîöåäóðà .............................................................................. 22 Îêîííûå êëàññû ................................................................................... 23 Öèêë îáðàáîòêè ñîîáùåíèé.................................................................. 25 Íàèïðîñòåéøàÿ ïðîãðàììà äëÿ Windows................................................... 25 Ïðîãðàììà «Hello, world!» — ïåðâûé âàðèàíò........................................... 30 Ôàéë èñõîäíîãî òåêñòà ïðîãðàììû....................................................... 31 Ðåãèñòðàöèÿ êëàññà îêíà ...................................................................... 32 Ñîçäàíèå îêíà...................................................................................... 35 Èñïîëüçîâàíèå ôóíêöèè CreateWindowEx............................................. 38 Îòîáðàæåíèå îêíà íà ýêðàíå ............................................................... 39 Îáðàáîòêà ñîîáùåíèé .......................................................................... 40 Îêîííàÿ ïðîöåäóðà .............................................................................. 42 Ñîäåðæàíèå 5 Ïðîãðàììà «Hello, world!» — âòîðîé âàðèàíò............................................46 Ôóíêöèè ïîääåðæêè îêîí..........................................................................49 ×àñòî èñïîëüçóåìûå ñîîáùåíèÿ................................................................ 50 Ìîäèôèêàöèÿ õàðàêòåðèñòèê îêíà ............................................................51 Îñîáåííîñòè ïðîãðàììèðîâàíèÿ äëÿ Windows ..........................................52 Ñèíõðîííûå è àñèíõðîííûå ñîîáùåíèÿ................................................53 Ïîñûëêà ñîîáùåíèé èç ïðèëîæåíèÿ..................................................... 54 Èñïîëüçîâàíèå ãëîáàëüíûõ èëè ñòàòè÷åñêèõ ïåðåìåííûõ....................55 Ïîëó÷åíèå äåñêðèïòîðà ýêçåìïëÿðà ïðèëîæåíèÿ................................. 55 Ïðåäîòâðàùåíèå çàâèñàíèÿ ïðèëîæåíèÿ â ñëó÷àå ìåäëåííîé îáðàáîòêè îòäåëüíûõ ñîáûòèé....................................... 56 Èñïîëüçîâàíèå óòèëèòû Spy++ ............................................................57 Ãëàâà 2. GDI — ãðàôè÷åñêèé èíòåðôåéñ óñòðîéñòâà. Ðèñîâàíèå ëèíèé, ôèãóð, òåêñòà ..........................................58 Êîíòåêñò óñòðîéñòâà.................................................................................. 59 Òèïû êîíòåêñòîâ óñòðîéñòâà................................................................. 59 Ðåãèîíû Windows. Îòñå÷åíèå ............................................................... 60 Êîíòåêñò äèñïëåÿ ................................................................................. 60 Èñïîëüçîâàíèå ñîîáùåíèÿ WM_PAINT..................................................63 Êîíòåêñò ïðèíòåðà................................................................................65 Êîíòåêñò â ïàìÿòè (ñîâìåñòèìûé êîíòåêñò)..........................................65 Ìåòàôàéëîâûé êîíòåêñò....................................................................... 66 Èíôîðìàöèîííûé êîíòåêñò ..................................................................66 Ñèñòåìû êîîðäèíàò è ïðåîáðàçîâàíèÿ......................................................66 Ýêðàííûå, îêîííûå è êëèåíòñêèå êîîðäèíàòû......................................66 Òèïû êîîðäèíàòíûõ ñèñòåì ..................................................................67 Ôèçè÷åñêàÿ ñèñòåìà êîîðäèíàò ............................................................68 Ñèñòåìà êîîðäèíàò óñòðîéñòâà.............................................................68 Ñòðàíè÷íàÿ ñèñòåìà êîîðäèíàò è ðåæèìû îòîáðàæåíèÿ....................... 69 Ìèðîâàÿ ñèñòåìà êîîðäèíàò................................................................. 72 Ïîëó÷åíèå èíôîðìàöèè î âîçìîæíîñòÿõ óñòðîéñòâà................................. 74 Óïðàâëåíèå öâåòîì. Âûâîä ïèêñåëà.......................................................... 76 Öâåòîâîå ïðîñòðàíñòâî HLS..................................................................76 Öâåòîâîå ïðîñòðàíñòâî RGB................................................................. 76 Îïðåäåëåíèå öâåòà ïðè ðàáîòå ñ ïàëèòðîé..........................................77 Âûâîä ïèêñåëîâ....................................................................................78 6 Ñîäåðæàíèå Àòðèáóòû êîíòåêñòà óñòðîéñòâà, âëèÿþùèå íà ðèñîâàíèå......................... 78 Ðåæèì ðèñîâàíèÿ. Áèíàðíûå ðàñòðîâûå îïåðàöèè ............................... 79 Ðåæèì ñìåøèâàíèÿ ôîíà è öâåò ôîíà ãðàôè÷åñêîãî ýëåìåíòà............ 81 Îáùèå îïåðàöèè ñ ãðàôè÷åñêèìè îáúåêòàìè ............................................ 81 Ëèíèè è êðèâûå ........................................................................................ 82 Ðèñîâàíèå îòðåçêîâ.............................................................................. 83 Äóãè ..................................................................................................... 84 Êðèâûå Áåçüå ....................................................................................... 86 Ïåðüÿ........................................................................................................ 87 Ñòàíäàðòíûå ïåðüÿ............................................................................... 88 Ïðîñòûå ïåðüÿ...................................................................................... 89 Ðàñøèðåííûå ïåðüÿ.............................................................................. 93 Êèñòè......................................................................................................... 96 Ñòàíäàðòíûå êèñòè............................................................................... 97 Ïîëüçîâàòåëüñêèå êèñòè....................................................................... 97 Çàìêíóòûå ôèãóðû .................................................................................... 101 Ïðÿìîóãîëüíèêè ................................................................................... 101 Ýëëèïñû, ñåãìåíòû, ñåêòîðû è çàêðóãëåííûå ïðÿìîóãîëüíèêè............. 105 Ìíîãîóãîëüíèêè.................................................................................... 107 Ðåãèîíû è îòñå÷åíèå................................................................................. 109 Ñîçäàíèå ðåãèîíîâ............................................................................... 109 Îïåðàöèè ñ îáúåêòàìè ðåãèîíîâ .......................................................... 111 Ïðîðèñîâêà ðåãèîíîâ ........................................................................... 111 Îòñå÷åíèå ............................................................................................112 Îòîáðàæåíèå òåêñòà.................................................................................. 113 Íàáîðû ñèìâîëîâ è êîäèðîâêè ............................................................. 114 Unicode................................................................................................. 117 Øðèôòû ............................................................................................... 118 Âûâîä òåêñòà........................................................................................ 129 Ïîëîñû ïðîêðóòêè è âûâîä òåêñòà........................................................ 141 Ïðèìåðû ïðîãðàìì.................................................................................... 146 Ïðîñìîòðùèê òåêñòîâûõ ôàéëîâ .......................................................... 146 Âûâîä âðåìåííîé äèàãðàììû íàïðÿæåíèÿ ïåðåìåííîãî ýëåêòðè÷åñêîãî òîêà ................................................... 153 Ãëàâà 3. GDI. Ïàëèòðû, ðàñòðû, ìåòàôàéëû.........................159 Ïàëèòðû.................................................................................................... 159 Îñíîâíûå ïðèíöèïû óïðàâëåíèÿ ïàëèòðàìè ........................................ 159 Ñîäåðæàíèå 7 Ñèñòåìíàÿ ïàëèòðà...............................................................................161 Ëîãè÷åñêàÿ ïàëèòðà..............................................................................166 Ðàñòðû.......................................................................................................174 Àïïàðàòíî-íåçàâèñèìûå ðàñòðû........................................................... 175 Àïïàðàòíî-çàâèñèìûå ðàñòðû............................................................... 193 DIB-ñåêöèè ...........................................................................................200 Òåðíàðíûå ðàñòðîâûå îïåðàöèè........................................................... 202 Ìåòàôàéëû ............................................................................................... 206 Ñîçäàíèå ìåòàôàéëà ............................................................................ 207 Âîñïðîèçâåäåíèå ìåòàôàéëà................................................................ 210 Ãëàâà 4. Ñðåäñòâà ââîäà..........................................................213 Êëàâèàòóðà................................................................................................213 Ôîêóñ ââîäà..........................................................................................214 Êëàâèøè è ñèìâîëû..............................................................................215 Àïïàðàòíûå ñîîáùåíèÿ........................................................................215 Ñèìâîëüíûå ñîîáùåíèÿ........................................................................217 Ðàáîòà ñ êàðåòêîé................................................................................219 Ïðèìèòèâíûé òåêñòîâûé ðåäàêòîð .......................................................220 Ìûøü ........................................................................................................225 Òåðìèíîëîãèÿ, ñâÿçàííàÿ ñ ìûøüþ ......................................................226 Ñîîáùåíèÿ ìûøè ................................................................................. 226 Îáðàáîòêà äâîéíîãî ùåë÷êà................................................................. 227 Îáðàáîòêà ñîîáùåíèé îò êîëåñà ìûøè ................................................227 Ðèñóåì ìûøüþ......................................................................................228 Ýëàñòè÷íûå ïðÿìîóãîëüíèêè ................................................................ 234 Óëó÷øåííîå ïðèëîæåíèå äëÿ ïðîñìîòðà òåêñòîâûõ ôàéëîâ................. 237 Ãëàâà 5. Ðåñóðñû Windows-ïðèëîæåíèÿ................................242 Ðåäàêòîðû ðåñóðñîâ .................................................................................. 243 Ïèêòîãðàììû............................................................................................. 243 Ñîçäàíèå ïèêòîãðàììû ñ ïîìîùüþ ãðàôè÷åñêîãî ðåäàêòîðà................ 246 Èìïîðò ñóùåñòâóþùåé ïèêòîãðàììû.................................................... 250 Ïðîñìîòð è ðåäàêòèðîâàíèå ðåñóðñîâ ïðèëîæåíèÿ ..............................251 Èñïîëüçîâàíèå ðåñóðñà â ïðèëîæåíèè .................................................252 Êóðñîðû .................................................................................................... 256 Ðàñòðîâûå îáðàçû .....................................................................................260 Ðåñóðñû, îïðåäåëÿåìûå ïðîãðàììèñòîì.................................................... 263 8 Ñîäåðæàíèå Äîñòóï ê äàííûì â ðåñóðñå................................................................... 263 Âîñïðîèçâåäåíèå çâóêîâûõ ôàéëîâ........................................................... 264 Òàáëèöû ñòðîê .......................................................................................... 268 Ãëàâà 6. Ìåíþ è áûñòðûå êëàâèøè .......................................272 Îðãàíèçàöèÿ è âèäû ìåíþ ........................................................................ 272 Òèïû ïóíêòîâ ìåíþ.............................................................................. 273 Ñèñòåìíîå ìåíþ................................................................................... 274 Êëàâèàòóðíûé èíòåðôåéñ ìåíþ............................................................ 273 Ñòàòóñ ïóíêòîâ ìåíþ............................................................................ 275 Îòìåòêà ïóíêòîâ ìåíþ ......................................................................... 275 Ïóíêò ìåíþ, ïðèìåíÿåìûé ïî óìîë÷àíèþ............................................ 276 Îïðåäåëåíèå ìåíþ â âèäå ðåñóðñà ........................................................... 276 Øàáëîí ìåíþ....................................................................................... 276 Âûçîâ ðåäàêòîðà ìåíþ......................................................................... 277 Àòðèáóòû ïóíêòà ìåíþ ......................................................................... 278 Óðîâíè ìåíþ ........................................................................................ 279 Ïðîöåäóðà îïðåäåëåíèÿ ïóíêòà äëÿ ìåíþ i-ãî óðîâíÿ.......................... 279 Ïðîöåäóðà îïðåäåëåíèÿ ìåíþ íóëåâîãî óðîâíÿ................................... 280 Äîáàâëåíèå ìåíþ ê îêíó ïðèëîæåíèÿ....................................................... 280 Âíåñåíèå èçìåíåíèé â ìåíþ ..................................................................... 281 Ôóíêöèÿ CheckMenuItem....................................................................... 282 Ôóíêöèÿ CheckMenuRadioItem .............................................................. 282 Ôóíêöèÿ EnableMenuItem...................................................................... 283 Ôóíêöèÿ ModifyMenu............................................................................. 283 Ôóíêöèè äëÿ ïîëó÷åíèÿ äåñêðèïòîðà ìåíþ.......................................... 284 Ñîîáùåíèÿ ìåíþ....................................................................................... 284 Ïðèëîæåíèå MenuDemo1........................................................................... 286 Ðàáîòà ñ êîíòåêñòíûì ìåíþ ...................................................................... 293 Îïðåäåëåíèå øàáëîíà êîíòåêñòíîãî ìåíþ........................................... 293 Çàãðóçêà ìåíþ...................................................................................... 293 Âûçîâ ìåíþ.......................................................................................... 293 Ïðèëîæåíèå MenuDemo2...................................................................... 294 Áûñòðûå êëàâèøè...................................................................................... 299 Ìîäèôèêàöèÿ îïðåäåëåíèÿ ðåñóðñà ìåíþ............................................ 299 Òàáëèöà áûñòðûõ êëàâèø..................................................................... 300 Çàãðóçêà òàáëèöû áûñòðûõ êëàâèø....................................................... 301 Ñîäåðæàíèå 9 Ìîäèôèêàöèÿ öèêëà îáðàáîòêè ñîîáùåíèé..........................................301 Ïðèëîæåíèå MenuDemo3...................................................................... 302 Ãëàâà 7. Äèàëîãîâûå îêíà.......................................................304 Òèïû äèàëîãîâûõ îêîí..............................................................................304 Ýëåìåíòû óïðàâëåíèÿ â äèàëîãîâîì îêíå.................................................305 Ñîçäàíèå è îáðàáîòêà äèàëîãîâîãî îêíà................................................... 307 Øàáëîí äèàëîãîâîãî îêíà....................................................................307 Øàáëîííàÿ ñèñòåìà åäèíèö..................................................................308 Ìîäàëüíûé äèàëîã ....................................................................................308 Âûçîâ è èñïîëüçîâàíèå ðåäàêòîðà äèàëîãîâûõ îêîí............................ 309 Äîáàâëåíèå ýëåìåíòà óïðàâëåíèÿ Ðèñóíîê ..........................................311 Äîáàâëåíèå ýëåìåíòîâ óïðàâëåíèÿ Íàäïèñü........................................ 312 Âûðàâíèâàíèå ýëåìåíòîâ óïðàâëåíèÿ íà ôîðìå äèàëîãà..................... 314 Îïðåäåëåíèå äèàëîãîâîé ïðîöåäóðû è âûçîâ äèàëîãà.........................316 Èçìåíåíèå àòðèáóòîâ ýëåìåíòà óïðàâëåíèÿ......................................... 320 Èñïîëüçîâàíèå äðóãèõ ýëåìåíòîâ óïðàâëåíèÿ...........................................323 Êíîïêè..................................................................................................323 Êíîïêà Owner draw...............................................................................325 Ôëàæêè.................................................................................................331 Ïåðåêëþ÷àòåëè ....................................................................................333 Ãðóïïîâàÿ ðàìêà .................................................................................. 333 Ïðèìåð èñïîëüçîâàíèÿ ãðóïïîâîé ðàìêè, ôëàæêîâ è ïåðåêëþ÷àòåëåé ..334 Êëàâèàòóðíûé èíòåðôåéñ è ïîðÿäîê îáõîäà ýëåìåíòîâ óïðàâëåíèÿ .... 340 Îêíî ðåäàêòèðîâàíèÿ........................................................................... 341 Ñïèñîê..................................................................................................344 Êîìáèíèðîâàííûé ñïèñîê..................................................................... 356 Íåìîäàëüíûé äèàëîã................................................................................. 366 Ðàçëè÷èÿ ìåæäó ìîäàëüíûìè è íåìîäàëüíûìè îêíàìè äèàëîãà...........366 Ïðèìåð èñïîëüçîâàíèÿ íåìîäàëüíîãî îêíà äèàëîãà............................. 367 Îêíî ñîîáùåíèé........................................................................................ 372 Äèàëîãîâûå îêíà îáùåãî ïîëüçîâàíèÿ......................................................374 Ãëàâà 8. Ýëåìåíòû óïðàâëåíèÿ îáùåãî ïîëüçîâàíèÿ..........379 Îñíîâû ïðèìåíåíèÿ.................................................................................. 380 Èíèöèàëèçàöèÿ áèáëèîòåêè..................................................................380 Ñîçäàíèå ýëåìåíòîâ óïðàâëåíèÿ îáùåãî ïîëüçîâàíèÿ.........................382 Ñòèëè ýëåìåíòîâ óïðàâëåíèÿ îáùåãî ïîëüçîâàíèÿ ..............................383

See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.