ceballos: visual c++. aplicaciones para win32, 2ed

Upload: fco-javier-ceballos-sierra

Post on 11-Feb-2018

280 views

Category:

Documents


7 download

TRANSCRIPT

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    1/62

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    2/62

    Ubztca J..C|abjcjbmidz |crc Xbi:?

    Ejm) Gcubdr Jdocaamz Zbdrrc\rmedzmr vbvtacr fd ac

    Dzjtdac \mabvjibjc Zt|drbmrTibudrzbfcf fd Cajca

    `vv|7--xxx)egjdocaamz)dz

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    3/62

    Ubztca J..) C|abjcjbmidz |crc Xbi:? (? dfbjbi") Ejm) Gcubdr Jdocaamz Zbdrrc

    Fd ac dfbjbi7 _C+KC 3222

    KC_JCZ JMKD_JBCADZ7 Acz fdzbhicjbmidz tvbabwcfcz |mr acz dk|rdzcz |crc fbzvbihtbr

    ztz |rmftjvmz ztdadi zdr kcrjcz rdhbzvrcfcz) _C+KC `c bivdivcfm c am acrhm fd dzvd aborm fbzvbihtbr

    acz kcrjcz jmkdrjbcadz fd amz vrkbimz fdzjrb|vbumz! zbhtbdifm da dzvbam fd kczjtacz std tvbabwc

    da ecorbjcivd! zbi bivdijbi fd bierbihbr ac kcrjc zam di odidebjbm fda |rm|bdvcrbm fd ac kbzkc)

    _C+KC dz tic kcrjc jmkdrjbca rdhbzvrcfc)

    Zd `c |tdzvm da kpbkm dk|dm di merdjdr ca adjvmr tic biemrkcjbi jmk|advc |rdjbzc)

    Zbi dkocrhm! _C+KC Dfbvmrbca im cztkd ibihtic rdz|mizcobabfcf fdrbucfc fd zt tzm!

    ib vck|mjm |mr jtcastbdr ubmacjbi fd |cvdivdz ib mvrmz fdrdj`mz fd vdrjdrcz |crvdz std |tfbdrcimjtrrbr) Dzvc |toabjcjbi vbdid |mr mogdvm |rm|mrjbmicr timz jmimjbkbdivmz |rdjbzmz cjrdfbvcfmz

    zmord da vdkc vrcvcfm) Zt udivc im zt|mid |crc da dfbvmr ibihtic emrkc fd czbzvdijbc adhca!

    cfkbibzvrcvbuc ib fd ibihi mvrm vb|m) Jczm fd |rdjbzcrzd czdzmrc adhca t mvrc emrkc fd ctfc

    dp|drvc! fdodi otzjcrzd amz zdrubjbmz fd ti |rmedzbmica jmk|dvdivd)

    _dzdrucfmz vmfmz amz fdrdj`mz fd |toabjcjbi di jtcastbdr bfbmkc)

    Ibihtic |crvd fd dzvd aborm |tdfd zdr rd|rmftjbfc! hrcocfc di zbzvdkc

    fd cakcjdickbdivm m vrcizkbvbfc di emrkc cahtic ib |mr jtcastbdr |rmjdfbkbdivm! c

    zdc dadjvribjm! kdjibjm! rd|rmhrebjm! kchivbjm m jtcastbdr mvrm! zbi ctvmrbwcjbi

    |rdubc |mr dzjrbvm fd _C+KC> zdhi am fbz|tdzvm di da crvjtam 4:6+obz fda Jfbhm \dica

    ubhdivd zdri jczvbhcfmz jmi ac |dic fd crrdzvm kcmr ktavc stbdidz bivdijbmicfckdivd!

    rd|rmftgdrdi m |achbcrdi! di vmfm m di |crvd! tic morc abvdrcrbc! crvzvbjc m jbdivebjc)

    Dfbvcfm |mr7

    _C+KC Dfbvmrbca

    Jvrc) Jcibaacz! 366

    ?0

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    4/62

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    5/62

    IFBJD\_AMHM )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) PBP

    \C_VD 3) \_MH_CKCJBI OZBJC JMI ACZ KEJ )))) 3

    JC\VTAM 3) ST DZ UBZTCA J..= ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) :

    DIVM_IM FD FDZC__MAAM FD UBZTCA J.. )))))))))))))))))))))))))))))))))))))))))) 8Udivcic fda |rmdjvm ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 8Udivcic fd dfbjbi ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 0Udivcic fd zcabfc ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2Tvbabfcfdz ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 2

    JMKM J_DC_ TIC C\ABJCJBI )))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))) 3 |crc kmfbebjcram zbk|ad+kdivd zdadjjbidam) Fdz|tz dfbvd ztz |rm|bdfcfdz) Di ac jcgc fd vdpvmJc|vbmi zd dzjrbod da imkord fda kdi std zd fdzdc dfbvcr! da jtca c|crdjdrftrcivd da fbzdm ac dgdjtjbi fd ac c|abjcjbi di ac ocrrc fd kdiz) Bizdrvd

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    25/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ 302

    ti ck|drzcif (%" civdz fd ac advrc std fc cjjdzm ca kdi) Da tztcrbm |mfrzdadjjbmicr dzvd kdi |tazcifm ac vdjac Cav kz ac vdjac std fc cjjdzm cakdi! ac jtca c|crdjd ztorccfc) Da imkord fd ti kdi im aaduc BF)

    C jmivbitcjbi! |crc ccfbr dadkdivmz c ti kdi! zdadjjbmid da rdjvihtamucjm fdocgm fda imkord fda kbzkm) \mr dgdk|am! di ac ebhtrc zbhtbdivd! Cr+j`bum! Dfbjbi Ctfc zmi kdiz)

    :) Bivrmftjbr amz dadkdivmz std jmk|midi da kdi) Di ac jcgc fd vdpvm Jc|vbmizd dzjrbod da imkord fda dadkdivm fda kdi) Bizdrvd ti ck|drzcif (%" civdzfd ac advrc std fc cjjdzm ca dadkdivm) Di ac jcgc fd vdpvmBF zd dzjrbod da bfdi+vbebjcfmr tvbabwcfm di da jfbhm |crc rdedrbrzd ca dadkdivm! m obdi zd dabhd tim

    fd ac abzvc) AmzBF fd ac abzvc! c vbdidi etijbmicabfcf czbhicfc di tic c|abjc+jbi jmizvrtbfc jmiC||Xbwcrf) \mr dgdk|am!BF]C\\]DPBVdz da bfdivbebjc+fmr fd ac mrfdi Zcabrfda kdiCrj`bum! c dzv bk|adkdivcfc)

    6) Jrdcr ti ztokdi) Ti dadkdivm |tdfd zdr vckobi ti ztokdi) \crc std tidadkdivm zdc ti ztokdi vbdid std cjvbucr (|midr c ucamr vrtd" zt |rm|bdfcf\m|+t|) \mr dgdk|am! di ac ebhtrc zbhtbdivd da dadkdivm Htcrfcrdz ti zto+kdi)

    4) Ccfbr ti zd|crcfmr) Tvbabwcifm zd|crcfmrdz |tdfd chrt|cr acz rfdidz dietijbi fd zt cjvbubfcf) \crc bizdrvcr ti zd|crcfmr! zdadjjbmid da rdjvihtam

    ucjm cjvbud ac |rm|bdfcf Zd|crcvmr) \mr dgdk|am! di da kdiCrj`bum zd `cbizdrvcfm ti zd|crcfmr civdz fd ac mrfdi Zcabr)

    5) Jdrrcr da dfbvmr fd kdiz) Tic udw std `cc ebicabwcfm da fbzdm! dgdjtvd acmrfdi Zcud fda kdi Ebad jbdrrd ac udivcic jmrrdz|mifbdivd ca kdi) Ac|acivbaac fda kdi zd htcrfc di da ebj`drm fd rdjtrzmz)

    \crc omrrcr ti kdi m tim fd ztz dadkdivmz (mrfdi! ztokdi m zd|crcfmr" zd+adjjbidam |tazd ac vdjacOmrrcr(Fda")

    Tvbabwcifm da rcvi acz vdjacz Jvra m Z`bev(Kcz"! |tdfd jm|bcr m kmudr amzkdiz m ztz dadkdivmz fd tic |mzbjbi c mvrc) Bijatzm! zb vbdid ucrbmz rdjtrzmz fddzvd vb|m! |tdfd crrczvrcr kdiz m dadkdivmz bifbubftcadz! fd tic udivcic c mvrc)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    26/62

    32< UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    Jmkm dgdrjbjbm! jrdd tic c|abjcjbi ZFB fdimkbicfcKditz jmi tic ocrrc fdkdiz bhtca c ac kmzvrcfc di acz ebhtrcz civdrbmrdz) Fdz|tz! htcrfd ac c|abjcjbi!jmk|adac dgdjvdac) Jmk|rtdod jkm `cjbdifm jabj zmord jtcastbdr kdi zvdzd fdz|abdhc kmzvrcifm ztz dadkdivmz)

    Di hdidrca! amz dadkdivmz std jmk|midi jcfc kdi im dzvcri m|drcvbumz`czvc im tibr da jfbhm jmrrdz|mifbdivd) Im mozvcivd! C||Xbwcrf`cjd std caht+icz rfdidz jmkm Zcabrc dzvi m|drcvbucz! |mr am std im idjdzbvcrdkmz dzjrbobrtic etijbi |crc daacz! c im zdr std fdzddkmz kmfbebjcr zt jmk|mrvckbdivm)

    \crc fdebibr jkm fdod rdz|mifdr jcfc mrfdi fd ti kdi ca dudivm jabj! `cstd dzjrbobr tic etijbi |crc jcfc tic fd daacz) Acz rfdidz fd ti kdi zam rdz+

    |mifdi ca dudivm jabj> jtcifm ti tztcrbm zdadjjbmic tic mrfdi fd ti kdi! zd di+uc ti kdizcgd XK]JMKKCIF)

    \crc dzjrbobr tic etijbi |crc tic mrfdi fd ti kdi dgdjtvd JaczzXbwcrfdi ac udivcic KEJ JaczzXbwcrfzdadjjbmid ac jaczd std uc c kcib|tacr dzvc mr+fdi! di itdzvrm jczm JKditzUbdx! da bfdivbebjcfmr fda kdi!BF]DFBV]JM\R! dakdizcgd std fdzdc kcib|tacr! JMKKCIF! `chc jabj di da omviCff Etijvbmi)JaczzXbwcrfccfbr ca ebj`drm )j|| ad kmzvrcr da dzstdadvm fda jmivrmacfmr |c+rc dzc mrfdi! am std ad |drkbvbr dzjrbobr da jfbhm std vbdid std dgdjtvcrzd di rdz+|tdzvc c dzd kdizcgd) \mr dgdk|am! da jmivrmacfmr |crc ac mrfdi Jm|bcrfda kdiDfbjbi fd itdzvrc c|abjcjbiKditz! zdrc cz7

    umbf JKditzUbdx77MiDfbvJm|"~-- Ccfc da jfbhm fda jmivrmacfmr cst

    {

    \rm|bdfcfdz fd ti kdi

    Acz |rm|bdfcfdz std |tdfdi zdadjjbmicrzd di ac udivcic fd fbzdm fd kdiz zmiBF! Zd|crcvmr! J`djndf! \m|+t|! Hrcdf!Bicjvbud!@da|!Ordcn! \rmk|v_bh`v+vm+adev mrfdr cif cabhikdiv)

    Ac |rm|bdfcf BF |drkbvd bfdivbebjcr di da jfbhm c ti kdi m c tim fd ztzdadkdivmz)

    Ac |rm|bdfcf Zd|crcvmr|drkbvd bijatbr tic aidc hrebjc fd zd|crcjbi di+vrd fmz dadkdivmz fd ti kdi)

    Ac |rm|bdfcf J`djndfdz vba |crc bifbjcr da dzvcfm (zdadjjbmicfm! im zdadj+jbmicfm" fd ac m|jbi c ac std `cjd rdedrdijbc ac mrfdi) Jtcifm zd zdcac dzvc

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    27/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ 323

    |rm|bdfcf (zd |mid c ucamr vrtd" c|crdjd tic kcrjcoc ac bwstbdrfc fda dadkdivmfda kdi)

    Ac |rm|bdfcf \m|+t| fdebid ti dadkdivm jmkm ti ztokdi)

    Ac |rm|bdfcf Hrcdfdz vba |crc fdzcjvbucr tic mrfdi di ti kmkdivm di dajtca im vbdid zdivbfm std dzv cjvbuc) \mr dgdk|am! zb dzvckmz vrcocgcifm jmi tidfbvmr im vdidkmz zdadjjbmicfm ti oamstd fd vdpvm! im vbdid zdivbfm std ac mr+fdi Jm|bcrfda kdi Dfbjbi dzv cjvbuc) Jtcifm zd `cjd jabj di tic mrfdi fd tikdi! zvc zdr dgdjtvcfc zb zt |rm|bdfcf Hrcdfim dzv cjvbucfc) Zb ac |rm|bdfcfHrcdfdzv cjvbucfc! ac mrfdi zd ktdzvrc di vmim hrbz im |tdfd zdr dgdjtvcfc) Zbdzvc |rm|bdfcf zd cjvbuc ftrcivd da fbzdm! ac mrfdi jmrrdz|mifbdivd c|crdjdr di

    vmim hrbz (fdzcjvbucfc" jtcifm zd dgdjtvd ac c|abjcjbi> ahbjckdivd jmi ac bivdi+jbi fd cjvbucrac jtcifm zdc |rdjbzm)

    Ac |rm|bdfcfBicjvbud dz bhtca std ac |rm|bdfcf Hrcdfjmi ac fbedrdijbc fdstd ac mrfdi c|crdjd jmi da vdpvm imrkca) Zb ac |rm|bdfcf Hrcdfdz vrtd ac |rm+|bdfcfBicjvbud dz zbdk|rd vrtd)

    Ac |rm|bdfcf @da| |drkbvd std ti kdi! |mr dgdk|am Ctfc! c|crdwjc di dakcrhdi fdrdj`m (zam vbdid dedjvm ftrcivd ac dgdjtjbi") Dzvc cjjbi! vckobi|tdfd zdr rdcabwcfc |mr ac |rm|bdfcf_bh`v+vm+adev mrfdr cif cabhikdiv)

    Ac |rm|bdfcfOrdcn|tdfd vmkcr tim fd amz zbhtbdivdz ucamrdz7

    Imid (ucamr |mr mkbzbi"7 Im vbdid dedjvm) Jmatki7 Di tic ocrrc fd kdiz dzvvbjc! dzvd ucamr |mid da dadkdivm di tic

    itduc aidc) Di kdiz eamvcivdz! dzvd ucamr |mid da dadkdivm di tic itduc jm+atkic zbi aidc fbubzmrbc divrd acz jmatkicz)

    Ocr7 Bhtca std Jmatki dpjd|vm |crc kdiz eamvcivdz7 da ucamr Ocr zd|crc acitduc jmatkic fd ac jmatkic dpbzvdivd jmi tic aidc udrvbjca)

    Dzvc |rm|bdfcf! bhtca std ac civdrbmr (@da|" cedjvc ca cz|djvm fda kdi zamftrcivd ac dgdjtjbi! im ftrcivd da fbzdm)

    Ac |rm|bdfcf \rmk|v jmivbdid da vdpvm std c|crdjd di ac ocrrc fd dzvcfmjtcifm da dadkdivm dz zdadjjbmicfm) Da vdpvm dz jmamjcfm di ac vcoac fd jcfdicz fdjcrcjvdrdz jmi da kbzkm bfdivbebjcfmr std da dadkdivm fda kdi)

    Ac |acivbaac fda kdi cakcjdicfc di da ebj`drm fd rdjtrzmz ()rj" bijmr|mrc jc+

    fc tic fd acz |rm|bdfcfdz dz|djbebjcfcz |crc jcfc tim fd amz dadkdivmz fd ackbzkc) \mr dgdk|am! ac ocrrc fd kdiz fbzdcfc |crc batzvrcr am `czvc c`mrc dp+|tdzvm zd jmrrdz|mifd jmi ac zbhtbdivd |acivbaac7

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    28/62

    32? UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    BF_]KCBIE_CKD KDIT \_DAMCF FBZJC_FCOADODHBI\M\T\ /%Crj`bum/

    ODHBIKDITBVDK /%Corbr)))QvJvra.C/! BF]EBAD]M\DI\M\T\ /%Htcrfcr/ODHBIKDITBVDK /%Kbzkm imkord/! BF]C_J@BUM]HTC_FC_]KBZKMIMKO_DKDITBVDK /%Mvrm imkord/! BF]C_J@BUM]HTC_FC_]MV_MIMKO_D

    DIFKDITBVDK ZD\C_CVM_KDITBVDK /%Zcabr/! BF]C\\]DPBV

    DIF\M\T\ /%Dfbvcr/

    ODHBIKDITBVDK /Jmr%vcrQvJvra.P/! BF]DFBV]JTV! H_CRDFKDITBVDK /%Jm|bcrQvJvra.J/! BF]DFBV]JM\R! H_CRDFKDITBVDK /%\dhcrQvJvra.U/! BF]DFBV]\CZVD

    DIF\M\T\ /C%tfc/! @DA\ODHBIKDITBVDK /%Cjdrjc fd Kdiz)))/! BF]C\\]COMTV

    DIFDIF

    Mozdrud jkm jcfc kdi m ztokdi uc dijcodwcfm |mr ac |cacorc jacud \M+\T\ amz dadkdivmz fd jcfc tim fd daamz |mr ac |cacorc jacud KDITBVDK) Czkbzkm |tdfd mozdrucr std acz rfdidz Jmrvcr Jm|bcrc|crdjdri bibjbcakdivdfdzcjvbucfcz di hrbz (H_CRDF" std da kdiCtfc c|crdjdr c ac fdrdj`c diac ocrrc fd kdiz (@DA\")

    FDZC__MAAM FD TI DFBVM_ FD VDPVMZ

    Itdzvrc |rpbkc c|abjcjbi uc c jmizbzvbr di da fdzcrrmaam fd ti dfbvmr fd vdpvmz)

    Dzvd dfbvmr! ctistd fd |rdzvcjbmidz kt abkbvcfcz! uc c zdrubr |crc |midr di|rjvbjc amz kdiz |crc bijmr|mrcr itdumz jmijd|vmz jmkm amz c|mrvcfmz |mr aczjcgcz fd vdpvm ktavbaidc da |mrvc|c|dadz (fdimkbicfm Jab|omcrfdi Xbifmxz")

    Ti dfbvmr fd vdpvmz |crdjd c zbk|ad ubzvc tic c|abjcjbi kt jmk|abjcfc! |d+rm c`mrc udrdkmz std im dz cz) Ubztca J.. vbdid kdjcibzkmz fd divrcfc std`cjdi ztkckdivd zdijbaacz acz c|abjcjbmidz jmkm zvc)

    Tvbabwcifm tic fdebibjbi zdijbaac! ti dfbvmr fd vdpvmz dz tic jcgc fd vdpvm jmi

    kavb|adz aidcz! Ubztca J.. zm|mrvc dzvd vb|m fd jcgcz)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    29/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ 32:

    Jcgc fd vdpvm ktavbaidc

    Da cz|djvm da jmk|mrvckbdivm fd tic jcgc fd vdpvm dzv kt bieatdijbcfm |mr acz|rm|bdfcfdz! Ktavbabid! @mrbwmivca zjrmaa! Udrvbjca zjrmaa Xciv rdvtri! acz jtc+adz! jtcifm zd vrcvc fd tic jcgc fd vdpvm jrdcfc fdzfd tic |acivbaac! |tdfdi zdr dz+vcoadjbfcz zmackdivd ftrcivd da fbzdm)

    Ac |rm|bdfcf Ktavbabid |drkbvd tvbabwcr tic jcgc fd vdpvm jc|cw fd jmivdidrucrbcz aidcz) Jtcifm |midkmz ti jmivrma fd dzvd vb|m di ti emrktacrbm m di ticjcgc fd fbamhm |tazckmz ac vdjac Divrcr! ac rdz|tdzvc |mr mkbzbi dzv dijckb+icfc c cjvbucr da omvi |mr mkbzbi) Zb! di dzvd jczm! am std fdzdckmz dz std zdbizdrvd di da vdpvm ti J_.AE(rdvmrim fd jcrrm kz cucijd fd aidc"! vdidkmz std

    dzvcoadjdr ac |rm|bdfcf Xciv rdvtri)

    Acz |rm|bdfcf @mrbwmivca zjrmaa |rm|mrjbmic tic ocrrc fd fdz|acwckbdivm`mrbwmivca ac |rm|bdfcf Udrvbjca zjrmaa tic ocrrc fd fdz|acwckbdivm udrvbjca) Dz+vcz |rm|bdfcfdz fd tic jcgc fd vdpvm im vbdidi std zdr jmietifbfcz jmi da jmivrmaocrrc fd fdz|acwckbdivm std udrdkmz kz cfdacivd)

    Zb di tic jcgc fd vdpvm ktavbaidc im `c tic ocrrc fd fdz|acwckbdivm `mrb+wmivca zt |rm|bdfcfCtvm @Zjrmaa im dzv cjvbucfc! tic aidc fd vdpvm std cajci+jd da dpvrdkm fdrdj`m fd ac jcgc! jmivbitcr ctvmkvbjckdivd di ac aidczbhtbdivd)

    \crc jrdcr da dfbvmr std udkmz di ac ebhtrc! amz |czmz zmi kt zdijbaamz7

    3) Tvbabwcifm C||Xbwcrf! jrdd da dzstdadvm |crc tic itduc c|abjcjbi ZFB stdtvbabjd ti emrktacrbm jmkm udivcic |rbijb|ca) Fdimkidac Dfbvmr)

    ?) Tvbabwcifm da dfbvmr fd fbamhmz! fbotgd zmord da emrktacrbm! std uc c zdr acubzvc fd ac udivcic |rbijb|ca! tic jcgc fd vdpvm cgzvdac ca vckcm std fdzdd>|mr dgdk|am! ca vckcm fda emrktacrbm)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    30/62

    326 UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    :) \mihc ac |rm|bdfcfKtavbabid c ucamr vrtd (zdadac") Dzvm |drkbvd dzjrbobr diac jcgc ucrbcz aidcz fd vdpvm) \mr mkbzbi! dzvc |rm|bdfcf vbdid da ucamr ecazd!am std bifbjc std ac jcgc fd vdpvm zam |tdfd jmivdidr tic aidc)

    6) \mihc acz |rm|bdfcfdz@mrbwmivca zjrmaa Udrvbjca zjrmaa c ucamr vrtd) Fd dzvcemrkc! ac jcgc fd vdpvm stdfc fmvcfc fd ocrrcz fd fdz|acwckbdivm `mrbwmivca udrvbjca) \mr mkbzbi! dzvcz |rm|bdfcfdz vbdidi ucamr ecazd! am jtca bifbjc stdim `c ocrrcz fd fdz|acwckbdivm)

    4) \mihc ac |rm|bdfcf Xciv rdvtri c ucamr vrtd) Dzvm ad |drkbvbr zcavcr c ticitduc aidc jtcifm |tazd Divrcr)

    5) \mihc ac |rm|bdfcfOmrfdrc ucamr ecazd |crc dabkbicr da omrfd fd ac jcgc)Htcrfd ac c|abjcjbi! jmk|adac dgdjvdac) \rtdod c dzjrbobr vdpvm! cjvd zm+

    ord acz ocrrcz fd fdz|acwckbdivm! kmfbebstd da vdpvm! zdadjjbmid vdpvm! bizdrvd vdp+vm omrrd vdpvm) Jmkm |mfr jmk|rmocr! vmfcz dzvcz m|drcjbmidz dzvi bk|ajbvczzbi dzjrbobr icfc fd jfbhm)

    \crc `cjdr kz m|drcvbum itdzvrm dfbvmr! uckmz c ccfbrad ztz |rm|bcz rfdidzfd Fdz`cjdr! Jmrvcr! Jm|bcr \dhcr) Dzvcz rfdidz imz |drkbvbri zdadjjbmicrti vdpvm kmudram m ft|abjcram fdivrm fda kbzkm fmjtkdivm! m aaducram c mvrmfmjtkdivm)

    Vrcocgcr jmi vdpvm zdadjjbmicfm

    Di jtcastbdr dfbvmr fd vdpvm da tztcrbm |tdfd zdadjjbmicr vdpvm tvbabwcifm da rcvim da vdjacfm) Jmi da rcvi! c|tivd ca jmkbdiwm fda vdpvm c zdadjjbmicr crrczvrdjmi da omvi bwstbdrfm |tazcfm `czvc `codr zdadjjbmicfm vmfm da vdpvm) Jmi da vd+jacfm! zbvd da |tivm fd bizdrjbi fmifd fdzdc bibjbcr ac zdadjjbi! kcivdibdifm|tazcfc ac vdjac Z`bev (kczjtacz" fdz|acjd da |tivm fd bizdrjbi tvbabwcifm aczvdjacz fd fdz|acwckbdivm) Ubztca J.. fc ctvmkvbjckdivd dzvc jc|cjbfcf c acz jc+

    gcz fd vdpvm> im mjtrrd cz jmi ac etijbmicabfcf fd jmrvcr! jm|bcr |dhcr)

    Cfdkz fd ac jc|cjbfcf fd zdadjjbi! ac etijbmicabfcf zm|mrvcfc |mr ac jaczdJDfbv |crc acz jcgcz fd vdpvm bijatd tic zdrbd fd etijbmidz std |drkbvdi vrcocgcrjmi da vdpvm zdadjjbmicfm! c vrcuz fda |mrvc|c|dadz (Jab|omcrf") Cahticz fd dzvczetijbmidz zmi Tifm! Jadcr! Jm|! Jtv! \czvd! HdvZda ZdvZda)

    Ac etijbi Tifm |drkbvd fdz`cjdr ac avbkc m|drcjbi `dj`c di da jmivrma fd

    dfbjbi)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    31/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ 324

    Ac etijbi Jadcr omrrc da vdpvm zdadjjbmicfm cjvtcakdivd di da jmivrma fddfbjbi)

    Ac etijbi Jm| jm|bc da vdpvm cjvtcakdivd zdadjjbmicfm di da jmivrma fddfbjbi! di da |mrvc|c|dadz)

    Ac etijbi Jtv jmrvc (omrrc" da vdpvm cjvtcakdivd zdadjjbmicfm di da jmivrmafd dfbjbi am jm|bc di da |mrvc|c|dadz)

    Ac etijbi \czvd bizdrvc da vdpvm std jmivbdid cjvtcakdivd da |mrvc|c|dadz! dida jmivrma fd dfbjbi c |crvbr fda |tivm fd bizdrjbi)

    Ac etijbi HdvZda movbdid acz |mzbjbmidz fda |rbkdr jcrjvdr zdadjjbmicfm fda |rbkdr jcrjvdr im zdadjjbmicfm di da jmivrma fd dfbjbi)

    Ac etijbi ZdvZda |drkbvd zdadjjbmicr ti rcihm fd jcrcjvdrdz di da jmivrma fddfbjbi! zbkbacr c jmkm am `cjdkmz jmi da rcvi m jmi da vdjacfm)

    Tvbabwcjbi fda |mrvc|c|dadz

    Da |mrvc|c|dadz fd Xbifmxz |drkbvd vrcizedrbr fcvmz fd ticz c|abjcjbmidz c mvrcz)

    Ktj`cz c|abjcjbmidz std kcidgci vdpvm bijatdi ti kdi fd Dfbjbi jmi aczrfdidz Jmrvcr! Jm|bcr \dhcr) Jtcifm da tztcrbm zdadjjbmic vdpvm dgdjtvcJmrvcrm Jm|bcr! ac c|abjcjbi vrcizebdrd amz fcvmz zdadjjbmicfmz di da fmjtkdivmca |mrvc|c|dadz jtcifm dgdjtvc ac mrfdi \dhcr! ac c|abjcjbi vrcizebdrd amz fcvmzfda |mrvc|c|dadz ca fmjtkdivm) Amz fcvmz zdhtbri di da |mrvc|c|dadz `czvc std zddgdjtvd ac mrfdi fd Jmrvcrm Jm|bcritduckdivd)

    Amz fcvmz di da |mrvc|c|dadz dzvi di ti emrkcvm |crvbjtacr! jmkm |tdfd zdrvdpvm! kc|c fd obvz m kdvccrj`bum! divrd mvrmz) Dzvmz emrkcvmz zmi bfdivbebjcfmz|mr jmizvcivdz7

    JE]VDPV7 Tic jcfdic fd jcrcjvdrdz CIZB vdrkbicfc di < std jmivbdid tirdvmrim fd jcrrm ti zcavm fd aidc ca ebica fd jcfc aidc)

    JE]OBVKC\7 Ti kc|c fd obvz) Ti kc|c fd obvz rd|rdzdivc tic bkchdi fbhb+vca jmk|advc fda fbotgm) Fd|difbdifm fd std ac bkchdi zdc kmimjrmkc m fdjmamr zd tvbabwc tim m kz obvz |crc jcfc |pda)

    JE]KDVCEBAD\BJV7 Tic bkchdi fd kdvccrj`bum) Ti kdvccrj`bum htcrfcbiemrkcjbi fd ac bkchdi jmkm tic zdrbd fd rdhbzvrmz std zd jmrrdz|mifdi fb+rdjvckdivd jmi aackcfcz c ac HFB (_djvcihad! Daab|zd!FrcxVdpv! dvj)") Di dz+vd jczm! da emrkcvm tvbabwcfm im dz dpcjvckdivd bhtca std ti kdvccrj`bum! kz

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    32/62

    325 UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    obdi dz ti kdvccrj`bum std jmivbdid cahtic biemrkcjbi cfbjbmica zdhi ticdzvrtjvtrc fd vb|m KDVCEBAD\BJV)

    \crc divdifdr acz etijbmidz kbdkorm fd JXif rdacvbucz ca |mrvc|c|dadz uc+kmz c dp|midr cahtimz jmijd|vmz etifckdivcadz (|crc kz fdvcaadz! otzjcr di acctfc |mr JXif jab|omcrf etijvbmiz") Da |mrvc|c|dadz dz dzdijbcakdivd tickcvrbw fd otwmidz fd jmrrdm! tim |mr jcfc emrkcvm! am std |mzbobabvc |mfdr movd+idr amz fcvmz di fbedrdivdz emrkcvmz) Jcfc otwi kcivbdid7

    Da bfdivbebjcfmr fda emrkcvm fd fcvmz) Da `cifad fd ti mogdvm hamoca fd kdkmrbc std jmivdihc amz fcvmz c |czcr) Ti

    mogdvm hamoca |tdfd zdr jmk|crvbfm |mr fmz m kz c|abjcjbmidz) Da `cifad fd ac udivcic std zbvt amz fcvmz di da |mrvc|c|dadz)

    Tic c|abjcjbi kcivbdid fmz ibudadz fd jmivrma jmi rdz|djvm ca |mrvc|c|dadz7c" corbr da |mrvc|c|dadz! std fdod zdr civdrbmr c ac rdjt|drcjbi fd amz fcvmz fd a! o" movdidr ac |rm|bdfcf fda |mrvc|c|dadz! std fdod zdr civdrbmr c ac jmamjcjbifd amz fcvmz di a) Zdhi dzvm! tic c|abjcjbi im |tdfd corbr da |mrvc|c|dadz zb cdzv cobdrvm! im |tdfd zdr |rm|bdvcrbc fda |mrvc|c|dadz c kdimz std am `cccobdrvm) Dzvm dz! da |mrvc|c|dadz dz cobdrvm! jmizbhtbdivdkdivd |mzdfm |mr ticudivcic dz|djebjc fdivrm fd ac c|abjcjbi! im |mr ac c|abjcjbi) \mr am vcivm! ticudw std tic c|abjcjbi `c zbvtcfm amz fcvmz di da |mrvc|c|dadz m amz `c rdjt|drcfmfda |mrvc|c|dadz! fdod jdrrcram)

    Mvrm jmijd|vm |crc jmk|rdifdr acz etijbmidz kbdkorm fd JXif rdedrbfcz ca|mrvc|c|dadz dz da fd ubzmr fda |mrvc|c|dadz) _djbod dzvd imkord jtcastbdr |rm+hrckc ca std zd imvbebjc fd amz jckobmz di da jmivdibfm fda |mrvc|c|dadz) \tdfdietijbmicr ca kbzkm vbdk|m jtcastbdr ikdrm fd ubzmrdz) Xbifmxz c ztkbibzvrcti ubzmr! |drm vckobi |mfdkmz dzjrbobr itdzvrm |rm|bm |rmhrckc ubzmr fda |mrvc+|c|dadz) \crc std ti |rmhrckc emrkd |crvd fd ac jcfdic fd ubzmrdz fda |mrvc|c|d+adz vbdid std aackcr c ac etijbi ZdvJab|omcrfUbdxdr> |crc rdvbrcr ti |rmhrckc

    fd ac jcfdic! `c std aackcr c ac etijbi J`cihdJab|omcrfJ`cbi)

    Fbzdm fda dfbvmr

    Zbhtbdifm jmi da fbzdm fd ac c|abjcjbi Dfbvmr! jrdd amz kdizCrj`bum! Dfbjbi!M|jbmidz Ctfc) \crc dzvd |acivdckbdivm bibjbca! zt|mihc std da kdi Crj`bumdzv emrkcfm zam |mr ac mrfdi Zcabr! da kdi Dfbjbi |mr acz rfdidzFdz`cjdr!Jmrvcr! Jm|bcr \dhcr! da kdi M|jbmidz |mr amz ztokdiz Vdpvm Jmamrdz dakdi Ctfc |mr ac mrfdi Cjdrjc fd) Acz |rm|bdfcfdz |crc jcfc tim fd amz dad+

    kdivmz fd amz kdiz zd rdztkdi di ac vcoac zbhtbdivd) \crc acz |rm|bdfcfdz std imebhtrci di ac vcoac zd cztkd da ucamr |mr mkbzbi) Di dzvc vcoac zd `ci fbz|tdzvmjcfc kdi jmi ztz dadkdivmz! fbzvbihtboadz |mr da ibuda fd zcihrcfm)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    33/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ 328

    Mogdvm \rm|bdfcf Ucamr

    Crj`bum Jc|vbmi

    \m|+t|

    %Crj`bum

    ZZcabr BFJc|vbmi

    BF]C\\]DPBV%Zcabr

    Dfbjbi Jc|vbmi\m|+t|

    %DfbjbiZ

    Fdz`cjdr BFJc|vbmiHrcdf

    BF]DFBV]TIFM%Fdz`cjdrQvJvra.WZ

    Jmrvcr BF

    Jc|vbmiHrcdf

    BF]DFBV]JTV

    Jmr%vcrQvJvra.PZJm|bcr BF

    Jc|vbmiHrcdf

    BF]DFBV]JM\R%Jm|bcrQvJvra.JZ

    \dhcr BFJc|vbmiHrcdf

    BF]DFBV]\CZVD%\dhcrQvJvra.UZ

    M|jbmidz Jc|vbmi\m|+t|

    %M|jbmidzZ

    Vdpvm Jc|vbmi\m|+t|

    %VdpvmZ

    Etdivdz Jc|vbmi\m|+t|

    %EtdivdzZ

    Jmtrbdr Idx BFJc|vbmi

    BF]M\]VDP]ET]JMT_BD_IDXJmtrbdr Idx

    Crbca BFJc|vbmi

    BF]M\]VDP]ET]C_BCACrbca

    \mr mkbzbi BF

    Jc|vbmi

    BF]M\]VDP]ET]\M_MKBZBMI

    \mr mkbzbiVckcm Jc|vbmi

    \m|+t|%VckcmZ

    35 BFJc|vbmi

    BF]M\]VDP]VCK]3535

    ?6 BFJc|vbmi

    BF]M\]VDP]VCK]?6?6

    \mr mkbzbi BFJc|vbmi

    BF]M\]VDP]VCK]\M_MKBZBMI\mr mkbzbi

    Jmamrdz Jc|vbmi\m|+t|

    %JmamrdzZ

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    34/62

    320 UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    Emifm Jc|vbmi\m|+t|

    %EmifmZ

    Oacijm BFJc|vbmi

    BF]M\]JM]EMIFM]OACIJM%Oacijm

    Udrfd BFJc|vbmi

    BF]M\]JM]EMIFM]UD_FD%Udrfd

    Cwta BFJc|vbmi

    BF]M\]JM]EMIFM]CWTA%Cwta

    Vdpvm Jc|vbmi\m|+t|

    %VdpvmZ

    Idhrm BFJc|vbmi

    BF]M\]JM]VDPVM]IDH_M%Idhrm

    Udrfd BFJc|vbmi

    BF]M\]JM]VDPVM]UD_FD%Udrfd

    Cwta BFJc|vbmi

    BF]M\]JM]VDPVM]CWTA%Cwta

    Ctfc Jc|vbmi\m|+t|@da|

    %CtfcZZ

    Cjdrjc fd BFJc|vbmi

    BFF]C\\]COMTV%Cjdrjc fda Dfbvmr)))

    Cahticz rfdidz jmkm Jmrvcrm Jm|bcrdz|djbebjci c ac fdrdj`c fd zt vvtamda jmigtivm fd vdjacz std `c std |tazcr |crc dgdjtvcr ac mrfdi fbrdjvckdivd zbirdjtrrbr ca kdi> |mr dzm! dzvcz vdjacz rdjbodi da imkord fd cjdadrcfmrdz! fd amzstd `coacrdkmz kz cfdacivd) Ebicabwcfm da fbzdm! da rdztavcfm zdr zbkbacr ca zb+htbdivd7

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    35/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ 322

    Ccfbr tic etijbi kbdkorm |crc ti dadkdivm fd ti kdi

    Tic udw fbzdcfc ac bivdrecw! dzjrbobkmz da jfbhm jmrrdz|mifbdivd |crc jcfc ticfd acz rfdidz std im dzvi m|drcvbucz (Zcabr Cjdrjc fd! c dzvi m|drcvbucz")Dzvckmz di da dfbvmr fd fbamhmz ubztcabwcifm da rdjtrzm kdi BF_]KCBIE_C+KD (kdi fd ac udivcic |rbijb|ca") \crc ccfbr da jmivrmacfmr (etijbi kbdkorm"|crc tic fdvdrkbicfc mrfdi! `chc jabj di da kdi fdz|tz di ac mrfdi) C jmivb+itcjbi! biumstd c JaczzXbwcrf7

    Zdadjjbmid di ac abzvc Jaczz ickd ac jaczd JDfbvmrUbdx jmi da ebi fd fdjacrcrdi daac acz etijbmidz kbdkorm czmjbcfcz jmi jcfc tic fd acz rfdidz fd amzkdiz) \mr dgdk|am! dk|djdkmz |mr ac mrfdi Fdz`cjdr) Jtcifm da tztcrbm `chcjabj di ac mrfdiFdz`cjdr! Xbifmxz diuc kdizcgdz jmkm XK]KDITZDADJV XK]JMKKCIF) \crc kcib|tacr XK]JMKKCIF! zdadjjbmid di ac abzvcMogdjv BFz da mogdvm BF]DFBV]TIFM! di ac abzvc Kdzzchdz da kdizcgd JMK+

    KCIF) C jmivbitcjbi! `chc jabj di da omvi Cff Etijvbmi ccfc ac etijbikbdkorm MiDfbvFdz`cjdr)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    36/62

    ?zd ubztcabwc da dzstdkc zbhtbdivd7

    umbf JDfbvmrUbdx77MiDfbvFdz`cjdr"~

    -- Ccfc cst zt jfbhm{

    Cjvbucr amz dadkdivmz fd ti kdi

    Jtcifm da tztcrbm fd tic c|abjcjbi fdz|abdhc ti kdi! jcfc dadkdivm fda kdiidjdzbvc zcodr zb zd fdod ubztcabwcr cjvbucfm m fdzcjvbucfm) Tic mrfdi fd ti kdi|tdfd dgdjtvcrzd! zam zb dzv cjvbuc) Stbdrd dzvm fdjbr std tic fd acz m|drcjbmidzstd fdod rdcabwcr ac c|abjcjbi dz cjvbucr fdzcjvbucr amz dadkdivmz fd ti kdi!di etijbi fd std vdihci m im cjvbubfcf di da bizvcivd di da std da kdi dz fdz+|adhcfm) Jcfc udw std zd fdz|abdhc ti kdi! Xbifmxz diuc amz kdizcgdz fd bib+jbcjbi XK]BIBVKDIT XK]BIBVKDIT\M\T\ std di acz KEJ zmikcib|tacfmz c vrcuz fd ac kcjrm MI]T\FCVD]JMKKCIF]TB) \mr am vcivm!ti jmivrmacfmr |crc T\FCVD]JMKKCIF]TBzdr biumjcfm gtzvm di da kmkdi+vm di da std `c std cjvtcabwcr da dzvcfm fd acz rfdidz fda kdi) TvbabwcrdkmzJaczzXbwcrf|crc dpckbicr amz mogdvmz fd ac bivdrecw fda tztcrbm jc|cjdz fd hdid+rcr rfdidz (dadkdivmz fd ti kdi! cjdadrcfmrdz! omvmidz fd tic ocrrc fd

    `drrckbdivcz" ccfbr tic divrcfc di da kc|c fd kdizcgdz! |mr jcfc jmivrmacfmr)

    \mr dgdk|am! |crc fdvdrkbicr zb ac mrfdiFdz`cjdrfdod cjvbucrzd! `c std bi+umjcr c ac etijbi kbdkorm JciTifm fd ac jaczd JDfbv) Ac aackcfc c JciTifmfdutdaud ti ucamr fbzvbivm fd < zb da jmivrma fd dfbjbi |tdfd rdcabwcr ac cjjbi fdfdz`cjdr! di jtm jczm ac mrfdi fdod cjvbucrzd> di jczm jmivrcrbm! fdod |drkcid+jdr bicjvbuc (vvtamFdz`cjdrdi hrbz c|chcfm")

    Zdhi am dp|tdzvm! corc JaczzXbwcrf ccfc ac etijbi MiT|fcvdDfbvFdz+`cjdr ubijtacfc ca mogdvm BF]DFBV]TIFM! |crc kcib|tacr da kdizcgd T\FC+VD]JMKKCIF]TB) Fdz|tz! dzjrboc da jfbhm std zd bifbjc c jmivbitcjbi)\rdubckdivd fdod ubijtacr da jmivrmaBFJ]DFBV3 jmi tic ucrbcoad fd vb|m JDfbv(jcvdhmrc Jmivrma" fdimkbicfc k]JmivrmaDfbv3)

    umbf JDfbvmrUbdx77MiT|fcvdDfbvFdz`cjdrJJkfTB' |JkfTB"~

    |JkfTB+9Dicoad k]JmivrmaDfbv3)JciTifm" ">{

    Jtcifm da kdi zd fdz|abdhc! da zbzvdkc otzjc aackc c jcfc jmivrmacfmr fd

    T\FCVD]JMKKCIF]TB! da jtca! c zt udw! aackc c acz etijbmidz kbdkorm fdJJkfTB vca jmkm Dicoad! ZdvJ`djn! Zdv_cfbm! ZdvVdpv Jmivbitd_mtvbih! di+vmijdz ubztcabwc cfdjtcfckdivd jcfc dadkdivm fda kdi)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    37/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ?

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    38/62

    ?

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    39/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ?

    {

    Tic udw zdadjjbmicfm ti oamstd fd vdpvm! |mfdkmz jm|bcram m jmrvcram) Daoamstd rdztavcivd fd dzvc m|drcjbi zd cakcjdicr di da |mrvc|c|dadz) Ac udivcgcfd tvbabwcr da |mrvc|c|dadz dz std zvd |drkbvd bivdrjckobcr biemrkcjbi divrd aczc|abjcjbmidz std am tvbabjdi) Dzvm dz! |mfdkmz aaducr oamstdz fd biemrkcjbi fd

    tic c|abjcjbi c mvrc tvbabwcifm acz rfdidz fd Jmrvcr! Jm|bcr \dhcr)

    Jtcifm da tztcrbm `chc jabj zmord ac mrfdi Jmrvcr! zd dgdjtvcr da |rmjdfb+kbdivm czmjbcfm jmi daac) \mr am vcivm! tvbabwcifm JaczzXbwcrf! ccfc ac etijbiMiDfbvJmrvcrczmjbcfc jmi da mogdvm BF]DFBV]JTV! |crc kcib|tacr da kdizcgdJMKKCIF) Fdz|tz! dzjrboc da jfbhm std zd bifbjc c jmivbitcjbi7

    umbf JDfbvmrUbdx77MiDfbvJmrvcr"~-- Omrrcr ac zdadjjbi jm|bcrac di da |mrvc|c|dadz

    k]JmivrmaDfbv3)Jtv">{

    Ac mrfdi Jm|bcrzd fbedrdijbc fd ac mrfdi Jmrvcrdi std im omrrc da vdpvm zd+adjjbmicfm) Tvbabwcifm JaczzXbwcrf! ccfc ac etijbi MiDfbvJm|bcrczmjbcfc jmida mogdvmBF]DFBV]JM\R! |crc kcib|tacr da kdizcgd JMKKCIF) Fdz|tz! dz+jrboc da jfbhm std zd bifbjc c jmivbitcjbi7

    umbf JDfbvmrUbdx77MiDfbvJm|bcr"~

    -- Jm|bcr ac zdadjjbi di da |mrvc|c|dadzk]JmivrmaDfbv3)Jm|">

    {

    Jtcifm da tztcrbm `chc jabj zmord ac mrfdi \dhcr zd dgdjtvcr ac etijbiMiDfbv\dhcr! ac jtca! zdhi zd ktdzvrc c jmivbitcjbi! jmamjcr da vdpvm fda |mr+vc|c|dadz zmord da vdpvm zdadjjbmicfm m di zt fdedjvm! c |crvbr fd ac |mzbjbi fda|tivm fd bizdrjbi) Tvbabwcifm JaczzXbwcrf! ccfc ac etijbi MiDfbv\dhcrczm+jbcfc jmi da mogdvm BF]DFBV \CZVD|crc kcib|tacr da kdizcgd JMKKCIF)Fdz|tz dzjrboc da jfbhm std zd bifbjc c jmivbitcjbi7

    umbf JDfbvmrUbdx77MiDfbv\dhcr"~

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    40/62

    ?Hdv\crdivErckd"+9_djcajAcmtv">_dzbwd\crdivVmEbv">

    {

    Htcrfd ac c|abjcjbi! jmk|adac dgdjvdac) Dzjrboc vdpvm |rtdod acz m|drc+jbmidz fdFdz`cjdr! Jmrvcr! Jm|bcr \dhcr)

    C jmivbitcjbi uckmz c fdzcrrmaacr da jfbhm |crc da kdi M|jbmidz) Dzvdkdi ubztcabwc fmz ztokdiz! Vdpvm Jmamrdz) C zt udw! Vdpvm ubztcabwc mvrmzfmz ztokdiz! Etdivdz Vckcm! Jmamrdz mvrmz fmz! Emifm Vdpvm)

    Tic etdivd dz ti vb|m fd advrc) Da ikdrm fd etdivdz fbz|miboadz di UbztcaJ.. ucrc di etijbi fd ac jmiebhtrcjbi fd zt zbzvdkc Xbifmxz) Di itdzvrm dfb+vmr zam uckmz c bijatbr vrdz vb|mz7 Jmtrbdr Idx!Crbca da vb|m fd advrc dzvcoadjb+fm |mr mkbzbi)

    Di tic jcgc fd vdpvm zmackdivd |tdfd tvbabwcrzd tic etdivd! am jtca zbhibebjcstd jtcifm zd kmfbebstd da vb|m fd advrc |crc ac jcgc fd vdpvm! vmfm da vdpvm jck+obcr c dzd vb|m fd advrc) \mr am vcivm! |crc jckobcr ac etdivd cjvbuc di da dfbvmr fdvdpvmz! zbk|adkdivd vdidkmz std kmfbebjcr ac etdivd cjvtca fd ac jcgc fd vdpvm(udc Dzvcoadjdr tic etdivd |crc ti jmivrma di da Jc|vtam 6")

    Acz jcrcjvdrzvbjcz fda vb|m fd advrc fd ac jcgc fd vdpvm acz uckmz c cakcjdicrdi tic ucrbcoad kbdkorm fd ac ubzvc fdimkbicfc k]ae! ac etdivd c tvbabwcr |mr acjcgc fd vdpvm dzvcr fdebibfc |mr mvrc ucrbcoad kbdkorm k]Etdivd) \mr am vcivm!

    fdebic dzvcz ucrbcoadz di ac fdjacrcjbi fd JDfbvmrUbdx! amjcabwcfc di da ebj`drmdfbvmrubdx)`! jmkm zd bifbjc c jmivbitcjbi7

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    41/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ? -- jcrcjvdrzvbjcz fda vb|m fd advrcJEmiv k]Etdivd> -- etdivd c tvbabwcr |mr BFJ]DFBV3

    -- ))){>

    \crc dzvcoadjdr da vb|m fd advrc bibjbca! jrdd tic etdivd jmi acz jcrcjvdrzvbjczfdzdcfcz! k]Etdivd! `chc std k]Etdivd zdc ac etdivd bibjbca! etdivd |mr mkb+zbi) \crc daam! ccfc di ac etijbi MiBibvbcaT|fcvd da zbhtbdivd jfbhm7

    umbf JDfbvmrUbdx77MiBibvbcaT|fcvd"~JEmrkUbdx77MiBibvbcaT|fcvd">Hdv\crdivErckd"+9_djcajAcmtv">_dzbwd\crdivVmEbv">-- Dzvcoadjdr da vb|m fd advrc |mr mkbzbi)-- Ti ucamr < zbhibebjc tvbabwcr amz ucamrdz |mr mkbzbi |crc amz |crkd+

    vrmzkdkzdv %k]ae! k]Etdivd)JrdcvdEmivBifbrdjv %k]ae ">k]JmivrmaDfbv3)ZdvEmiv %k]Etdivd ">

    {

    Acz rfdidz fda kdi Etdivdz rdcabwci vmfcz da kbzkm |rmjdzm7 dzvcoadjdr acetdivd dz|djbebjcfc |mr zt vvtam (|rm|bdfcf Jc|vbmi") Dzvm dubvc vdidr std dzjrbobrtic etijbi |crc jcfc vb|m fd advrc) \mr am vcivm! da |czm zbhtbdivd dz udr jkm cj+jdfdkmz c acz |rm|bdfcfdz fd tic mrfdi)

    Zdadjjbmicr tic mrfdi fd ti kdi

    \crc cjjdfdr c acz |rm|bdfcfdz fd ti dadkdivm fd ti kdi! `c std jmimjdr da

    bfdivbebjcfmr fda kdi) @cjbdifm ti |dstdm ciabzbz! jtcifm da tztcrbm `cjd jabjdi tic mrfdi fda kdi Etdivdz! Xbifmxz diuc c ac udivcic czmjbcfc jmi dakdi (di itdzvrm jczm c ac udivcic kcrjm" ti kdizcgd XK]KDITZDADJVzdhtbfm fd ti kdizcgd XK]JMKKCIF) Zdhi ubkmz di da jc|vtam ?!XK]KDITZDADJV zdr kcidgcfm |mr ac udivcic kcrjm m |mr zt udivcic |c+frd! |mr mkbzbi) Di jckobm! XK]JMKKCIF im dz |rmjdzcfm fbrdjvckdivd|mr ac udivcic kcrjm! zbim std zvc ad fc ac |rbkdrc m|mrvtibfcf c zt udivcic `bgc!ac ubzvc)

    Di hdidrca! da kdizcgd XK]JMKKCIF zd diuc jtcifm da tztcrbm zdadj+jbmic tic mrfdi fd ti kdi! jtcifm ti jmivrma diuc ti kdizcgd fd imvbebjcjbic zt udivcic fd |cfrd! m jtcifm ti cjdadrcfmr (jmkobicjbi fd vdjacz fd cjjdzm c

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    42/62

    Ecavci |hbicz)))

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    43/62

    ??? UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    FDZC__MAAM FD TI _DAMG FDZ\D_VCFM_

    Dzvd dgdk|am ad dizdcr! divrd mvrcz jmzcz! c tvbabwcr ti vdk|mrbwcfmr! c jckobcrftrcivd ac dgdjtjbi tic mrfdi fd ti kdi! c ccfbr m c omrrcr ftrcivd ac dgdjt+jbi rfdidz di ti kdi! c ubztcabwcr kdiz dkdrhdivdz c htcrfcr c rdjt|drcrfda rdhbzvrm fd Xbifmxz ac jmiebhtrcjbi bibjbca |crc tic c|abjcjbi)

    Uckmz c fbzdcr ti rdamg fdz|drvcfmr fbhbvca jmkm da std zd ktdzvrc di ac eb+htrc zbhtbdivd) Da rdamg vbdid tic |civcaac |crc ubztcabwcr ac `mrc tic jcgc fd vdp+vm fdimkbicfc Fdz|drvcfmr fmifd da tztcrbm |tdfd dzjrbobr ac `mrc c ac stdstbdrd zdr cubzcfm) \crc cjvbucr m fdzcjvbucr da fdz|drvcfmr! da tztcrbm fbz|mid fdti kdi fdimkbicfm vckobiFdz|drvcfmr)

    Ac |civcaac |crc ubztcabwcr ac `mrc zdr tic jcgc fd vdpvm fd zam adjvtrc jmi daebi fd std da tztcrbm im |tdfc kmfbebjcrac) \crc std ac `mrc ucrd zdhtifm c zd+htifm! da jmivdibfm fd ac jcgc fd vdpvm c ac std `dkmz `dj`m rdedrdijbc! std rd+|rdzdivc ac `mrc! fdod cjvtcabwcrzd c bivdrucamz bhtcadz m biedrbmrdz c ti zdhtifm)\crc rdcabwcr dzvm! acz KEJ |rm|mrjbmici tic etijbi MiVbkdr kbdkorm fd acjaczd JXif)

    @c ti zdhtifm kdi! fdimkbicfm \cz! std |drkbvbr ca tztcrbm ccfbr |c+

    zdz ca |rm|bm kdi! |crc fdz|tz! `cjbdifm jabj zmord jtcastbdrc fd daamz! movdidrdi tic vdrjdrc jcgc! emrkcfc |mr mvrc jcgc fd vdpvm! ac `mrc cjvtca di dzd |cz)

    Vdk|mrbwcfmr

    Ti vdk|mrbwcfmr dz tic rtvbic bivdric fd Ubztca J.. std imvbebjc |drbfbjckdivdc tic c|abjcjbi jtcifm `c vrcizjtrrbfm ti |drmfm |rdfdvdrkbicfm fd vbdk|m)Jcfc udw std vrcizjtrrd da |drmfm fd vbdk|m dz|djbebjcfm! Xbifmxz jmamjc tikdizcgd XK]VBKD_ di ac jmac fd kdizcgdz fd ac c|abjcjbi) Da |rmjdzckbdivmfd dzvd kdizcgd `cjd std zd dgdjtvd ac etijbi MiVbkdr! athcr fmifd zd dz|djbeb+jcri acz cjjbmidz c dgdjtvcr |drbfbjckdivd) Amz kdizcgdz XK]VBKD_! bhtca

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    44/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ??:

    std amz XK]\CBIV! zmi fd ocgc |rbmrbfcf) Dzvm dz! zb ac jmac fd tic c|abjcjbijmivbdid zam kdizcgdz XK]\CBIV XK]VBKD_! mvrc c|abjcjbi dz|drc|crc fdz|cj`cr kdizcgdz fbzvbivmz! Xbifmxz |czcr da jmivrma c ac mvrc c|abjcjbi)

    \crc bizvcacr ti vdk|mrbwcfmr di tic c|abjcjbi Xbifmxz! `c std aackcr c acetijbi kbdkorm ZdvVbkdr fd ac jaczd JXif) zvc vbdid ti |crkdvrm std dz|d+jbebjc da bivdrucam fd vbdk|m di kbabzdhtifmz std vbdid std vrcizjtrrbr |crc std acetijbi MiVbkdr zd dgdjtvd bifd|difbdivdkdivd fda tztcrbm) Da ucamr fda |cr+kdvrm |tdfd mzjbacr divrd < 6)?26)258)?24 kzdhz) (4< fcz c|rmpbkcfckdivd")

    Da zbzvdkc hdidrc ti vbj fd rdamg jcfc 46!2?4 kzdhz) (30!? vbjz fd rdamg |mr zd+htifm" |mr daam! ctistd da ucamr fda |crkdvrm fd ZdvVbkdr zd dp|rdzd di kbabzd+

    htifmz! ac |rdjbzbi im |tdfd zdr kcmr fd 46!2?4 kbazbkcz fd zdhtifm) Dzvmzbhibebjc std |crc |drmfmz biedrbmrdz c 44 kbabzdhtifmz! jcfc vbj fd rdamg hdidrcti kdizcgd XK]VBKD_)

    Jtcifm tic c|abjcjbi vdrkbid jmi da vdk|mrbwcfmr! dz otdim aackcr c ac eti+jbi NbaaVbkdr kbdkorm fd JXif |crc fdvdidr amz kdizcgdz XK]VBKD_) C|crvbr fd Xbifmxz 24! da ikdrm fd vdk|mrbwcfmrdz dz vdrbjckdivd babkbvcfm) Immozvcivd! jtcifm ZdvVbkdr im |tdfd bizvcacr ti vdk|mrbwcfmr! fdutdaud

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    45/62

    ??6 UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    Ccfc tic dvbstdvc dijbkc fda omrfd fd ac jcgc fd vdpvm) Czhidad da vvtam@mrc7! cgtzvd da vckcm zbvdac jmkm zd bifbjc di ac ebhtrc zbhtbdivd7

    C jmivbitcjbi ccfbkmz tic jcgc fd vdpvm std uc c fcr athcr ca fdz|drvcfmr)@chc ti jabj di da jmivrma jcgc fd vdpvm fd ac jcgc fd `drrckbdivcz jmastdac dida athcr std zd bifbjc di ac ebhtrc) Fdz|tz! cgtzvd zt vckcm czhidad acz zb+htbdivdz |rm|bdfcfdz7

    BF7 BFJ]FDZ\D_VCFM_ Bfdivbebjcfmr fda jmivrma)

    Ccfc tic dvbstdvc dijbkc fda omrfd fd dzvc jcgc fd vdpvm! czhidad da vvtamFdz|drvcfmr7! cgtzvd zt vckcm zbvdac jmkm bifbjc ac ebhtrc)

    \crc cjvbucr m fdzcjvbucr da fdz|drvcfmr uckmz c ccfbr ti kdi) Corc ac udi+vcic fd fbzdm fd kdiz fbzdd da kdiFdz|drvcfmrjmi acz rfdidzFdz|drvc+fmr Im Zcabr7

    Jc|vbmi7 Fdz|drvcfmr Im BF7 BF]FDZ\D_VCFM_]ZB]IMJc|vbmi7 Zcabr BF7 BF]C\\]DPBV

    Jmizdrud da kdi Ctfc jmi ac mrfdi Cjdrjc fd _damg |drzmicabjd ac jcgc

    fd fbamhmCjdrjc fd))) Dz tic otdic bfdc htcrfcr c`mrc da vrcocgm rdcabwcfm) Dgd+jtvd ac mrfdi Zcud Caa) C jmivbitcjbi corc JaczzXbwcrf|crc ubijtacr acz ucrbc+oadz kbdkorm k]Jvra@mrc k]JvraFdz|drvcfmr! ckocz fd vb|m JDfbv (jcvdhmrcJmivrma"! c acz jcgcz fd vdpvm BFJ]@M_C d BFJ]FDZ\D_VCFM_! rdz|djvbuc+kdivd) Da zbhtbdivd |czm dz tibr da jfbhm c amz jmivrmadz)

    Tibr da jfbhm c amz jmivrmadz c ac udivcic

    Di |rbkdr athcr uckmz c dfbvcr ac etijbi MiBibvbcaT|fcvd |crc std! cfdkz fd

    cfc|vcr da vckcm fd ac udivcic kcrjm ca jmivmrim fd ac ubzvc! dzvcoadwjc acz etdi+vdz fd acz jcgcz BFJ]@M_C d BFJ]FDZ\D_VCFM_) Civdz! fdebibrdkmz acz uc+

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    46/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ??4

    rbcoadz k]Etdivd@mrc k]EtdivdFdz|drvcfmr|crc jrdcr acz etdivdz c acz stdimz `dkmz rdedrbfm7

    jaczz J_damgUbdx 7 |toabj JEmrkUbdx~-- )))|toabj7

    --~~CEP]FCVCJ_damgUbdx"ditk ~ BFF ; BFF]_DAMG]EM_K {>JDfbv k]Jvra@mrc>JDfbv k]JvraFdz|drvcfmr>--{{CEP]FCVCJEmiv k]EtdivdFdz|drvcfmr> -- etdivd |crc BFJ]FDZ\D_VCFM_JEmiv k]Etdivd@mrc> -- etdivd |crc BFJ]@M_C

    -- ))){>

    Zdhi am dp|tdzvm! ccfc c ac etijbi MiBibvbcaT|fcvd kbdkorm fd ac jaczdJ_damgUbdx! da jfbhm std zd ktdzvrc c jmivbitcjbi7

    umbf J_damgUbdx77MiBibvbcaT|fcvd"~JEmrkUbdx77MiBibvbcaT|fcvd">-- Cgtzvcr da vckcm fd ac udivcic kcrjm ca vckcm fd ac ubzvc

    Hdv\crdivErckd"+9_djcajAcmtv">_dzbwd\crdivVmEbv">

    -- Etdivd |crc BFJ]FDZ\D_VCFM_AMHEMIV ae>kdkzdv %ae! ae)ae@dbh`v ; TibfcfdzAmhbjcz36">k]EtdivdFdz|drvcfmr)JrdcvdEmivBifbrdjv %ae ">k]JvraFdz|drvcfmr)ZdvEmiv %k]EtdivdFdz|drvcfmr ">

    -- Etdivd |crc BFJ]@M_C

    ae)ae@dbh`v ; TibfcfdzAmhbjcz?6">k]Etdivd@mrc)JrdcvdEmivBifbrdjv %ae ">k]Jvra@mrc)ZdvEmiv %k]Etdivd@mrc ">

    {

    Mozdrud std |crc jcajtacr ac cavtrc fd ac etdivd di tibfcfdz ahbjcz biumjc+kmz c ac etijbi TibfcfdzAmhbjcz ubzvc civdrbmrkdivd di dzvd kbzkm jc|vtam)

    Di zdhtifm athcr rdfdebibrdkmz ac etijbi \rdJrdcvdXbifmx |crc rdfdebibrda dzvbam fd ac udivcic kcrjm jmi ac bivdijbi fd std da tztcrbm im fbz|mihc fd ti

    omvi fd kcpbkbwcr vck|mjm fd ti omrfd std |drkbvc kmfbebjcr da vckcm fd acudivcic) \crc kz fdvcaadz! otzstd \rdJrdcvdXbifmx civdrbmrkdivd di dzvd

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    47/62

    ??5 UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    kbzkm jc|vtam) Ca vrcvcrzd fd ac udivcic kcrjm! ac etijbi \rdJrdcvdXbifmxvbdid std zdr tic etijbi kbdkorm fd 3c jaczd JKcbiErckd7

    OMMA JKcbiErckd77\rdJrdcvdXbifmxJ_DCVDZV_TJV% jz"~be #JErckdXif77\rdJrdcvdXbifmxjz" "rdvtri ECAZD>

    jz)zvad %; yEXZ]CFFVMVBVAD q XZ]KCPBKBWDOMP q XZ]V@BJNE_CKD">rdvtri V_TD>

    {

    Da zbhtbdivd |czm dz tibr da jfbhm jmrrdz|mifbdivd c jcfc tim fd amz jmivrm+adz |crc ti jmrrdjvm etijbmickbdivm fda rdamg)

    Dk|djdkmz |mr da fdz|drvcfmr) Itdzvrc bivdijbi dz std da tztcrbm dzjrboc didzvc jcgc ac `mrc c ac std stbdrd zdr cubzcfm) \mr am vcivm! amz jcrcjvdrdz std a|tdfc dzjrbobr amz rdzvrbihbrdkmz c amz fhbvmz

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    48/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ??8

    umbf JKbDfbv77MiJ`crTBIV iJ`cr! TBIV i_d|Jiv! TBIV iEachz"~be iJ`cr1(

    {

    Dzvc etijbi rdjbod jmkm crhtkdivm da jfbhm fd ac vdjac |tazcfc am cakc+jdic di da |crkdvrm iJ`cr) C jmivbitcjbi udrbebjc da jcrjvdr> zb dz tim fd amzim |drkbvbfmz! dkbvd ti |bvbfm am fdz`dj`c> dzvm dz! im am |czc c ac etijbi Mi+J`cr bk|adkdivcfc |mr mkbzbi! fd ac jaczd JDfbv)

    Ti jmivrma fd dfbjbi vbdid tic |rm|bdfcfItkodrstd zd |tdfd |midr ftrci+vd da fbzdm c vrtd> |mr mkbzbi dz ecazd) Jtcifm dzvc |rm|bdfcf dz vrtd! da jmivrmafd dfbjbi zam cfkbvd ikdrmz) Imzmvrmz im `dkmz tvbabwcfm dzvc |rm|bdfcf |mr+std idjdzbvckmz cfkbvbr vckobi da jcrjvdr fmz |tivmz)

    Da |czm zbhtbdivd dz |rdzdivcr ac `mrc c vrcuz fda jmivrma BFJ]@M_C) \crcubztcabwcr ac `mrc Ubztca J.. vbdid ac etijbi HdvJtrrdivVbkd kbdkorm fd acjaczd JVbkd! std fdutdaud ti mogdvm JVbkd jmi ac edj`c ac `mrc)

    Divmijdz! |crc |rdzdivcr ac `mrc oczvcrc jmi dzjrbobr7

    -- Movdidr ubztcabwcr ac `mrcJVbkd @mrc ; JVbkd77HdvJtrrdivVbkd">JZvrbih @mrcVpv ; @mrc)Emrkcv/$@7$K7$Z/">ZdvFahBvdkVdpv BFJ]@M_C! @mrcVpv ">

    Ac jtdzvbi dz std zb dzvcz zdivdijbcz zd dgdjtvci tic zmac udw! ac `mrc zdr ac|rdzdivcfc bibjbcakdivd im ucrbcr) Dz |rdjbzm! |mr am vcivm! dgdjtvcracz c bivdr+ucamz fd ti zdhtifm m kdimz) \crc jmizdhtbr dzvm! `chc std dzvcz zdivdijbcz zdci|crvd fda jtdr|m fd ac etijbi MiVbkdr kbdkorm fd J_damgUbdx! ac ubzvc)

    \crc bizvcacr ti vdk|mrbwcfmr biumstd c ac etijbi ZdvVbkdr di da bizvcivd dida std zd bibjbd ac c|abjcjbi> dzvm dz! fdzfd ac etijbi MiBibvbcaT|fcvd)

    umbf J_damgUbdx77MiBibvbcaT|fcvd"~-- )))-- Dzvcoadjdr ti vdk|mrbwcfmrZdvVbkdr BF]3ZDHTIFM! 3

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    49/62

    ??0 UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    XK]VBKD_) Da ucamr dz|djbebjcfm zd rdfmifdc c ti ucamr divdrm fd vbjz fd rdamg(|mr dgdk|am! 3

    ZdvFahBvdkVdpv BFJ]@M_C! @mrcVpv ">

    JEmrkUbdx77MiVbkdriBFDudiv">{

    Ac etijbi MiVbkdr dz biumjcfc jcfc udw std vrcizjtrrd da vbdk|m dz|djbeb+jcfm di da vdk|mrbwcfmr BF]3ZDHTIFM) Jtcifm zd dzvcoadjdi ucrbmz vdk|mrb+wcfmrdz! MiVbkdr |tdfd zcodr fd st vdk|mrbwcfmr zd vrcvc |mrstd da |crkdvrmiBFDudivjmivbdid daBF fda vdk|mrbwcfmr)

    Jtcifm zd dgdjtvci ucrbcz c|abjcjbmidz zbktavidckdivd |tdfd fcrzd da jczm!|mr ac |rbmrbfcf std vbdidi czbhicfc bk|ajbvckdivd amz kdizcgdz! fd std im zdc|mzboad std ti kdizcgd XK]VBKD_ zd fdz|cj`d di zt kmkdivm) Jtcifm mjt+rrd dzvm! Xbifmxz im zbhtd |mibdifm kdizcgdz XK]VBKD_ di ac jmac fd acc|abjcjbi> |mfrckmz fdjbr std amz rdftjd c tim (udc da c|crvcfm Vdk|mrbwcfmrfdzjrbvm civdrbmrkdivd di dzvd kbzkm jc|vtam")

    Jmivbitcifm jmi ac c|abjcjbi! zt|mihckmz c`mrc std da tztcrbm dzjrbod tic`mrc di da fdz|drvcfmr) \crc std zd |rmftwjci |bvbfmz fd cubzm jtcifm zd cajcijddzc `mrc! vbdidi std fcrzd fmz jmifbjbmidz7 tic! std da fdz|drvcfmr dzv cjvbucfm!

    mvrc! std ac `mrc cjvtca zdc bhtca m kcmr! m zbk|adkdivd kcmr! std ac `mrc dz+|djbebjcfc di da fdz|drvcfmr) Ac jmifbjbi kcmr dz |crc std da |bvbfm jmivbid`czvc std da tztcrbm fdzcjvbud da fdz|drvcfmr m obdi `czvc std |czdi 4 kbitvmz)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    50/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ??2

    Imvc7 \tdzvm std jmk|crcrdkmz jcfdicz fd jcrcjvdrdz! tvbabjd mj`m jcrcjvdrdz|crc dzjrbobr ac `mrc fda fdz|drvcfmr) Zd fdgc jmkm dgdrjbjbm |crc da adjvmr ctvmkc+vbwcr dzvd |rmjdzm |crc amz emrkcvmz fd `mrc std im vdihci mj`m jcrcjvdrdz)

    \crc zcodr da dzvcfm fda fdz|drvcfmr! fdebic tic ucrbcoad k]oFdz|drvcfmrZbkbdkorm fd ac jaczd J_damgUbdx fd vb|m omma czhidad ti ucamr bibjbca ecazd) Tiucamr ecazd bifbjc fdz|drvcfmr fdzcjvbucfm ti ucamr vrtd bifbjc fdz|drvcfmr cjvb+ucfm) \crc cjjdfdr fd tic emrkc ejba c ac `mrc cjvtca c ac `mrc fda fdz|drvcfmr!corc JaczzXbwcrf ubijtad acz ucrbcoadz kbdkorm k]z@mrc k]zFdz|drvcfmr!ckocz fd jcvdhmrc Ucamr fd vb|m JZvrbih! c acz jcgcz fd vdpvm BFJ]@M_C d

    BFJ]FDZ\D_VCFM_! rdz|djvbuckdivd (ti jmivrma |tdfd vdidr ubijtacfc tic mkz ucrbcoadz fbedrdivdz") Cz kbzkm! bibjbd da fdz|drvcfmr ca ucamr

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    51/62

    ?:< UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    C jmivbitcjbi fd cjtdrfm jmi am dp|tdzvm! kmfbebstd ac etijbi MiVbkdrfd ac emrkc zbhtbdivd7

    umbf J_damgUbdx77MiVbkdrTBIV iBFDudiv"~-- Movdidr ubztcabwcr ac `mrcJVbkd @mrc ; JVbkd77HdvJtrrdivVbkd">JZvrbih @mrcVpv ; @mrc)Emrkcv/$@7$K7$Z/">ZdvFahBvdkVdpv BFJ]@M_C! @mrcVpv ">

    JEmrkUbdx77MiVbkdriBFDudiv">

    T|fcvdFcvc vrtd "> -- cjvtcabwcr acz ucrbcoadz-- Cjvbucr ac cacrkc zb |rmjdfdbe k]zFdz|drvcfmr 1 k]z@mrc %% k]oFdz|drvcfmrZb "~-- Ac cacrkc ztdic ftrcivd 4 kbitvmzJVbkdZ|ci Fbedrdijbcbe k]zFdz|drvcfmr 9 @mrcVpv "~KdzzchdOdd|KO]MN">

    { {{

    Fdzcrrmaadkmz c`mrc da jfbhm |crc acz rfdidz fda kdi Fdz|drvcfmr) Ac mr+fdi Zcabrdzv bk|adkdivcfc |mr mkbzbi)

    Da vvtam fd ac mrfdiFdz|drvcfmr Im c bifbjc std da fdz|drvcfmr im dzv cj+vbucfm! am std bk|abjc std ac ucrbcoad k]oFdz|drvcfmrZb vdihc ti ucamr ecazd)Jtcifm da tztcrbm `chc jabj zmord dzvc mrfdi! da vvtam fd ac kbzkc fdodr jckobcr|crc bifbjcr Fdz|drvcfmr Zb! std stbdrd fdjbr std da fdz|drvcfmr dzv cjvbucfm! ac ucrbcoad k]oFdz|drvcfmrZb vmkcr da ucamr vrtd) Di fdebibvbuc! ti jabj di dzvc

    mrfdi cjvbuc m fdzcjvbuc da fdz|drvcfmr)

    Jckobcr di dgdjtjbi tic mrfdi fd ti kdi

    Ac mrfdi |crc cjvbucr fdzcjvbucr da fdz|drvcfmr std cjcockmz fd jmkdivcr! vbdidstd zdr jckobcfc ftrcivd ac dgdjtjbi fda |rmhrckc) \crc `cjdr dzvm! im vbdid kzstd czbhicr da vvtam fdzdcfm ca jmivrma fdimkbicfmBF]FDZ\D_VCFM_]ZB]IM)_djtdrfd std jtcifm da tztcrbm `cjd jabj di ti kdi! Xbifmxz diuc kdizcgdzfd bibjbcjbi jmkm XK]BIBVKDIT XK]BIBVKDIT\M\T\! civdz fd std

    da kdi zdc fdz|adhcfm) \crc kcib|tacr dzvmz kdizcgdz! da kc|c fd kdizcgdz tvb+abwc ac kcjrm MI]T\FCVD]JMKKCIF]TB)

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    52/62

    JC\VTAM 57 V_COCGCIFM JMI KDIZ ?:3

    \mr am vcivm! fdzfd da dfbvmr fd kdiz! `chc jabj di da kdi Fdz|drvcfmrfdz|tz di ac mrfdiFdz|drvcfmr Im) C jmivbitcjbi corc JaczzXbwcrf! zdadjjbm+id ac jaczd J_damgUbdx! da mogdvm BF]FDZ\D_VCFM_]ZB]IM! da kdizcgd T\+

    FCVD]JMKKCIF]TB ccfc ac etijbi7

    umbf J_damgUbdx77MiT|fcvdFdz|drvcfmrZbImJJkfTB' |JkfTB"~|JkfTB+9ZdvVdpvk]oFdz|drvcfmrZb =

    /%Fdz|drvcfmr Z/ 7/%Fdz|drvcfmr Im/">

    {

    Mozdrud std jtcifm da tztcrbm `chc jabj zmord ac mrfdi fd cjvbucr fdzcjvbucr

    da fdz|drvcfmr! da vvtam fd ac kbzkc jckobcr |crc bifbjcrFdz|drvcfmr Zzb ac uc+rbcoad k]oFdz|drvcfmrZb ucad vrtd! |czcifm zvc c ucadr ecazd! jckobcr |crcbifbjcrFdz|drvcfmr Im zb ac ucrbcoad k]oFdz|drvcfmrZb ucad ecazd! |czcifm zvcc ucadr vrtd)

    \crc jckobcr da ucamr fd ac ucrbcoad k]oFdz|drvcfmrZb! tvbabwcifm JaczzXb+wcrf! ccfc ac etijbi MiFdz|drvcfmrZbIm czmjbcfc jmi da mogdvmBF]FDZ\D_+VCFM_]ZB]IM |crc kcib|tacr da kdizcgd JMKKCIF! dzjrboc da jfbhm stdzd bifbjc c jmivbitcjbi7

    umbf J_damgUbdx77MiFdz|drvcfmrZbIm"~k]oFdz|drvcfmrZb ; #k]oFdz|drvcfmrZb>

    {

    Dzvm vckobi |mfrc `codrzd `dj`m fbzdcifm da kdi jmi acz rfdidz |mzb+oadz!Fdz|drvcfmr ZFdz|drvcfmr Im! dzvcifm tic fd daacz (ac im cjvbuc" im ub+zboad) \mr dgdk|am! zt|mihc std `c jmizvrtbfm dzvd kdi czbhicifm c ztzdadkdivmz acz zbhtbdivdz |rm|bdfcfdz (amz ucamrdz |crc acz |rm|bdfcfdz std im zddz|djbebjci zmi amz fcfmz |mr mkbzbi"7

    Jc|vbmi Fdz|drvcfmr Im Fdz|drvcfmr Z

    BF BF]FDZ\D_VCFM_]IM BF]FDZ\D_VCFM_]ZB

    |mzbjbi < 3

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    53/62

    ?:? UBZTCA J..) C\ABJCJBMIDZ \C_C XBI:?

    Zt|mihckmz vckobi std ckocz rfdidz dzvi ubijtacfcz c acz etijbmidzMiFdz|drvcfmrZbIm MiT|fcvdFdz|drvcfmrZbIm)

    Da |rbkdr kdi fdz|adhcoad fd ac ocrrc fd kdiz vbdid ifbjd

    Ocrrc fd kdiz ifbjdz> kdiz Dadkdivmz ifbjdz> dadkdivmzFdz|drvcfmr

    OMMAHdv\rmebadZvrbih( A\JVZV_a|zwZdjjbi!A\JVZV_a|zwDivrcfc!A\JVZV_a|zwUcamr\rdfdvdrkbicfm ; ITAA">

    \mr dgdk|am! da zbhtbdivd jfbhm rdjt|drc ac jmiebhtrcjbi rdhbzvrcfc di dac|crvcfm civdrbmr7

    J_damgUbdx77J_damgUbdx" 7 JEmrkUbdxJ_damgUbdx77BFF"~-- )))-- Fdz|drvcfmr zb-imk]oFdz|drvcfmrZb ; ecazd>k]zFdz|drvcfmr ; CepHdvC||"+9Hdv\rmebadZvrbih

    /Zdvvbihz/! /Cacrkc/! /

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    57/62

    Ecavci |hbicz)))

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    58/62

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    59/62

    \ C _ V D

    Vjibjcz cuciwcfcz Ebj`drmz fd fcvmz Ocrrcz fd jmivrma Hrebjmz Da rcvi C|abjcjbmidz KFB Kc|cz fd obvz

    Bk|rdzbi |rdzdivcjbi |rdabkbicr

    Cjjdzm c tic oczd fd fcvmz

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    60/62

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    61/62

    \ C _ V D

    C|ifbjdz

    Jfbhmz fd jcrcjvdrdz ifbjd caecovbjm

  • 7/23/2019 Ceballos: Visual C++. Aplicaciones para Win32, 2Ed

    62/62