home *** CD-ROM | disk | FTP | other *** search
/ For Beginners & Professional Hackers / cd.iso / docum / win_prg.doc / w_prg2-3.doc < prev    next >
Encoding:
Text File  |  1992-09-16  |  472.1 KB  |  9,847 lines

  1.                                    Äú½áó½Ñ¡¿Ñ                                  
  2.        Windows 3.0/pg/2#3                                         = 1 =
  3.  
  4.        â½áóá 8.  ü½«¬¿ π»αáó½Ñ¡¿∩.....................................6
  5.        8.1  ùΓ« Γá¬«Ñ í½«¬ π»αáó½Ñ¡¿∩?................................6
  6.        8.2  æ«ºñá¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.................................6
  7.        8.2.1  Ä»αÑñѽѡ¿Ñ ¬½áßßá í½«¬á π»αáó½Ñ¡¿∩.....................7
  8.        8.2.2  éδí«α Γ¿»á í½«¬á π»αáó½Ñ¡¿∩.............................8
  9.        8.2.3  Ä»αÑñѽѡ¿Ñ α«ñ¿Γѽ∞߬«ú« «¬¡á..........................9
  10.        8.2.4  éδí«α ¿ñÑ¡Γ¿Σ¿¬áΓ«αá í½«¬á π»αáó½Ñ¡¿∩..................10
  11.        8.3  êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩..........................10
  12.        8.3.1  Å«½πτÑ¡¿Ñ óó«ñá «Γ »«½∞º«óáΓѽ∩........................10
  13.        8.3.2  ÅÑαÑñáτá π»αáó½∩εΘ¿σ ß««íΘÑ¡¿⌐.........................11
  14.        8.3.3 èᬠßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ ñ«ßΓπ»¡δ¼ ¿½¿...............11
  15.        8.3.4  ÅÑαѼÑΘÑ¡¿Ñ ¿ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá í½«¬á π»αáó½Ñ¡¿∩.......12
  16.        8.3.5  ÉáºαπΦÑ¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩............................12
  17.        8.4  æ«ºñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ¡Ñ¬«Γ«αδσ ¡á¿í«½ÑÑ τáßΓ«........12
  18.        8.4.1  êß»«½∞º«óá¡¿Ñ ¬½áó¿Φ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩..............13
  19.        8.4.2  êß»«½∞º«óá¡¿Ñ ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩............18
  20.        8.4.3  êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐ »ÑαÑτ¡Ñ⌐.........................18
  21.        8.4.4  è«¼í¿¡¿α«óá¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩.......................30
  22.        8.4.5  ÉÑñá¬Γ¿απѼδÑ í½«¬¿....................................32
  23.        8.4.6  æΓ᫬¿ »α«¬απΓ¬¿.......................................35
  24.        8.5  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl.....................38
  25.        8.5.1  ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½................39
  26.        8.5.2  ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ............................39
  27.        8.5.3  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ CreateWindow........................39
  28.        8.5.4  î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.......................41
  29.        8.5.5  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SETFOCUS.......................41
  30.        8.5.6  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SIZE...........................41
  31.        8.5.7  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á................................42
  32.        8.6  çᬽετÑ¡¿Ñ...............................................42
  33.        â½áóá 9. Åá¡Ñ½∞ ñ¿á½«úá.......................................44
  34.        9.1  ùΓ« ΓᬫѠ»á¡Ñ½∞ ñ¿á½«úá.................................44
  35.        9.1.1  î«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá...............................45
  36.        9.1.2  ìѼ«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá.............................45
  37.        9.2  êß»«½∞º«óá¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá.............................46
  38.        9.2.1  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿½«úá.........................47
  39.        9.2.2  êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½∩σ ñ¿á½«úá......48
  40.        9.3  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ FileOpen.....................48
  41.        9.3.1  ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½................50
  42.        9.3.2  æ«ºñá¡¿Ñ Φáí½«¡á »á¡Ñ½¿ ñ¿á½«úá Open...................50
  43.        9.3.3  ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ............................51
  44.        9.3.4  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_OPEN..........................52
  45.        9.3.5  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ OpenDlg...............................53
  46.        9.3.6  ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.....................56
  47.        9.3.7  ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá........................58
  48.        9.3.8  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á................................58
  49.        9.4  çᬽετÑ¡¿Ñ...............................................58
  50.        â½áóá 10. éó«ñ ¿ óδó«ñ ¿º Σá⌐½«ó..............................60
  51.        10.1 Åαáó¿½á αáí«Γδ ß Σá⌐½á¼¿ ó ßαÑñÑ Windows.................60
  52.        10.2  æ«ºñá¡¿Ñ Σá⌐½«ó.........................................62
  53.        10.3  ÄΓ¬αδΓ¿Ñ ßπΘÑßΓóπεΘ¿σ Σá⌐½«ó............................63
  54.        10.4  ùΓÑ¡¿Ñ ¿ ºá»¿ß∞ Σá⌐½«ó..................................64
  55.        10.5  Å«óΓ«α¡«Ñ «Γ¬αδΓ¿Ñ Σá⌐½«ó...............................64
  56.        10.6  çá»α«ß ¿¼Ñ¡¿ Σá⌐½á......................................65
  57.  
  58.        Windows 3.0/pg/2#3                                         = 2 =
  59.  
  60.        10.7  Åα«óÑα¬á ß«ßΓ«∩¡¿∩ Σá⌐½á................................65
  61.        10.8  Åα«ßΓ«⌐ αÑñá¬Γ«α Σá⌐½«ó EditFile........................65
  62.        10.8.1  ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γ ó« ó¬½ετáѼδ⌐ Σá⌐½................66
  63.        10.8.2  ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá SaveAs......................66
  64.        10.8.3  ä«íáó½Ñ¡¿Ñ «»ÑαáΓ«α«ó include.........................67
  65.        10.8.4 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ............................67
  66.        10.8.5  çá¼Ñ¡á Σαáú¼Ñ¡Γá WM_COMMAND...........................68
  67.        10.8.6 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_QUERYENDSESSION ¿
  68.         WM_CLOSE.....................................................71
  69.        10.8.7  î«ñ¿Σ¿¬áµ¿∩ Σπ¡¬µ¿¿ ñ¿á½«úá OpenDlg...................71
  70.        10.8.8  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg..................72
  71.        10.8.9 ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.....................74
  72.        10.8.10  ¥¬ß»«αΓ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg....................77
  73.        10.8.11 ÉáßΦ¿αÑ¡¿Ñ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿................77
  74.        10.8.12  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................78
  75.        10.9  çᬽετÑ¡¿Ñ..............................................78
  76.        11.1  ùΓ« ΓᬫѠαáßΓα«óá∩ ¬áαΓá...............................80
  77.        11.2  æ«ºñá¡¿Ñ αáßΓα«óδσ ¬áαΓ.................................80
  78.        11.2.1  æ«ºñá¡¿Ñ ¿ ºáúαπº¬á Σá⌐½«ó αáßΓα«óδσ ¬áαΓ.............80
  79.        11.2.2  æ«ºñá¡¿Ñ ¿ ºá»«½¡Ñ¡¿Ñ »πßΓδσ αáßΓα«óδσ ¬áαΓ...........82
  80.        11.2.3  æ«ºñá¡¿Ñ αáßΓα«óδσ ¬áαΓ ß »«¼«Θ∞ε Σ¿¬ß¿α«óá¡¡δσ.......83
  81.        11.2.4  É¿ß«óá¡¿Ñ µóÑΓ¡δσ αáßΓα«óδσ ¬áαΓ......................87
  82.        11.3  ÄΓ«íαáªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ ¡á φ¬αá¡Ñ....................88
  83.        11.3.1. ê¡ñ¿µ¿α«óá¡¿Ñ  αáßΓα«ó«⌐  ¬áαΓδ  ß  »«¼«Θ∞ε
  84.         Σπ¡¬µ¿¿......................................................89
  85.        11.3.2  ÉáßΓ∩ªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ.............................91
  86.        11.3.3  êß»«½∞º«óá¡¿Ñ αáßΓα«óδσ ¬áαΓ ó ¬¿ßΓ¿ Φáí½«¡á..........92
  87.        11.3.4  ê¡ñ¿µ¿α«óá¡¿Ñ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δσ αáßΓα«óδσ
  88.         ¬áαΓ.........................................................94
  89.        11.3.5 êß»«½∞º«óá¡¿Ñ  αáßΓα«ó«⌐  ¬áαΓδ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γá....95
  90.        11.4  ä«íáó½Ñ¡¿Ñ µóÑΓá ¬ ¼«¡«σα«¼¡«⌐ αáßΓα«ó«⌐ ¬áαΓÑ..........95
  91.        11.5  ôñá½Ñ¡¿Ñ αáßΓα«óδσ ¬áαΓ.................................96
  92.        11.6  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Bitmap......................96
  93.        11.6.1  î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á.........................98
  94.        11.6.2  ä«íáó½Ñ¡¿Ñ αÑßπαß«ó αáßΓα«ó«⌐ ¬áαΓδ...................98
  95.        11.6.3  ä«íáó½Ñ¡¿Ñ ¼Ñ¡ε Bitmap, Pattern ¿ Mode................98
  96.        11.6.4  ä«íáó½Ñ¡¿Ñ ú½«íá½∞¡δσ ¿ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ..........99
  97.        11.6.5  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_CREATE.......................100
  98.        11.6.6  î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_DESTROY.....................104
  99.        11.6.7  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_LBUTTONUP, WM_MOUSEMOVE.....104
  100.        11.6.8  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_RBUTTONUP....................105
  101.        11.6.9  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_ERASEBKGND...................105
  102.        11.6.10  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_COMMAND.....................106
  103.        11.6.11  î«ñ¿Σ¿¬áµ¿∩ make-Σá⌐½á..............................108
  104.        11.6.12  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.............................108
  105.        11.7  çᬽετÑ¡¿Ñ.............................................108
  106.        â½áóá 12. éδó«ñ ¡á »ÑτáΓ∞....................................110
  107.        12.1  ÅÑτáΓ∞ ó ßαÑñÑ Windows.................................110
  108.        12.1.1  êß»«½∞º«óá¡¿Ñ π»αáó½∩εΘ¿σ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐........111
  109.        12.2  Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « ΓѬπΘѼ »α¿¡ΓÑαÑ................111
  110.        12.3  ÅÑτáΓ∞ ßΓ᫬¿ ΓѬßΓá...................................113
  111.        12.4  ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ.................................114
  112.        12.5  Äíαáí«Γ¬á «Φ¿í«¬ ó« óαѼ∩ »ÑτáΓ¿.......................116
  113.  
  114.        Windows 3.0/pg/2#3                                         = 3 =
  115.  
  116.        12.6  ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿.................................118
  117.        12.6.1  Ä»αÑñѽѡ¿Ñ »á¡Ñ½¿ ñ¿á½«úá...........................118
  118.        12.6.2  Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿á½«úá...................119
  119.        12.6.3  öπ¡¬µ¿∩ »αÑαδóá¡¿∩ »ÑτáΓ¿............................119
  120.        12.6.4  éδ»«½¡Ñ¡¿Ñ »αÑαδóáѼδσ «»Ñαᵿ⌐ »ÑτáΓ¿...............121
  121.        12.6.5  ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿ ß »«¼«Θ∞ε ABORTDOC............122
  122.        12.7  ÅÑτáΓ∞ »«αµ¿∩¼¿........................................122
  123.        12.8  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ PrntFile...................124
  124.        12.8.1  ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá  AbortDlg..................124
  125.        12.8.2  ä«íáó½Ñ¡¿Ñ »ÑαѼѡ¡δσ ñ½∩ »ÑτáΓ¿.....................125
  126.        12.8.3  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_PRINT.......................125
  127.        12.8.4  æ«ºñá¡¿Ñ Σπ¡¬µ¿⌐ AbortDlg ¿ AbortProc................128
  128.        12.8.5  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ GetPrinterDC......................129
  129.        12.8.6  ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ AbortDlg ¿ AbortProc.........130
  130.        12.6.7  è«¼»¿½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................130
  131.        12.9  çᬽετÑ¡¿Ñ.............................................130
  132.        â½áóá 13. æ¿ßΓѼ¡δ⌐ íπΣÑα....................................132
  133.        13.1  êß»«½∞º«óá¡¿Ñ ß¿ßΓѼ¡«ú« íπΣÑαá........................132
  134.        13.1.1  è«»¿α«óá¡¿Ñ ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα.................133
  135.        13.1.2  éßΓáó¬á ΓѬßΓá ¿º ß¿ßΓѼ¡«ú« íπΣÑαá..................136
  136.        13.1.3  éßΓáó¬á αáßΓα«óδσ ¬áαΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá..........138
  137.        13.1.4  ê¡ßΓαπ¼Ñ¡Γá½∞¡á∩ »α«úαá¼¼á Clipboard.................140
  138.        13.2 êß»«½∞º«óá¡¿Ñ  ß»Ñµ¿á½∞¡δσ  ó«º¼«ª¡«ßΓÑ⌐   ß¿ßΓѼ¡«ú«...141
  139.        13.2.1  ÅαÑñßΓáó½Ñ¡¿Ñ ñá¡¡δσ »« ºá»α«ßπ......................141
  140.        13.2.2  ÅαÑñßΓáó½Ñ¡¿Ñ Σ«α¼áΓ«ó »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ αáí«Γδ......142
  141.        13.2.3  ÉÑú¿ßΓαᵿ∩ ß«íßΓóÑ¡¡δσ Σ«α¼áΓ«ó.....................142
  142.        13.2.4  ô»αáó½Ñ¡¿Ñ  «Γ«íαáªÑ¡¿Ñ¼  ñá¡¡δσ Clipboard...........142
  143.        13.3. Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ClipText...................145
  144.        13.3.1  ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ..........................146
  145.        13.3.2  î«ñ¿Σ¿¬áµ¿∩ »α«úαá¼¼δ ¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá.......146
  146.        13.3.3  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_INITMENU.....................147
  147.        13.3.4  î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.....................147
  148.        13.3.5  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_PAINT........................150
  149.        13.3.6  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ OutOfMemory.......................150
  150.        13.3.7  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................150
  151.        13.4  çᬽετÑ¡¿Ñ.............................................151
  152.        ùÇæÆ£ 3. üÄïàà æïÄåì¢à ÉÇçäàï¢...............................152
  153.        â½áóá 14. ƒºδ¬ æ ¿ ∩ºδ¬ ÇßßѼí½Ñαá...........................153
  154.        14.1  éδí«α ¼«ñѽ¿ »á¼∩Γ¿....................................153
  155.        14.2  êß»«½∞º«óá¡¿Ñ NULL.....................................154
  156.        14.3 êß»«½∞º«óá¡¿Ñ   áαúπ¼Ñ¡Γ«ó   ¬«¼á¡ñ¡«⌐    ßΓ᫬¿    ¿...155
  157.        14.4  ìỿßá¡¿Ñ φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐.......................156
  158.        14.4.1  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá................156
  159.        14.4.2  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ WinMain.............................157
  160.        14.5  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ............158
  161.        14.5.1  êß»«½∞º«óá¡¿Ñ í¿í½¿«ΓѬ æ............................158
  162.        14.5.2  éδñѽѡ¿Ñ »á¼∩Γ¿.....................................159
  163.        14.5.3  Éáí«Γá ß« ßΓα«¬á¼¿...................................159
  164.        14.5.4  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ Σá⌐½«ó«ú« óó«ñá/óδó«ñá.........161
  165.        14.5.5  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ óó«ñá ¿ óδó«ñá ¡á ¬«¡ß«½∞......162
  166.        14.5.6  êß»«½∞º«óá¡¿Ñ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐....................162
  167.        14.5.7  êß»«½∞º«óá¡¿Ñ óδτ¿ß½Ñ¡¿⌐ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐..........162
  168.        14.5.8  çá»π߬ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼....................163
  169.  
  170.        Windows 3.0/pg/2#3                                         = 4 =
  171.  
  172.        14.5.9  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿¡ΓÑαΣÑ⌐ßá ß MS-DOS ¿ BIOS.....163
  173.        14.5.10  ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ........................164
  174.        14.6  ìỿßá¡¿Ñ »α«úαá¼¼ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá.................165
  175.        14.6.1  êº¼Ñ¡Ñ¡¿Ñ ß«ßΓ«∩¡¿∩ Σ½áúá »αÑαδóá¡¿∩.................167
  176.        14.6.2  èᬠ¡á áßßѼí½ÑαÑ ¡á»¿ßáΓ∞ φ¬ß»«αΓ¿απѼπε Σπ¡¬µ¿ε....168
  177.        14.6.3  êß»«½∞º«óá¡¿Ñ αÑú¿ßΓαá ES............................169
  178.        14.7  çᬽετÑ¡¿Ñ.............................................170
  179.        â½áóá 15.  ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε................................172
  180.        15.1  êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿...................................172
  181.        15.1.1  êß»«½∞º«óá¡¿Ñ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
  182.         »á¼∩Γ¿......................................................173
  183.        15.1.2 êß»«½∞º«óá¡¿Ñ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
  184.         »á¼∩Γ¿......................................................174
  185.        15.1.3  Éáí«Γá ß« ßíαáßδóáѼ«⌐ »á¼∩Γ∞ε.......................176
  186.        15.2  êß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ«ó................................178
  187.        15.2.1  êß»«½∞º«óá¡¿Ñ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó......................179
  188.        15.2.2  æÑú¼Ñ¡Γδ ñá¡¡δσ......................................180
  189.        15.3  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Memory.....................180
  190.        15.3.1  Éáºñѽѡ¿Ñ ¿ßσ«ñ¡«ú« æ-Σá⌐½á.........................181
  191.        15.3.2  î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á........................182
  192.        15.3.3  ä«íáó½Ñ¡¿Ñ ¡«óδσ «»αÑñѽѡ¿⌐ ßÑú¼Ñ¡Γ«ó...............182
  193.        15.3.4  î«ñ¿Σ¿¬áµ¿∩ Σá⌐½á make...............................183
  194.        15.3.5  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................184
  195.        15.4  çᬽετÑ¡¿Ñ.............................................184
  196.  
  197.        Windows 3.0/pg/2#3                                         = 5 =
  198.  
  199.        ----------------------------------------------------------------
  200.  
  201.  
  202.                         ÅÉÄâÉÇîîÇ-æÅÉÇéÄùìêè ÅÄ
  203.  
  204.                            Microsoft Windows
  205.  
  206.                               éÑαß¿∩ 3.0
  207.  
  208.           Éπ¬«ó«ñßΓó« »« »α«úαἿα«óá¡¿ε ó ßαÑñÑ Microsoft Windows
  209.  
  210.  
  211.  
  212.                                  2#3
  213.  
  214.  
  215.                             î«ß¬óá 1991 ú.
  216.        ----------------------------------------------------------------
  217.  
  218.        Windows 3.0/pg/2#3                                         = 6 =
  219.  
  220.                                                                                
  221.                          â½áóá 8.  ü½«¬¿ π»αáó½Ñ¡¿∩.
  222.        ----------------------------------------------------------------
  223.              ü½«¬¿ π»αáó½Ñ¡¿∩ - φΓ« ß»Ñµ¿á½∞¡δÑ «¬¡á,  »«ºó«½∩εΘ¿Ñ «ßπ-
  224.         ΘÑßΓó¿Γ∞ »α«ßΓ«Ñ óºá¿¼«ñÑ⌐ßΓó¿Ñ ß »«½∞º«óáΓѽѼ.
  225.  
  226.              é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡δ ß½ÑñπεΘ¿Ñ αáºñѽδ:
  227.  
  228.              - ùΓ« Γá¬«Ñ í½«¬ π»αáó½Ñ¡¿∩.
  229.  
  230.              - æ«ºñá¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.
  231.  
  232.              - êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ.
  233.  
  234.              é ñá¡¡«⌐ ú½áóÑ ΓᬪѠ«»¿ßá¡« ß«ºñá¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
  235.         EditCntl, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩.
  236.                                                                                
  237.                        8.1  ùΓ« Γá¬«Ñ í½«¬ π»αáó½Ñ¡¿∩?
  238.  
  239.              ü½«¬¿ π»αáó½Ñ¡¿∩  -  φΓ«  óßΓα«Ñ¡¡δÑ ñ«τÑα¡¿Ñ «¬¡á,  τÑαѺ
  240.         ¬«Γ«αδÑ «ßπΘÑßΓó½∩ÑΓß∩ ß»Ñµ¿á½∞¡δ⌐ ó¿ñ óó«ñá/óδó«ñá.  ìá»α¿¼Ñα,
  241.         Ñß½¿  ¡Ñ«íσ«ñ¿¼«  »«½πτ¿Γ∞  «Γ  »«½∞º«óáΓѽ∩  ¿¼∩ Σá⌐½á,  ¼«ª¡«
  242.         ß«ºñáΓ∞ ¿ ¿¡ñ¿µ¿α«óáΓ∞ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ñ½∩  Γ«ú«,
  243.         τΓ«íδ ñáΓ∞ ó«º¼«ª¡«ßΓ∞ »«½∞º«óáΓѽε óóÑßΓ¿ ¿¼∩.  "ÉÑñá¬Γ¿απѼδ⌐
  244.         í½«¬ π»αáó½Ñ¡¿∩" - φΓ« »αÑñ«»αÑñѽ¡¡«Ñ ñ«τÑα¡ÑÑ  «¬¡«,  ¬«Γ«α«Ñ
  245.         »«½πτáÑΓ ¿ «Γ«íαáªáÑΓ óó«ñ ß ¬½áó¿áΓπαδ.
  246.  
  247.              ü½«¬ π»αáó½Ñ¡¿∩  »«ñ«í¡«  ½εí«¼π  ñαπú«¼π «¬¡π »α¿¡áñ½Ñª¿Γ
  248.         ¬½áßß𠫬¡á.  è½áßß «¬¡á «»αÑñѽ∩ÑΓ áΓα¿íπΓδ »« π¼«½τá¡¿ε í½«¬á
  249.         π»αáó½Ñ¡¿∩ ¿,  τΓ« í«½ÑÑ ó᪡«,  Σπ¡¬µ¿ε «¬¡á í½«¬á π»αáó½Ñ¡¿∩.
  250.         öπ¡¬µ¿∩ «¬¡á «»αÑñѽ∩ÑΓ,  ¬á¬ í½«¬ π»αáó½Ñ¡¿∩ íπñÑΓ óδú½∩ñÑΓ∞ ¿
  251.         ¬á¬  «¡  íπñÑΓ «ΓóÑτáΓ∞ ¡á ñÑ⌐ßΓó¿∩ »«½∞º«óáΓѽ∩.  öπ¡¬µ¿¿ «¬«¡
  252.         ñ½∩ í½«¬«ó π»αáó½Ñ¡¿∩ ∩ó½∩εΓß∩ óßΓα«Ñ¡¡δ¼¿ ó Windows,  Γᬠ τΓ«
  253.         ñ½∩     ¿σ     ¿ß»«½∞º«óá¡¿∩    ¡Ñ    ΓαÑíπÑΓß∩    ß»Ñµ¿á½∞¡«ú«
  254.         »α«úαá¼¼¿α«óá¡¿∩.
  255.                                    8.2  æ«ºñá¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.             
  256.  
  257.              ä½∩ ß«ºñá¡¿∩  í½«¬á  π»αáó½Ñ¡¿∩  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞   ñóá
  258.         ¼ÑΓ«ñá:
  259.  
  260.              - é¡πΓα¿ »á¡Ñ½¿ ñ¿á½«úá.
  261.  
  262.              - é¡πΓα¿ «í½áßΓ¿ »«½∞º«óáΓѽ∩ ½εí«ú« ñαπú«ú« Γ¿»á «¬«¡.
  263.  
  264.              é ñá¡¡«⌐ ú½áóÑ «íßπªñáÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩
  265.         ó ßΓá¡ñáαΓ¡«¼  «¬¡Ñ.  é  ú½áóÑ  9,  "Åá¡Ñ½¿  ñ¿á½«úá",  «»¿ßá¡«
  266.         ß«ºñá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá.
  267.  
  268.              î«ª¡« ß«ºñáΓ∞    í½«¬    π»αáó½Ñ¡¿∩,   ¿ß»«½∞ºπ∩   Σπ¡¬µ¿ε
  269.         CreateWindow. é «Γ½¿τ¿Ñ «Γ «íδτ¡«ú« »α¿¼Ñ¡Ñ¡¿∩ φΓ«⌐ Σπ¡¬µ¿¿ ñ½∩
  270.         ß«ºñá¡¿∩ «¬¡á »α«úαá¼¼δ ¡Ñ«íσ«ñ¿¼« π¬áºáΓ∞:
  271.  
  272.              - ¬½áßß  í½«¬á π»αáó½Ñ¡¿∩;
  273.  
  274.        Windows 3.0/pg/2#3                                         = 7 =
  275.  
  276.  
  277.              - Γ¿» í½«¬á π»αáó½Ñ¡¿∩;
  278.  
  279.              - α«ñ¿Γѽ∞߬«Ñ «¬¡« í½«¬á π»αáó½Ñ¡¿∩;
  280.  
  281.              - ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩.
  282.  
  283.              öπ¡¬µ¿∩ CreateWindow     ó«ºóαáΘáÑΓ    ñÑß¬α¿»Γ«α    í½«¬á
  284.         π»αáó½Ñ¡¿∩,  ¬«Γ«αδ⌐  ¼«ªÑΓ   íδΓ∞   ¿ß»«½∞º«óá¡   »«ß½ÑñπεΘ¿¼¿
  285.         Σπ¡¬µ¿∩¼¿  ñ½∩  »ÑαѼÑΘÑ¡¿∩,  α¿ß«óá¡¿∩,  π¬áºá¡¿∩  αẼÑαá ¿½¿
  286.         αáºαπΦÑ¡¿∩ «¬¡á,  ¿½¿ ñ½∩ Γ«ú«,  τΓ«íδ ºáßΓáó¿Γ∞ «¬¡« óδ»«½¡¿Γ∞
  287.         ßó«¿ ºáñáτ¿.
  288.  
  289.              é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  »«¬áºá¡«,  ¬á¬  ß«ºñáΓ∞ í½«¬
  290.         π»αáó½Ñ¡¿∩ Γ¿»á á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá:
  291.  
  292.         hButtonWnd = CreateWindow(
  293.             "Button",                    /* ¬½áßß ¬½áó¿Φ¿ */
  294.             "OK",
  295.             BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
  296.             20,                          /* ¬««αñ¿¡áΓá »« «ß¿ X   */
  297.             40,                          /* ¬««αñ¿¡áΓá »« «ß¿ Y   */
  298.             30,                          /* Φ¿α¿¡á ó »¿¬ßѽ∩σ     */
  299.             12,                          /* óδß«Γá ó »¿¬ßѽ∩σ     */
  300.             hWnd,                        /* α«ñ¿Γѽ∞߬«Ñ «¬¡«     */
  301.             IDOK,                        /* ID í½«¬á π»αáó½Ñ¡¿∩   */
  302.             hInstance,                   /* ñÑß¬α¿»Γ«α φ¬ºÑ¼»½∩αá */
  303.             NULL);
  304.  
  305.              é ñá¡¡«¼    »α¿¼ÑαÑ   ß«ºñáÑΓß∩   í½«¬   π»αáó½Ñ¡¿∩   Γ¿»á
  306.         á½∞ΓÑα¡áΓ¿ó¡á∩  ¬½áó¿Φá,  ¬«Γ«αδ⌐   »α¿¡áñ½Ñª¿Γ   ¬½áßßπ   «¬¡á
  307.         "Button"  ¿  ¿¼ÑÑΓ Γ¿» BS_PUSHBUTTON.  ü½«¬ π»αáó½Ñ¡¿∩ ∩ó½∩ÑΓß∩
  308.         ñ«τÑα¡¿¼ «¬¡«¼ ¿ íπñÑΓ ó¿ñÑ¡ »α¿  »Ñαó«¼  ß«ºñá¡¿¿.  ìÑ«íσ«ñ¿¼«
  309.         ¿ß»«½∞º«óáΓ∞  Γ¿»  WS_CHILD;  «ñ¡á¬«,  Ñß½¿ ñ½∩ ¿¡ñ¿¬áµ¿¿ í½«¬á
  310.         π»αáó½Ñ¡¿∩ íπñÑΓ  ¿ß»«½∞º«óáΓ∞ß∩  Σπ¡¬µ¿∩  ShowWindow,  Γ«  Γ¿»
  311.         WS_VISIBLE  »α¿¼Ñ¡∩Γ∞  ¡Ñ ¡πª¡«.  öπ¡¬µ¿∩ CreateWindow »«¼ÑßΓ¿Γ
  312.         í½«¬ π»αáó½Ñ¡¿∩ ó Γ«τ¬π  ß  ¬««αñ¿¡áΓἿ  (20,  40)  ó  «í½áßΓ¿
  313.         »«½∞º«óáΓѽ∩  α«ñ¿Γѽ∞߬«ú«  «¬¡á.  àú«  Φ¿α¿¡á  ¿ óδß«Γá αáó¡δ
  314.         ß««ΓóÑΓßΓóÑ¡¡«   30   ¿   12   »¿¬ßѽÑ⌐.   É«ñ¿Γѽ∞߬«Ñ    «¬¡«
  315.         ¿ñÑ¡Γ¿Σ¿µ¿απÑΓß∩   ñÑß¬α¿»Γ«α«¼  hWnd.  è«¡ßΓá¡Γá  IDOK  -  φΓ«
  316.         ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩.
  317.  
  318.              ÄßΓáóΦá∩ß∩ τáßΓ∞  ñá¡¡«ú«  αáºñѽᠠ»«ßó∩Θѡᠠ «íßπªñÑ¡¿ε
  319.         Γ«ú«, ¬á¬   π¬áºáΓ∞  ¬½áßß  «¬¡á  í½«¬á  π»αáó½Ñ¡¿∩,  Ñú«  Γ¿»,
  320.         α«ñ¿Γѽ∞߬«Ñ «¬¡« ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α.
  321.                         8.2.1  Ä»αÑñѽѡ¿Ñ ¬½áßßá í½«¬á π»αáó½Ñ¡¿∩.            
  322.  
  323.              è½áßß «¬¡á í½«¬á π»αáó½Ñ¡¿∩,  ¿½¿ ¬½áßß  í½«¬á  π»αáó½Ñ¡¿∩
  324.         «»αÑñѽ∩ÑΓ Σπ¡¬µ¿ε ¿ áΓα¿íπΓδ í½«¬á π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπѼδÑ »«
  325.         π¼«½τá¡¿ε.  éδ  π¬áºδóáÑΓÑ  ¬½áßß  í½«¬á  π»αáó½Ñ¡¿∩  »α¿   Ñú«
  326.         ß«ºñá¡¿¿. ä½∩ φΓ«ú« ¿¼∩ ¬½áßßá (¡á»α¿¼Ñα, BUTTON") ó¬½ετáÑΓß∩ ó
  327.         ¬áτÑßΓóÑ »áαá¼ÑΓαá lpClassName Σπ¡¬µ¿¿ CreateWindow.
  328.  
  329.        Windows 3.0/pg/2#3                                         = 8 =
  330.  
  331.  
  332.              Windows »αÑñ«ßΓáó½∩ÑΓ ß½ÑñπεΘ¿Ñ óßΓα«Ñ¡¡δÑ  ¬½áßßδ  í½«¬«ó
  333.         π»αáó½Ñ¡¿∩:
  334.  
  335.              è½áßß                   Ä»¿ßá¡¿Ñ
  336.         ───────────────────────────────────────────────────────────────
  337.             BUTTON      ìÑí«½∞Φ¿Ñ »«¼ÑτÑ¡¡δÑ «¬¡á, ¬«Γ«αδÑ ¼«ªÑΓ óδí¿-
  338.                         αáΓ∞ »«½∞º«óáΓѽ∞, ºáñáóá∩ ó«º¼«ª¡δÑ «ΓóÑΓδ
  339.                         Γ¿»á ñá/¡ÑΓ ¿½¿ ó¬½/ó䬽.
  340.  
  341.             EDIT        Ä¬¡á, ó ¬«Γ«αδÑ »«½∞º«óáΓѽ∞ ¼«ªÑΓ ó«⌐Γ¿ ñ½∩
  342.                         óó«ñá ¿ αÑñá¬Γ¿α«óá¡¿∩ ΓѬßΓá.
  343.  
  344.             LISTBOX     Ä¬¡á, ¬«Γ«αδÑ ß«ñÑαªáΓ »ÑαÑτ¡¿ ¿¼Ñ¡, ¿º  ¬«Γ«-
  345.                         αδσ »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδíαáΓ∞ ¡πª¡δÑ ¿¼Ñ¡á.
  346.  
  347.             COMBOBOX    è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩, ß«ßΓ«∩Θ¿⌐ ¿º
  348.                         αÑñá¬Γ¿απѼ«ú« ¿½¿ ßΓáΓ¿τÑ߬«ú« í½«¬á π»αáó½Ñ-
  349.                         ¡¿∩ ¿ »«ñ¬½ετÑ¡¡«⌐ ¬ ¡¿¼ »á¡Ñ½¿ »ÑαÑτ¡∩. Å«½∞-
  350.                         º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ φ½Ñ¼Ñ¡Γδ ¿º »á¡Ñ½¿ »Ñ-
  351.                         αÑτ¡∩ ¿/¿½¿ óó«ñ¿Γ∞ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  352.                         π»αáó½Ñ¡¿∩.
  353.  
  354.             SCROLLBAR   Ä¬¡á, ¬«Γ«αδÑ óδú½∩ñ∩Γ ¿ αáí«ΓáεΓ ¬á¬ ßΓ᫬¿
  355.                         »α«¬απΓ¬¿.
  356.  
  357.             STATIC      ìÑí«½∞Φ¿Ñ «¬¡á, ß«ñÑαªáΘ¿Ñ ΓѬßΓ ¿½¿ »α«ßΓ«Ñ
  358.                         ¿º«íαáªÑ¡¿Ñ.  Ä¡¿  τáßΓ«  ¿ß»«½∞ºπεΓß∩ ñ½∩ Γ«ú«,
  359.                         τΓ«íδ »«¼ÑΓ¿Γ∞   ñαπú¿Ñ  í½«¬¿  π»αáó½Ñ¡¿∩  ¿½¿
  360.                         «Γñѽ¿Γ∞  «ñ¡π  úαπ»»π  í½«¬«ó  π»αáó½Ñ¡¿∩   «Γ
  361.                         ñαπú«⌐.
  362.         ───────────────────────────────────────────────────────────────
  363.                                 8.2.2  éδí«α Γ¿»á í½«¬á π»αáó½Ñ¡¿∩.            
  364.  
  365.              Æ¿» í½«¬á π»αáó½Ñ¡¿∩ ºáó¿ß¿Γ «Γ ¬½áßßá ¿ «»αÑñѽ∩ÑΓ ó¿ñ  ¿
  366.         αáí«Γπ  í½«¬á  π»αáó½Ñ¡¿∩.  Æ¿»  ºáñáÑΓß∩  »α¿  ß«ºñá¡¿¿  í½«¬á
  367.         π»αáó½Ñ¡¿∩. ä½∩  φΓ«ú«  «¡  ó¬½ετáÑΓß∩  ó   »áαá¼ÑΓαÑ   dwStyle
  368.         (¡á»α¿¼Ñα, BS_PUSHBUTTON) Σπ¡¬µ¿¿ CreateWindow.
  369.  
  370.              Windows ß«ñÑαª¿Γ  ¼¡«ú«  »αÑñ«»αÑñѽѡ¡δσ   Γ¿»«ó   í½«¬«ó
  371.         π»αáó½Ñ¡¿∩. ì¿ªÑ »α¿óÑñÑ¡δ ¡á¿í«½ÑÑ τáßΓ« óßΓαÑτáεΘ¿Ñß∩ Γ¿»δ:
  372.  
  373.         Æ¿»                    Ä»¿ßá¡¿Ñ
  374.         ───────────────────────────────────────────────────────────────
  375.         BS_PUSHBUTTON          æ»Ñµ¿Σ¿µ¿απÑΓ í½«¬    π»αáó½Ñ¡¿∩    Γ¿»á
  376.                                á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá,       ß«ñÑαªáΘ¿⌐
  377.                                ¼ÑΓ¬π,    ¬«Γ«απε   »«½∞º«óáΓѽ∞   ¼«ªÑΓ
  378.                                óδíαáΓ∞ ñ½∩   πóÑñ«¼½Ñ¡¿∩  α«ñ¿Γѽ∞߬«ú«
  379.                                «¬¡á.
  380.  
  381.         BS_DEFPUSHBUTTON       æ»Ñµ¿Σ¿µ¿απÑΓ á½∞ΓÑα¡áΓ¿ó¡πε ¬½áó¿Φπ  »«
  382.                                π¼«½τá¡¿ε,   ¬«Γ«αá∩  ¿ñÑ¡Γ¿τ¡á  «íδτ¡«⌐
  383.  
  384.        Windows 3.0/pg/2#3                                         = 9 =
  385.  
  386.                                á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿ΦÑ,     ¡«     ¿¼ÑÑΓ
  387.                                ß»Ñµ¿á½∞¡πε «¬á¡Γ«ó¬π.
  388.  
  389.         BS_CHECKBOX            æ»Ñµ¿Σ¿µ¿απÑΓ í½«¬    π»αáó½Ñ¡¿∩    Γ¿»á
  390.                                »á¡Ñ½∞  ¬«¡Γα«½∩.   Å«½∞º«óáΓѽ∞   ¼«ªÑΓ
  391.                                ó¬½ετáΓ∞/ó䬽ετáΓ∞ »á¡Ñ½∞.  è«úñá »á¡Ñ½∞
  392.                                ¬«¡Γα«½∩ ó¬½ετÑ¡á,  Γ« ó ¡Ñ⌐  »«∩ó½∩ÑΓß∩
  393.                                º¡á¬ "ò".
  394.  
  395.         BS_RADIOBUTTON
  396.                                æ»Ñµ¿Σ¿µ¿απÑΓ í½«¬    π»αáó½Ñ¡¿∩    Γ¿»á
  397.                                ¬½áó¿Φá  πßΓᡫ󬿠 (¡Ñí«½∞Φ«⌐  ¬α𪫬).
  398.                                Å«½∞º«óáΓѽ∞   ¼«ªÑΓ  ó¬½ετáΓ∞/ó䬽ετáΓ∞
  399.                                ñá¡¡δ⌐ í½«¬  π»αáó½Ñ¡¿∩.  è«úñá  ¬½áó¿Φá
  400.                                πßΓᡫ󬿠ó¬½ετÑ¡á, ¬α𪫬 ºá¬αáΦÑ¡.
  401.  
  402.         ES_LEFT                æ»Ñµ¿Σ¿µ¿απÑΓ «ñ¡«ßΓα«τ¡δ⌐   óδαáó¡Ñ¡¡δ⌐
  403.                                ó½Ñó« αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
  404.  
  405.         ES_MULTILINE           æ»Ñµ¿Σ¿µ¿απÑΓ ¼¡«ú«ßΓα«τ¡δ⌐
  406.                                αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
  407.  
  408.         SS_LEFT                æ»Ñµ¿Σ¿µ¿απÑΓ óδαáó¡Ñ¡¡δ⌐ ó½Ñó«
  409.                                ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
  410.  
  411.         SS_RIGHT               æ»Ñµ¿Σ¿µ¿απÑΓ óδαáó¡Ñ¡¡δ⌐ ó»αáó«
  412.                                ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
  413.  
  414.         LBS_STANDARD           æ»Ñµ¿Σ¿µ¿απÑΓ ßΓá¡ñáαΓ¡πε  »á¡Ñ½∞
  415.                                »ÑαÑτ¡∩.   æΓá¡ñáαΓ¡á∩   »á¡Ñ½∞  »ÑαÑτ¡∩
  416.                                ó¬½ετáÑΓ ßΓ᫬π »α«¬απΓ¬¿  ¿  πóÑñ«¼½∩ÑΓ
  417.                                ÑÑ α«ñ¿Γѽ∞¬«Ñ «¬¡«,  ¬«úñá »«½∞º«óáΓѽ∞
  418.                                ñѽáÑΓ óδí«α¬π.
  419.  
  420.         CBS_DROPDOWN           Ä»αÑñѽ∩ÑΓ ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó-
  421.                                ½Ñ¡¿∩, ß«ñÑαªáΘ¿⌐   αÑñá¬Γ¿απѼδ⌐   í½«¬
  422.                                π»αáó½Ñ¡¿∩ ¿   »á¡Ñ½∞  »ÑαÑτ¡∩,  ¬«Γ«αá∩
  423.                                «Γ«íαáªáÑΓß∩, ¬«úñá         »«½∞º«óáΓѽ∞
  424.                                ¡áª¿¼áÑΓ ¡á  í½«¬,  ß½ÑñπεΘ¿⌐  ºá  »«½Ñ¼
  425.                                óδí«αá. àß½¿ óδí¿αáÑΓß∩ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿
  426.                                »ÑαÑτ¡∩, ó      αÑñá¬Γ¿απѼ«¼      í½«¬Ñ
  427.                                «Γ«íαáªáÑΓß∩ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ.
  428.         ───────────────────────────────────────────────────────────────
  429.                                                                                
  430.                    8.2.3  Ä»αÑñѽѡ¿Ñ α«ñ¿Γѽ∞߬«ú« «¬¡á.
  431.  
  432.              Å«ß¬«½∞¬π ¬áªñδ⌐  í½«¬ π»αáó½Ñ¡¿∩ ∩ó½∩ÑΓß∩ ñ«τÑα¡¿¼ «¬¡«¼,
  433.         ¡Ñ«íσ«ñ¿¼« α«ñ¿Γѽ∞߬«Ñ «¬¡«. É«ñ¿Γѽ∞߬«Ñ «¬¡« π¬áºδóáÑΓß∩ »α¿
  434.         ß«ºñá¡¿¿ í½«¬á  π»αáó½Ñ¡¿∩.  ä½∩  φΓ«ú«   ó¬½ετ¿ΓÑ   ñÑß¬α¿»Γ«α
  435.         α«ñ¿Γѽ∞߬«ú«  «¬¡á  ó  ¬áτÑßΓóÑ  »áαá¼ÑΓαá  hWndParent ó ó맮ó
  436.         Σπ¡¬µ¿¿ CreateWindow.
  437.  
  438.              èᬠ½εí«Ñ  ñ«τÑα¡ÑÑ  «¬¡«  í½«¬  π»αáó½Ñ¡¿∩   »«ñóÑαúáÑΓß∩
  439.  
  440.        Windows 3.0/pg/2#3                                        = 10 =
  441.  
  442.         ¿º¼Ñ¡Ñ¿∩¼   ß«   ßΓ«α«¡δ  α«ñ¿Γѽ∞߬«ú«  «¬¡á.  ìá»α¿¼Ñα,  Ñß½¿
  443.         α«ñ¿Γѽ∞߬«Ñ «¬¡« ñѽáÑΓß∩ ¡Ññ«ßΓπ»¡δ¼,  í½«¬ π»αáó½Ñ¡¿∩  ΓᬪÑ
  444.         íπñÑΓ ¡Ññ«ßΓπ»Ñ¡. àß½¿ Windows α¿ßπÑΓ, »ÑαѼÑΘáÑΓ ¿½¿ αáºαπΦáÑΓ
  445.         α«ñ¿Γѽ∞߬«Ñ «¬¡«,  «¡ ΓᬪѠα¿ßπÑΓ,  »ÑαѼÑΘáÑΓ ¿½¿  αáºαπΦáÑΓ
  446.         í½«¬ π»αáó½Ñ¡¿∩.
  447.  
  448.              ò«Γ∩ í½«¬  π»αáó½Ñ¡¿∩  ¼«ªÑΓ   íδΓ∞   ½εí«ú«   αẼÑαá   ¿
  449.         »ÑαѼÑΘáΓ∞ß∩   ó   ½εí«Ñ   »«½«ªÑ¡¿Ñ,   «¡  «úαá¡¿τÑ¡  «í½áßΓ∞ε
  450.         »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á.  Windows óδαѺáÑΓ  «¬¡«,  Ñß½¿
  451.         «¡« »ÑαѼÑΘáÑΓß∩ ºá »αÑñÑ½δ «í½áßΓ¿ »«½∞º«óáΓѽ∩ ¿½¿ ßΓá¡«ó¿Γß∩
  452.         í«½∞ΦÑ «í½áßΓ¿ »«½∞º«óáΓѽ∩.
  453.                                                                                
  454.                 8.2.4  éδí«α ¿ñÑ¡Γ¿Σ¿¬áΓ«αá í½«¬á π»αáó½Ñ¡¿∩.
  455.  
  456.              Åα¿  ß«ºñá¡¿¿  í½«¬á  π»αáó½Ñ¡¿∩ «¡ »«½πτáÑΓ π¡¿¬á½∞¡δ⌐
  457.         ¿ñÑ¡Γ¿Σ¿¬áΓ«α (¿½¿  ID)  í½«¬á π»αáó½Ñ¡¿∩.  êñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á
  458.         π»αáó½Ñ¡¿∩ »α¿   ß«ºñá¡¿¿   í½«¬á   π»αáó½Ñ¡¿∩.   êñÑ¡Γ¿Σ¿¬áΓ«α
  459.         π¬áºδóáÑΓß∩ ó  Σπ¡¬µ¿¿  CreateWindow  ó¼ÑßΓ«  ñÑß¬α¿»Γ«αá  ¼Ñ¡ε
  460.         (hMenu). ü½«¬ π»αáó½Ñ¡¿∩ «»αÑñѽ∩ÑΓß∩  φΓ¿¼  ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼  ó
  461.         ½εí«¼  πóÑñ«¼½∩εΘѼ  ß««íΘÑ¡¿¿,  ¬«Γ«α«Ñ  «¡  »«ßδ½áÑΓ  Σπ¡¬µ¿¿
  462.         α«ñ¿Γѽ∞߬«ú« «¬¡á.  êñÑ¡Γ¿Σ¿¬áΓ«α  í½«¬á  π»αáó½Ñ¡¿∩  «ß«íÑ¡¡«
  463.         »«½ÑºÑ¡,  ¬«úñá ó «¬¡Ñ ¿¼ÑεΓß∩ ¡Ñ߬«½∞¬« í½«¬«ó π»αáó½Ñ¡¿∩. ¥Γ«
  464.         ¡á¿í«½ÑÑ »α«ßΓ«⌐ ¿ íδßΓαδ⌐ ß»«ß«í «Γ½¿τ¿Γ∞ «ñ¿¡ í½«¬ π»αáó½Ñ¡¿∩
  465.         «Γ ñαπú«ú«.
  466.                                                                                
  467.                     8.3  êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩.
  468.  
  469.              Å«ß½Ñ ß«ºñá¡¿∩ í½«¬á π»αáó½Ñ¡¿∩ óδ ¼«ªÑΓÑ:
  470.  
  471.              - Å«½πτ¿Γ∞ óó«ñ «Γ í½«¬á π»αáó½Ñ¡¿∩.
  472.  
  473.              - æ««íΘ¿Γ∞  í½«¬π  π»αáó½Ñ¡¿∩,  τΓ«  ¡Ñ«íσ«ñ¿¼«  óδ»«½¡¿Γ∞
  474.                «»αÑñѽѡ¡δÑ ºáñáτ¿, ¡á»α¿¼Ñα, óÑα¡πΓ∞ ßΓ᫬π ΓѬßΓá.
  475.  
  476.              - æñѽáΓ∞  ñ«ßΓπ»¡δ¼   ¿½¿   ¡Ññ«ßΓπ»¡δ¼   óó«ñ   ó   í½«¬
  477.                π»αáó½Ñ¡¿∩.
  478.  
  479.              - ÅÑαѼÑßΓ¿Γ∞ ¿½¿ ¿º¼Ñ¡¿Γ∞ αẼÑα í½«¬á π»αáó½Ñ¡¿∩.
  480.  
  481.              - ÉáºαπΦ¿Γ∞ í½«¬ π»αáó½Ñ¡¿∩.
  482.  
  483.              é ñá¡¡«¼ αáºñѽѠ«»¿ßá¡«, ¬á¬ óδ»«½¡¿Γ∞ óßÑ φΓ¿ ºáñáτ¿.
  484.                              8.3.1  Å«½πτÑ¡¿Ñ óó«ñá «Γ »«½∞º«óáΓѽ∩.           
  485.  
  486.              Åα¿ óºá¿¼«ñÑ⌐ßΓó¿¿   »«½∞º«óáΓѽ∩   ß   í½«¬«¼  π»αáó½Ñ¡¿∩
  487.         »«ß½Ññ¡¿⌐  »«ßδ½áÑΓ  α«ñ¿Γѽ∞߬«¼π  «¬¡π  ¿¡Σ«α¼áµ¿ε  «í   φΓ«¼
  488.         óºá¿¼«ñÑ⌐ßΓó¿¿  ó  Σ«α¼Ñ  πóÑñ«¼½∩εΘ¿σ ß««íΘÑ¡¿⌐.  ôóÑñ«¼½∩εΘÑÑ
  489.         ß««íΘÑ¡¿Ñ - φΓ« ß««íΘÑ¡¿Ñ WM_COMMAND, ó ¬«Γ«α«¼:
  490.  
  491.              - »áαá¼ÑΓα wParam ß«ñÑαª¿Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩;
  492.  
  493.              - »áαá¼ÑΓα lParam ß«ñÑαª¿Γ ¬«ñ  πóÑñ«¼½Ñ¡¿∩  ¿  ñÑß¬α¿»Γ«α
  494.                í½«¬á π»αáó½Ñ¡¿∩.
  495.  
  496.        Windows 3.0/pg/2#3                                        = 11 =
  497.  
  498.  
  499.  
  500.              ìá»α¿¼Ñα, »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬¡«»¬π ¼δΦ¿,  ¬«úñá ¬παß«α
  501.         ¡áσ«ñ¿Γß∩ ¡á í½«¬Ñ  π»αáó½Ñ¡¿∩  BUTTON,  φëà í½«¬  π»αáó½Ñ¡¿∩
  502.         »«ßδ½áÑΓ Σπ¡¬µ¿¿ «¬¡á α«ñ¿Γѽ∩ ß««íΘÑ¡¿Ñ WM_COMMAND.  æ««íΘÑ¡¿Ñ
  503.         WM_COMMAND ß«ñÑαª¿Γ  ó  »áαá¼ÑΓαÑ  lParam  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  í½«¬á
  504.         π»αáó½Ñ¡¿∩,  á  ó ßΓáαΦѼ ß½«óÑ »áαá¼ÑΓαá lParam ß«ñÑনΓß∩ ¬«ñ
  505.         πóÑñ«¼½Ñ¡¿∩  BN_CLICKED,   ¬«Γ«αδ⌐   π¬áºδóáÑΓ   ¡á   Γ«,   τΓ«
  506.         »«½∞º«óáΓѽ∞ ¡áªá½ ¡á ñá¡¡πε ¼∩ú¬πε ¬½áó¿Φπ.
  507.  
  508.              Å«ß¬«½∞¬π πóÑñ«¼½∩εΘÑÑ  ß««íΘÑ¡¿Ñ  ¿¼ÑÑΓ  Γπ  ªÑ  «ß¡«ó¡πε
  509.         Σ«α¼π,  τΓ«  ¿  »α¿ óó«ñÑ ¿º ¼Ñ¡ε,  «¡« ¼«ªÑΓ «íαáíáΓδóáΓ∞ß∩ ó«
  510.         ¼¡«ú«¼ á¡á½«ú¿τ¡«.  àß½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ í½«¬«ó π»αáó½Ñ¡¿∩  í뫨
  511.         óδíαá¡δ Γá¬,  τΓ«  «¡¿  ¡Ñ óσ«ñ∩Γ ó ¬«¡Σ½¿¬Γ ß ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ
  512.         φ½Ñ¼Ñ¡Γ«ó ¼Ñ¡ε, ¼«ª¡« «íαáíáΓδóáΓ∞ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ ó Γ«¼
  513.         ªÑ  «»ÑαáΓ«αÑ switch,  ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «íαáí«Γ¬¿ óó«ñá
  514.         ¿º ¼Ñ¡ε.
  515.                                                                                
  516.                    8.3.2  ÅÑαÑñáτá π»αáó½∩εΘ¿σ ß««íΘÑ¡¿⌐.
  517.  
  518.              ü«½∞Φ¿¡ßΓó« í½«¬«ó π»αáó½Ñ¡¿∩ »α¿¡¿¼áεΓ ¿ «íαáíáΓδóáεΓ α∩ñ
  519.         ß««íΘÑ¡¿⌐.  ¥Γ«  ß»Ñµ¿á½∞¡δÑ ß««íΘÑ¡¿∩,  ¬«Γ«αδÑ »«íπªñáεΓ í½«¬
  520.         π»αáó½Ñ¡¿∩ óδ»«½¡∩Γ∞ ¡Ñ¬«Γ«αδÑ  π¡¿¬á½∞¡δÑ  ñ½∩  ñá¡¡«ú«  í½«¬á
  521.         π»αáó½Ñ¡¿∩   ºáñáτ¿.   ìá»α¿¼Ñα,   ß««íΘÑ¡¿Ñ   WM_GETTEXTLENGTH
  522.         »αÑñ»¿ßδóáÑΓ αÑñá¬Γ¿απѼ«¼π í½«¬π π»αáó½Ñ¡¿∩  ó«ºóαáΓ¿Γ∞  ñ½¿¡π
  523.         óδíαá¡¡«⌐ ßΓ᫬¿ ΓѬßΓá.
  524.  
  525.              æ««íΘÑ¡¿Ñ í½«¬π     π»αáó½Ñ¡¿∩     »«ßδ½áÑΓß∩     Σπ¡¬µ¿Ñ⌐
  526.         SendMessage. ìÑ«íσ«ñ¿¼«  ºáñáΓ∞  ¡«¼Ñα  ß««íΘÑ¡¿∩  ¿   º¡áτÑ¡¿∩
  527.         »áαá¼ÑΓα«ó wParam ¿ lParam. ìá»α¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ «»ÑαáΓ«α
  528.         »«ßδ½áÑΓ  ß««íΘÑ¡¿Ñ   EM_GETTEXTLENGTH   αÑñá¬Γ¿απѼ«¼π   í½«¬π
  529.         π»αáó½Ñ¡¿∩,  ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«¼π ñÑß¬α¿»Γ«α«¼ hEditWnd, á ºáΓѼ
  530.         ó«ºóαáΘáÑΓ ñ½¿¡π óδíαá¡¡«⌐ ßΓ᫬¿.
  531.  
  532.              nLength=SendMessage(hEditWnd, WM_GETTEXTLENGTH, 0, 0L);
  533.  
  534.              î¡«ú¿Ñ í½«¬¿  π»αáó½Ñ¡¿∩  ΓᬪѠ «íαáíáΓδóáεΓ  ßΓá¡ñáαΓ¡δÑ
  535.         ß««íΘÑ¡¿∩  «¬«¡,  ΓᬿѠ ¬á¬  WM_HSCROLL  ¿  WM_VSCROLL.  î«ª¡«
  536.         »«ß½áΓ∞  φΓ¿  ß««íΘÑ¡¿∩  í½«¬á¼  π»αáó½Ñ¡¿∩  ΓѼ  ªÑ  ß»«ß«í«¼,
  537.         ¬«Γ«αδ⌐ ¿ß»«½∞º«óá½ß∩ ñ½∩ »«ß佬¿ π»αáó½∩εΘ¿σ ß««íΘÑ¡¿⌐.
  538.                                                                                
  539.                8.3.3 èᬠßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ ñ«ßΓπ»¡δ¼ ¿½¿
  540.                             ¡Ññ«ßΓπ»¡δ¼ ñ½∩ óó«ñá.
  541.  
  542.              î«ª¡« ßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩  ñ«ßΓπ»¡δ¼  ¿½¿  ¡Ññ«ßΓπ»¡δ¼
  543.         ñ½∩ óó«ñá, ¿ß»«½∞º«óáó Σπ¡¬µ¿ε EnableWindow.
  544.  
  545.              è«úñá óδ ñѽáÑΓÑ óó«ñ ó í½«¬ π»αáó½Ñ¡¿∩ ¡Ññ«ßΓπ»¡δ¼,  φΓ«Γ
  546.         í½«¬ π»αáó½Ñ¡¿∩ ¡Ñ αÑáú¿απÑΓ ¡á óó«ñ «Γ  »«½∞º«óáΓѽ∩.  Windows
  547.         ñѽáÑΓ ñá¡¡δ⌐ í½«¬ "ßÑαδ¼",  τΓ«íδ  π¬áºáΓ∞  »«½∞º«óáΓѽε,  τΓ«
  548.         ñá¡¡δ⌐   í½«¬  π»αáó½Ñ¡¿∩  ¡Ññ«ßΓπ»Ñ¡.  é  »α¿óÑñÑ¡¡«¼  »α¿¼ÑαÑ
  549.         »«¬áºá¡«, ¬á¬ ßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ ¡Ññ«ßΓπ»¡δ¼:
  550.  
  551.        Windows 3.0/pg/2#3                                        = 12 =
  552.  
  553.  
  554.              EnableWindow(hButton, FALSE);
  555.  
  556.              î«ª¡« ó«º«í¡«ó¿Γ∞  óó«ñ  ó  í½«¬  π»αáó½Ñ¡¿∩,  ßñѽáó  Ñú«
  557.         ñ«ßΓπ»¡δ¼ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ EnableWindow, π¬áºáó »áαá¼ÑΓα TRUE:
  558.  
  559.              EnableWindow(hButton, TRUE);
  560.                 8.3.4  ÅÑαѼÑΘÑ¡¿Ñ ¿ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá í½«¬á π»αáó½Ñ¡¿∩.       
  561.  
  562.              î«ª¡« »ÑαѼÑΘáΓ∞  ¿½¿  ¿º¼Ñ¡∩Γ∞  αẼÑα  í½«¬á π»αáó½Ñ¡¿∩,
  563.         ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε  MoveWindow.  ¥Γá  Σπ¡¬µ¿∩  »ÑαѼÑΘáÑΓ  í½«¬
  564.         π»αáó½Ñ¡¿∩ ó π¬áºá¡¡πε Γ«τ¬π «í½áßΓ¿ »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú«
  565.         «¬¡á ¿ πßΓá¡áó½¿óáÑΓ ñ½∩ í½«¬á  π»αáó½Ñ¡¿∩  ºáñá¡¡πε  Φ¿α¿¡π  ¿
  566.         óδß«Γπ. æ½ÑñπεΘ¿⌐   »α¿¼Ñα  ñѼ«¡ßΓα¿απÑΓ,  ¬á¬  »ÑαѼÑßΓ¿Γ∞  ¿
  567.         ¿º¼Ñ¡¿Γ∞ αẼÑαδ í½«¬á π»αáó½Ñ¡¿∩:
  568.  
  569.              MoveWindow(hButtonWnd, 10, 10, 30, 12, TRUE);
  570.  
  571.               é φΓ«¼  »α¿¼ÑαÑ í½«¬ π»αáó½Ñ¡¿∩ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π (10,
  572.         10) ó «í½áßΓ¿ »«½∞º«óáΓѽ∩;  Φ¿α¿¡á  ¿  óδß«Γá  πßΓá¡áó½¿óáÑΓß∩
  573.         αáó¡«⌐ 30 ¿ 12 »¿¬ßѽ∩¼ ß««ΓóÑΓßΓóÑ¡¡«. ç¡áτÑ¡¿Ñ TRUE ú«ó«α¿Γ «
  574.         Γ«¼, τΓ«  »«ß½Ñ  »ÑαѼÑΘÑ¡¿∩  í½«¬   π»αáó½Ñ¡¿∩   ñ«½ªÑ¡   íδΓ∞
  575.         »ÑαÑα¿ß«óá¡.
  576.  
  577.              Windows áóΓ«¼áΓ¿τÑ߬¿   »ÑαѼÑΘáÑΓ   í½«¬  π»αáó½Ñ¡¿∩  »α¿
  578.         »ÑαѼÑΘÑ¡¿¿  α«ñ¿Γѽ∞߬«ú«  «¬¡á.  Å«½«ªÑ¡¿Ñ  í½«¬á  π»αáó½Ñ¡¿∩
  579.         íÑαÑΓß∩   óßÑúñá  «Γ¡«ß¿Γѽ∞¡«  ½Ñó«ú«  óÑασ¡Ñú«  πú½á  «í½áßΓ¿
  580.         »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú«  «¬¡á,  Γᬠ τΓ«  ¬«úñá α«ñ¿Γѽ∞߬«Ñ
  581.         «¬¡« »ÑαѼÑΘáÑΓß∩,  í½«¬ π»αáó½Ñ¡¿∩  «ßΓáÑΓß∩  Σ¿¬ß¿α«óá¡¡δ¼  ó
  582.         «í½áßΓ¿  »«½∞º«óáΓѽ∩,  ¡«  »ÑαѼÑΘáÑΓß∩  «Γ¡«ß¿Γѽ∞¡«  φ¬αá¡á.
  583.         Windows ¡Ñ ¿º¼Ñ¡∩ÑΓ  αẼÑαδ  í½«¬á  π»αáó½Ñ¡¿∩  »α¿  ¿º¼Ñ¡Ñ¡¿¿
  584.         α«ñ¿Γѽ∞߬«ú« «¬¡á, ¡« »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_SIZE α«ñ¿Γѽ∞߬«¼π
  585.         «¬¡π  ñ½∩  π¬áºá¡¿∩  Ñú«  ¡«ó«ú«  αẼÑαá.  Åα¿  ªÑ½á¡¿¿  ¼«ª¡«
  586.         ¿ß»«½∞º«óáΓ∞   φΓ«   ß««íΘÑ¡¿Ñ   ñ½∩  Γ«ú«,  τΓ«íδ  ñáΓ∞  í½«¬π
  587.         π»αáó½Ñ¡¿∩ ¡«óδÑ αẼÑαδ.
  588.                                                                                
  589.                      8.3.5  ÉáºαπΦÑ¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.
  590.  
  591.              î«ª¡« αáºαπΦ¿Γ∞   í½«¬   π»αáó½Ñ¡¿∩   ß   »«¼«Θ∞ε  Σπ¡¬µ¿¿
  592.         DestroyWindow.  ¥Γá Σπ¡¬µ¿∩ πñá½∩ÑΓ óßÑ ó¡πΓαÑ¡¡¿Ñ ºá»¿ß¿ ¿ ßá¼
  593.         í½«¬  π»αáó½Ñ¡¿∩ ¿º «í½áßΓ¿ »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á.  é
  594.         »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ αáºαπΦ¿Γ∞ í½«¬ π»αáó½Ñ¡¿∩:
  595.  
  596.              DestroyWindow(hEditWnd);
  597.  
  598.              Windows áóΓ«¼áΓ¿τÑ߬¿  αáºαπΦáÑΓ   í½«¬   π»αáó½Ñ¡¿∩   »α¿
  599.         αáºαπΦÑ¡¿¿ α«ñ¿Γѽ∞߬«ú« «¬¡á.  é««íΘÑ ú«ó«α∩,  í½«¬ π»αáó½Ñ¡¿∩
  600.         ¡Ñ«íσ«ñ¿¼« αáºαπΦáΓ∞ Γ«½∞¬« Γ«úñá, ¬«úñá «¡ ó α«ñ¿Γѽ∞߬«¼ «¬¡Ñ
  601.         í«½∞ΦÑ ¡Ñ ¡πªÑ¡.
  602.  
  603.  
  604.        Windows 3.0/pg/2#3                                        = 13 =
  605.  
  606.                                                                                
  607.            8.4  æ«ºñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ¡Ñ¬«Γ«αδσ ¡á¿í«½ÑÑ τáßΓ«
  608.                        óßΓαÑτáεΘ¿σß∩ í½«¬«ó π»αáó½Ñ¡¿∩.
  609.  
  610.              äá½ÑÑ ó φΓ«⌐ ú½áóÑ »α¿óÑñÑ¡á í«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ «í
  611.         ¿ß»«½∞º«óá¡¿¿ ¡á¿í«½ÑÑ τáßΓ« óßΓαÑτáεΘ¿σß∩ í½«¬«ó π»αáó½Ñ¡¿∩:
  612.  
  613.              - ü½«¬ π»αáó½Ñ¡¿∩ Γ¿»á ¬½áó¿Φá.
  614.  
  615.              - æΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
  616.  
  617.              - Åá¡Ñ½∞ »ÑαÑτ¡∩.
  618.  
  619.              - è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩.
  620.  
  621.              - ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
  622.  
  623.              - æΓ᫬¿ »α«¬απΓ¬¿.
  624.                       8.4.1  êß»«½∞º«óá¡¿Ñ ¬½áó¿Φ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩.        
  625.  
  626.              è½áó¿Φ¡δ⌐ í½«¬   π»αáó½Ñ¡¿∩   -   φΓ«   ¡Ñí«½∞Φ«Ñ    «¬¡«,
  627.         ¿ß»«½∞ºπѼ«Ñ  ñ½∩  »α«ßΓ«ú«  óó«ñá  Γ¿»á  ñá/¡ÑΓ  ¿½¿ ó¬½/ó䬽.
  628.         æπΘÑßΓóπεΓ  ß½ÑñπεΘ¿Ñ  ¡á¿í«½ÑÑ  τáßΓ«  ¿ß»«½∞ºπѼδÑ  ¬½áó¿Φ¡δÑ
  629.         í½«¬¿ π»αáó½Ñ¡¿∩:
  630.  
  631.              - Ç½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá.
  632.  
  633.              - Ç½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½τá¡¿ε.
  634.  
  635.              - è½áó¿Φá πßΓá¡«ó¬¿.
  636.  
  637.              - Åá¡Ñ½∞ ¬«¡Γα«½∩.
  638.  
  639.              - è½áó¿Φá, α¿ßπѼá∩ ó½áñѽ∞µÑ¼.
  640.  
  641.              - âαπ»»«óá∩ »á¡Ñ½∞.
  642.  
  643.                             Ç½∞ΓÑα¡áΓ¿ó¡δÑ ¬½áó¿Φ¿.
  644.  
  645.              è½áó¿Φ¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩ - φΓ« ¬½áó¿Φá, ¬«Γ«αá∩ »«ºó«½∩ÑΓ
  646.         »«½∞º«óáΓѽε óδíαáΓ∞ «»αÑñѽѡ¡«Ñ  ñÑ⌐ßΓó¿Ñ.  èñáó¿Φá  ß«ñÑনΓ
  647.         ΓѬßΓ,  ¬«Γ«αδ⌐  «»αÑñѽ∩ÑΓ  ÑÑ  ñÑ⌐ßΓó¿Ñ.  è«úñá  »«½∞º«óáΓѽ∞
  648.         "¡áª¿¼áÑΓ" ÑÑ,  »α¿¬½áñ¡á∩ »α«úαἼᠫíδτ¡« óδ»«½¡∩ÑΓ ßó∩ºá¡¡δÑ
  649.         ß  ¡Ñ⌐ ñÑ⌐ßΓó¿∩.  ìá»α¿¼Ñα,  Ñß½¿ »«½∞º«óáΓѽ∞ ó »á¡Ñ½¿ ñ¿á½«úá
  650.         óδí¿αáÑΓ ¬½áó¿Φπ "Cancel",  Γ« »α¿¬½áñ¡á∩ »α«úαἼᠠ¡Ñ¼Ññ½Ñ¡¡«
  651.         πí¿αáÑΓ »á¡Ñ½∞  ñ¿á½«úá  ¿  «Γ¼Ñ¡∩ÑΓ óßÑ »α«¿ºóÑñÑ¡¡δÑ ó »á¡Ñ½¿
  652.         ñ¿á½«úá πßΓᡫ󬿠(Ñß½¿ «¡¿ í뫨 »α«¿ºóÑñÑ¡δ).
  653.  
  654.              î«ª¡« ß«ºñáΓ∞ ¬½áó¿Φ¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩,  ¿ß»«½∞ºπ∩  ¬½áßß
  655.         "Button" ¿ ß»Ñµ¿Σ¿µ¿απ∩ Γ¿» ¬½áó¿Φ¿. ìá»α¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ
  656.         ó맮ó  Σπ¡¬µ¿¿  CreateWindow  ß«ºñáÑΓ  í½«¬   π»αáó½Ñ¡¿∩   Γ¿»á
  657.         á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá ß ¼ÑΓ¬«⌐ "Cancel":
  658.  
  659.  
  660.        Windows 3.0/pg/2#3                                        = 14 =
  661.  
  662.              HWND hCancelButton;
  663.                .
  664.                .
  665.                .
  666.              hCancelButton=CreateWindow("Button", "Cancel",
  667.                       BS_PUSHBUTTON ! WS_CHILD ! WS_VISIBLE,
  668.                       20, 40, 30, 12, hWnd, ICANCEL, hInstance, NULL);
  669.  
  670.              é ñá¡¡«¼  »α¿¼ÑαÑ  ß»Ñµ¿Σ¿µ¿α«óá¡ Γ¿» WS_VISIBLE,  ΓᬠτΓ«
  671.         »α¿ ß«ºñá¡¿¿ í½«¬á π»αáó½Ñ¡¿∩  «¡  ¿¡ñ¿µ¿απÑΓß∩.  êñÑ¡Γ¿Σ¿¬áΓ«α
  672.         í½«¬á  π»αáó½Ñ¡¿∩  αáóÑ¡  ICANCEL.  ¥Γá  ¬«¡ßΓá¡Γá «»αÑñѽѡá ó
  673.         Σá⌐½Ñ   windows.h   ¿   »αÑñ¡áº¡áτѡᠠ ñ½∩   ¿ß»«½∞º«óá¡¿∩   ß
  674.         á½∞ΓÑα¡áΓ¿ó¡δ¼¿ ¬½áó¿ΦἿ , Γᬿ¼¿ ¬á¬ ¬½áó¿Φá "Cancel".
  675.  
  676.                      Ç½∞ΓÑα¡áΓ¿ó¡δÑ ¬½áó¿Φ¿ »« π¼«½τá¡¿ε.
  677.  
  678.              Ç½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá  »«  π¼«½τá¡¿ε  «íδτ¡« ¿ß»«½∞ºπÑΓß∩
  679.         ñ½∩ Γ«ú«,  τΓ«íδ ñáΓ∞ »«½∞º«óáΓѽε ó«º¼«ª¡«ßΓ∞  ß¿ú¡á½¿º¿α«óáΓ∞
  680.         «í  «¬«¡τá¡¿¿  ¡Ñ¬«Γ«α«⌐ αáí«Γδ,  ¡á»α¿¼Ñα Γᬫ⌐,  ¬á¬ ºá»¿ß∞ ó
  681.         αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ¿¼Ñ¡¿ Σá⌐½á. ü½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
  682.         á½∞ΓÑα¡áΓ¿ó¡á∩  ¬½áó¿Φá  »«  π¼«½τá¡¿ε (ΓᬪѠ¬á¬ ¿ ñαπú¿Ñ Γ¿»δ
  683.         ¬½áó¿Φ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩) «ΓóÑτáεΓ ¡á  óó«ñ  «Γ  "¼δΦ¿"  ¿½¿
  684.         ¬½áó¿áΓπαδ.  àß½¿  »«½∞º«óáΓѽ∞ »ÑαѼÑΘáÑΓ ¬παß«α "¼δΦ¿" ó í½«¬
  685.         π»αáó½Ñ¡¿∩  ¿  ¡áª¿¼áÑΓ  ¬¡«»¬π  ¡á   ¡Ñ⌐,   ¬½áó¿Φá   »«ßδ½áÑΓ
  686.         πóÑñ«¼½∩εΘÑÑ  ß««íΘÑ¡¿Ñ BN_CLICKED α«ñ¿Γѽ∞߬«¼π «¬¡π.  è½áó¿Φá
  687.         ¡Ñ ñ«½ª¡á ºáσóáΓδóáΓ∞ óó«ñ ñ½∩ «ΓóÑΓá ¡á ñÑ⌐ßΓó¿∩ ß "¼δΦ∞ε", ¡«
  688.         φΓ«  ¡Ñ«íσ«ñ¿¼« ñѽáΓ∞ ó «ΓóÑΓ ¡á óó«ñ ß ¬½áó¿áΓπαδ.  ä½∩ Γ«ú«,
  689.         τΓ«íδ ñáΓ∞ ó«º¼«ª¡«ßΓ∞  »«½∞º«óáΓÑ½ε  ¿ß»«½∞º«óáΓ∞  ¬½áó¿áΓπαπ,
  690.         ¡Ñ«íσ«ñ¿¼«   ºáσóáΓ¿Γ∞  óó«ñ  ñ½∩  ¬½áó¿Φ¿  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  691.         SetFocus.  Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ºáΓѼ ¡áªáΓ∞ ¬½áó¿Φπ »α«íѽᠠñ½∩
  692.         Γ«ú«,  τΓ«íδ  »«íπñ¿Γ∞  ¬½áó¿Φπ  »«ß½áΓ∞ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ
  693.         BN_CLICKED α«ñ¿Γѽ∞߬«¼π «¬¡π.
  694.  
  695.              æ«ºñá¡¿Ñ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿Φ¿  »«  π¼«½τá¡¿ε  ó«  ¼¡«ú«¼
  696.         á¡á½«ú¿τ¡« ß«ºñá¡¿ε  «íδτ¡«⌐  á½∞ΓÑα¡áΓ¿ó¡«⌐  ¬½áó¿Φ¿.  ô¬áª¿ΓÑ
  697.         ¬½áßß í½«¬á π»αáó½Ñ¡¿∩ "Button",  á  Γ¿»  π¬áª¿ΓÑ  ó  »áαá¼ÑΓαÑ
  698.         dwStyle Σπ¡¬µ¿¿ CreateWindow.  ìá»α¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ ó맮ó
  699.         Σπ¡¬µ¿¿   CreateWindow    ß«ºñáÑΓ    í½«¬    π»αáó½Ñ¡¿∩    Γ¿»á
  700.         á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½τá¡¿ε ß ¼ÑΓ¬«⌐ "Oè":
  701.  
  702.              HWND hDefButton;
  703.                . . .
  704.              hDefButton=CreateWindow("Button", "Oè",
  705.                       BS_DEFPUSHBUTTON ! WS_CHILD ! WS_VISIBLE,
  706.                       20, 40, 30, 12, hWnd, IDOK, hInstance, NULL);
  707.  
  708.              é ñá¡¡«¼ »α¿¼ÑαѠ߻ѵ¿Σ¿µ¿α«óá¡ Γ¿» WS_VISIBLE, ΓᬠτΓ«
  709.         »α¿ ß«ºñá¡¿¿ í½«¬á π»αáó½Ñ¡¿∩ «¡ ¿¡ñ¿µ¿απÑΓß∩. ID í½«¬á  π»-
  710.         αáó½Ñ¡¿∩  αáóÑ¡  IDOK.  ¥Γá  ¬«¡ßΓá¡Γá  «»αÑñѽѡᠠó  Σá⌐½Ñ
  711.         windows.h ¿ »αÑñ¡áº¡áτÑ¡á ñ½∩ ¿ß»«½∞º«óá¡¿∩ ß á½∞ΓÑα¡áΓ¿ó¡δ-
  712.         ¼¿ ¬½áó¿ΦἿ »« π¼«½τá¡¿ε, Γᬿ¼¿ ¬á¬ ¬½áó¿Φá "Oè".
  713.  
  714.                                Åá¡Ñ½∞ ¬«¡Γα«½∩.
  715.  
  716.              Åá¡Ñ½∞ ¬«¡Γα«½∩  «íδτ¡« ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδí«αᠡѬ«Γ«α«ú«
  717.  
  718.        Windows 3.0/pg/2#3                                        = 15 =
  719.  
  720.         »áαá¼ÑΓαá,  »α¿¼Ñ¡∩Ѽ«ú« ó ñá¡¡«⌐ ºáñáτÑ.  Å« ß«ú½áΦÑ¡¿ε ó¡πΓα¿
  721.         úαπ»»δ »á¡Ñ½Ñ⌐  ¬«¡Γα«½∩  ¼«ª¡« óδíαáΓ∞ í«½ÑÑ «ñ¡«ú« »áαá¼ÑΓαá.
  722.         (ä½∩ »αÑñßΓáó½Ñ¡¿∩ »áαá¼ÑΓα«ó,  ó ¬«Γ«αδσ ¼«ª¡« óδíαáΓ∞  Γ«½∞¬«
  723.         «ñ¿¡, ¿ß»«½∞ºπ⌐ΓÑ í½«¬¿ π»αáó½Ñ¡¿∩ Γ¿»á ¬½áó¿Φ¿ πßΓá¡«ó¬¿.)
  724.  
  725.              ìá»α¿¼Ñα, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ úαπ»»π »á¡Ñ½Ñ⌐  ¬«¡Γα«½∩  ñ½∩
  726.         Γ«ú«, τΓ«íδ  ñáΓ∞  ó«º¼«ª¡«ßΓ∞  »«½∞º«óáΓÑ½ε  óδíαáΓ∞ »áαá¼ÑΓαδ
  727.         Φα¿ΣΓá ñ½∩ «»Ñαᵿ¿  óδó«ñá.  Å«½∞º«óáΓѽ∞  ¼«ªÑΓ  óδíαáΓ∞  ¬á¬
  728.         å¿α¡δ⌐ Φα¿ΣΓ, Γᬠ¿ èπαß¿ó, π¬áºáó "Bold" ¿ "Italic".
  729.  
  730.              î«ª¡« ß«ºñáΓ∞   í½«¬   π»αáó½Ñ¡¿∩  Γ¿»á  »á¡Ñ½∞  ¬«¡Γα«½∩,
  731.         ¿ß»«½∞ºπ∩ Γ¿» BS_CHECKBOX, ¬á¬ ó »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ:
  732.  
  733.              #define ID_ITALIC    201
  734.              HWND hCheckBox;
  735.                .
  736.                .
  737.                .
  738.              hCheckBox=CreateWindow("Button", "èπαß¿ó",
  739.                    BS_CHECKBOX ! WS_CHILD ! WS_VISIBLE,
  740.                    20, 40, 80, 20, hWnd, ID_ITALIC, hInstance,
  741.                    NULL);
  742.  
  743.              é φΓ«¼  »α¿¼ÑαÑ  ¼ÑΓ¬á  »á¡Ñ½¿  ¬«¡Γα«½∩  -  "èπαß¿ó",   á
  744.         ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩ - ID_ITALIC.
  745.  
  746.              Åá¡Ñ½∞ ¬«¡Γα«½∩  «ΓóÑτáÑΓ ¡á óó«ñ «Γ "¼δΦ¿" ¿½¿ ¬½áó¿áΓπαδ
  747.         ó« ¼¡«ú«¼ ΓᬪÑ,  ¬á¬ ¿  í½«¬  π»αáó½Ñ¡¿∩  Γ¿»á  á½∞ΓÑα¡áΓ¿ó¡á∩
  748.         ¬½áó¿Φá. äαπú¿¼¿ ß½«óἿ,  «¡á »«ßδ½áÑΓ πóÑñ«¼½∩εΘÑÑ  ß««íΘÑ¡¿Ñ
  749.         α«ñ¿Γѽ∞߬«¼π «¬¡π,  ¬«úñá »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬½áó¿Φ¡δ⌐ í½«¬
  750.         π»αáó½Ñ¡¿∩ ¿½¿ ¬½áó¿Φπ »α«íѽá.  Äñ¡á¬« »á¡Ñ½∞  ¬«¡Γα«½∩  ¼«ªÑΓ
  751.         ¿¡ñ¿µ¿α«óáΓ∞  ¼ÑΓ¬π  "ò"  ñ½∩ Γ«ú«,  τΓ«íδ »«¬áºáΓ∞,  τΓ« «¡á ó
  752.         ñá¡¡δ⌐ ¼«¼Ñ¡Γ ó¬½ετÑ¡á (óδíαá¡á).
  753.  
  754.              î«ª¡« »«íπñ¿Γ∞    í½«¬    π»αáó½Ñ¡¿∩   »«¬áºáΓ∞   «Γ¼ÑΓ¬π,
  755.         ¿ß»«½∞ºπ∩ ß««íΘÑ¡¿Ñ BM_SETCHECK.  î«ª¡« ΓᬪѠ»α«óÑα¿Γ∞,  ¿¼ÑÑΓ
  756.         ½¿ »á¡Ñ½∞ ¬«¡Γα«½∩ «Γ¼ÑΓ¬π,  ¿ß»«½∞ºπ∩  ß««íΘÑ¡¿Ñ  BM_GETCHECK.
  757.         ìá»α¿¼Ñα, ñ½∩  »«¼ÑΘÑ¡¿∩  «Γ¼ÑΓ¬¿ ó »á¡Ñ½∞ ¬«¡Γα«½∩ ¿ß»«½∞ºπ⌐ΓÑ
  758.         ß½ÑñπεΘπε Σπ¡¬µ¿ε:
  759.  
  760.              SendMessage(hCheckBox, BM_SETCHECK, 1, 0L);
  761.  
  762.              ¥Γ« «º¡áτáÑΓ,  τΓ«  ¼«ª¡« »«¼ÑßΓ¿Γ∞ ¿½¿ πñ὿Γ∞ «Γ¼ÑΓ¬π ¿º
  763.         »á¡Ñ½¿  ¬«¡Γα«½∩  ó  ½εí«⌐  ¼«¼Ñ¡Γ  (¡á»α¿¼Ñα,  ¬«úñá   Σπ¡¬µ¿∩
  764.         α«ñ¿Γѽ∞߬«ú« «¬¡á »«½πτáÑΓ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ BN_CLICKED).
  765.         Windows  ΓᬪѠ «íÑß»Ñτ¿óáÑΓ  αѪ¿¼  BS_AUTOCHECKBOX,   ¬«Γ«αδ⌐
  766.         ß½πª¿Γ  ñ½∩ áóΓ«¼áΓ¿τÑ߬«ú« αẼÑΘÑ¡¿∩ ¿½¿ πñá½Ñ¡¿∩ ¬«¡Γα«½∞¡«⌐
  767.         «Γ¼ÑΓ¬¿.
  768.  
  769.                               è½áó¿Φ¿ πßΓá¡«ó¬¿.
  770.  
  771.              ü½«¬¿ π»αáó½Ñ¡¿∩ Γ¿»á ¬½áó¿Φá πßΓᡫ󬿠αáí«ΓáεΓ ó« ¼¡«ú«¼
  772.         ΓᬪÑ,  ¬á¬ ¿ »á¡Ñ½¿ ¬«¡Γα«½∩. Äñ¡á¬«, ¬½áó¿Φ¿ πßΓᡫ󬿠«íδτ¡«
  773.  
  774.        Windows 3.0/pg/2#3                                        = 16 =
  775.  
  776.         ¿ß»«½∞ºπεΓß∩ úαπ»»á¼¿, ¬«Γ«αδÑ »αÑñßΓáó½∩εΓ óºá¿¼¡« ¿ß¬½ετáεΘ¿Ñ
  777.         ó«º¼«ª¡«ßΓ¿. ìá»α¿¼Ñα,  óδ ¼«ªÑΓÑ  ¿ß»«½∞º«óáΓ∞  úαπ»»π  ¬½áó¿Φ
  778.         πßΓᡫ󬿠ñ½∩ Γ«ú«, τΓ«íδ ñáΓ∞ »«½∞º«óáΓѽε ó«º¼«ª¡«ßΓ∞ π¬áºáΓ∞
  779.         óδαáó¡¿óá¡¿Ñ ΓѬßΓá (ó½Ñó«,  ó»αáó«  ¿½¿  »«  µÑ¡Γαπ).  è½áó¿Φ¿
  780.         πßΓᡫ󬿠  »«ºó«½∩εΓ  »«½∞º«óáΓÑ½ε  óδíαáΓ∞  Γ«½∞¬«  «ñ¿¡  Γ¿»
  781.         óδαáó¡¿óá¡¿∩.
  782.  
  783.              è½áó¿Φá πßΓᡫ󬿠  ß«ºñáÑΓß∩   á¡á½«ú¿τ¡«  ñαπú¿¼  í½«¬á¼
  784.         π»αáó½Ñ¡¿∩. ô¬áª¿ΓÑ  ¬½áßß  "Button"  ó  ¬áτÑßΓóÑ ¬½áßßá «¬¡á ¿
  785.         π¬áª¿ΓÑ  Γ¿»  »«ßαÑñßΓó«¼  »áαá¼ÑΓαá  dwStyle.  ìá»α¿¼Ñα,  ¡¿ªÑ
  786.         »α¿óÑñÑ¡δ  «»ÑαáΓ«αδ,  ß«ºñáεΘ¿Ñ  ¬½áó¿Φπ  πßΓᡫ󬿠 ß ΓѬßΓ«¼
  787.         "Right":
  788.  
  789.              HWND hRightJustifyButton;
  790.              #define IDC_RIGHTJUST
  791.                 .
  792.                 .
  793.                 .
  794.              hRightJustifyButton = CreateWindow("Button", "Right",
  795.                  BS_RADIOBATTON | WS_CHILD | WS_VISIBLE,
  796.                  20, 40, 80, 20, IDC_RIGHTJUST, hInstance, NULL);
  797.  
  798.              èᬠ¿ ó  ß½πτáÑ  ß  »á¡Ñ½∞ε  ¬«¡Γα«½∩  óδ  ¼«ªÑΓÑ  »«ß½áΓ∞
  799.         ¬½áó¿ΦÑ πßΓᡫ󬿠   ß««íΘÑ¡¿Ñ   BM_SETCHECK,   τΓ«íδ   ¬½áó¿Φá
  800.         πßΓᡫ󬿠«Γ«íαế½á  »«¼ÑΓ¬π  («íδτ¡«   ºá¬αáΦÑ¡¡δ⌐   ¬α𪫬).
  801.         Æá¬ªÑ, »«ß¬«½∞¬π  ¬½áó¿Φá  πßΓᡫ󬿠 »αÑñ«ßΓáó½∩ÑΓ ó«º¼«ª¡«ßΓ∞
  802.         óδí«αá ¿º  óºá¿¼¡«  ¿ß¬½ετáεΘ¿σ  ó«º¼«ª¡«ßΓÑ⌐,  Γ«   ¡Ñ«íσ«ñ¿¼«
  803.         »«ß½áΓ∞ ß««íΘÑ¡¿Ñ BM_SETCHECK ¬½áó¿ΦÑ,  ¬«Γ«αá∩ íδ½á óδíαá¡á ñ«
  804.         φΓ«ú« (Ñß½¿ Γá¬á∩ íδ½á),  τΓ«íδ  ßíα«ß¿Γ∞  «Γ¼ÑΓ¬π.  éδ  ¼«ªÑΓÑ
  805.         «»αÑñѽ¿Γ∞, ¬á¬á∩  ¿º  ¬½áó¿Φ  πßΓᡫ󬿠íδ½á óδíαá¡á,  »«ßδ½á∩
  806.         ¬áªñ«⌐ ¬½áó¿ΦÑ ó úαπ»»Ñ ß««íΘÑ¡¿Ñ BM_GETCHECK.
  807.  
  808.              é »á¡Ñ½¿ ñ¿á½«úá óδ ¼«ªÑΓÑ  ß«ºñáΓ∞  ¬½áó¿Φπ  πßΓᡫ󬿠 ß
  809.         Γ¿»«¼ BS_AUTORADIOBUTTON.  àß½¿  óßÑ ¬½áó¿Φ¿ πßΓᡫ󬿠ó úαπ»»Ñ
  810.         ¿¼ÑεΓ φΓ«Γ Γ¿», Windows áóΓ«¼áΓ¿τÑ߬¿ πñá½¿Γ ßΓáαπε «Γ¼ÑΓ¬π »α¿
  811.         óδí«αÑ ¡«ó«ú« φ½Ñ¼Ñ¡Γá.
  812.  
  813.              ä½∩ »α«óÑન  ¿  πñá½Ñ¡¿∩  «Γ¼ÑΓ«¬  ß  ¬½áó¿Φ  πßΓᡫ󬿠ó
  814.         »á¡Ñ½¿ ñ¿á½«úá óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε CheckRadioButton.
  815.         Åα¿ ó맮óÑ   Σπ¡¬µ¿¿   CheckRadioButton   óδ    »ÑαÑñáÑΓÑ    Ñ⌐
  816.         ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ »Ñαó«⌐ ¿ »«ß½Ññ¡Ñ⌐ ¬½áó¿Φ¿ πßΓᡫ󬿠ó úαπ»»Ñ, á
  817.         ΓᬪѠ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¬½áó¿Φ¿ ó φΓ«¼  ñ¿á»áº«¡Ñ,  ¬«Γ«αá∩  ñ«½ª¡á
  818.         íδΓ∞  »«¼ÑτÑ¡á.  Windows  πñá½∩ÑΓ  «Γ¼ÑΓ¬¿  ß«  óßÑσ  ¬½áó¿Φ  ó
  819.         π¬áºá¡¡«¼ ñ¿á»áº«¡Ñ ¿  »«¼ÑτáÑΓ  ñá¡¡πε  ¬½áó¿Φπ.  ìá»α¿¼Ñα,  ó
  820.         úαπ»»Ñ ¬½áó¿Φ πßΓá¡«ó¬¿, »αÑñßΓáó½∩εΘ¿σ óδαáó¡¿óá¡¿Ñ ΓѬßΓá, óδ
  821.         ¼«ªÑΓÑ óδºóáΓ∞ Σπ¡¬µ¿ε  CheckRadioButton  ñ½∩  «Γ¼ÑΓ¬¿  ¬½áó¿Φ¿
  822.         "Right". ¥Γ« ñѽáÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
  823.  
  824.              CheckRadioButton(hDlg, ID_RIGHTLEFTJUST, ID_LEFTJUST,
  825.                               ID_RIGHTJUST);
  826.  
  827.              é φΓ«¼ »α¿¼ÑαÑ CheckRadioButton «Γ¼ÑτáÑΓ ¬½áó¿Φπ πßΓá¡«ó¬¿
  828.         ß ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ID_RIGHTJUST ¿ πñá½∩ÑΓ óßÑ «Γ¼ÑΓ¬¿ ß ¬½áó¿Φ ó
  829.  
  830.        Windows 3.0/pg/2#3                                        = 17 =
  831.  
  832.         ñ¿á»áº«¡Ñ «Γ ID_RIGHTLEFTJUST ñ« ID_LEFTJUST.
  833.  
  834.                          è½áó¿Φ¿, α¿ßπѼδÑ ó½áñѽ∞µÑ¼.
  835.  
  836.              É¿ßπѼδÑ ó½áñѽ∞µÑ¼  ¬½áó¿Φ¿  á¡á½«ú¿τ¡δ  «ßΓá½∞¡δ¼  Γ¿»á¼
  837.         ¬½áó¿Φ¡δσ í½«¬«ó   π»αáó½Ñ¡¿∩,   ºá   ¿ß¬½ετÑ¡¿Ñ¼   Γ«ú«,   τΓ«
  838.         »α¿¬½áñ¡á∩ »α«úαἼᠠ «ΓóÑτáÑΓ   ºá  »«ññÑ᪬π  ó¿ñá  ¬½áó¿Φ¿,
  839.         ó¬½ετá∩ ΓÑ ¼«¼Ñ¡Γδ,  ¬«úñá ¬½áó¿Φá ºáσóáΓδóáÑΓ  óó«ñ,  ñѽáÑΓß∩
  840.         ¡Ññ«ßΓπ»¡«⌐ ¿½¿  ¬«úñá  ÑÑ  óδí¿αáεΓ.  Windows  »α«ßΓ« ß««íΘáÑΓ
  841.         »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ,  ¬«úñá »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬¡«»¬π ¼δΦ¿,
  842.         ¬«úñá ÑÑ ¬παß«α ¡áσ«ñ¿Γß∩ ¡á φΓ«⌐ ¬½áó¿ΦÑ.
  843.  
  844.              ä½∩ ß«ºñá¡¿∩ ¬½áó¿Φ¿,  α¿ßπѼ«⌐  ó½áñѽ∞µÑ¼,  ¿ß»«½∞ºπÑΓß∩
  845.         Γ¿» BS_OWNERDRAW, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
  846.  
  847.              hMyOwnButton = CreateWindow("Button", NULL,
  848.                                    BS_OWNERDRAW | WS_CHILD | WS_VISIBLE,
  849.                                    20, 40, 30, 12, hWnd, ID_MYBUTTON,
  850.                                    hInstance, NULL);
  851.  
  852.              è«úñá ó«º¡¿¬áÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¡áα¿ß«óáΓ∞ ¬½áó¿Φπ,  Windows
  853.         »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ  WM_DRAWITEM  «¬¡π,   ¬«Γ«α«¼π   »α¿¡áñ½Ñª¿Γ
  854.         ñá¡¡δ⌐ í½«¬  π»αáó½Ñ¡¿∩.  Åáαá¼ÑΓα lParam ß««íΘÑ¡¿∩ WM_DRAWITEM
  855.         ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ ñá¡¡δσ Γ¿»á DRAWITEMSTRUCT. ¥Γá
  856.         ßΓαπ¬Γπαá ¬α«¼Ñ  óßÑú«  »α«τÑú«  ß«ñÑαª¿Γ  ¿ñÑ¡Γ¿Σ¿¬áΓ«α  í½«¬á
  857.         π»αáó½Ñ¡¿∩,   º¡áτÑ¡¿Ñ,  «»αÑñѽ∩εΘÑÑ  Γ¿»  ΓαÑíπѼ«⌐  «»Ñαᵿ¿
  858.         α¿ß«óá¡¿∩,   º¡áτÑ¡¿Ñ,    «»αÑñѽ∩εΘÑÑ    ß«ßΓ«∩¡¿Ñ    ¬½áó¿Φ¿,
  859.         »α∩¼«πú«½∞¡¿¬, ∩ó½∩εΘ¿⌐ß∩   úαá¡¿µÑ⌐   ¬½áó¿Φ¿,   ¿  ñÑß¬α¿»Γ«α
  860.         ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ñ½∩ ñá¡¡«⌐ ¬½áó¿Φ¿.
  861.  
  862.              é «ΓóÑΓ  ¡á »«½πτÑ¡¿Ñ ß««íΘÑ¡¿∩ WM_DRAWITEM óáΦá »α«úαá¼¼á
  863.         ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ñÑ⌐ßΓó¿∩:
  864.  
  865.              1. Ä»αÑñѽ¿Γ∞ Γ¿» ΓαÑíπѼ«⌐ «»Ñαᵿ¿ α¿ß«óá¡¿∩.  ä½∩ φΓ«ú«
  866.                 »α«óÑα∞ΓÑ ß«ñÑন¼«Ñ »«½∩ itemAction  ßΓαπ¬Γπαδ  ñá¡¡δσ
  867.                 DRAWITEMSTRUCT.
  868.  
  869.              2. ìáα¿ßπ⌐ΓÑ ¬½áó¿Φπ  ß««ΓóÑΓßΓóπεΘ¿¼  «íαẫ¼,  ¿ß»«½∞ºπ∩
  870.                 »α∩¼«πú«½∞¡¿¬, «úαá¡¿τ¿óáεΘ¿⌐    ¬½áó¿Φπ   ¿   ¬«¡ΓѬßΓ
  871.                 πßΓα«⌐ßΓóá, »«½πτÑ¡¡δÑ ¿º ßΓαπ¬Γπαδ DRAWITEMSTRUCT.
  872.  
  873.              3. é«ßßΓá¡«ó¿ΓÑ  «íΩѬΓδ  GDI,   óδíαá¡¡δÑ   ó   ¬«¡ΓѬßΓÑ
  874.                 πßΓα«⌐ßΓóá.
  875.  
  876.              ìá»α¿¼Ñα, ¬«úñá  ¬½áó¿Φá  ΓÑα∩ÑΓ  ºáσóáΓ  óó«ñá,   Windows
  877.         »«ßδ½áÑΓ  ó  »«½Ñ  itemAction  ßΓαπ¬Γπαδ  ñá¡¡δσ DRAWITEMSTRUCT
  878.         º¡áτÑ¡¿Ñ ODA_FOCUS,  ¡« ¡Ñ πßΓá¡áó½¿óáÑΓ í¿Γ ODS_FOCUS  ó  »«½Ñ
  879.         itemState. çáΓѼ óáΦá »α«úαá¼¼á ñ«½ª¡á ¡áα¿ß«óáΓ∞ ¬½áó¿Φπ Γᬿ¼
  880.         «íαẫ¼, τΓ«íδ »«¬áºáΓ∞, τΓ« «¡á »«ΓÑα∩½á ºáσóáΓ óó«ñá.
  881.  
  882.                                âαπ»»«óδÑ í½«¬¿.
  883.  
  884.              âαπ»»«ó«⌐ í½«¬ - φΓ« »α∩¼«πú«½∞¡¿¬,  ºá¬½ετáεΘ¿⌐  ñóÑ  ¿½¿
  885.  
  886.        Windows 3.0/pg/2#3                                        = 18 =
  887.  
  888.         í«½ÑÑ ºáó¿ß¿¼δ󠬽áó¿Φ ¿½¿ ñαπú¿σ í½«¬«ó π»αáó½Ñ¡¿∩.  éδ ¼«ªÑΓÑ
  889.         »«ß½áΓ∞ úαπ»»«ó«¼π í½«¬π ß««íΘÑ¡¿Ñ WM_SETTEXT,  τΓ«íδ »«¼ÑßΓ¿Γ∞
  890.         ó »αáóδ⌐ óÑασ¡¿⌐ πú«½ ºáú«½«ó«¬. âαπ»»«óδÑ í½«¬¿ ¡Ñ «ΓóÑτáεΓ ¡á
  891.         óó«ñ  «Γ  »«½∞º«óáΓѽ∩,  Γ.Ñ.  «¡¿  ¡Ñ  »«ßδ½áεΓ   πóÑñ«¼½∩εΘ¿σ
  892.         ß««íΘÑ¡¿⌐.
  893.                     8.4.2  êß»«½∞º«óá¡¿Ñ ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩.        
  894.  
  895.              æΓáΓ¿τÑ߬¿⌐ í½«¬  π»αáó½Ñ¡¿∩   -   φΓ«   ¡Ñí«½∞Φ«Ñ   «¬¡«,
  896.         ß«ñÑαªáΘÑÑ  ΓѬßΓ ¿½¿ ¿º«íαáªÑ¡¿Ñ.  æΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩
  897.         «íδτ¡«  ¿ß»«½∞ºπÑΓß∩  ñ½∩  »«¼ÑΓ¬¿  ¡Ñ¬«Γ«α«ú«  ñαπú«ú«   í½«¬á
  898.         π»αáó½Ñ¡¿∩  ¿½¿ ñ½∩ ß«ºñá¡¿∩ »á¡Ñ½Ñ⌐ ¿ ½¿¡¿⌐,  ¬«Γ«αδÑ «Γñѽ∩εΓ
  899.         «ñ¡π úαπ»»π í½«¬«ó π»αáó½Ñ¡¿∩ «Γ ñαπú«⌐.
  900.  
  901.              ìá¿í«½ÑÑ τáßΓ« ¿ß»«½∞ºπѼδ⌐ ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩  -
  902.         SS_LEFT.   ¥Γ«   óδαáó¡Ñ¡¡á∩   ó½Ñó«   ßΓα«¬á   ΓѬßΓá.   ÆÑ¬ßΓ
  903.         ºá»¿ßδóáÑΓß∩, ¡áτ¿¡á∩   ß   ½Ñó«ú«   ¬«¡µá   í½«¬á  π»αáó½Ñ¡¿∩,
  904.         ¿¡ñ¿µ¿απ∩ ßΓ«½∞¬« ß¿¼ó«½«ó,  ß¬«½∞¬« óσ«ñ¿Γ ó í½«¬ π»αáó½Ñ¡¿∩ ¿
  905.         «íαѺá∩   «ßΓá½∞¡«Ñ.  ä½∩  ΓѬßΓá  í½«¬  π»αáó½Ñ¡¿∩  ¿ß»«½∞ºπÑΓ
  906.         ß¿ßΓѼ¡δÑ  Φα¿ΣΓδ  Γá¬,  τΓ«  ¼«ª¡«  óδτ¿ß½¿Γ∞  αẼÑαδ   í½«¬á
  907.         π»αáó½Ñ¡¿∩, »«½πτ¿ó σáαá¬ΓÑα¿ßΓ¿¬¿ φΓ«ú« Φα¿ΣΓá (í«½ÑÑ »«ñα«í¡«
  908.         ß¼. ú½áóπ 18 "ÿα¿ΣΓδ").
  909.  
  910.              Å«ñ«í¡« úαπ»»«óδ¼  »á¡Ñ½∩¼ ßΓáΓ¿τÑ߬¿Ñ í½«¬¿ π»αáó½Ñ¡¿∩ ¡Ñ
  911.         «ΓóÑτáεΓ ¡á óó«ñ «Γ  »«½∞º«óáΓѽ∩;  Γ.Ñ.  »α¿  óδí«α¬Ñ  «¡¿  ¡Ñ
  912.         úÑ¡Ñα¿απεΓ πóÑñ«¼½∩εΘ¿σ ß««íΘÑ¡¿⌐. Äñ¡á¬« ¿¼ÑÑΓß∩ ó«º¼«ª¡«ßΓ∞ ó
  913.         ½εí«⌐  ¼«¼Ñ¡Γ  óαѼѡ¿  ¿º¼Ñ¡¿Γ∞  ó¡ÑΦ¡¿⌐  ó¿ñ  ¿  αáß»«½«ªÑ¡¿Ñ
  914.         ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩.  ìá»α¿¼Ñα, ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ΓѬßΓ,
  915.         ßó∩ºá¡¡δ⌐ ß«  ßΓáΓ¿τÑ߬¿¼ í½«¬«¼ π»αáó½Ñ¡¿∩,  ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
  916.         SetWindowText ¿½¿ ß««íΘÑ¡¿Ñ WM_SETTEXT.
  917.                               8.4.3  êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐ »ÑαÑτ¡Ñ⌐.           
  918.  
  919.              Åá¡Ñ½∞ »ÑαÑτ¡∩   -   φΓ«   í½«¬   π»αáó½Ñ¡¿∩  ñ½∩  »ÑαÑτ¡∩
  920.         ß¿¼ó«½∞¡δσ ßΓ᫬, Γᬿσ ¬á¬ ¿¼Ñ¡á Σá⌐½«ó. Äíδτ¡« »á¡Ñ½∞ »ÑαÑτ¡∩
  921.         ¿ß»«½∞ºπÑΓß∩  ñ½∩  ¿¡ñ¿µ¿α«óá¡¿∩ »ÑαÑτ¡∩ φ½Ñ¼Ñ¡Γ«ó,  ¿º ¬«Γ«αδσ
  922.         »«½∞º«óáΓѽ∞  ¼«ªÑΓ  óδíαáΓ∞  «ñ¡«   ¿½¿   ¡Ñ߬«½∞¬«.   ê¼ÑÑΓß∩
  923.         ¡Ñ߬«½∞¬«  Γ¿»«ó  »Ñ¡Ñ½Ñ⌐  »ÑαÑτ¡∩.  ìá¿í«½ÑÑ  π»«ΓαÑí¿Γѽ∞¡δ¼¿
  924.         Γ¿»á¼¿ ∩ó½∩εΓß∩:
  925.  
  926.         Æ¿»              Ä»¿ßá¡¿Ñ
  927.         ───────────────────────────────────────────────────────────────
  928.         LBS_BORDER       Åá¡Ñ½∞ »ÑαÑτ¡∩ ß «¬á¡Γ«ó¬«⌐ ó«¬απú ¡ÑÑ.
  929.  
  930.         LBS_NOTIFY       Åá¡Ñ½∞ »ÑαÑτ¡∩ »«ßδ½áÑΓ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩
  931.                          α«ñ¿Γѽ∞߬«¼π «¬¡π   »α¿    óδí«αÑ    φ½Ñ¼Ñ¡Γá
  932.                          »«½∞º«óáΓѽѼ.
  933.  
  934.         LBS_SORT         Åá¡Ñ½∞ »ÑαÑτ¡∩ ß «Γß«αΓ¿α«óá¡¡δ¼¿ ó á½Σáó¿Γ¡«¼
  935.                          »«α∩ñ¬Ñ φ½Ñ¼Ñ¡ΓἿ.
  936.  
  937.         WS_SCROLL        Åá¡Ñ½∞ »ÑαÑτ¡∩ ¿¼ÑÑΓ óÑαΓ¿¬á½∞¡πε ßΓ᫬π »α«-
  938.                          ¬απΓ¬¿.
  939.         ───────────────────────────────────────────────────────────────
  940.  
  941.        Windows 3.0/pg/2#3                                        = 19 =
  942.  
  943.  
  944.              ¥Γ¿ Γ¿»δ ó¬½ετÑ¡δ ó »á¡Ñ½∞ »ÑαÑτ¡∩  Γ¿»á  LBS_STANDART.  é
  945.         ß½ÑñπεΘѼ »α¿¼ÑαÑ ß«ºñáÑΓß∩ ßΓá¡ñáαΓ¡á∩ »á¡Ñ½∞ »ÑαÑτ¡∩:
  946.  
  947.              HWND hListBox;
  948.              #define IDC_LISTBOX 203
  949.                 .
  950.                 .
  951.                 .
  952.              hListBox = CreateWindow("Listbox", NULL,
  953.                           LBS_STANDART | WS_CHILD | WS_VISIBLE,
  954.                           20, 40, 120, 56, hWnd, IDC_LISTBOX,
  955.                           hInstance, NULL);
  956.  
  957.                       ä«íáó½Ñ¡¿Ñ ßΓ᫬¿ ¬ »á¡Ñ½¿ »ÑαÑτ¡∩.
  958.  
  959.              î«ª¡« ñ«íáó¿Γ∞   ßΓ᫬𠠠¬   »á¡Ñ½¿   »ÑαÑτ¡∩,  ¿ß»«½∞ºπ∩
  960.         ß««íΘÑ¡¿Ñ LB_ADDSTRING.  ¥Γ« ß««íΘÑ¡¿Ñ ¬«»¿απÑΓ ñá¡¡πε ßΓ᫬π ó
  961.         »á¡Ñ½∞ »ÑαÑτ¡∩,  ¬«Γ«αá∩ ¿¡ñ¿µ¿απÑΓ ÑÑ ó ß«ßΓáóÑ »ÑαÑτ¡∩.  àß½¿
  962.         »á¡Ñ½∞  »ÑαÑτ¡∩  ¿¼ÑÑΓ  Γ¿»  LBS_SORT,  ßΓα«¬á  ß«αΓ¿απÑΓß∩   ó
  963.         á½Σáó¿Γ¡«¼  »«α∩ñ¬Ñ,  ¿¡áτÑ  «¡á  »α«ßΓ«  ñ«íáó½∩ÑΓß∩  ó  ¬«¡Ñµ
  964.         ß»¿ß¬á.  é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  »«¬áºá¡«,  ¬á¬  ñ«íáó¿Γ∞
  965.         ßΓ᫬π:
  966.  
  967.              int nIndex;
  968.               .
  969.               .
  970.               .
  971.              nIndex=SendMessage(hListBox,
  972.                        LB_ADDSTRING, NULL,
  973.                        (LONG)(LPSTR) "Horseradish");
  974.  
  975.              ¥Γ« ß««íΘÑ¡¿Ñ  ó«ºóαáΘáÑΓ  µÑ½«Ñ,  »αÑñßΓáó½∩εΘÑÑ   ¿¡ñѬß
  976.         ßΓ᫬¿ ó »ÑαÑτ¡Ñ.  î«ª¡« ¿ß»«½∞º«óáΓ∞ φëà¿¡ñѬߠ󠻫߽ÑñπεΘ¿σ
  977.         ß««íΘÑ¡¿∩σ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ ßΓ᫬¿,  ¡« Γ«½∞¬«
  978.         ñ«  ΓÑσ »«α,  »«¬á »«½∞º«óáΓѽ∞ ¡Ñ ñ«íáó¿Γ,  πñá½¿Γ ¿½¿ óßΓáó¿Γ
  979.         ñαπúπε ßΓ᫬π,  Γᬠ¬á¬  φΓ¿  ñÑ⌐ßΓó¿∩  ¼«úπΓ  ¿º¼Ñ¡¿Γ∞  ¿¡ñѬß
  980.         ßΓ᫬¿.
  981.  
  982.                       ôñá½Ñ¡¿Ñ ßΓ᫬¿ ¿º »á¡Ñ½¿ »ÑαÑτ¡∩.
  983.  
  984.              î«ª¡« πñ὿Γ∞  ßΓα«¬π  ¿º  »á¡Ñ½¿ »ÑαÑτ¡∩,  ºáñáó ¿¡ñѬߠß
  985.         ß««íΘÑ¡¿Ñ¼  LB_DELETESTRING,  ¬á¬  φΓ«  ßñѽᡫ   ó   ß½ÑñπεΘѼ
  986.         »α¿¼ÑαÑ:
  987.  
  988.              SendMessage(hListBox, LB_DELETESTRING, nIndex,
  989.                           (LPSTR)NULL);
  990.  
  991.              éδ ¼«ªÑΓÑ  ñ«íáó¿Γ∞  ßΓ᫬π  ó  »á¡Ñ½∞   »ÑαÑτ¡∩,   »«ß½áó
  992.         ß««íΘÑ¡¿Ñ LB_INSERTSTRING. é «Γ½¿τ¿Ñ «Γ ß««íΘÑ¡¿∩ LP_ADDSTRING,
  993.         LB_INSERTSTRING »«ºó«½∩ÑΓ   óá¼   «»αÑñѽ¿Γ∞,  ¬πñá  ¡Ñ«íσ«ñ¿¼«
  994.         óßΓáó¿Γ∞ ßΓ᫬π  ó  »á¡Ñ½¿  »ÑαÑτ¡∩.  Åα¿  »«½πτÑ¡¿¿  ß««íΘÑ¡¿∩
  995.  
  996.        Windows 3.0/pg/2#3                                        = 20 =
  997.  
  998.         ß««íΘÑ¡¿Ñ LB_INSERTSTRING    »á¡Ñ½∞   »ÑαÑτ¡∩   ¡Ñ   »α«¿ºó«ñ¿Γ
  999.         ß«αΓ¿α«ó¬¿ φ½Ñ¼Ñ¡Γ«ó, ñáªÑ Ñß½¿ «¡á ¿¼ÑÑΓ Γ¿» LBS_SORT.
  1000.  
  1001.                    ä«íáó½Ñ¡¿Ñ ¬ »á¡Ñ½¿ »ÑαÑτ¡∩ ¿¼Ñ¡ Σá⌐½«ó.
  1002.  
  1003.              èᬠπªÑ  í佫  ß¬áºá¡«  αá¡∞ΦÑ,  τáΘÑ óßÑú« »á¡Ñ½¿ »ÑαÑτ¡∩
  1004.         ¿ß»«½∞ºπεΓß∩ ñ½∩ óδó«ñá ß»¿ß¬á ¿¼Ñ¡  Σá⌐½«ó,  ñ¿αÑ¬Γ«α¿⌐  ¿/¿½¿
  1005.         ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ñ¿ß¬«ó«ñ«ó.  æ««íΘÑ¡¿Ñ  LB_DIR  ß««íΘáÑΓ »á¡Ñ½¿
  1006.         »ÑαÑτ¡∩, τΓ«  «¡á  ñ«½ª¡á  ºá»«½¡¿Γ∞  ßÑí∩  Γᬫ⌐  ¿¡Σ«α¼áµ¿Ñ⌐.
  1007.         Åáαá¼ÑΓα wParam φΓ«ú« ß««íΘÑ¡¿∩ ß«ñÑαª¿Γ áΓα¿íπΓδ Σá⌐½«ó DOS, á
  1008.         lParam ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á  ßΓ᫬π,  ß«ñÑαªáΘπε  ß»Ñµ¿Σ¿¬áµ¿ε
  1009.         Σá⌐½á.
  1010.  
  1011.              ìá»α¿¼Ñα, τΓ«íδ  ºá»«½¡¿Γ∞  »á¡Ñ½∞  »ÑαÑτ¡∩  ¿¼Ñ¡á¼¿  óßÑσ
  1012.         Σá⌐½«ó ΓѬπΘÑ⌐ ñ¿αÑ¬Γ«α¿¿,  ¿¼ÑεΘ¿σ  αáßΦ¿αÑ¡¿Ñ  .TXT,  ¿  »½εß
  1013.         ß»¿ß¬«¼ ñ¿αÑ¬Γ«α¿⌐  ¿  ñ¿ß¬«ó«ñ«ó,  óδ ñ«½ª¡δ »«ß½áΓ∞ ß««íΘÑ¡¿Ñ
  1014.         LB_DIR, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
  1015.  
  1016.              #define FILE_LIST 4010;
  1017.                .
  1018.                .
  1019.                .
  1020.              int nFiles;
  1021.                .
  1022.                .
  1023.                .
  1024.              nFiles = SendMessage(hListBox, LB_DIR, FILE_LIST,
  1025.                                   (LPSTR)"*.TXT");
  1026.  
  1027.              é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ   »«ß½Ñ   »«ß佬¿  ß««íΘÑ¡¿∩  LB_DIR
  1028.         «»αÑñѽ∩ÑΓ  τ¿ß½«  φ½Ñ¼Ñ¡Γ«ó,  ¬«Γ«αδÑ  ß«ñÑαªáΓß∩   ó   »á¡Ñ½¿
  1029.         »ÑαÑτ¡∩.
  1030.  
  1031.              Åα¿¼Ñτá¡¿Ñ: àß½¿   »á¡Ñ½∞   »ÑαÑτ¡∩   »α¿¡áñ½Ñª¿Γ   »á¡Ñ½¿
  1032.         ñ¿á½«úá,  Γ« ñ½∩ óδ»«½¡Ñ¡¿∩ Γ«⌐ ªÑ  ºáñáτ¿  óδ  ¼«ªÑΓÑ  óδºóáΓ∞
  1033.         Σπ¡¬µ¿ε DlgDirList.
  1034.  
  1035.  
  1036.        Windows 3.0/pg/2#3                                        = 21 =
  1037.  
  1038.              Åá¡Ñ½∞ »ÑαÑτ¡∩ «ΓóÑτáÑΓ ¡á óó«ñ «Γ ¼δΦ¿ ¿ ¬½áó¿áΓπαδ. àß½¿
  1039.         »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ  ¡á  ¬¡«»¬π  ¼δΦ¿  ¿½¿  ¡áª¿¼áÑΓ  ¬½áó¿Φπ
  1040.         »α«íѽá,  ¡áσ«ñ∩ß∞  ¡á  ßΓ᫬Ñ,  »α«¿ßσ«ñ¿Γ  óδí«α¬á  ßΓ᫬¿ ¿º
  1041.         »á¡Ñ½¿ »ÑαÑτ¡∩,  ¡á τΓ«  π¬áºδóáÑΓ  ¿¡óÑαß¿∩  ΓѬßΓá  ßΓ᫬¿  ¿
  1042.         πñá½Ñ¡¿Ñ óδí«α¬¿    ß    »αÑñδñπΘÑú«    óδíαá¡¡«ú«    φ½Ñ¼Ñ¡Γá.
  1043.         Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ΓᬪѠ¡áªáΓ∞  ß¿¼ó«½∞¡πε  ¬½áó¿Φπ,  ¿  íπñÑΓ
  1044.         óδíαá¡ ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ, ¬«Γ«αδ⌐ ¡áτ¿¡áÑΓß∩ ß ñá¡¡«ú« ß¿¼ó«½á.
  1045.         àß½¿  »á¡Ñ½∞  »ÑαÑτ¡∩  ¿¼ÑÑΓ  Γ¿» LBS_NOTIFY,  «¡á ÑΘÑ »«ßδ½áÑΓ
  1046.         α«ñ¿Γѽ∞߬«¼π «¬¡π πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ  LBN_SELCHANGE.  àß½¿
  1047.         »«½∞º«óáΓѽ∞ ñóáªñδ ¡áª¼ÑΓ ¡á ¬¡«»¬π ¼δΦ¿,  ¡áσ«ñ∩ß∞ ¡á ßΓ᫬Ñ,
  1048.         ¿   «»αÑñѽѡ   Γ¿»   LBS_NOTIFY,   »á¡Ñ½∞   »ÑαÑτ¡∩   »«ßδ½áÑΓ
  1049.         α«ñ¿Γѽ∞߬«¼π «¬¡π ß««íΘÑ¡¿∩ LBN_SELCHANGE ¿ LBN_DBLCLK.
  1050.  
  1051.              é ½εí«⌐ ¼«¼Ñ¡Γ ¼«ª¡« «»αÑñѽ¿Γ∞ ¿¡ñѬߠóδí¿αáѼ«⌐  ßΓ᫬¿,
  1052.         ¿ß»«½∞ºπ∩ ß««íΘÑ¡¿∩  LB_GETCURSEL   ¿   LB_GETTEXT.   æ««íΘÑ¡¿Ñ
  1053.         LB_GETCURSEL  ó«ºóαáΘáÑΓ  ¿¡ñѬߠ óδí«α¬¿  ó »á¡Ñ½¿ »ÑαÑτ¡∩,  á
  1054.         ß««íΘÑ¡¿Ñ LB_GETTEXT ñѽáÑΓ óδí«α¬π ¿º »á¡Ñ½¿ »ÑαÑτ¡∩,  ¬«»¿απ∩
  1055.         ÑÑ ó ºáñá¡¡δ⌐ íπΣÑα.
  1056.  
  1057.  
  1058.        Windows 3.0/pg/2#3                                        = 22 =
  1059.  
  1060.  
  1061.              é Γáí½¿µÑ 8.1 »α¿ó«ñ¿Γß∩ ¿¡ΓÑαΣÑ⌐ß ¬½áó¿áΓπαδ ¿  ¼δΦ¿  ñ½∩
  1062.         ßΓá¡ñáαΓ¡«⌐ »á¡Ñ½¿ »ÑαÑτ¡∩.
  1063.  
  1064.         Æáí½¿µá 8.   ê¡ΓÑαΣÑ⌐ß   »«½∞º«óáΓѽ∩  ß«  ßΓá¡ñáαΓ¡«⌐  »á¡Ñ½∞ε
  1065.         »ÑαÑτ¡∩.
  1066.         ───────────────────────────────────────────────────────────────
  1067.         äÑ⌐ßΓó¿Ñ             ÉѺπ½∞ΓáΓ
  1068.         ───────────────────────────────────────────────────────────────
  1069.         ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿
  1070.         ───────────────────────────────────────────────────────────────
  1071.         àñ¿¡¿τ¡«Ñ ¡áªáΓ¿Ñ    éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ, ¿ πñá½∩ÑΓ óδí«α¬π ß »αÑ-
  1072.         ¬¡«»¬¿ ¼δΦ¿          ñδñπΘÑú« óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐
  1073.                              ÑßΓ∞).
  1074.  
  1075.         äó«⌐¡«Ñ ¡áªáΓ¿Ñ      Ç¡á½«ú¿τ¡« Ññ¿¡¿τ¡«¼π ¡áªáΓ¿ε.
  1076.         ¬¡«»¬¿ ¼δΦ¿
  1077.         ───────────────────────────────────────────────────────────────
  1078.         ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ
  1079.         ───────────────────────────────────────────────────────────────
  1080.         Åα«íѽ               éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ.
  1081.  
  1082.         è½áó¿Φá ßΓαѽ¬á      éδí¿αáÑΓ ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß¬Ñ ¿
  1083.         ó»αáó« ¿½¿ ó¡¿º      πñá½∩ÑΓ óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú«
  1084.                              φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
  1085.  
  1086.         è½áó¿Φá ßΓαѽ¬á      éδí¿αáÑΓ »αÑñΦÑßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß¬Ñ
  1087.         óóÑασ ¿½¿ ó½Ñó«      ¿ πñá½∩ÑΓ óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú«
  1088.                              φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
  1089.  
  1090.         è½áó¿Φá PgUp         Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
  1091.                              ó¡¿º »á¡Ñ½¿   »ÑαÑτ¡∩,   óδí¿αáÑΓ   »Ñαóδ⌐
  1092.                              ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ
  1093.                              óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú«  φ½Ñ¼Ñ¡Γá
  1094.                              (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
  1095.  
  1096.         è½áó¿Φá PgDn         Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
  1097.                              óóÑασ »á¡Ñ½¿ »ÑαÑτ¡∩, óδí¿αáÑΓ »«ß½Ññ¡¿⌐
  1098.                              ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ
  1099.                              óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú«  φ½Ñ¼Ñ¡Γá
  1100.                              (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
  1101.  
  1102.         è½áó¿Φá HOME         Å᫬απτ¿óáÑΓ »Ñαóδ⌐  φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »ÑαÑτ¡∩
  1103.                              óóÑασ »á¡Ñ½¿,  óδí¿αáÑΓ   »Ñαóδ⌐   ó¿ñ¿¼δ⌐
  1104.                              φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ óδí«α¬π
  1105.                              ß »αÑñδñπΘÑú«  óδíαá¡¡«ú«  φ½Ñ¼Ñ¡Γá  (Ñß½¿
  1106.                              Γᬫ⌐ ÑßΓ∞).
  1107.  
  1108.         è½áó¿Φá END          Å᫬απτ¿óáÑΓ »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »Ñ-
  1109.                              αÑτ¡∩ ó¡¿º  »á¡Ñ½¿,   óδí¿αáÑΓ   »«ß½Ññ¡¿⌐
  1110.                              ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ
  1111.                              óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú«  φ½Ñ¼Ñ¡Γá
  1112.                              (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
  1113.         ───────────────────────────────────────────────────────────────
  1114.  
  1115.        Windows 3.0/pg/2#3                                        = 23 =
  1116.  
  1117.  
  1118.             êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ß ¼¡«ªÑßΓóÑ¡¡«⌐ óδí«α¬«⌐.
  1119.  
  1120.              Å« π¼«½τá¡¿ε,  »á¡Ñ½∞   »ÑαÑτ¡∩   »«ºó«½∩ÑΓ   »«½∞º«óáΓѽε
  1121.         óδí¿αáΓ∞ «ñ¡«óαѼѡ¡«  Γ«½∞¬« «ñ¿¡ φ½Ñ¼Ñ¡Γ.  ùΓ«íδ »«½∞º«óáΓѽ∞
  1122.         ¼«ú óδíαáΓ∞ «ñ¡«óαѼѡ¡« ¡Ñ߬«½∞¬« φ½Ñ¼Ñ¡Γ«ó,  ß«ºñá⌐ΓÑ  »á¡Ñ½∞
  1123.         »ÑαÑτ¡∩ ß «ñ¡¿¼ ¿º ß½ÑñπεΘ¿σ Γ¿»«ó:
  1124.  
  1125.         Æ¿»                  Ä»¿ßá¡¿Ñ
  1126.         ───────────────────────────────────────────────────────────────
  1127.         LBS_MULTIPLESEL      Åá¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_MULTIPLESET
  1128.                              »«½¡«ßΓ∞ε á¡á½«ú¿τ¡á  ßΓá¡ñáαΓ¡«⌐   »á¡Ñ½¿
  1129.                              »ÑαÑτ¡∩, ºá    ¿ß¬½ετÑ¡¿Ñ¼    Γ«ú«,    τΓ«
  1130.                              »«½∞º«óáΓѽ∞ ¼«ªÑΓ  óδí¿αáΓ∞  í«½∞ΦÑ,  τѼ
  1131.                              «ñ¿¡ φ½Ñ¼Ñ¡Γ.
  1132.  
  1133.         LBS_EXTENDEDSEL      Åá¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_EXTENDEDSEL
  1134.                              »αÑñ«ßΓáó½∩ÑΓ πñ«í¡δÑ ßαÑñßΓóá ñ½∩ óδí«αá
  1135.                              ¡Ñ߬«½∞¬¿σ »«ß½Ññ«óáΓѽ∞¡δσ  φ½Ñ¼Ñ¡Γ«ó,  á
  1136.                              ΓᬪѠñ½∩ óδí«αá «Γñѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó.
  1137.         ───────────────────────────────────────────────────────────────
  1138.  
  1139.              é «ßΓáóΦÑ⌐ß∩  τáßΓ¿  ñá¡¡«ú«  αáºñѽᠠφΓ¿  Γ¿»δ »á¡Ñ½Ñ⌐ ß
  1140.         ¼¡«ªÑßΓóÑ¡¡«⌐ óδí«α¬«⌐ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
  1141.  
  1142.                     Åá¡Ñ½¿ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_MULTIPLESEL.
  1143.  
  1144.              Åá¡Ñ½∞ »ÑαÑτ¡∩,   ß«ºñá¡¡á∩   ß   Γ¿»«¼   LBS_MULTIPLESEL,
  1145.         »«½¡«ßΓ∞ε á¡á½«ú¿τ¡á ßΓá¡ñáαΓ¡«⌐ »á¡Ñ½¿ »ÑαÑτ¡∩, ºá ¿ß¬½ετÑ¡¿Ñ¼
  1146.         Γ«ú«, τΓ«  »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ ó »á¡Ñ½¿ »ÑαÑτ¡∩ í«½∞ΦÑ,
  1147.         τѼ «ñ¿¡ φ½Ñ¼Ñ¡Γ.  ìáªáΓ¿Ñ ¼δΦ¬«⌐ ¿½¿ ¬½áó¿ΦÑ⌐ »α«íѽá ó »á¡Ñ½¿
  1148.         »ÑαÑτ¡∩    »ÑαѬ½ετáÑΓ   ß«ßΓ«∩¡¿Ñ   óδí«α¬¿   φ½Ñ¼Ñ¡Γá.   àß½¿
  1149.         »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ß¿¼ó«½∞¡πε ¬½áó¿Φπ,  ¬«úñá »á¡Ñ½∞ »ÑαÑτ¡∩
  1150.         ºáσóáΓ¿½á  óó«ñ,  Γ«  ¬παß«α  »á¡Ñ½¿  »ÑαÑτ¡∩  »ÑαѼÑΘáÑΓß∩  ¡á
  1151.         ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ,  ¬«Γ«αδ⌐ ¡áτ¿¡áÑΓß∩ ß  φΓ«ú«  ß¿¼ó«½á.  ¥Γ«Γ
  1152.         φ½Ñ¼Ñ¡Γ ¡Ñ íπñÑΓ óδíαá¡ ñ« ΓÑσ »«α, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ ¡áª¼ÑΓ
  1153.         ¬½áó¿Φπ »α«íѽ.
  1154.  
  1155.  
  1156.        Windows 3.0/pg/2#3                                        = 24 =
  1157.  
  1158.  
  1159.         Æáí½¿µá 8.2 ê¡ΓÑαΣÑ⌐ß »«½∞º«óáΓѽ∩ ß »á¡Ñ½∞ε  »ÑαÑτ¡∩,  ¿¼ÑεΘÑ⌐
  1160.         Γ¿» LBS_MULTIPLESEL.
  1161.         ───────────────────────────────────────────────────────────────
  1162.         äÑ⌐ßΓó¿Ñ                                              ÉѺπ½∞ΓáΓ
  1163.         ───────────────────────────────────────────────────────────────
  1164.         ê¡ΓÑαΣÑ⌐ß            »α¿           ¿ß»«½∞º«óá¡¿¿           ¼δΦ¿
  1165.         ───────────────────────────────────────────────────────────────
  1166.         àñ¿¡¿τ¡«Ñ   ¡áªáΓ¿Ñ   ÅÑαѬ½ετáÑΓ   ß«ßΓ«∩¡¿Ñ  óδí«α¬¿,  ¡«  ¡Ñ
  1167.         ß¡¿¬¡«»¬¿ ¼δΦ¿ ¼áÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿ ß »αÑñδñπΘÑú«
  1168.                              óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
  1169.  
  1170.         äó«⌐¡«Ñ ¡áªáΓ¿Ñ      Ç¡á½«ú¿τ¡« Ññ¿¡¿τ¡«¼π ¡áªáΓ¿ε.
  1171.         ¬¡«»¬¿ ¼δΦ¿
  1172.         ───────────────────────────────────────────────────────────────
  1173.         ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ
  1174.         ───────────────────────────────────────────────────────────────
  1175.         Åα«íѽ               ÅÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿, ¡« ¡Ñ ß¡¿-
  1176.                              ¼áÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿ ß »αÑñδñπΘÑú«
  1177.                              óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
  1178.  
  1179.         è½áó¿Φá ßΓαѽ¬á      ÅÑαѼÑΘáÑΓ ¬παß«α »á¡Ñ½¿ »ÑαÑτ¡∩ ¡á
  1180.         ó»αáó« ¿½¿ ó¡¿º      ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ.
  1181.  
  1182.         è½áó¿Φá ßΓαѽ¬á      ÅÑαѼÑΘáÑΓ ¬παß«α »á¡Ñ½¿ »ÑαÑτ¡∩ ¡á
  1183.         óóÑασ ¿½¿ ó½Ñó«      »αÑñΦÑßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ.
  1184.  
  1185.         è½áó¿Φá PgUp         Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
  1186.                              ó¡¿º »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ »ÑαѼÑΘáÑΓ ¬παß«α ¡á
  1187.                              »Ñαóδ⌐ ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩.
  1188.  
  1189.         è½áó¿Φá PgDn         Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
  1190.                              óóÑασ »á¡Ñ½¿  »ÑαÑτ¡∩  ¿ »ÑαѼÑΘáÑΓ ¬παß«α
  1191.                              ¡á  »«ß½Ññ¡¿⌐  ó¿ñ¿¼δ⌐  φ½Ñ¼Ñ¡Γ  ó  »á¡Ñ½¿
  1192.                              »ÑαÑτ¡∩.
  1193.  
  1194.         è½áó¿Φá HOME         Å᫬απτ¿óáÑΓ »Ñαóδ⌐  φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »ÑαÑτ¡∩
  1195.                              óóÑασ »á¡Ñ½¿ ¿ »ÑαѼÑΘáÑΓ ¬παß«α ¡á »Ñαóδ⌐
  1196.                              ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩.
  1197.  
  1198.         è½áó¿Φá END          Å᫬απτ¿óáÑΓ »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »Ñ-
  1199.                              αÑτ¡∩ ó¡¿º »á¡Ñ½¿ ¿ »ÑαѼÑΘáÑΓ  ¬παß«α  ¡á
  1200.                              »«ß½Ññ¡¿⌐ ó¿ñ¿¼δ⌐    φ½Ñ¼Ñ¡Γ    ó   »á¡Ñ½¿
  1201.                              »ÑαÑτ¡∩.
  1202.         ───────────────────────────────────────────────────────────────
  1203.  
  1204.                     Åá¡Ñ½¿ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_EXTENDEDSEL.
  1205.  
  1206.              Åá¡Ñ½¿ »ÑαÑτ¡∩,   ß«ºñá¡¡δÑ   ß   Γ¿»«¼   LBS_EXTENDEDSEL,
  1207.         »αÑñ«ßΓáó½∩εΓ   πñ«í¡δÑ   ßαÑñßΓóá   ñ½∩   óδí«αá    ¡Ñ߬«½∞¬¿σ
  1208.         »«ß½Ññ«óáΓѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó ó »á¡Ñ½¿ »ÑαÑτ¡∩, á ΓᬪѠñ½∩ óδí«αá
  1209.         «Γñѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó.  é  Γáí½¿µÑ  8.3  »α¿óÑñÑ¡  ¿¡ΓÑαΣÑ⌐ß  »α¿
  1210.         ¿ß»«½∞º«óá¡¿¿  ¼δΦ¿  ¿  ¬½áó¿áΓπαδ  ñ½∩ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ß Γ¿»«¼
  1211.         LBS_EXTENDEDSEL.
  1212.  
  1213.        Windows 3.0/pg/2#3                                        = 25 =
  1214.  
  1215.  
  1216.         Æáí½¿µá 8.3 ê¡ΓÑαΣÑ⌐ß »«½∞º«óáΓѽ∩ ß »á¡Ñ½∞ε  »ÑαÑτ¡∩,  ¿¼ÑεΘÑ⌐
  1217.         Γ¿» LBS_EXTENDEDSEL.
  1218.         ───────────────────────────────────────────────────────────────
  1219.         äÑ⌐ßΓó¿Ñ       ÉѺπ½∞ΓáΓ               ÉѺπ½∞ΓáΓ
  1220.                       (ó䬽. αѪ¿¼ ñ«íáó½Ñ¡¿∩) (ó¬½. αѪ¿¼ ñ«íáó½Ñ¡¿∩)
  1221.         ───────────────────────────────────────────────────────────────
  1222.         ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿
  1223.         ───────────────────────────────────────────────────────────────
  1224.         àñ¿¡¿τ¡«Ñ      éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ, πñá-  èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1225.         ¡áªáΓ¿Ñ        ½∩ÑΓ óδí«α¬π ß ñαπú¿σ   αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1226.         ¬½áó¿Φ¿ ¼δΦδ   φ½Ñ¼Ñ¡Γ«ó ¿ πßΓá¡áó-    ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1227.                        ½¿óáÑΓ ¡á ¡Ñú« "∩¬«α∞"  ½Ñ¡¿∩.
  1228.                        óδí«α¬¿.
  1229.  
  1230.         SHIFT +        éδí¿αáÑΓ φ½Ñ¼Ñ¡Γδ, ¡á-  èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1231.         Ññ¿¡¿τ¡«Ñ      σ«ñ∩Θ¿Ñß∩ ¼Ñªñπ ∩¬«αѼ  αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1232.         ¡áªáΓ¿Ñ        óδí«α¬¿ ¿ ΓѬπΘ¿¼ φ½Ñ-  ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1233.         ¬½áó¿Φ¿ ¼δΦδ   ¼Ñ¡Γ«¼, ¿ πñá½∩ÑΓ óδ-   ½Ñ¡¿∩.
  1234.                        í«α¬π ß φ½Ñ¼Ñ¡Γ«ó, ¬«-
  1235.                        Γ«αδÑ ¡Ñ »«»áñáεΓ ó
  1236.                        φëàñ¿á»áº«¡.
  1237.  
  1238.         äó«⌐¡«Ñ        Ç¡á½«ú¿τ¡« Ññ¿¡¿τ¡«¼π   èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1239.         ¡áªáΓ¿Ñ        ¡áªáΓ¿ε.                αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1240.         SHIFT +        Ç¡á½«ú¿τ¡« Ññ¿¡¿τ¡«¼π   ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1241.         äó«⌐¡«Ñ        ¡áªáΓ¿ε + SHIFT.        ½Ñ¡¿∩.
  1242.         ¡áªáΓ¿Ñ
  1243.  
  1244.         CONTROL +      ÅÑαѼÑΘáÑΓ ¬παß«α óδ-   èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1245.         Ññ¿¡¿τ¡«Ñ      í«α¬¿ ¿ »ÑαѬ½ετáÑΓ     αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1246.         ¡áªáΓ¿Ñ        ß«ßΓ«∩¡¿Ñ óδí«α¬¿ ñ½∩   ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1247.         ¬½áó¿Φ¿ ¼δΦδ   óδí¿αáѼδσ φ½Ñ¼Ñ¡Γ«ó,   ½Ñ¡¿∩.
  1248.                        ¡« ¡Ñ πñá½∩ÑΓ óδí«α¬π
  1249.                        «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó.
  1250.  
  1251.         CONTROL +      ìÑ πñá½∩ÑΓ óδí«α¬π ß    èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1252.         SHIFT +        ñαπú¿σ φ½Ñ¼Ñ¡Γ«ó (ºá    αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1253.         Ññ¿¡¿τ¡«Ñ      ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ, ¬«Γ«-  ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1254.         ¡áªáΓ¿Ñ        αδÑ »«»áñáεΓ ó ñ¿á»á-   ½Ñ¡¿∩.
  1255.         ¬½áó¿Φ¿ ¼δΦδ   º«¡ ¼Ñªñπ ΓѬπΘÑ⌐ ¿
  1256.                        »«ß½Ññ¡Ñ⌐ πßΓá¡«ó¬«⌐
  1257.                        ∩¬«α∩) ¿  »ÑαѬ½ετáÑΓ
  1258.                        ß«ßΓ«∩¡¿Ñ óßÑσ φ½Ñ¼Ñ¡-
  1259.                        Γ«ó (ó Γ«ªÑ ß«ßΓ«∩¡¿Ñ,
  1260.                        τΓ« ¿ φ½Ñ¼Ñ¡Γ, ¡á ¬«Γ«-
  1261.                        α«¼ πßΓá¡«ó½Ñ¡ ∩¬«α∞)
  1262.                        «Γ ∩¬«α∩ ñ« ΓѬπΘÑú«
  1263.                        φ½Ñ¼Ñ¡Γá. ìÑ »ÑαѼÑΘáÑ∞
  1264.                        ∩¬«α∞.
  1265.  
  1266.         ÆáΘ¿Γ∞         Å«¼ÑΘáÑΓ ∩¬«α∞ óδí«α¬¿  èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1267.  
  1268.        Windows 3.0/pg/2#3                                        = 26 =
  1269.  
  1270.                        ó Γ«τ¬π, úñÑ »«½∞º«óá-  αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1271.                        Γѽ∞ ¡áªá½ ¡á ¬¡«»¬π    ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1272.                        ¼δΦ¿, óδí¿αáÑΓ φ½Ñ¼Ñ¡Γδ ½Ñ¡¿∩.
  1273.                        «Γ ∩¬«α∩ ñ« Γ«τ¬¿, ó
  1274.                        ¬«Γ«α«⌐ »«½∞º«óáΓѽ∞
  1275.                        «Γ»πßΓ¿½ ¬¡«»¬π, ¿ πñá-
  1276.                        ½∩ÑΓ óδí«α¬π ß« óßÑσ
  1277.                        «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó.
  1278.  
  1279.         SHIFT +        éδí¿αáÑΓ φ½Ñ¼Ñ¡Γδ «Γ    èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1280.         ΓáΘ¿Γ∞         ∩¬«α∩ óδí«α¬¿ ñ« φ½Ñ-   αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1281.                        ¼Ñ¡Γá, ¡á ¬«Γ«α«¼ »«½∞- ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1282.                        º«óáΓѽ∞ «Γ»πßΓ¿½ ¬¡«»- ½Ñ¡¿∩.
  1283.                        ¬π, ¿ πñá½∩ÑΓ óδí«α¬π
  1284.                        ß« óßÑσ «ßΓá½∞¡δσ
  1285.                        φ½Ñ¼Ñ¡Γ«ó. ìÑ »ÑαѼÑ-
  1286.                        ΘáÑΓ ∩¬«α∞ óδí«α¬¿.
  1287.  
  1288.         CONTROL +      Å«¼ÑΘáÑΓ ∩¬«α∞ óδí«α¬¿  èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1289.         ΓáΘ¿Γ∞         ó Γ«τ¬π, úñÑ »«½∞º«óá-  αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1290.                        Γѽ∞ ¡áªá½ ¬¡«»¬π ¼δΦ¿. ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1291.                        ìÑ πñá½∩ÑΓ óδí«α¬π ß    ½Ñ¡¿∩.
  1292.                        «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó, ¡«
  1293.                        »ÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ
  1294.                        óßÑσ φ½Ñ¼Ñ¡Γ«ó ó ß«ßΓ«-
  1295.                        ∩¡¿Ñ, ß««ΓóÑΓßΓóπεΘÑÑ
  1296.                        φ½Ñ¼Ñ¡Γπ, ¡á ¬«Γ«α«¼
  1297.                        ¡áσ«ñ¿Γß∩ ∩¬«α∞, «Γ
  1298.                        ∩¬«α∩, ñ« Γ«τ¬¿ úñÑ
  1299.                        »«½∞º«óáΓѽ∞ «Γ»πßΓ¿½
  1300.                        ¬¡«»¬π ¼δΦ¿.
  1301.  
  1302.         CONTROL +      ìÑ πñá½∩ÑΓ óδí«α¬π ß    èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
  1303.         SHIFT +        «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó     αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
  1304.         ΓáΘ¿Γ∞         (ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ,    ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
  1305.                        ¬«Γ«αδÑ óσ«ñ∩Γ ó ñ¿á»á- ½Ñ¡¿∩.
  1306.                        º«¡ óδí«α¬¿, «»αÑñѽ∩Ñ-
  1307.                        ¼δ⌐ »«ß½Ññ¡¿¼ »«½«ªÑ-
  1308.                        ¡¿Ñ¼ ∩¬«α∩), ¡« »ÑαÑ-
  1309.                        ¬½ετáÑΓ ß«ßΓ«∩¡¿Ñ óßÑσ
  1310.                        φ½Ñ¼Ñ¡Γ«ó (ó ß«ßΓ«∩¡¿Ñ,
  1311.                        ß««ΓóÑΓßóπεΘÑÑ φ½Ñ¼Ñ¡Γπ
  1312.                        ¡á ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡
  1313.                        ∩¬«α∞) «Γ ∩¬«α∩ ñ«
  1314.                        φ½Ñ¼Ñ¡Γá, ¡á ¬«Γ«α«¼
  1315.                        »«½∞º«óáΓѽ∞ «Γ»πßΓ¿½
  1316.                        ¬¡«»¬π ¼δΦ¿. ìÑ »ÑαÑ-
  1317.                        ¼ÑΘáÑΓ ∩¬«α∞.
  1318.         ───────────────────────────────────────────────────────────────
  1319.         ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ (á)
  1320.         ───────────────────────────────────────────────────────────────
  1321.         SHIFT + F8     é¬½ετáÑΓ αѪ¿¼ ñ«íáó-   é䬽ετáÑΓ αѪ¿¼ ñ«íáó-
  1322.                        ½Ñ¡¿∩. é φΓ«¼ αѪ¿¼Ñ    ½Ñ¡¿∩.
  1323.                        ¬παß«α »á¡Ñ½¿ »ÑαÑτ¡∩
  1324.                        ¼¿úáÑΓ.
  1325.  
  1326.        Windows 3.0/pg/2#3                                        = 27 =
  1327.  
  1328.  
  1329.         Åα«íѽ         éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ, πñá-  ÅÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ
  1330.                        ½∩ÑΓ óδí«α¬π ß ñαπú¿σ   φ½Ñ¼Ñ¡Γá ¿ πßΓá¡áó½¿-
  1331.                        φ½Ñ¼Ñ¡Γ«ó ¿ πßΓá¡áó-    óáÑΓ ∩¬«α∞, ¡« ¡Ñ πñá-
  1332.                        ½¿óáÑΓ ¡á ¡Ñú« "∩¬«α∞"  ½∩ÑΓ óδí«α¬π ß ñαπú¿σ
  1333.                        óδí«α¬¿.                φ½Ñ¼Ñ¡Γ«ó.
  1334.  
  1335.         SHIFT +        ôñá½∩ÑΓ óδí«α¬π ß »αÑ-  ìÑ πñá½∩ÑΓ óδí«α¬π ß
  1336.         Åα«íѽ         ñδñπΘ¿σ óδíαá¡¡δσ φ½Ñ-  «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó
  1337.                        ¼Ñ¡Γ«ó ¿ »ÑαѬ½ετáÑΓ    (ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ,
  1338.                        ß«ßΓ«∩¡¿Ñ φ½Ñ¼Ñ¡Γ«ó (ó  ¬«Γ«αδÑ óσ«ñ∩Γ ó ñ¿á»á-
  1339.                        ß««ΓóÑΓßΓ󿿠ߠ߫߫∩-   º«¡ óδí«α¬¿, «»αÑñѽ∩Ñ-
  1340.                        ¡¿Ñ¼ φ½Ñ¼Ñ¡Γá, ¡á ¬«Γ«- ¼δ⌐ »«ß½Ññ¡¿¼ »«½«ªÑ-
  1341.                        α«¼ πßΓá¡«ó½Ñ¡ ∩¬«α∞)   ¡¿Ñ¼ ∩¬«α∩), ¡« »ÑαÑ-
  1342.                        «Γ ∩¬«α∩ ñ« ΓѬπΘÑ⌐ »«- ¬½ετáÑΓ ß«ßΓ«∩¡¿Ñ óßÑσ
  1343.                        º¿µ¿¿.                  φ½Ñ¼Ñ¡Γ«ó (ó ß«ßΓ«∩¡¿Ñ,
  1344.                                                ß««ΓóÑΓßóπεΘÑÑ φ½Ñ¼Ñ¡Γπ
  1345.                                                ¡á ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡
  1346.                                                ∩¬«α∞) «Γ ∩¬«α∩ ñ«
  1347.                                                ΓѬπΘÑú« φ½Ñ¼Ñ¡Γá. ìÑ
  1348.                                                »ÑαѼÑΘáÑΓ ∩¬«α∞.
  1349.  
  1350.         è½áó¿Φ¿ ¡á»-   ÅÑαѼÑΘáεΓ ¬παß«α »á-   ÅÑαѼÑΘáεΓ ¬παß«α »á-
  1351.         αáó½Ñ¡¿∩ (í)   ¡Ñ½¿ »ÑαÑτ¡∩ ó ß««Γ-    ¡Ñ½¿ »ÑαÑτ¡∩ ó ß««Γ-
  1352.                        óÑΓßΓó¿¿ ß ¬½áó¿ΦÑ⌐,    óÑΓßΓó¿¿ ß ¬½áó¿ΦÑ⌐, ¡«
  1353.                        óδí¿αáεΓ φ½Ñ¼Ñ¡Γ »«ñ    ¡Ñ óδí¿αáεΓ φ½Ñ¼Ñ¡Γ
  1354.                        ¬παß«α«¼, »ÑαѼÑΘáεΓ    πñá½∩εΓ óδí«α¬π ß« óßÑσ
  1355.                        ¡á ¡Ñú« ∩¬«α∞ ¿ πñá-    «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó
  1356.                        ½∩εΓ óδí«α¬π ß« óßÑσ    ¿½¿ »ÑαѼÑΘáεΓ ¡á ¡Ñú«
  1357.                        «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó.    ∩¬«α∞
  1358.  
  1359.         SHIFT +        ôñá½∩ÑΓ óδí«α¬π ß« óßÑσ ìÑ πñá½∩ÑΓ óδí«α¬π ß
  1360.         è½áó¿Φ¿ ¡á»-   «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó,    «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó
  1361.         αáó½Ñ¡¿∩       »ÑαѼÑΦáÑΓ ¬παß«α ó     (ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ,
  1362.                        ß««ΓóÑΓßó¿¿ ß ¬½áó¿ΦÑ⌐  ¬«Γ«αδÑ óσ«ñ∩Γ ó ñ¿á»á-
  1363.                        ¿ »ÑαѬ½ετáÑΓ           º«¡ óδí«α¬¿, «»αÑñѽ∩Ñ-
  1364.                        ß«ßΓ«∩¡¿Ñ φ½Ñ¼Ñ¡Γ«ó (ó  ¼δ⌐ »«ß½Ññ¡¿¼ »«½«ªÑ-
  1365.                        ß««ΓóÑΓßΓ󿿠ߠ߫߫∩-   ¡¿Ñ¼ ∩¬«α∩), »ÑαѼÑΘáÑΓ
  1366.                        ¡¿Ñ¼ φ½Ñ¼Ñ¡Γá, ¡á ¬«Γ«- ¬παß«α ó ß««ΓóÑΓßΓó¿¿
  1367.                        α«¼ πßΓá¡«ó½Ñ¡ ∩¬«α∞)   ß ¬½áó¿ΦÑ⌐ ¿ »ÑαÑ-
  1368.                        «Γ ∩¬«α∩ ñ« ΓѬπΘÑ⌐ »«- ¬½ετáÑΓ ß«ßΓ«∩¡¿Ñ óßÑσ
  1369.                        º¿µ¿¿. ìÑ »ÑαѼÑΘáÑΓ    φ½Ñ¼Ñ¡Γ«ó (ó ß«ßΓ«∩¡¿Ñ,
  1370.                        ∩¬«α∞.                  ß««ΓóÑΓßóπεΘÑÑ φ½Ñ¼Ñ¡Γπ,
  1371.                                                ¡á ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡
  1372.                                                ∩¬«α∞) «Γ ∩¬«α∩ ñ«
  1373.                                                ΓѬπΘÑú« φ½Ñ¼Ñ¡Γá. ìÑ
  1374.                                                »ÑαѼÑΘáÑΓ ∩¬«α∞.
  1375.         ───────────────────────────────────────────────────────────────
  1376.  
  1377.         á) çá  ¿ß¬½ετÑ¡¿Ñ¼  SHIFT  + F8 óßÑ ¬½áó¿Φ¿ ¿ ¬«¼í¿¡áµ¿¿ ¬½áó¿Φ
  1378.         ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ¬«¼í¿¡áµ¿¿ ß CONTROL.  ìá»α¿¼Ñα, CONTROL
  1379.  
  1380.        Windows 3.0/pg/2#3                                        = 28 =
  1381.  
  1382.         +  SHIFT  +  SPACEBAR  ¿¼ÑÑΓ  Γ«  ªÑ  º¡áτÑ¡¿Ñ,  τΓ«  ¿ SHIFT +
  1383.         SPACEBAR.
  1384.  
  1385.         í) è½áó¿Φ¿ ¡á»αáó½Ñ¡¿∩ ó¬½ετáεΓ ¬½áó¿Φ¿ ß« ßΓαѽ¬á¼¿ ¿  ¬½áó¿Φ¿
  1386.         HOME, END,  PAGE  UP  ¿  PAGE DOWN.  Ä»¿ßá¡¿Ñ Γ«ú«,  ¬á¬ ¬áªñá∩
  1387.         ¬½áó¿Φá π»αáó½∩ÑΓ »ÑαѼÑΘÑ¡¿Ñ¼ ¬παß«αá,  óδ ¡á⌐ñÑΓÑ  ó  Γáí½¿µÑ
  1388.         8.2 "ê¡ΓÑαΣÑ⌐ß  »«½∞º«óáΓѽ∩  ñ½∩ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩,  ¿¼ÑεΘ¿σ Γ¿»
  1389.         LBS_MULTIPLESEL".
  1390.  
  1391.           êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐  »ÑαÑτ¡∩,  ß«ßΓ«∩Θ¿σ  ¿º   ¡Ñ߬«½∞¬¿σ
  1392.                                    ßΓ«½íµ«ó.
  1393.  
  1394.              Äíδτ¡« »á¡Ñ½¿  »ÑαÑτ¡∩  óδó«ñ∩Γ  φ½Ñ¼Ñ¡Γδ  ó «ñ¿¡ ßΓ«½íѵ.
  1395.         àß½¿ óδ  º¡áÑΓÑ,  τΓ«  »á¡Ñ½∞  »ÑαÑτ¡∩  íπñÑΓ  ß«ñÑαªáΓ∞  ¼¡«ú«
  1396.         φ½Ñ¼Ñ¡Γ«ó, Γ«   óδ   ¼«ªÑΓÑ  ß«ºñáΓ∞  »á¡Ñ½∞  »ÑαÑτ¡∩  ß  Γ¿»«¼
  1397.         LBS_MULTICOLOMN. ¥Γ«Γ Γ¿» «»αÑñѽ∩ÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩,  ó ¬«Γ«α«⌐
  1398.         φ½Ñ¼Ñ¡Γδ «Γ«íαáªáεΓß∩  ó  ¡Ñ߬«½∞¬«  ßΓ«½íµ«ó.  ¥½Ñ¼Ñ¡Γδ  Γᬫ⌐
  1399.         »á¡Ñ½¿ »ÑαÑτ¡∩ "º¼Ñ∩Γß∩" ß ¡¿ª¡Ñ⌐ τáßΓ¿ «ñ¡«⌐ ¬«½«¡¬¿ ó ñαπúπε.
  1400.         Å«  φΓ«⌐  »α¿τ¿¡Ñ  ñ½∩  Γá¬¿σ  »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ¡Ñ »αÑñπß¼«ΓαÑ¡á
  1401.         óÑαΓ¿¬á½∞¡á∩  »α«¬απΓ¬á.  Äñ¡á¬«,  Ñß½¿  »á¡Ñ½∞  »ÑαÑτ¡∩  ¼«ªÑΓ
  1402.         ß«ñÑαªáΓ∞   í«½∞ΦÑ   φ½Ñ¼Ñ¡Γ«ó,   τѼ   ¼«úπΓ  íδΓ∞  «Γ«íαáªÑ¡δ
  1403.         «ñ¡«óαѼѡ¡«, óδ ¼«ªÑΓÑ ºáñáΓ∞ Γ¿» WM_HSCROLL ñ½∩  Γ«ú«,  τΓ«íδ
  1404.         »«½∞º«óáΓѽ∞   ¼«ú  óδ»«½¡∩Γ∞  ú«α¿º«¡Γá½∞¡πε  »α«¬απΓ¬π.  ì¿ªÑ
  1405.         »α¿óÑñÑ¡  »α¿¼Ñα  ß«ºñá¡¿∩  »á¡Ñ½¿  »ÑαÑτ¡∩,  ¬«Γ«αá∩  ß«ñÑনΓ
  1406.         ¡Ñ߬«½∞¬«   ßΓ«½íµ«ó   ¿   ºá¡¿¼áÑΓ  óßε  «í½áßΓ∞  »«½∞º«óáΓѽ∩
  1407.         α«ñ¿Γѽ∞߬«ú« «¬¡á:
  1408.  
  1409.              #define IDC_MULTILISTBOX
  1410.              RECT Rect;
  1411.              HWND hMultiListBox;
  1412.                .
  1413.                .
  1414.                .
  1415.              GetClientRect(hWnd, (LPRECT) &Rect);
  1416.  
  1417.              hMultiListBox = CreateWindow("Listbox",
  1418.                   NULL,
  1419.                   WS_CHILD | WS_VISIBLE | LBS_SORT |
  1420.                   LBS_MULTICOLOMN | WS_HSCROLL | LBS_NOTIFY,
  1421.                   Rect.left,
  1422.                   Rect.top,
  1423.                   Rect.right,
  1424.                   Rect.botton,
  1425.                   hWnd,
  1426.                   IDC_MULTILISTBOX,
  1427.                   hInst,
  1428.                   NULL);
  1429.  
  1430.              é φΓ«¼  »α¿¼ÑαÑ  Σπ¡¬µ¿∩  GetClientRect  ¿ß»«½∞ºπÑΓß∩  ñ½∩
  1431.         »«½πτÑ¡¿∩ ¬««αñ¿¡áΓ  «í½áßΓ¿  »«½∞º«óáΓѽ∩  α«ñ¿Γѽ∞߬«ú« «¬¡á,
  1432.         ¬«Γ«αδÑ ºáΓѼ  »ÑαÑñáεΓß∩  Σπ¡¬µ¿¿  CreateWindow  ñ½∩ πßΓá¡«ó¬¿
  1433.         ¼ÑßΓ«»«½«ªÑ¡¿∩ ¿ αẼÑα«ó »á¡Ñ½¿ »ÑαÑτ¡∩.
  1434.  
  1435.  
  1436.        Windows 3.0/pg/2#3                                        = 29 =
  1437.  
  1438.              Åα¿¼Ñα«¼ »á¡Ñ½¿ »ÑαÑτ¡∩,  ß«ñÑαªáΘÑ⌐  ¡Ñ߬«½∞¬«  ßΓ«½íµ«ó,
  1439.         ¼«ªÑΓ ß½πª¿Γ∞ «¬¡« ñ¿αÑ¬Γ«α¿¿, ¬«Γ«α«Ñ «Γ«íαáªáÑΓ File Manager.
  1440.  
  1441.              ùΓ«íδ πßΓá¡«ó¿Γ∞ Φ¿α¿¡π ¬«½«¡¬¿  »á¡Ñ½¿  »ÑαÑτ¡∩,  ¬«Γ«αá∩
  1442.         ß«ñÑαª¿Γ ¡Ñ߬«½∞¬«   ¬«½«¡«¬,   ¼«ª¡«   »«ß½áΓ∞   Ñ⌐  ß««íΘÑ¡¿Ñ
  1443.         LB_SETCOLOMNWIGTH.
  1444.  
  1445.                     êß»«½∞º«óá¡¿Ñ α¿ßπѼδσ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩.
  1446.  
  1447.              èᬠ¿ ¬½áó¿Φ¿,  »á¡Ñ½¿ »ÑαÑτ¡∩  ¼«ª¡«  ΓᬪѠ ß«ºñáΓ∞  ¬á¬
  1448.         α¿ßπѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.  Äñ¡á¬« ó ß½πτáÑ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ óáΦá
  1449.         »α«úαἼᠫΓóÑτáÑΓ  Γ«½∞¬«  ºá  α¿ß«óá¡¿Ñ   φ½Ñ¼Ñ¡Γ«ó   »á¡Ñ½Ñ⌐
  1450.         »ÑαÑτ¡∩.
  1451.  
  1452.              ä½∩ ß«ºñá¡¿∩  α¿ßπѼδσ  »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ¼«ª¡« ¿ß»«½∞º«óáΓ∞
  1453.         «ñ¿¡ ¿º     ß½ÑñπεΘ¿σ     Γ¿»«ó:     LBS_OWNERDRAWFIXED     ¿½¿
  1454.         LBS_OWNERDRAWVARIABLE. Æ¿» LBS_OWNERDRAWFIXED «»αÑñѽ∩ÑΓ »á¡Ñ½∞
  1455.         »ÑαÑτ¡∩,  ó  ¬«Γ«α«⌐  óßÑ  α¿ßπѼδÑ  φ½Ñ¼Ñ¡Γδ  ¿¼ÑεΓ «ñ¿¡á¬«óπε
  1456.         óδß«Γπ.
  1457.  
  1458.              ä½∩ ñ«íáó½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ¬ »á¡Ñ½¿ »ÑαÑτ¡∩ »«Φ½¿ΓÑ ß««íΘÑ¡¿Ñ
  1459.         LB_ADDSTRING   ¿½¿   LB_INSERTSTRING.   Åáαá¼ÑΓα  lParam  ¼«ªÑΓ
  1460.         ß«ñÑαªáΓ∞ ½εí«Ñ 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ,  ¬«Γ«α«Ñ óδ σ«Γ¿ΓÑ ßó∩ºáΓ∞
  1461.         ß φ½Ñ¼Ñ¡Γ«¼.  àß½¿ lParam ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ßΓ᫬π,  Γ« Γ¿»
  1462.         »á¡Ñ½¿ »ÑαÑτ¡∩ LBS_HASSSTRING »«ºó«½∩ÑΓ «íαáíáΓδóáΓ∞  »á¼∩Γ∞  ¿
  1463.         π¬áºáΓѽ¿   ¡á   ßΓ᫬¿.  ¥Γ«  »«ºó«½∩ÑΓ  »α¿¬½áñ¡«⌐  »α«úαá¼¼Ñ
  1464.         ¿ß»«½∞º«óáΓ∞  ß««íΘÑ¡¿Ñ   LB_GETTEXT   ñ½∩   »«½πτÑ¡¿∩   ΓѬßΓá
  1465.         «»αÑñѽѡ¡«ú«  φ½Ñ¼Ñ¡Γá.  Ç¡á½«ú¿τ¡«,  Ñß½¿  óδ ß«ºñáÑΓÑ »á¡Ñ½∞
  1466.         »ÑαÑτ¡∩ ß  Γ¿»á¼¿  LBS_SORT  ¿½¿  LBS_HASSTRING,   Γ«   Windows
  1467.         áóΓ«¼áΓ¿τÑ߬¿ ß«αΓ¿απÑΓ φ½Ñ¼Ñ¡Γδ »á¡Ñ½¿ »ÑαÑτ¡∩.
  1468.  
  1469.              àß½¿ óδ ß«ºñáÑΓÑ »á¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_SORT,  ¡«  íѺ
  1470.         LBS_HASSTRING, Windows  ¡Ñ  ¼«ªÑΓ  «»αÑñѽ¿Γ∞ »«α∩ñ«¬ φ½Ñ¼Ñ¡Γ«ó
  1471.         ó¡πΓα¿ »á¡Ñ½¿ »ÑαÑτ¡∩.  é φΓ«¼ ß½πτáÑ »α¿ ñ«íáó½Ñ¡¿¿ φ½Ñ¼Ñ¡Γá ó
  1472.         »á¡Ñ½∞ »ÑαÑτ¡∩  (ß  »«¼«Θ∞ε  ß««íΘÑ¡¿∩  LB_ADDSTRING)   Windows
  1473.         »«ßδ½áÑΓ  «ñ¡« ¿½¿ ¡Ñ߬«½∞¬« ß««íΘÑ¡¿⌐ WM_COMPAREITEM ó½áñѽ∞µπ
  1474.         »á¡Ñ½¿ »ÑαÑτ¡∩.  é φΓ¿σ ß««íΘÑ¡¿∩σ »áαá¼ÑΓα lParam π¬áºδóáÑΓ ¡á
  1475.         ßΓαπ¬Γπαπ    ñá¡¡δσ    COMPAREITEMSTRUCT,    ¬«Γ«αá∩   ß«ñÑনΓ
  1476.         ¿¡Σ«α¼áµ¿ε,  ¿ñÑ¡Γ¿Σ¿µ¿απεΘπε ñóá φ½Ñ¼Ñ¡Γá »á¡Ñ½¿ »ÑαÑτ¡∩.  Åα¿
  1477.         ó«ºóαáΓÑ  π»αáó½Ñ¡¿∩ »«ß½Ñ «íαáí«Γ¬¿ φΓ«ú« ß««íΘÑ¡¿∩ »α¿¬½áñ¡á∩
  1478.         »α«úαá¼¼á ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ,  «»αÑñѽ∩εΘÑÑ ¬á¬«⌐ (Ñß½¿  Γᬫ⌐
  1479.         ÑßΓ∞) φ½Ñ¼Ñ¡Γ ñ«½ªÑ¡ ¡áσ«ñ¿Γ∞ß∩ óδΦÑ ñαπú«ú«.  Windows »«ßδ½áÑΓ
  1480.         φΓ¿ ß««íΘÑ¡¿∩ ñ« ΓÑσ »«α,  »«¬á  ¡Ñ  «Γß«αΓ¿απÑΓ  óßÑ  φ½Ñ¼Ñ¡Γδ
  1481.         »á¡Ñ½¿ »ÑαÑτ¡∩.
  1482.  
  1483.              Åα¿ ñ«íáó½Ñ¡¿¿  ¿½¿  óßΓáó¬Ñ  φ½Ñ¼Ñ¡Γá  ó  »á¡Ñ½∞  »ÑαÑτ¡∩
  1484.         Windows   «»αÑñѽ∩ÑΓ   αẼÑα   φ½Ñ¼Ñ¡Γá,   »«ßδ½á∩   ß««íΘÑ¡¿Ñ
  1485.         WM_MEASHUREITEM  ó½áñѽ∞µπ  »á¡Ñ½¿  »ÑαÑτ¡∩.  Windows ΓαÑíπÑΓß∩
  1486.         ¿¡Σ«α¼áµ¿∩,  ¬«Γ«αá∩ »«ºó«½¿½á íδ «ßπΘÑßΓó¿Γ∞ óºá¿¼«ñÑ⌐ßΓó¿Ñ  ß
  1487.         »«½∞º«óáΓѽѼ.   àß½¿   óδ   ß«ºñ὿  »á¡Ñ½∞  »ÑαÑτ¡∩  ß  Γ¿»«¼
  1488.         LBS_OWNERDRAWFIXED,  Γ« Windows »«ßδ½áÑΓ φΓ«  ß««íΘÑ¡¿Ñ  Γ«½∞¬«
  1489.         «ñ¿¡  αáº,  »«ß¬«½∞¬π óßÑ φ½Ñ¼Ñ¡Γδ ó »á¡Ñ½¿ »ÑαÑτ¡∩ íπñπΓ ¿¼ÑΓ∞
  1490.         «ñ¿¡á¬«óπε    óδß«Γπ.    ä½∩    »á¡Ñ½¿    »ÑαÑτ¡∩    ß    Γ¿»«¼
  1491.  
  1492.        Windows 3.0/pg/2#3                                        = 30 =
  1493.  
  1494.         LBS_OWNERDRAWVARIABLE Windows         »«ßδ½áÑΓ        ß««íΘÑ¡¿Ñ
  1495.         WM_MEASHUREITEM ñ½∩ ¬áªñ«ú« ñ«íáó½∩Ѽ«ú« φ½Ñ¼Ñ¡Γá.
  1496.  
  1497.              Åáαá¼ÑΓα lParam    ß««íΘÑ¡¿∩    WM_MEASHUREITEM   ß«ñÑনΓ
  1498.         π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ MEASHUREITEMSTRUCT. èα«¼Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
  1499.         ¿ Γ¿»á  í½«¬á  π»αáó½Ñ¡¿∩ φΓá ßΓαπ¬Γπαá ß«ñÑαª¿Γ ¡«¼Ñα φ½Ñ¼Ñ¡Γá
  1500.         »á¡Ñ½¿ »ÑαÑτ¡∩,  ¿¡«Σα¼áµ¿∩  «  ¬«Γ«α«¼ ¡Ñ«íσ«ñ¿¼á (ñ½∩ »á¡Ñ½Ñ⌐
  1501.         »ÑαÑτ¡∩, ¿¼ÑεΘ¿σ Γ¿» LBS_OWNERDRAWVARIABLE),  ¿  ¡Ñ«í∩ºáΓѽ∞¡«Ñ
  1502.         32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ,   ßó∩ºá¡¡«Ñ   ß   ñá¡¡δ¼   φ½Ñ¼Ñ¡Γ«¼.  Åα¿
  1503.         »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩ WM_MEASHUREITEM »α«úαá¼¼á ñ«½ª¡á ºá¡ÑßΓ¿  ó
  1504.         »«½Ñ  itemHeight  ßΓαπ¬Γπαδ MEASHUREITEMSTRUCT óδß«Γπ φ½Ñ¼Ñ¡Γá.
  1505.         éδß«Γá óδτ¿ß½∩ÑΓß∩  ó  óÑαΓ¿¬á½∞¡δσ  Ññ¿¡¿µáσ  »á¡Ñ½¿  ñ¿á½«úá.
  1506.         éÑαΓ¿¬á½∞¡á∩  Ññ¿¡¿µá  »á¡Ñ½¿ ñ¿á½«úá αáó¡á 1/8 íẫó«⌐ Ññ¿¡¿µδ
  1507.         »á¡Ñ½¿  ñ¿á½«úá,  ¬«Γ«αá∩  óδτ¿ß½∩ÑΓß∩  ¿º  óδß«Γδ   ß¿ßΓѼ¡«ú«
  1508.         Φα¿ΣΓá. ä½∩ «»αÑñѽѡ¿∩ óδß«Γδ íẫó«⌐ Ññ¿¡¿µδ »á¡Ñ½¿ ñ¿á½«úá ó
  1509.         »¿¬ßѽ∩σ ¼«ª¡« ó«ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿Ñ⌐ GetDialogBaseUnit.
  1510.  
  1511.              è«úñá Windows óδó«ñ¿Γ »á¡Ñ½∞ »ÑαÑτ¡∩, ¿½¿ ¬«úñá ¡Ñ«íσ«ñ¿¼«
  1512.         ¿º¼Ñ¡¿Γ∞ ó¿ñ φ½Ñ¼Ñ¡Γá ó »á¡Ñ½¿ »ÑαÑτ¡∩,  Windows »«ßδ½áÑΓ  «¬¡π
  1513.         ß««íΘÑ¡¿Ñ WM_DRAWITEM.  Åáαá¼ÑΓα  lParam  ß««íΘÑ¡¿∩ WM_DRAWITEM
  1514.         ß«ñÑαª¿Γ π¬áºáΓѽ∞  ¡á  ßΓαπ¬Γπαπ  ñá¡¡δσ  DRAWITEMSTRUCT.  ¥Γá
  1515.         ßΓαπ¬Γπαá ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε,  ¿ñÑ¡Γ¿Σ¿µ¿απεΘπε φ½Ñ¼Ñ¡Γ »á¡Ñ½¿
  1516.         »ÑαÑτ¡∩ ¿ Γ¿» ΓαÑíπѼ«⌐ «»Ñαᵿ¿.  èᬠ¿ ó  ß½πτáÑ  ß  α¿ßπѼ«⌐
  1517.         ¬½áó¿ΦÑ⌐, óáΦá   »α«úαἼᠠ ¿ß»«½∞ºπÑΓ   φΓπ   ¿¡«Σα¼áµ¿ε  ñ½∩
  1518.         α¿ß«óá¡¿∩ φ½Ñ¼Ñ¡Γá.
  1519.  
  1520.              ä½∩ πñá½Ñ¡¿∩  φ½Ñ¼Ñ¡Γá  ¿º α¿ßπѼ«⌐ »á¡Ñ½¿ »ÑαÑτ¡∩ »«Φ½¿ΓÑ
  1521.         »á¡Ñ½¿  »ÑαÑτ¡∩  ß««íΘÑ¡¿Ñ  LB_DELETESTRING.  Windows  ó   ßó«ε
  1522.         «τÑαÑñ∞   »«Φ½ÑΓ   ß««íΘÑ¡¿Ñ   WM_DELETEITEM  ó½áñѽ∞µπ  »á¡Ñ½¿
  1523.         »ÑαÑτ¡∩.  (Windows ΓᬪѠ»«ßδ½áÑΓ φΓ« ß««íΘÑ¡¿Ñ »α¿  αáºαπΦÑ¡¿¿
  1524.         »á¡Ñ½¿  »ÑαÑτ¡∩.)  Åáαá¼ÑΓα  lParam  φΓ«ú«  ß««íΘÑ¡¿∩  ß«ñÑনΓ
  1525.         π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ ñá¡¡δσ DELETEITEMSTRUCT.  ¥Γá  ßΓαπ¬Γπαá
  1526.         «»αÑñѽ∩ÑΓ  »á¡Ñ½∞  »ÑαÑτ¡∩  ¿  φ½Ñ¼Ñ¡Γ,  ¬«Γ«αδ⌐  ñ«½ªÑ¡  íδΓ∞
  1527.         πñá½Ñ¡, á ΓᬪѠ32-í¿Γ«ó«Ñ τ¿ß½«,  ßó∩ºá¡¡«Ñ ß φΓ¿¼  φ½Ñ¼Ñ¡Γ«¼.
  1528.         éáΦá »α¿¬½áñ¡á∩ »α«úαἼᠼ«ªÑΓ ¿ß»«½∞º«óáΓ∞ φΓπ ¿¡«Σα¼áµ¿ε ñ½∩
  1529.         «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿, ºá¡∩Γ«⌐ ¿¡«Σα¼áµ¿Ñ⌐ «í φΓ«¼ φ½Ñ¼Ñ¡ΓÑ.
  1530.                             8.4.4  è«¼í¿¡¿α«óá¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩.           
  1531.  
  1532.              è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬  π»αáó½Ñ¡¿∩ ß«ßΓ«¿Γ ¿º »á¡Ñ½¿ »ÑαÑτ¡∩
  1533.         ¿ ßΓáΓ¿τÑ߬«ú« ¿½¿ αÑñá¬Γ¿απѼ«ú« í½«¬á.  é ºáó¿ß¿¼«ßΓ¿ «Γ Γ¿»á
  1534.         »á¡Ñ½¿ »ÑαÑτ¡∩,  «¡á ¼«ªÑΓ  «Γ«íαáªáΓ∞ß∩  óßÑ  óαѼ∩  ¿½¿  íδΓ∞
  1535.         ß¬αδΓ«⌐ ñ«   ΓÑσ   »«α,  »«¬á  »«½∞º«óáΓѽ∞  ÑÑ  ¡Ñ  «Γ«íαếΓ.
  1536.         ê¡ΓÑαΣÑ⌐ß ß »á¡Ñ½∞ε »ÑαÑτ¡∩ ¿ αÑñá¬Γ¿απÑ¼δ¼  í½«¬«¼  π»αáó½Ñ¡¿∩
  1537.         á¡á½«ú¿τ¡δ   ßΓá¡ñáαΓ¡δ¼,   ºá   ¿ß¬½ετÑ¡¿Ñ¼  ß½πτáÑó,  ¬«Γ«αδÑ
  1538.         «»¿ßá¡δ.
  1539.  
  1540.              Æ¿» CBS_SIMPLE     ß«ºñáÑΓ    ¬«¼í¿¡¿α«óá¡¡δ⌐    í½«¬    ß
  1541.         αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ ¿ »á¡Ñ½∞ε  »ÑαÑτ¡∩,  ¬«Γ«αá∩  «Γ«íαáªáÑΓß∩
  1542.         »«ñ αÑñá¬Γ¿απÑ¼δ¼  í½«¬«¼.  è«úñá ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ ºáσóáΓ¿½
  1543.         óó«ñ, »«½∞º«óáΓѽ∞  ¼«ªÑΓ  ¡áí¿αáΓ∞   ó   αÑñá¬Γ¿απѼ«¼   í½«¬Ñ
  1544.         π»αáó½Ñ¡¿∩ ΓѬßΓ.  àß½¿  φ½Ñ¼Ñ¡Γ  ó  »á¡Ñ½¿ »ÑαÑτ¡∩ ß«ó»áñáÑΓ ß
  1545.         ΓѼ, ¬«Γ«αδ⌐ »«½∞º«óáΓѽ∞ ¡áíαá½,  Γ«  ß««ΓóÑΓßΓóπεΘ¿⌐  φ½Ñ¼Ñ¡Γ
  1546.  
  1547.        Windows 3.0/pg/2#3                                        = 31 =
  1548.  
  1549.         »α«¬απτ¿óáÑΓß∩ ó  ¡áτὫ  »á¡Ñ½¿  »ÑαÑτ¡∩.  Å«½∞º«óáΓѽ∞  ¼«ªÑΓ
  1550.         ºáΓѼ óδíαáΓ∞  φ½Ñ¼Ñ¡Γδ  ¿º »á¡Ñ½¿ »ÑαÑτ¡∩,  ¿ß»«½∞ºπ∩ ¼δΦ∞ ¿½¿
  1551.         ¬½áó¿áΓπαπ (¬½áó¿Φ¿ ßΓαѽ¬á óóÑασ ¿ ßΓαѽ¬á ó¡¿º).
  1552.  
  1553.              Æ¿» CBS_DROPDOWN    á¡á½«ú¿τÑ¡    Γ¿»π    CBS_SIMPLE,   ºá
  1554.         ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«,  τΓ« »á¡Ñ½∞ »ÑαÑτ¡∩ «Γ«íαáªáÑΓß∩ Γ«½∞¬« ó Γ«¼
  1555.         ß½πτáÑ, Ñß½¿  »«½∞º«óáΓѽ∞  óδí¿αáÑΓ  φ½Ñ¼Ñ¡Γ,   ß½ÑñπεΘ¿⌐   ºá
  1556.         αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩, ¿½¿ Ñß½¿ »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ
  1557.         ¬½áó¿Φ¿ ALT + DOWN ARROW ¿½¿ ALT + UP ARROW.  äáªÑ Ñß½¿  »á¡Ñ½∞
  1558.         »ÑαÑτ¡∩  ß¬αδΓá,  »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ φ½Ñ¼Ñ¡Γδ ó »á¡Ñ½¿
  1559.         »ÑαÑτ¡∩ ß »«¼«Θ∞ε ¬½áó¿Φ ßΓαѽ¬á óóÑασ ¿ ßΓαѽ¬á ó¡¿º.
  1560.  
  1561.              è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬  π»αáó½Ñ¡¿∩  ß Γ¿»«¼ CBS_DROPDOWNLIST
  1562.         óδú½∩ñ¿Γ á¡á½«ú¿τ¡« í½«¬π ß Γ¿»«¼ CBS_DROPDOWN,  ºá ¿ß¬½ετÑ¡¿Ñ¼
  1563.         Γ«ú«, τΓ«  ó  ¡Ñ¼  αÑñá¬Γ¿απѼδ⌐  í½«¬  π»αáó½Ñ¡¿∩  ºá¼Ñ¡Ñ¡  ¡á
  1564.         ßΓáΓ¿τÑ߬¿⌐. é¼ÑßΓ«   Γ«ú«,   τΓ«íδ    ¡áí¿αáΓ∞    φ½Ñ¼Ñ¡Γ    ó
  1565.         αÑñá¬Γ¿απѼ«¼ í½«¬Ñ,  »«½∞º«óáΓѽ∞  ¼«ªÑΓ  óδí¿αáΓ∞  φ½Ñ¼Ñ¡Γδ ó
  1566.         »á¡Ñ½¿ »ÑαÑτ¡∩,   óó«ñ∩   Γ«½∞¬«  Ñú«  »Ñαóδ⌐  ß¿¼ó«½.  è«¡Ñτ¡«
  1567.         »«½∞º«óáΓѽ∞  ¼«ªÑΓ  ¬α«¼Ñ  φΓ«ú«   ¿ß»«½∞º«óáΓ∞   ñ½∩   óδí«αá
  1568.         φ½Ñ¼Ñ¡Γ«ó ¼δΦ∞ ¿ ¬½áó¿Φ¿ ßΓαѽ¬á óóÑασ ¿ ßΓαѽ¬á ó¡¿º.
  1569.  
  1570.              éδ ¼«ªÑΓÑ ñ«íáó½∩Γ∞ ¿ πñá½∩Γ∞ φ½Ñ¼Ñ¡Γδ  ó  »á¡Ñ½¿  »ÑαÑτ¡∩
  1571.         ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á ΓѼ ªÑ »πΓѼ,  ¬á¬ ¿ ¿º  «íδτ¡«⌐  »á¡Ñ½¿
  1572.         »ÑαÑτ¡∩,  «ñ¡á¬« óδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ ß««íΘÑ¡¿∩ CB_ADDSTRING,
  1573.         CB_INSERTSTRING, CB_DIR     ¿     CB_DELETESTRING.      Windows
  1574.         »αÑñ«ßΓáó½∩ÑΓ ¬α«¼Ñ    φΓ«ú«   ñ«»«½¡¿Γѽ∞¡δÑ   ß««íΘÑ¡¿∩   ñ½∩
  1575.         »«½πτÑ¡¿∩  ß«ñÑন¼«ú«  αÑñá¬Γ¿απѼ«ú«   í½«¬á,   ßαáó¡Ñ¡¿∩   ß
  1576.         φ½Ñ¼Ñ¡ΓἿ   »á¡Ñ½¿   »ÑαÑτ¡∩   ¿   ñ½∩   αáí«Γδ  ß  ß«ñÑন¼δ¼
  1577.         αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩.
  1578.  
  1579.              æ« ¼¡«ú¿σ Γ«τѬ  ºαÑ¡¿∩  ¬«¼í¿¡¿α«óá¡¡δ⌐  í½«¬  á¡á½«ú¿τÑ¡
  1580.         »á¡Ñ½¿  »ÑαÑτ¡∩ ó Γ«¼,  ¬á¬ »«½∞º«óáΓѽ∞ ß ¡¿¼ óºá¿¼«ñÑ⌐ßΓóπÑΓ.
  1581.         éßÑ  πóÑñ«¼½∩εΘ¿Ñ  ¬«ñδ   »á¡Ñ½¿   »ÑαÑτ¡∩   ¿ß»«½∞ºπεΓß∩   ñ½∩
  1582.         ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á. èα«¼Ñ ¡¿σ Windows »«ßδ½áÑΓ πóÑñ«¼½∩εΘ¿Ñ
  1583.         ß««íΘÑ¡¿∩ ñ½∩ π¬áºá¡¿∩ ß½ÑñπεΘ¿σ ß«íδΓ¿⌐:
  1584.  
  1585.              - éδ»áñáÑΓ   »á¡Ñ½∞   »ÑαÑτ¡∩  ¿º  ¬«¼í¿¡¿α«óá¡¡«ú«  í½«¬á
  1586.                (CBN_DROPDOWN).
  1587.  
  1588.              - Å«½∞º«óáΓѽ∞ ¿º¼Ñ¡¿½  ΓѬßΓ  ó  αÑñá¬Γ¿απѼ«¼  í½«¬Ñ,  ¿
  1589.                Windows ¼«ñ¿Σ¿µ¿απÑΓ ¿º«íαáªÑ¡¿Ñ (CBN_EDITCHANGE).
  1590.  
  1591.              - Å«½∞º«óáΓѽ∞  ¿º¼Ñ¡¿½  ΓѬßΓ  ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ,  ¡«
  1592.                Windows ¡Ñ ¼«ñ¿Σ¿µ¿α«óá½á ¿º«íαáªÑ¡¿Ñ (CBN_EDITUPDATE).
  1593.  
  1594.              - è«¼í¿¡¿α«óá¡¡δ⌐    í½«¬     »«ΓÑα∩½     ºáσóáΓ     óó«ñá
  1595.                (CBN_KILLFOCUS). é  ß½πτáÑ,  Ñß½¿  ¬«¼í¿¡¿α«óá¡¡δ⌐  í½«¬
  1596.                π»αáó«Ñ¡¿∩ ¿¼ÑÑΓ Γ¿» CBS_DROPDOWN ¿½¿  CBS_DROPDOWNLIST,
  1597.                φΓ« »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« Windows πñá½∩ÑΓ ß φ¬αá¡á »á¡Ñ½∞
  1598.                »ÑαÑτ¡∩.
  1599.  
  1600.              - è«¼í¿¡¿α«óá¡¡δ⌐   í½«¬   «ßπΘÑßΓó½∩ÑΓ    ºáσóáΓ    óó«ñá
  1601.                (CBN_SETFOCUS).
  1602.  
  1603.        Windows 3.0/pg/2#3                                        = 32 =
  1604.  
  1605.  
  1606.              èᬠ¿   »á¡Ñ½∞   »ÑαÑτ¡∩,   ¬«¼í¿¡¿α«óá¡¡δ⌐   í½«¬   ¼«ªÑΓ
  1607.         ß«ºñáóáΓ∞ß∩ ß Γ¿»«¼,  «»αÑñѽ∩εΘ¿¼ »ÑαѼѡ¡πε ¿½¿ Σ¿¬ß¿α«óá¡¡πε
  1608.         óδß«Γπ α¿ßπѼδσ  φ½Ñ¼Ñ¡Γ«ó.  Äñ¡á¬«  ó  ß½πτáÑ  ¬«¼í¿¡¿α«óá¡¡δσ
  1609.         í½«¬«ó π»αáó½Ñ¡¿∩  »α«úαἼᠠ«ΓóÑτáÑΓ  ºá  óδó«ñ  φ½Ñ¼Ñ¡Γ«ó  ó
  1610.         »á¡Ñ½¿  »ÑαÑτ¡∩  ¿  ó  αÑñá¬Γ¿απѼ«¼  ¿½¿  ßΓáΓ¿τÑ߬«¼   í½«¬Ñ.
  1611.         ìá»α¿¼Ñα,  Ñß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩,
  1612.         »α«úαá¼¼á ñ½∩ »á¡Ñ½¿ »ÑαÑτ¡∩  »«½πτáÑΓ  ß««íΘÑ¡¿Ñ  WM_DRAWITEM,
  1613.         «»αÑñѽ∩εΘÑÑ, τΓ« φ½Ñ¼Ñ¡Γ ñ«½ªÑ¡ íδΓ∞ óδóÑñÑ¡ ¬á¬ óδíαá¡¡δ⌐,  ¿
  1614.         ñαπú«Ñ ß««íΘÑ¡¿Ñ (WM_DRAWITEM) ñ½∩ αÑñá¬Γ¿απѼ«ú« í½«¬á.
  1615.  
  1616.              éδ ¼«ªÑΓÑ  ΓᬪѠ π¬áºáΓ∞  ñ½∩  ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á Γ¿»
  1617.         CBS_SORT. Windows ß«αΓ¿απÑΓ φ½Ñ¼Ñ¡Γδ ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á ΓѼ
  1618.         ªÑ »πΓѼ, τΓ« ¿ α¿ßπѼδÑ »á¡Ñ½¿ »ÑαÑτ¡∩.
  1619.  
  1620.              ä½∩ ¬«¼í¿¡¿α«óá¡¡δσ    í½«¬«ó    ¡Ñ    ßπΘÑßΓóπÑΓ   Γ¿»«ó,
  1621.         »αÑñπß¼áΓα¿óáεΘ¿σ ¡Ñ߬«½∞¬« ßΓ«½íµ«ó ñ½∩ »á¡Ñ½¿ »ÑαÑτ¡∩.
  1622.                                       8.4.5  ÉÑñá¬Γ¿απѼδÑ í½«¬¿.              
  1623.  
  1624.              ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ - φΓ« »α∩¼«πú«½∞¡«Ñ ñ«τÑα¡ÑÑ
  1625.         «¬¡«,  ó ¬«Γ«α«¼ »«½∞º«óáΓѽ∞  ¼«ªÑΓ  óó«ñ¿Γ∞  ¿  αÑñá¬Γ¿α«óáΓ∞
  1626.         ΓѬßΓ. ÉÑñá¬Γ¿απѼδÑ í½«¬¿ ¿¼ÑεΓ Φ¿α«¬¿Ñ ó«º¼«ª¡«ßΓ¿, ΓᬿѠ¬á¬
  1627.         αÑñá¬Γ¿α«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ  ßΓ᫬  ¿  »α«¬απΓ¬á.  éδ  π¬áºδóáÑΓÑ
  1628.         ¡Ñ«íσ«ñ¿¼δÑ óá¼ Σπ¡¬µ¿¿ ó Γ¿»Ñ í½«¬á π»αáó½Ñ¡¿∩.
  1629.  
  1630.              Æ¿» αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩  «»αÑñѽ∩ÑΓ,  ¬á¬ «¡
  1631.         íπñÑΓ   «Γ«íαáªáΓ∞ß∩   ¿   Σπ¡¬µ¿«¡¿α«óáΓ∞.    ìá»α¿¼Ñα,    Γ¿»
  1632.         ES_MULTILINE «»αÑñѽ∩ÑΓ  αÑñá¬Γ¿απѼδ⌐  í½«¬,  ó  ¬«Γ«αδ⌐ ¼«ª¡«
  1633.         óó«ñ¿Γ∞ í«½∞ΦÑ  «ñ¡«⌐  ßΓ᫬¿  ΓѬßΓá.  Æ¿»δ  ES_AUTOHSCROLL  ¿
  1634.         ES_AUTOVSCROLL    «»αÑñѽ∩εΓ,   τΓ«   í½«¬   π»αáó½Ñ¡¿∩   íπñÑΓ
  1635.         »α«¿ºó«ñ¿Γ∞ »α«¬απΓ¬π,  Ñß½¿ »«½∞º«óáΓѽ∞ óóÑñÑΓ ΓѬßΓ, ¬«Γ«αδ⌐
  1636.         ¡Ñ íπñÑΓ »«¼ÑΘáΓ∞ß∩ ó «í½áßΓ¿ »«½∞º«óáΓѽ∩ αÑñá¬Γ¿απѼ«ú« í½«¬á
  1637.         π»αáó½Ñ¡¿∩. àß½¿ φΓ¿ Γ¿»δ  ¡Ñ  π¬áºá¡δ  ¿  »«½∞º«óáΓѽ∞  óó«ñ¿Γ
  1638.         í«½∞ΦÑ,  τѼ  ¼«ªÑΓ  »«¼ÑßΓ¿Γ∞ß∩ ó «ñ¡«⌐ ßΓ᫬Ñ,  Γ« óó«ñ íπñÑΓ
  1639.         »α«ñ«½ªÑ¡ ¡á ß½ÑñπεΘÑ⌐ ßΓ᫬Ñ,  Ñß½¿ í½«¬  π»αáó½Ñ¡¿∩  ß«ñÑনΓ
  1640.         ¡Ñ߬«½∞¬«  ßΓ᫬.  éδ  ¼«ªÑΓÑ  ¬α«¼Ñ  φΓ«ú«  ¿ß»«½∞º«óáΓ∞  Γ¿»δ
  1641.         WS_HSCROLL  ¿  (ó  ß½πτáÑ  ¼¡«ú«ßΓα«τ¡«ú«   í½«¬á   π»αáó½Ñ¡¿∩)
  1642.         WS_VSCROLL,  ¬«Γ«αδÑ  ΓᬪѠ»«ºó«½∩εΓ »«½∞º«óáΓÑ½ε »α«¬απτ¿óáΓ∞
  1643.         ΓѬßΓ ó í½«¬Ñ π»αáó½Ñ¡¿∩.
  1644.  
  1645.              éáΦá »α¿¬½áñ¡á∩ »α«úαἼᠼ«ªÑΓ ¿ß»«½∞º«óáΓ∞ αÑñá¬Γ¿απѼδ⌐
  1646.         í½«¬ π»αáó½Ñ¡¿∩ ñ½∩ óó«ñá »áα«½Ñ⌐ ¿½¿ ñαπú«ú« ßѬαÑΓ¡«ú« ΓѬßΓá
  1647.         Γᬿ¼ «íαẫ¼,  τΓ«  «¡  ¡Ñ  íπñÑΓ «Γ«íαáªáΓ∞ß∩ ¡á φ¬αá¡Ñ.  Æ¿»
  1648.         ES_PASSWORD «»αÑñѽ∩ÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬  π»αáó½Ñ¡¿∩,  ¬«Γ«αδ⌐
  1649.         ¡Ñ «Γ«íαáªáÑΓ ΓѬßΓ »α¿ óó«ñÑ Ñú« »«½∞º«óáΓѽѼ. é¼ÑßΓ« φΓ«ú« ó
  1650.         í½«¬Ñ  π»αáó½Ñ¡¿∩  «Γ«íαáªáÑΓß∩  ñ½∩ ¬áªñ«ú« ¡áíαá¡¡«ú« ß¿¼ó«½á
  1651.         ¡Ñ«í∩ºáΓѽ∞¡δ⌐ ß¿¼ó«½ (»« π¼«½τá¡¿ε ºóѺñ«τ¬á "*").  éδ  ¼«ªÑΓÑ
  1652.         ¿º¼Ñ¡¿Γ∞ φΓ«Γ ß¿¼ó«½ ß »«¼«Θ∞ε ß««íΘÑ¡¿∩ EM_SETPASSWORDCHAR.
  1653.  
  1654.              æ »«¼«Θ∞ε ß««íΘÑ¡¿∩ EM_SETTABSTOPS  óδ  ¼«ªÑΓÑ  πßΓá¡«ó¿Γ∞
  1655.         »«º¿µ¿¿ Γáíπ½∩µ¿¿    ó    ¼¡«ú«ßΓα«τ¡«¼   αÑñá¬Γ¿απѼ«¼   í½«¬Ñ
  1656.         π»αáó½½Ñ¡¿∩. ¥Γ«  ß««íΘÑ¡¿Ñ  «»αÑñѽ∩ÑΓ  τ¿ß½«  »α«íѽ«ó  ¼Ñªñπ
  1657.  
  1658.        Windows 3.0/pg/2#3                                        = 33 =
  1659.  
  1660.         ß½ÑñπεΘ¿¼¿ »«º¿µ¿∩¼¿ Γáíπ½∩µ¿¿.
  1661.  
  1662.              ÉÑñá¬Γ¿απѼδ⌐ í½«¬    π»αáó½Ñ¡¿∩   »«ßδ½áÑΓ   πóÑñ«¼½∩εΘÑÑ
  1663.         ß««íΘÑ¡¿Ñ ßó«Ñ¼π α«ñ¿Γѽ∞߬«¼π  «¬¡π.  ìá»α¿¼Ñα,  αÑñá¬Γ¿απѼδ⌐
  1664.         í½«¬    π»αáó½Ñ¡¿∩    »«ßδ½áÑΓ   ß««íΘÑ¡¿Ñ   EN_CHANGE,   ¬«úñá
  1665.         »«½∞º«óáΓѽ∞  ¿º¼Ñ¡∩ÑΓ  ΓѬßΓ.  ÉÑñá¬Γ¿απѼδ⌐  í½«¬  π»αáó½Ñ¡¿∩
  1666.         ¼«ªÑΓ   ΓᬪѠ  »«½πτáΓ∞  ß««íΘÑ¡¿∩,  ΓᬿѠ ¬á¬  EM_GETLINE  ¿
  1667.         EM_LINELENGTH. é φΓ«¼ ß½πτáÑ «¡ óδ»«½¡∩ÑΓ π¬áºá¡¡δÑ ñÑ⌐ßΓó¿∩.
  1668.  
  1669.              ÄτÑ¡∞ πñ«í¡á∩ Σπ¡¬µ¿∩ αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩  -
  1670.         φΓ« Σπ¡¬µ¿∩    «Γ¼Ñ¡á    ¿º¼Ñ¡Ñ¡¿⌐,   »α«¿ºóÑñÑ¡¡δσ   ó   í½«¬Ñ
  1671.         π»αáó½½Ñ¡¿∩. ä½∩ «»αÑñѽѡ¿∩ Γ«ú«,  ¼«ªÑΓ  ½¿  í½«¬  π»αáó½Ñ¡¿∩
  1672.         óδ»«½¡¿Γ∞ φΓπ Σπ¡¬µ¿ε,  óδ ¼«ªÑΓÑ »«ß½áΓ∞ ß««íΘÑ¡¿Ñ EM_CANUNDO.
  1673.         àß½¿ Windows  óÑα¡ÑΓ  ¡Ñ¡π½Ñó«Ñ  º¡áτÑ¡¿Ñ,  Γ«   º¡áτ¿Γ   ¼«ª¡«
  1674.         «Γ¼Ñ¡¿Γ∞ »«ß½Ññ¡ÑÑ ¿º¼Ñ¡Ñ¡¿Ñ. é φΓ«¼ ß½πτáÑ ñ½∩ óδ»«½¡Ñ¡¿∩ φΓ«⌐
  1675.         Σπ¡¬µ¿¿ óδ  ¼«ªÑΓÑ  »«ß½áΓ∞  ß««íΘÑ¡¿Ñ  EM_UNDO  αÑñá¬Γ¿απѼ«¼π
  1676.         í½«¬π π»αáó½Ñ¡¿∩.
  1677.  
  1678.              é Γáí½¿µÑ   8.4   «»¿ßá¡   »«½∞º«óáΓѽ∞߬¿⌐   ¿¡ΓÑαΣÑ⌐ß  ß
  1679.         αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩.
  1680.  
  1681.  
  1682.         Æáí½¿µá 8.4   ê¡ΓÑαΣÑ⌐ß  »«½∞º«óáΓѽ∩  ß  αÑñá¬Γ¿απÑ¼δ¼  í½«¬«¼
  1683.         π»αáó½Ñ¡¿∩.
  1684.         ───────────────────────────────────────────────────────────────
  1685.         äÑ⌐ßΓó¿Ñ             ÉѺπ½∞ΓáΓ
  1686.         ───────────────────────────────────────────────────────────────
  1687.         ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿
  1688.         ───────────────────────────────────────────────────────────────
  1689.         àñ¿¡¿τ¡«Ñ ¡áªáΓ¿Ñ    Å«º¿µ¿«¡¿απÑΓ Γ«τ¬π óó«ñá ¿ »«¼ÑΘáÑΓ ∩¬«α∞
  1690.         ¬¡«»¬¿ ¼δΦδ          óδí«α¬¿.
  1691.  
  1692.         äó«⌐¡«Ñ ¡áªáΓ¿Ñ      éδí¿αáÑΓ ß½«ó«.
  1693.         ¬¡«»¬¿ ¼δΦδ
  1694.  
  1695.         SHIFT +              Å«º¿µ¿«¡¿απÑΓ Γ«τ¬π óó«ñá ¿ αáßΦ¿α∩ÑΓ óδ-
  1696.         Ññ¿¡¿τ¡«Ñ ¡áªáΓ¿Ñ    í«α¬π «Γ "∩¬«α∩" óδí«α¬¿ ñ« Γ«τ¬¿ óó«ñá.
  1697.         ¬¡«»¬¿ ¼δΦδ
  1698.  
  1699.         ÆáΘ¿Γ∞               Å«¼ÑΘáÑΓ "∩¬«α∞" óδí«α¬¿, »ÑαѼÑΘáÑΓ Γ«τ¬π
  1700.                              óó«ñá ¿ αáßΦ¿α∩ÑΓ óδí«α¬π «Γ "∩¬«α∩" ñ«
  1701.                              Γ«τ¬¿ óó«ñá.
  1702.         ───────────────────────────────────────────────────────────────
  1703.         ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ
  1704.         ───────────────────────────────────────────────────────────────
  1705.         è½áó¿Φ¿ ¡á»αáó½Ñ¡¿∩  ôí¿αáεΓ óδí«α¬π ß ½εí«ú« ΓѬßΓá ¿ »ÑαѼÑ-
  1706.                              ΘáεΓ Γ«τ¬π óó«ñá ó ß««ΓóÑΓßΓóπεΘѼ ¡á»αáó-
  1707.                              ½Ñ¡¿¿.
  1708.  
  1709.         SHIFT +              ÅÑαѼÑΘáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ ¡Ñ
  1710.         ¬½áó¿Φ¿ ¡á»αáó½Ñ¡¿∩  πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ¿ óδ-
  1711.                              í¿αáÑΓ ΓѬßΓ ¼Ñªñπ Γ«τ¬«⌐ óó«ñá ¿ "∩¬«αѼ"
  1712.                              óδí«α¬¿.
  1713.  
  1714.        Windows 3.0/pg/2#3                                        = 34 =
  1715.  
  1716.  
  1717.         CONTROL + ßΓαѽ¬á    ÅÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ¡á ¡áτὫ ß½«óá ó
  1718.         ó½Ñó«, CONTROL +     π¬áºá¡¡«¼ ¡á»αáó½Ñ¡¿¿.
  1719.         ßΓαѽ¬á ó»αáó«
  1720.  
  1721.         SHIFT + CONTROL +    ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
  1722.         ßΓαѽ¬á ó½Ñó«,       ¡Ñ πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ¡á
  1723.         SHIFT + CONTROL +    ¡áτὫ ß½«óá ó π¬áºá¡¡«¼ ¡á»αáó½Ñ¡¿¿ ¿
  1724.         ßΓαѽ¬á ó»αáó«       óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ "∩¬«αѼ" ¿ Γ«τ¬«⌐
  1725.                              óó«ñá.
  1726.  
  1727.         HOME                 ôñá½∩ÑΓ óδí«α¬π ¿ »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá
  1728.                              ó ¡áτὫ ßΓ᫬¿.
  1729.  
  1730.         SHIFT + HOME         ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
  1731.                              ¡Ñ πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ó
  1732.                              ¡áτὫ ßΓ᫬¿ ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ
  1733.                              "∩¬«αѼ" ¿ Γ«τ¬«⌐ óó«ñá.
  1734.  
  1735.         CONTROL + HOME       Å«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »ÑαÑñ »Ñαóδ¼ ß¿¼ó«-
  1736.                              ½«¼ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ π»αáó½Ñ¡¿∩.
  1737.  
  1738.         SHIFT + CONTROL +    Å«¼ÑΘáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ ¡Ñ
  1739.         HOME                 πßΓá¡«ó½Ñ¡), »«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »ÑαÑñ
  1740.                              »Ñαóδ¼ ß¿¼ó«½«¼ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1741.                              π»αáó½Ñ¡¿∩ ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ "∩¬«-
  1742.                              αѼ" ¿ Γ«τ¬«⌐ óó«ñá.
  1743.  
  1744.         END                  ôñá½∩ÑΓ óδí«α¬π ¿ »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá
  1745.                              ó ¬«¡Ñµ ßΓ᫬¿.
  1746.  
  1747.         SHIFT + END          ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
  1748.                              ¡Ñ πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ó
  1749.                              ¬«¡Ñµ ßΓ᫬¿ ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ
  1750.                              "∩¬«αѼ" ¿ Γ«τ¬«⌐ óó«ñá.
  1751.  
  1752.         CONTROL + END        Å«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »«ß½Ñ »«ß½Ññ¡Ñú«
  1753.                              ß¿¼ó«½á ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ π»αáó½Ñ¡¿∩.
  1754.  
  1755.         SHIFT + CONTROL +    ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
  1756.         END                  ¡Ñ πßΓá¡«ó½Ñ¡), »«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »«ß½Ñ
  1757.                              »«ß½Ññ¡Ñú« ß¿¼ó«½á  ó  αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1758.                              π»αáó½Ñ¡¿∩,  ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ "∩¬«αѼ"
  1759.                              ¿ Γ«τ¬«⌐ óó«ñá.
  1760.  
  1761.         DELETE               àß½¿ ΓѬßΓ óδíαá¡, Γ« πñá½∩ÑΓ φëàΓѬßΓ.
  1762.                              àß½¿ ¡ÑΓ, Γ« πñá½∩ÑΓ ß¿¼ó«½, ß»αáóá «Γ
  1763.                              Γ«τ¬¿ óó«ñá.
  1764.  
  1765.         SHIFT + DELETE       àß½¿ ΓѬßΓ óδíαá¡, óδαѺáÑΓ Ñú« ¿ »«¼ÑΘáÑΓ
  1766.                              ó ß¿ßΓѼ¡δ⌐ íπΣÑα. ê¡áτÑ πñá½∩ÑΓ ß¿¼ó«½ »Ñ-
  1767.                              αÑñ Γ«τ¬«⌐ óó«ñá.
  1768.  
  1769.  
  1770.        Windows 3.0/pg/2#3                                        = 35 =
  1771.  
  1772.         SHIFT + INSERT       éßΓáó½∩ÑΓ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá, ¡á-
  1773.                              τ¿¡á∩ ß Γ«τ¬¿ óó«ñá.
  1774.  
  1775.         CONTROL + INSERT     è«»¿απÑΓ, ¡« ¡Ñ πñá½∩ÑΓ, óδíαá¡¡δ⌐ ΓѬßΓ
  1776.                              ó ß¿ßΓѼ¡δ⌐ íπΣÑα.
  1777.  
  1778.         PAGE UP              é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1779.                              π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ óóÑασ ¡á
  1780.                              ßΓ᫬π ¼Ñ¡∞ΦÑ, τѼ óδß«Γá í½«¬á π»αáó½Ñ-
  1781.                              ¡¿∩.
  1782.  
  1783.         CONTROL + PAGE UP    é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1784.                              π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ ó½Ñó« ¡á
  1785.                              Φ¿α¿¡π í½«¬á π»αáó½Ñ¡¿∩ ¼¿¡πß «ñ¿¡
  1786.                              ß¿¼ó«½.
  1787.  
  1788.         PAGE DOWN            é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1789.                              π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ ó¡¿º ¡á
  1790.                              ßΓ᫬π ¼Ñ¡∞ΦÑ, τѼ óδß«Γá í½«¬á π»αáó½Ñ-
  1791.                              ¡¿∩.
  1792.  
  1793.         CONTROL + PAGE DOWN  é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1794.                              π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ ó»αáó« ¡á
  1795.                              Φ¿α¿¡π í½«¬á π»αáó½Ñ¡¿∩ ¼¿¡πß «ñ¿¡
  1796.                              ß¿¼ó«½.
  1797.  
  1798.         CONTROL + ENTER      é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1799.                              π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá ºáóÑαΦáÑΓ
  1800.                              ßΓα«¬π ¿ »ÑαѼÑΘáÑΓ ¬παß«α ó ¡áτὫ ß½Ñ-
  1801.                              ñπεΘÑ⌐ ßΓ᫬¿.
  1802.  
  1803.         CONTROL + TAB        é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1804.                              π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá óßΓáó½∩ÑΓ
  1805.                              ß¿¼ó«½ Γáíπ½∩µ¿¿.
  1806.         ───────────────────────────────────────────────────────────────
  1807.  
  1808.              é ¬«¡µÑ  ñá¡¡«⌐  ú½áóδ  «»¿ßá¡  »α¿¼Ñα  EditCntl,  ¬«Γ«αδ⌐
  1809.         ¿ß»«½∞ºπÑΓ ¼¡«ú«ßΓα«τ¡δ⌐  αÑñá¬Γ¿απѼδ⌐  í½«¬  π»αáó½Ñ¡¿∩   ñ½∩
  1810.         óδ»«½¡Ñ¡¿∩ íẫóδσ Σπ¡¬µ¿⌐ »« óó«ñπ ¿ αÑñá¬Γ¿α«óá¡¿ε ΓѬßΓá.
  1811.                                         8.4.6  æΓ᫬¿ »α«¬απΓ¬¿.               
  1812.  
  1813.              æΓ᫬¿ »α«¬απΓ¬¿  - φΓ« »αÑñ«»αÑñѽѡ¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩,
  1814.         ¬«Γ«αδÑ ¼«úπΓ αáß»«½áúáΓ∞ß∩ ó ½εí«¼ ¼ÑßΓÑ «¬¡á.  Ä¡¿  »«ºó«½∩εΓ
  1815.         »«½∞º«óáΓѽε óδí¿αáΓ∞ º¡áτÑ¡¿Ñ ó ¡Ñ»αÑαδó¡«¼ ñ¿á»áº«¡Ñ.  æΓ᫬¿
  1816.         »α«¬απΓ¬¿ »«ßδ½áεΓ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ α«ñ¿Γѽ∞߬«¼π «¬¡π  ó
  1817.         ΓÑσ ß½πτá∩σ,  ¬«úñá »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ  ¬¡«»¬π  ¼δΦ¿,  ¬«úñá
  1818.         ¬παß«α ¡áσ«ñ¿Γß∩  ¡á  í½«¬Ñ π»αáó½Ñ¡¿∩ ¿½¿ »ÑαѼÑΘáÑΓ íÑúπ¡«¬ ß
  1819.         »«¼«Θ∞ε  ¬½áó¿áΓπαδ.   ¥Γ«   »«ºó«½∩ÑΓ   »α¿¬½áñ¡«⌐   »α«úαá¼¼Ñ
  1820.         «íαáíáΓδóáΓ∞  ß««íΘÑ¡¿∩  ñ½∩  Γ«ú«,  τΓ«íδ «»αÑñѽ¿Γ∞ óδíαá¡¡«Ñ
  1821.         »«½∞º«óáΓѽѼ º¡áτÑ¡¿Ñ ¿ τΓ«íδ ó ß««ΓóÑΓßΓó¿¿ ß ¡¿¼ »ÑαѼÑßΓ¿Γ∞
  1822.         íÑúπ¡«¬.
  1823.  
  1824.  
  1825.        Windows 3.0/pg/2#3                                        = 36 =
  1826.  
  1827.              ä½∩ ß«ºñá¡¿∩  ñ«τÑα¡Ñú«  «¬¡á  ßΓ᫬¿  »α«úαπΓ¬¿ óδ ¼«ªÑΓÑ
  1828.         ¿ß»«½∞º«óáΓ∞ Γ¿»δ SBS_HORZ ¿½¿ SBS_VERT. æΓα«¬á »α«¬απΓ¬¿ ¼«ªÑΓ
  1829.         ¿¼ÑΓ∞  ½εí«⌐ ¡Ñ«íσ«ñ¿¼δ⌐ αẼÑα.  àß½¿ óδ σ«Γ¿ΓÑ,  τΓ«íδ Φ¿α¿¡á
  1830.         (ñ½∩   óÑαΓ¿¬á½∞¡«⌐   ßΓ᫬¿   »α«¬απΓ¬¿)   ¿½¿   óδß«Γá   (ñ½∩
  1831.         ú«α¿º«¡Γá½∞¡«⌐ ßΓ᫬¿ »α«¬απΓ¬¿) ß««ΓóÑΓßΓó«óá½á αẼÑαá¼ «¬¡á,
  1832.         óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ  αẼÑα¡«ßΓ¿  «¬¡á,  ¬á¬
  1833.         »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
  1834.  
  1835.              hScrollBar = CreateWindow("Scrollbar", NULL
  1836.                             WS_CHILD | WS_VISIBLE | SBS_VERT,
  1837.                             20,20,
  1838.                             GetSystemMetrics(SM_CXVSCROLL),50,
  1839.                             hWnd, IDSCROLLBAR, hInst, NULL);
  1840.  
  1841.              öπ¡¬µ¿∩ GetSystemMetrics ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ SM_CXVSCROLL,
  1842.         ¬«Γ«α«Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ Φ¿α¿¡π ßΓá¡ñáαΓ¡«⌐ ßΓ᫬¿  »α«¬απΓ¬¿
  1843.         «¬¡á.
  1844.  
  1845.              æΓα«¬á »α«¬απΓ¬¿   ¡Ñ   ¿¼ÑÑΓ   ß»Ñµ¿á½∞¡δσ   πóÑñ«¼½∩εΘ¿σ
  1846.         ß««íΘÑ¡¿⌐. é¼ÑßΓ« φΓ«ú« «¡¿  »«ßδ½áεΓ  ß««íΘÑ¡¿∩  WM_HSCROLL  ¿
  1847.         WM_VSCROLL ¬á¬  ßΓ᫬¿  »«α¬απΓ¬¿  «¬¡á.  Åáαá¼ÑΓα  wParam φΓ¿σ
  1848.         ß««íΘÑ¡¿⌐  ß«ñÑαª¿Γ  º¡áτÑ¡¿Ñ,  «»αÑñѽ∩εΘÑÑ  Γ¿»   óδ»«½¡∩Ѽ«⌐
  1849.         »α«¬απΓ¬¿.  Åਪ½áñ¡á∩  »α«úαἼᠿ߻«½∞ºπÑΓ φΓπ ¿¡«Σα¼áµ¿ε ñ½∩
  1850.         «»αÑñѽѡ¿∩ ¼ÑßΓ«»«½«ªÑ¡¿∩ íÑúπ¡¬á ¿ ó ßó«¿σ ó¡πΓαÑ¡¡¿σ  µÑ½∩σ.
  1851.         Æáí½¿µá 8.5 ß«ñÑαª¿Γ ß»¿ß«¬ ó«º¼«ª¡δσ º¡áτÑ¡¿⌐ »áαá¼ÑΓαá wParam
  1852.         ¿ ñÑ⌐ßΓó¿∩ »«½∞º«óáΓѽ∩, ¬«Γ«αδÑ »α¿ó«ñ∩Γ ¬ ¿σ úÑ¡Ñαᵿ¿.
  1853.  
  1854.  
  1855.        Windows 3.0/pg/2#3                                        = 37 =
  1856.  
  1857.  
  1858.         Æáí½¿µá 8.5   Å«½∞º«óáΓѽ∞߬¿⌐ ¿¡ΓÑαΣÑ⌐ß ß« ßΓ᫬«⌐ »α«¬απΓ¬¿.
  1859.         ───────────────────────────────────────────────────────────────
  1860.         ç¡áτÑ¡¿Ñ »áαá-   îδΦ∞                  è½áó¿áΓπαá
  1861.         ¼ÑΓαá wParam
  1862.         ───────────────────────────────────────────────────────────────
  1863.         SB_LINEUP        Å«½∞º«óáΓѽ∞ ¡áª¿¼á-  Å«½∞º«óáΓѽ∞ ¡áªá½ ¡á
  1864.                          ÑΓ ¼δΦ¬«⌐ ¡á ßΓαѽ¬π  ¬½áó¿Φπ ßΓαѽ¬á ó½Ñó«
  1865.                          óóÑασ ¿½¿ ßΓαѽ¬π     ¿½¿ ßΓαѽ¬á óóÑασ.
  1866.                          ó½Ñó« ó ßΓα«¬Ñ »α«¬-
  1867.                          απΓ¬¿.
  1868.  
  1869.         SB_LINEDOWN      Å«½∞º«óáΓѽ∞ ¡áª¿¼á-  Å«½∞º«óáΓѽ∞ ¡áªá½ ¡á
  1870.                          ÑΓ ¼δΦ¬«⌐ ¡á ßΓαѽ¬π  ¬½áó¿Φπ ßΓαѽ¬á ó»αáó«
  1871.                          ó¡¿º ¿½¿ ßΓαѽ¬π      ¿½¿ ßΓαѽ¬á ó¡¿º.
  1872.                          ó»αáó« ó ßΓα«¬Ñ »α«¬-
  1873.                          απΓ¬¿.
  1874.  
  1875.         SB_PAGEUP        Å«½∞º«óáΓѽ∞ ¡áªá½    Å«½∞º«óáΓѽ∞ ¡áªá½
  1876.                          ¼δΦ¬«⌐ óδΦÑ ¿½¿ ½ÑóÑÑ PAGE UP.
  1877.                          íÑúπ¡¬á ßΓ᫬¿ »α«¬-
  1878.                          απΓ¬¿.
  1879.  
  1880.         SB_PAGEDOWN      Å«½∞º«óáΓѽ∞ ¡áªá½    Å«½∞º«óáΓѽ∞ ¡áªá½
  1881.                          ¼δΦ¬«⌐ ¡¿ªÑ ¿½¿       PAGE DOWN.
  1882.                          »αáóÑÑ íÑúπ¡¬á ßΓ᫬¿
  1883.                          »α«¬απΓ¬¿.
  1884.  
  1885.         SB_ENDSCROLL     Å«½∞º«óáΓѽ∞ ¡áªá½    ìÑΓ.
  1886.                          ¼δΦ¬«⌐ ó ½εí«¼ ¼ÑßΓÑ
  1887.                          ßΓ᫬¿ »α«¬απΓ¬¿, ºá
  1888.                          ¿ß¬½ετÑ¡¿Ñ¼ íÑúπ¡¬á.
  1889.  
  1890.         SB_THUMBTRACK    Å«½∞º«óáΓѽ∞ "ΓáΘ¿Γ"  ìÑΓ.
  1891.                          íÑúπ¡«¬.
  1892.  
  1893.         SB_THUMBPOSITION Å«½∞º«óáΓѽ∞ «Γ»πß-   ìÑΓ.
  1894.                          ¬áÑΓ íÑúπ¡«¬.
  1895.  
  1896.         SB_TOP           ìÑΓ.                  Å«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ
  1897.                                                HOME.
  1898.  
  1899.         SB_BOTTOM        ìÑΓ.                  Å«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ
  1900.                                                END.
  1901.         ───────────────────────────────────────────────────────────────
  1902.  
  1903.              Windows ¼«ªÑΓ  »«º¿µ¿«¡¿α«óáΓ∞  íÑúπ¡«¬  ßΓ᫬¿ »α«¬απΓ¬¿,
  1904.         ßó∩ºá¡¡«⌐ ß   »á¡Ñ½∞ε   »ÑαÑτ¡∩   ¿½¿   αÑñá¬Γ¿απÑ¼δ¼    í½«¬«¼
  1905.         π»αáó½Ñ¡¿∩,  ó  ß««ΓóÑΓßΓó¿¿ ß Ñú« ß«ñÑন¼δ¼.  Äñ¡á¬«,  ßΓ᫬á
  1906.         »α«¬απΓ¬¿, ∩ó½∩εΘá∩ß∩  ñ«τÑα¡¿¼  «¬¡«¼,  »αÑñßΓáó½∩ÑΓ  ñ¿á»áº«¡
  1907.         º¡áτÑ¡¿⌐,  ¬«Γ«αδÑ  ¿¼ÑεΓ  ß¼δß½  Γ«½∞¬«  ñ½∩  óáΦÑ⌐ »α«úαá¼¼δ.
  1908.         æ½Ññ«óáΓѽ∞¡«  «¡á  «ΓóÑτáÑΓ  ºá  πßΓá¡«ó¬π  ñ¿á»áº«¡á   ßΓ᫬¿
  1909.         »α«¬απΓ¬¿   ¿   ºá   »«º¿µ¿«¡¿α«óá¡¿Ñ   íÑúπ¡¬á  »«ß½Ñ  ¬áªñ«ú«
  1910.  
  1911.        Windows 3.0/pg/2#3                                        = 38 =
  1912.  
  1913.         »ÑαѼÑΘÑ¡¿∩ Ñú« »«½∞º«óáΓѽѼ.
  1914.  
  1915.              öπ¡¬µ¿∩ SetScrollRange  πßΓá¡áó½¿óáÑΓ  ñ¿á»áº«¡  º¡áτÑ¡¿⌐,
  1916.         »αÑñßΓáó½∩Ѽδσ ßΓ᫬«⌐ »α«¬απΓ¬¿.  ìá»α¿¼Ñα,  ó óáΦÑ⌐ »α«úαá¼¼Ñ
  1917.         ÑßΓ∞ ßΓα«¬á »α«¬απΓ¬¿,  ß »«¼«Θ∞ε  ¬«Γ«α«⌐  »«½∞º«óáΓѽ∞  ¼«ªÑΓ
  1918.         óδíαáΓ∞  ñÑ¡∞  ¼Ñß∩µá.  é φΓ«¼ ß½πτáÑ ñ¿á»áº«¡ ßΓ᫬¿ »α«¬απΓ¬¿
  1919.         ñ½∩ ƒ¡óáα∩ ¼«ªÑΓ íδΓ∞ πßΓá¡«ó½Ñ¡ ß½ÑñπεΘ¿¼ «íαẫ¼:
  1920.  
  1921.              SetScrollRange(hScrollBar, SB_CTL, 1, 31, 1);
  1922.  
  1923.              é ñá¡¡«¼ »α¿¼ÑαÑ ¬«¡ßΓá¡Γá SB_CTL  ß««íΘáÑΓ  Windows,  τΓ«
  1924.         ßΓα«¬á »α«¬απΓ¬¿   ∩ó½∩ÑΓß∩  «Γñѽ∞¡δ¼  í½«¬«¼  π»αáó½Ñ¡¿∩,  ¡Ñ
  1925.         ßó∩ºá¡¡δ¼ ß «¬¡«¼.  ÆαÑΓ¿⌐  ¿  τÑΓóÑαΓδ⌐  »áαá¼ÑΓαδ  «»αÑñѽ∩εΓ
  1926.         ñ¿á»áº«¡,  á  »∩Γδ⌐  »áαá¼ÑΓα  (αáó¡δ⌐  1)  ºáßΓáó½∩ÑΓ  Windows
  1927.         »ÑαÑα¿ß«óáΓ∞ ßΓ᫬π »α«¬απΓ¬¿ ñ½∩ «Γ«íαáªÑ¡¿∩ ¡«ó«ú« ñ¿á»áº«¡á.
  1928.  
  1929.              äáªÑ »«ß½Ñ  Γ«ú«,  ¬á¬  óδ  «»αÑñѽ¿½¿   ñ¿á»áº«¡   ßΓ᫬¿
  1930.         »α«¬απΓ¬¿, Windows    ¡Ñ    ¼«ªÑΓ   πßΓá¡áó½¿óáΓ∞   íÑúπ¡«¬   ó
  1931.         ß««ΓóÑΓßΓó¿¿ ß ñÑ⌐ßΓó¿∩¼¿ »«½∞º«óáΓѽ∩,  φΓ« «ßΓáÑΓß∩ ¡á  óáΦÑ⌐
  1932.         »α«úαá¼¼Ñ. è«úñá  óáΦá  »α«úαἼᠠ»«½πτáÑΓ «Γ ßΓ᫬¿ »α«¬απΓ¬¿
  1933.         ß««íΘÑ¡¿∩ WM_HSCROLL  ¿½¿  WM_VSCROLL,  óδ   ñ«½ª¡δ   »α«óÑα¿Γ∞
  1934.         »áαá¼ÑΓα wParam   ñ½∩   «»αÑñѽѡ¿∩   Γ«ú«,   ¡á߬«½∞¬«  ñá½Ñ¬«
  1935.         »«½∞º«óáΓѽ∞ »ÑαѼÑßΓ¿½  íÑúπ¡«¬.  Å«ß½Ñ  φΓ«ú«  óδ   óδºδóáÑΓÑ
  1936.         Σπ¡¬µ¿ε SetScrollPos ñ½∩ »«º¿µ¿«¡¿α«óá¡¿∩ íÑúπ¡¬á. Æá¬ ªÑ, Ñß½¿
  1937.         »«½∞º«óáΓѽ∞ ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞  »«½«ªÑ¡¿Ñ  íÑúπ¡¬á,  ¡Ñ  ¿ß»«½∞ºπ∩
  1938.         ßΓ᫬π »α«¬απΓ¬¿ (¡á»α¿¼Ñα, ¡áí¿αá∩ ΓѬßΓ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
  1939.         π»αáó½Ñ¡¿∩),  óáΦá  »α«úαἼᠠñ«½ª¡á  »ÑαÑπßΓá¡«ó¿Γ∞   »«º¿µ¿ε
  1940.         íÑúπ¡¬á ó ß««ΓóÑΓßΓó¿¿ ß ¡«óδ¼ º¡áτÑ¡¿Ñ¼.
  1941.                             8.5  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl          
  1942.  
  1943.              ¥Γá »α¿¬½áñ¡á∩    »α«úαἼᠠ  ¿½½εßΓα¿απÑΓ,   ¬á¬   ¼«ª¡«
  1944.         ¿ß»«½∞º«óáΓ∞ αÑñá¬Γ¿απѼδ⌐  í½«¬  π»αáó½Ñ¡¿∩  ó  «ß¡«ó¡«¼  «¬¡Ñ
  1945.         »α¿¬½áñ¡«⌐   »α«úαá¼¼δ   ñ½∩   Γ«ú«,   τΓ«íδ   «íÑß»Ñτ¿Γ∞  óó«ñ
  1946.         ¼¡«ú«ßΓα«τ¡«ú«  ΓѬßΓá   ¿   Ñú«   αÑñá¬Γ¿α«óá¡¿Ñ.   Åਪ½áñ¡á∩
  1947.         »α«úαἼᠠEditCntl  ºá»«½¡∩ÑΓ  «í½áßΓ∞  »«½∞º«óáΓѽ∩ «ß¡«ó¡«ú«
  1948.         «¬¡á ¼¡«ú«ßΓα«τ¡δ¼ αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩ ¿  π»αáó½∩ÑΓ
  1949.         αẼÑαἿ  «í½áßΓ¿ »«½∞º«óáΓѽ∩ ñ½∩ πóÑαÑ¡¡«ßΓ¿ ó »αáó¿½∞¡«¼ ÑÑ
  1950.         ºá»«½¡Ñ¡¿¿. Äß¡«ó¡«Ñ  «¬¡«  »α«úαá¼¼δ  EditCntl  »α¿óÑñÑ¡«   ¡á
  1951.         α¿ßπ¡¬Ñ 8.1.
  1952.  
  1953.              É¿ßπ¡«¬ 8.1  Ä¬¡« »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl.
  1954.              1. éß∩ «í½áßΓ∞ »«½∞º«óáΓѽ∩ «¬¡á »αÑñßΓáó½∩ÑΓ  ß«í«⌐  «ñ¿¡
  1955.                 í½«¬ π»αáó½Ñ¡¿∩.
  1956.  
  1957.              ä½∩ ß«ºñá¡¿∩    »α¿¬½áñ¡«⌐    »α«úαá¼¼δ    ß¬«»¿απ⌐ΓÑ    ¿
  1958.         »ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿ßσ«ñ¡δÑ Σá⌐½δ  ÅÅ  EditMenu,  á  ºáΓѼ  óδ»«½¡¿ΓÑ
  1959.         ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
  1960.  
  1961.              1. ä«íáó∞ΓÑ ¡«óπε ¬«¡ßΓá¡Γπ ó« ó¬½ετáѼδ⌐  Σá⌐½.
  1962.  
  1963.              2. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ.
  1964.  
  1965.  
  1966.        Windows 3.0/pg/2#3                                        = 39 =
  1967.  
  1968.              3. ä«íáó∞ΓÑ Σπ¡¬µ¿ε CreateWindow.
  1969.  
  1970.              4. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σαáú¼Ñ¡Γ WM_COMMAND.
  1971.  
  1972.              5. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_SETFOCUS.
  1973.  
  1974.              6. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_SIZE.
  1975.  
  1976.              7. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
  1977.  
  1978.              Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
  1979.         ó  ß½ÑñπεΘ¿σ  αáºñѽáσ,  ó«º¼«ª¡«  óá¼  íπñÑΓ  πñ«í¡ÑÑ   »α«ßΓ«
  1980.         »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
  1981.                                                                                
  1982.                8.5.1  ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
  1983.  
  1984.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞      ¬«¡ßΓá¡Γπ,      ¬«Γ«αá∩     íπñÑΓ
  1985.         ¿ß»«½∞º«óáΓ∞ß∩ ó ¬áτÑßΓóÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá  αÑñá¬Γ¿απѼ«ú«  í½«¬á
  1986.         π»αáó½Ñ¡¿∩ ó« ó¬½ετáѼδ⌐ Σá⌐½. ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α:
  1987.  
  1988.              #define     ID_EDIT      300
  1989.                                                                                
  1990.                      8.5.2  ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.
  1991.  
  1992.              ìÑ«íσ«ñ¿¼« ¿¼ÑΓ∞   ú½«íá½∞¡πε   »ÑαѼѡ¡πε   ñ½∩  σαá¡Ñ¡¿∩
  1993.         ñÑß¬α¿»Γ«αá  «¬¡á  αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩.  ä«íáó∞ΓÑ
  1994.         ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ó ¡áτὫ ¿ßσ«ñ¡«ú« æ-Σá⌐½á:
  1995.  
  1996.              HWND hEditWnd;     /* ñÑß¬α¿»Γ«α αÑñá¬Γ¿απѼ«ú« «¬¡á */
  1997.  
  1998.              èα«¼Ñ Γ«ú«,   ¡Ñ«íσ«ñ¿¼«   ¿¼ÑΓ∞  ½«¬á½∞¡πε  »ÑαѼѡ¡πε  ó
  1999.         Σπ¡¬µ¿¿ WinMain ñ½∩ σαá¡Ñ¡¿∩  ¬««αñ¿¡áΓ  »α∩¼«πú«½∞¡«⌐  «í½áßΓ¿
  2000.         »«½∞º«óáΓѽ∩.   ¥Γ¿  ¬««αñ¿¡áΓδ  ¿ß»«½∞ºπεΓß∩  ñ½∩  «»αÑñѽѡ¿∩
  2001.         αẼÑαá í½«¬á π»αáó½Ñ¡¿∩.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ó ¡áτὫ
  2002.         Σπ¡¬µ¿¿ WinMain:
  2003.  
  2004.              RECT Rect;
  2005.                              8.5.3  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ CreateWindow.           
  2006.  
  2007.              ìÑ«íσ«ñ¿¼« ß«ºñáΓ∞    αÑñá¬Γ¿απѼδ⌐    í½«¬    π»αáó½Ñ¡¿∩,
  2008.         ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε CreateWindow;  ¡« »ÑαÑñ φΓ¿¼  ¡πª¡«  »«½πτ¿Γ∞
  2009.         αẼÑαδ  «í½áßΓ¿  »«½∞º«óáΓѽ∩,  τΓ«íδ  ¼«ª¡«  í佫  πßΓá¡«ó¿Γ∞
  2010.         αẼÑαδ  í½«¬á  π»αáó½Ñ¡¿∩.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ   ¬
  2011.         Σπ¡¬µ¿¿ WinMain ßαáºπ »«ß½Ñ ß«ºñá¡¿∩ «ß¡«ó¡«ú« «¬¡á:
  2012.  
  2013.              GetClientRect(hWnd, (LPRECT) &Rect);
  2014.              hEditWnd = CreateWindow("Edit",
  2015.                  NULL,
  2016.                  WS_CHILD | WS_VISIBLE |
  2017.                  ES_MULTILINE |
  2018.                  WS_VSCROLL | WS_HSCROLL |
  2019.                  ES_AUTOHSCROLL | ES_AUTOVSCROLL,
  2020.  
  2021.        Windows 3.0/pg/2#3                                        = 40 =
  2022.  
  2023.                  0,
  2024.                  0,
  2025.                  (Rect.right-Rect.left),
  2026.                  (Rect.bottom-Rect.top),
  2027.                  hWnd,
  2028.                  ID_EDIT,
  2029.                  hInst,
  2030.                  NULL);
  2031.  
  2032.              if (!hEditWnd) {
  2033.                 DestroyWindow(hWnd);
  2034.                 return (NULL);
  2035.              }
  2036.  
  2037.              öπ¡¬µ¿∩ GetClientRect     »«½πτáÑΓ     αẼÑαδ     «í½áßΓ¿
  2038.         »«½∞º«óáΓѽ∩   «ß¡«ó¡«ú«  «¬¡á  ¿  »«¼ÑΘáÑΓ  φΓπ  ¿¡Σ«α¼áµ¿ε  ó
  2039.         ßΓαπ¬Γπαπ Rect. öπ¡¬µ¿∩ CreateWindow ß«ºñáÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬
  2040.         π»αáó½Ñ¡¿∩,  ¿ß»«½∞ºπ∩ Φ¿α¿¡π ¿ óδß«Γπ,  óδτ¿ß½Ñ¡¡πε »α¿ »«¼«Θ¿
  2041.         φΓ«⌐ ßΓαπ¬Γπαδ.
  2042.  
  2043.              öπ¡¬µ¿∩ CreateWindow  ß«ºñáÑΓ  αÑñá¬Γ¿απѼ«Ñ   «¬¡«.   ä½∩
  2044.         ß«ºñá¡¿∩    αÑñá¬Γ¿απѼ«ú«    í½«¬á    π»αáó½Ñ¡¿∩    ¡Ñ«íσ«ñ¿¼«
  2045.         ¿ß»«½∞º«óáΓ∞  óßΓα«Ñ¡¡δ⌐  ¬½áßß  í½«¬á  π»αáó½Ñ¡¿∩   "Edit"   ¿
  2046.         π¬áºáΓ∞ Γ¿»  «¬¡á  WS_CHILD.  éßΓα«Ñ¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩ ¼«úπΓ
  2047.         íδΓ∞ ¿ß»«½∞º«óá¡δ Γ«½∞¬« ¬á¬ ñ«τÑα¡¿Ñ «¬¡á.  Ä¡¿ ¡Ñ ¼«úπΓ  íδΓ∞
  2048.         ¿ß»«½∞º«óá¡δ  ¬á¬  «ß¡«ó¡δÑ  ¿½¿ ¡á¬½áñδóáѼδÑ «¬¡á.  Å«ß¬«½∞¬π
  2049.         ñ«τÑα¡ÑÑ  «¬¡«  »«ñαáºπ¼ÑóáÑΓ  ¡á½¿τ¿Ñ  α«ñ¿Γѽ∞߬«ú«  «¬¡á,  ó
  2050.         ó맮óÑ Σπ¡¬µ¿¿ π¬áºδóáÑΓß∩ ñÑß¬α¿»Γ«α «ß¡«ó¡«ú« «¬¡á hWnd.
  2051.  
  2052.              ä½∩ φΓ«ú«  í½«¬á  π»αáó½Ñ¡¿∩  ΓᬪѠ π¬áºδóáÑΓß∩ α∩ñ Γ¿»«ó
  2053.         αÑñá¬Γ¿απѼδσ  í½«¬«ó  π»αáó½Ñ¡¿∩.  Å«ñ«í¡«  Γ¿»π   «¬«¡,   Γ¿»
  2054.         αÑñá¬Γ¿απѼ«ú«   í½«¬á  π»αáó½Ñ¡¿∩  «»αÑñѽ∩ÑΓ,  ¬á¬  «¡  íπñÑΓ
  2055.         óδú½∩ñÑΓ∞  ¿  ¬á¬  «¡  íπñÑΓ   αáí«ΓáΓ∞.   ÉÑñá¬Γ¿απѼδ⌐   í½«¬
  2056.         π»αáó½Ñ¡¿∩,    «»¿ßδóáѼδ⌐    ó    ñá¡¡«¼   »α¿¼ÑαÑ,   ∩ó½∩ÑΓß∩
  2057.         ¼¡«ú«ßΓα«τ¡δ¼,  Γ.Ñ.  »«ºó«½∩εΘ¿¼ óó«ñ¿Γ∞ ó  «¬¡«  í«½ÑÑ  «ñ¡«⌐
  2058.         ßΓ᫬¿ ΓѬßΓá.  èα«¼Ñ Γ«ú«,  í½«¬ π»αáó½Ñ¡¿∩ íπñÑΓ «ßπΘÑßΓó½∩Γ∞
  2059.         ú«α¿º«¡Γá½∞¡πε  ¿  óÑαΓ¿¬á½∞¡πε  »α«¬απΓ¬π,  Ñß½¿  »«½∞º«óáΓѽ∞
  2060.         óó«ñ¿Γ í«½∞ΦÑ ΓѬßΓá, τѼ ¼«ªÑΓ »«¼ÑßΓ¿Γ∞ß∩ ó «¬¡Ñ.
  2061.  
  2062.              éÑασ¡¿⌐ ½Ñóδ⌐   πú«½   αÑñá¬Γ¿απѼ«ú«   í½«¬á   π»αáó½Ñ¡¿∩
  2063.         αẼÑΘáÑΓß∩  ó  óÑασ¡Ñ¼   ½Ñó«¼   πú½π   «í½áßΓ¿   »«½∞º«óáΓѽ∩
  2064.         α«ñ¿Γѽ∞߬«ú«  «¬¡á  (¬««αñ¿¡áΓδ  ñ«τÑα¡Ñú« «¬¡á óßÑúñá íÑαπΓß∩
  2065.         «Γ¡«ß¿Γѽ∞¡«   «í½áßΓ¿   »«½∞º«óáΓѽ∩   α«ñ¿Γѽ∞߬«ú«    «¬¡á).
  2066.         æ½ÑñπεΘ¿Ñ      ñóá     áαúπ¼Ñ¡Γá     Rect.right-Rect.left     ¿
  2067.         Rect.bottom-Rect.top «»αÑñѽ∩εΓ óδß«Γπ ¿ Φ¿α¿¡π  αÑñá¬Γ¿απѼ«ú«
  2068.         í½«¬á  π»αáó½Ñ¡¿∩,  ñáóá∩  πóÑαÑ¡¡«ßΓ∞  ó  Γ«¼,  τΓ«  φΓ«Γ í½«¬
  2069.         ºá»«½¡∩ÑΓ «í½áßΓ∞ »«½∞º«óáΓѽ∩ »α¿ »Ñαó«⌐ ¿¡ñ¿¬áµ¿¿ «¬¡á.
  2070.  
  2071.              Å«ß¬«½∞¬π αÑñá¬Γ¿απѼδ⌐    í½«¬    π»αáó½Ñ¡¿∩     »«ßδ½áÑΓ
  2072.         πóÑñ«¼½∩εΘ¿Ñ  ß««íΘÑ¡¿∩  ßó«Ñ¼π  α«ñ¿Γѽ∞߬«¼π «¬¡π,  «¡ ñ«½ªÑ¡
  2073.         íδΓ∞ ºáñá¡ ßó«¿¼ ID (¿ñÑ¡Γ¿Σ¿¬áΓα«¼).  ä«τÑα¡¿Ñ «¬¡á  ¡Ñ  ¼«úπΓ
  2074.         ¿¼ÑΓ∞ ¼Ñ¡ε,  Γᬠ τΓ«  ó¼ÑßΓ«  ¡Ñú«  áαúπ¼Ñ¡Γ  ¼Ñ¡ε  ó  Σπ¡¬µ¿¿
  2075.         CreateWindow ¿ß»«½∞ºπÑΓß∩ ñ½∩ π¬áºá¡¿∩ ID í½«¬á π»αáó½Ñ¡¿∩. ä½∩
  2076.  
  2077.        Windows 3.0/pg/2#3                                        = 41 =
  2078.  
  2079.         ñá¡¡«ú«  í½«¬á  π»αáó½Ñ¡¿∩ πßΓá¡áó½¿óáÑΓß∩ ID,  αáó¡δ⌐ ID_EDIT.
  2080.         ïεí«Ñ πóÑñ«¼½∩εΘÑÑ  ß««íΘÑ¡¿Ñ,  »«ßδ½áѼ«Ñ  α«ñ¿Γѽ∞߬«¼π  «¬¡π
  2081.         αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩, íπñÑΓ ß«ñÑαªáΓ∞ φëàID.
  2082.  
  2083.              àß½¿ αÑñá¬Γ¿απѼδ⌐  í½«¬  π»αáó½Ñ¡¿∩ ¡Ñ ¼«ªÑΓ íδΓ∞ ß«ºñá¡,
  2084.         Σπ¡¬µ¿∩ CreateWindow ó«ºóαáΘáÑΓ NULL.  é φΓ«¼ ß½πτáÑ »α¿¬½áñ¡á∩
  2085.         »α«úαἼᠡѠ  ¼«ªÑΓ   »α«ñ«½ªáΓ∞   ßó«ε   αáí«Γπ,   ¿  Σπ¡¬µ¿∩
  2086.         DestroyWindow ¿ß»«½∞ºπÑΓß∩ ñ½∩ αáºαπΦÑ¡¿∩ «ß¡«ó¡«ú« «¬¡á  »ÑαÑñ
  2087.         ºáóÑαΦÑ¡¿Ñ¼ »α«úαá¼¼δ.
  2088.                                                                                
  2089.                   8.5.4  î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.
  2090.  
  2091.              ä«τÑα¡¿Ñ í½«¬¿  π»αáó½Ñ¡¿∩  πóÑñ«¼½∩εΓ  α«ñ¿Γѽ∞߬«Ñ  «¬¡«
  2092.         »«ßαÑñßΓó«¼ ß««íΘÑ¡¿∩   WM_COMMAND.   Åáαá¼ÑΓα   wParam   φΓ«ú«
  2093.         ß««íΘÑ¡¿∩ ß«ñÑαª¿Γ   ¿ñÑ¡Γ¿Σ¿¬áΓ«α  í½«¬á  π»αáó½Ñ¡¿∩,  ¬«Γ«αδ⌐
  2094.         »«ß½á½ φΓ« ß««íΘÑ¡¿Ñ.
  2095.  
  2096.              ä½∩ αáß»«º¡áóá¡¿∩  ß««íΘÑ¡¿∩  «  ¡Ññ«ßΓáΓ¬Ñ   »á¼∩Γ¿   ñ½∩
  2097.         αÑñá¬Γ¿απѼ«ú« í½«¬á   π»αáó½Ñ¡¿∩   ñ«íáó∞ΓÑ  ß½ÑñπεΘ¿⌐  ¬«ñ  ó
  2098.         Σαáú¼Ñ¡Γ WM_COMMAND:
  2099.  
  2100.              case IDC_EDIT:
  2101.                 if(HIWORD (lParam) == EN_ERRSPACE) {
  2102.                    MessageBox(
  2103.                      GetFocus(),
  2104.                      "ìÑ σóáΓáÑΓ »á¼∩Γ¿",
  2105.                      "Åα«úαá¼¼á EditCntl",
  2106.                      MB_ICONHAND | MB_OK);
  2107.                  }
  2108.                  break;
  2109.                                                                                
  2110.                   8.5.5  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SETFOCUS.
  2111.  
  2112.              ä½∩ ¡á»αáó½Ñ¡¿∩ óó«ñá ó αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩  »α¿
  2113.         á¬Γ¿ó¿ºáµ¿¿ α«ñ¿Γѽ∞߬«ú«  «¬¡á  ñ«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó
  2114.         Σπ¡¬µ¿ε «¬¡á:
  2115.  
  2116.              case WM_SETFOCUS:
  2117.                 SetFocus(hEditWnd);
  2118.                 break;
  2119.                                                                                
  2120.                     8.5.6  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SIZE.
  2121.  
  2122.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞  Σαáú¼Ñ¡Γ  WM_SIZE  ¬  Σπ¡¬µ¿¿   «¬¡á.
  2123.         Windows  »«ßδ½áÑΓ  ß««íΘÑ¡¿Ñ  WM_SIZE  Σπ¡¬µ¿¿ «¬¡á ¬áªñδ⌐ αáº,
  2124.         ¬«úñá ¿º¼Ñ¡∩ÑΓß∩ Φ¿α¿¡á ¿½¿ óδß«Γá  «¬¡á.  Å«ß¬«½∞¬π  ¿º¼Ñ¡Ñ¡¿Ñ
  2125.         αẼÑα«ó «ß¡«ó¡«ú«  «¬¡á  ¡Ñ  ¿º¼Ñ¡∩ÑΓ  áóΓ«¼áΓ¿τÑ߬¿  αẼÑα«ó
  2126.         αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩,  Γ« ñ½∩ ¿σ ¿º¼Ñ¡Ñ¡¿∩ ¡Ñ«íσ«ñ¿¼
  2127.         Σαáú¼Ñ¡Γ WM_SIZE.
  2128.  
  2129.              ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  2130.  
  2131.              case WM_SIZE:
  2132.  
  2133.        Windows 3.0/pg/2#3                                        = 42 =
  2134.  
  2135.                   MoveWindow(hEditWnd, 0, 0, LOWORD(lParam),
  2136.                              HIWORD(lParam), TRUE);
  2137.                   break;
  2138.                                                                                
  2139.                        8.5.7  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
  2140.  
  2141.              é Σá⌐½Ñ make  ¿º¼Ñ¡Ñ¡¿⌐  ¡Ñ  ΓαÑíπÑΓß∩.  ÄΓΓαá¡ß½¿απ⌐ΓÑ  ¿
  2142.         ß¬«¼»«¡π⌐ΓÑ »α«úαá¼¼π   EditCntl,  ºáΓѼ  ºá»πßΓ¿ΓÑ  Windows  ¿
  2143.         »α¿¬½áñ¡πε »α«úαá¼¼π. ÆÑ»Ñα∞ ¼«ª¡« óßΓáó¿Γ∞ ΓѬßΓ, ¿ß»«½∞º«óáΓ∞
  2144.         ¬½áó¿Φπ  BackSpace  ñ½∩  πñá½Ñ¡¿∩  ΓѬßΓá ¿ ßñѽáΓ∞ óδí«α¬π »α¿
  2145.         »«¼«Θ¿ ¼δΦ¿,  á ¡Ñ ¬½áó¿áΓπαδ.  Å«ß¬«½∞¬π  »α¿  ß«ºñá¡¿¿  í½«¬á
  2146.         π»αáó½Ñ¡¿∩   ß»Ñµ¿Σ¿µ¿α«óá¡«   ES_MULTILINE,  ES_AUTOVSCROLL  ¿
  2147.         ES_AUTOHSCROLL,  í½«¬ π»αáó½Ñ¡¿∩ ¼«ªÑΓ αÑñá¬Γ¿α«óáΓ∞  ΓѬßΓ  ¡á
  2148.         óßѼ φ¬αá¡Ñ, á ΓᬪѠ«ßπΘÑßΓó½∩Γ∞ »α«¬απΓ¬π.
  2149.  
  2150.              Åਪ½áñ¡á∩ »α«úαἼᠠEditCntl  ¿½½εßΓα¿απÑΓ  »Ñαóδ⌐  Φáú,
  2151.         ΓαÑíπεΘ¿⌐ß∩ ñ½∩ Γ«ú«, τΓ«íδ ßñѽáΓ∞ »α«ßΓ«⌐ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α.
  2152.         ä½∩  Γ«ú«,  τΓ«íδ ßñѽáΓ∞ »«½¡δ⌐ αÑñá¬Γ«α,  ¼«ª¡« ñ«íáó¿Γ∞ ¼Ñ¡ε
  2153.         File ¬ «ß¡«ó¡«¼π «¬¡π ñ½∩ «Γ¬αδΓ¿∩ ¿ ß«σαá¡Ñ¡¿∩ Σá⌐½«ó ΓѬßΓ«ó,
  2154.         á  ΓᬪѠ ñ½∩  ¬«»¿α«óá¡¿∩  ¿½¿ »«¿ß¬á ΓѬßΓá ¿º αÑñá¬Γ¿απѼ«ú«
  2155.         í½«¬á π»αáó½Ñ¡¿∩ ¿ ñ«íáó¿Γ∞ ¼Ñ¡ε  Edit  ¬  «ß¡«ó¡«¼π  «¬¡π  ñ½∩
  2156.         ¬«»¿α«óá¡¿∩,   αáºαѺ᡿∩   ¿   ß¬½Ñ¿óá¡¿∩   ΓѬßΓá  ß  »«¼«Θ∞ε
  2157.         ß¿ßΓѼ¡«ú« íπΣÑαá.  Å«ß½ÑñπεΘ¿Ñ ú½áóδ »α«¿½½εßαΓ¿απεΓ ¡Ñ¬«Γ«αδÑ
  2158.         »α«ßΓδÑ »πΓ¿ ñ«íáó½Ñ¡¿∩ φΓ¿σ ó«º¼«ª¡«ßΓÑ⌐ ó óáΦπ »α«úαá¼¼π.
  2159.                                               8.6  çᬽετÑ¡¿Ñ.                 
  2160.  
  2161.              é ñá¡¡«Ñ  ú½áóÑ  «»¿ßá¡« ¿ß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó
  2162.         »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.  ü½«¬  π»αáó½Ñ¡¿∩   -   φΓ«   ß»Ñµ¿á½∞¡«Ñ
  2163.         ñ«τÑα¡ÑÑ «¬¡«, ¬«Γ«α«Ñ óδ ¼«ªÑΓÑ ñ«íá½∩Γ∞ ¬ ßó«Ñ⌐ »α«úαἼѠñ½∩
  2164.         óδ»«½¡Ñ¡¿∩   óó«ñá   «Γ   »«½∞º«óáΓѽ∩.    Windows    óδ»«½¡∩ÑΓ
  2165.         áóΓ«¼áΓ¿τÑ߬πε  »«ññÑ᪬π  í«½∞Φ¿¡ßΓóá Γ¿»«ó í½«¬«ó π»αáó½Ñ¡¿∩.
  2166.         ìá»α¿¼Ñα, Windows ¼«ªÑΓ áóΓ«¼áΓ¿τÑ߬¿ α¿ß«óáΓ∞ í½«¬  π»αáó½Ñ¡¿∩
  2167.         ó   π¬áºá¡¡«⌐   óἿ  Γ«τ¬Ñ,  »α¿  óδí«αÑ  »«½∞º«óáΓѽѼ  í½«¬á
  2168.         π»αáó½Ñ¡¿∩  Windows   »«ßδ½áÑΓ   óáΦÑ⌐   »α«úαἼѠ  ß««íΘÑ¡¿Ñ,
  2169.         ß«ñÑαªáΘÑÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α φΓ«ú« í½«¬á π»αáó½Ñ¡¿∩.
  2170.  
  2171.              é ñá¡¡«⌐  ú½áóÑ  ΓᬪѠ«»¿ßá¡«,  ¬á¬ ¿ß»«½∞º«óáΓ∞ ¡á¿í«½ÑÑ
  2172.         τáßΓ« óßΓαÑτáεΘ¿Ñß∩ í½«¬¿ π»αáó½Ñ¡¿∩.
  2173.  
  2174.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡«  í½«¬«ó  π»αáó½Ñ¡¿∩
  2175.         óδ ¡á⌐ñÑΓÑ ó:
  2176.  
  2177.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  2178.         ───────────────────────────────────────────────────────────────
  2179.         Äíαáí«Γ¬á ß««íΘÑ¡¿⌐  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 4, "éó«ñ ß
  2180.         óó«ñá                ¿ß»«½∞º«ó᡿Ѽ ¼δΦ¿ ¿ ¬½áó¿áΓπαδ"
  2181.  
  2182.  
  2183.         êß»«½∞º«óá¡¿Ñ í½«-   Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 9, "Åá¡Ñ½¿
  2184.         ¬«ó π»αáó½Ñ¡¿∩ ó     ñ¿á½«úá"
  2185.         »á¡Ñ½∩σ ñ¿½«úá
  2186.  
  2187.  
  2188.        Windows 3.0/pg/2#3                                        = 43 =
  2189.  
  2190.         ô»αáó½∩εΘ¿Ñ Σπ¡¬µ¿¿  æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 1,
  2191.                              "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá π»αáó½Ñ¡¿∩ «¬¡á¼¿",
  2192.  
  2193.         Ä»ÑαáΓ«αδ «»¿ßá¡¿∩   æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 8,
  2194.         αÑßπα߫󠠠          "Ä»ÑαáΓ«αδ «»¿ßá¡¿∩ αÑßπαß«ó".
  2195.  
  2196.         äѼ«¡ßΓαᵿ«¡¡á∩     ä¿ß¬ "SDK Sample Source Code Disk"
  2197.         »α«úαá¼¼á
  2198.         OWNCOMBO.EXE,
  2199.         ¿½½εßΓα¿απÑΓ ¿ß»«½∞-
  2200.         º«óá¡¿Ñ ¬á߬áñ¡δσ
  2201.         ¼Ñ¡ε, ¼Ñ¡ε, α¿ßπѼδσ
  2202.         ó½áñѽ∞µÑ¼ ¿ ¬«¡Γ-
  2203.         α«½∞¡δσ «Γ¼ÑΓ«¬, α¿-
  2204.         ßπѼδσ ó½áñѽ∞µÑ¼.
  2205.  
  2206.  
  2207.  
  2208.  
  2209.        Windows 3.0/pg/2#3                                        = 44 =
  2210.  
  2211.                                                                                
  2212.                           â½áóá 9. Åá¡Ñ½∞ ñ¿á½«úá.
  2213.  
  2214.              Åá¡Ñ½∞ ñ¿á½«úá   -   φΓ«   ¡á¬½áñδóáѼ«Ñ   «¬¡«,   ¬«Γ«α«Ñ
  2215.         »α¿¬½áñ¡á∩ »α«úαἼᠠ  ¿ß»«½∞ºπÑΓ    ñ½∩    óºá¿¼«ñÑ⌐ßΓó¿∩   ß
  2216.         »«½∞º«óáΓѽѼ. Äíδτ¡«  »á¡Ñ½¿   ñ¿á½«úá   ß«ñÑαªáΓ   «ñ¿¡   ¿½¿
  2217.         ¡Ñ߬«½∞¬« í½«¬«ó π»αáó½Ñ¡¿∩.
  2218.  
  2219.              é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡δ ß½ÑñπεΘ¿Ñ αáºñѽδ:
  2220.  
  2221.              - ùΓ« ΓᬫѠ»á¡Ñ½∞ ñ¿á½«úá.
  2222.  
  2223.              - æ«ºñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ¼«ñá½∞¡δσ ¿ ¡Ñ¼«ñá½∞¡δσ »á¡Ñ½Ñ⌐
  2224.                ñ¿á½«úá.
  2225.  
  2226.              - æ«ºñá¡¿Ñ Σπ¡¬µ¿⌐ »á¡Ñ½Ñ⌐ ñ¿á½«úá.
  2227.  
  2228.              - êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá.
  2229.  
  2230.              é ñá¡¡«⌐  ú½áóÑ   «»¿ßá¡   »α¿¼Ñα   »α¿¬½áñ¡«⌐   »α«úαá¼¼δ
  2231.         FileOpen, ¬«Γ«αá∩   ¿½½εßΓα¿απÑΓ   ß«ºñá¡¿Ñ   ¿   ¿ß»«½∞º«óá¡¿Ñ
  2232.         ¼«ñá½∞¡«⌐ »á¡Ñ½¿   ñ¿á½«úá,   ß«ñÑαªáΘÑ⌐    ¡Ñ߬«½∞¬«    í½«¬«ó
  2233.         π»αáó½Ñ¡¿∩.
  2234.                                     9.1  ùΓ« ΓᬫѠ»á¡Ñ½∞ ñ¿á½«úá.             
  2235.  
  2236.              Åá¡Ñ½∞ ñ¿á½«úá   -   φΓ«   ¡á¬½áñδóáѼ«Ñ   «¬¡«,   ¬«Γ«α«Ñ
  2237.         »α¿¬½áñ¡δÑ »α«úαá¼¼δ  ¿ß»«½∞ºπÑΓ  ñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩ ¿½¿ ºá»α«ßá
  2238.         ¿¡Σ«α¼áµ¿¿. Åá¡Ñ½¿  ñ¿á½«úá  «íδτ¡«  ¿ß»«½∞ºπεΓ  ñ½∩  ºá»α«ßá π
  2239.         »«½∞º«óáΓѽ∩ ¿¡Σ«α¼áµ¿¿,  ¡Ñ«íσ«ñ¿¼«⌐ ñ½∩  ºáóÑαΦÑ¡¿∩  ¬«¼á¡ñδ.
  2240.         Åá¡Ñ½∞ ñ¿á½«úá ß«ñÑαª¿Γ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« í½«¬«ó π»αáó½Ñ¡¿∩, ß
  2241.         »«¼«Θ∞ε ¬«Γ«αδσ  »«½∞º«óáΓѽ∞  ¼«ªÑΓ  óóÑßΓ¿   ΓѬßΓ,   óδíαáΓ∞
  2242.         π¬áºá¡¿∩ ¿½¿ ºáßΓáó¿Γ∞ óδ»«½¡¿Γ∞ «Γñѽ∞¡πε ¬«¼á¡ñπ.
  2243.  
  2244.              Åα¿¼Ñα »á¡Ñ½¿   ñ¿á½«úá  πªÑ  αáßß¼áΓα¿óá½ß∩  ó  »α«úαá¼¼Ñ
  2245.         Generic - φΓ« »á¡Ñ½∞ ñ¿á½«úá About. ¥Γá »á¡Ñ½∞ ñ¿á½«úá ß«ñÑনΓ
  2246.         ΓѬßΓ«óδ⌐  í½«¬  π»αáó½Ñ¡¿∩,  ñáεΘ¿⌐  ¿¡Σ«α¼áµ¿ε  «  »α¿¬½áñ¡«⌐
  2247.         »α«úαá¼¼Ñ, á Γá¬ªÑ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá,
  2248.         ¬«Γ«αδ⌐  ¼«ªÑΓ  ¿ß»«½∞º«óáΓ∞ß∩  ñ½∩  ºá¬αδΓ¿∩  »á¡Ñ½¿ ñ¿á½«úá ¿
  2249.         ó«ºóαáΓá  ó  «ß¡«ó¡«Ñ  «¬¡«.  ä½∩  «íαáí«Γ¬¿   »á¡Ñ½¿   ñ¿á½«úá
  2250.         ¡Ñ«íσ«ñ¿¼«  ºáñáΓ∞  Φáí½«¡  »á¡Ñ½¿  ñ¿á½«úá,  Σπ¡¬µ¿ε ñ¿á½«úá ¿
  2251.         ¡Ñ¬«Γ«αδÑ ßαÑñßΓóá ñ½∩ ó맮óá »á¡Ñ½¿ ñ¿á½«úá.
  2252.  
  2253.              ÿáí½«¡ »á¡Ñ½¿ ñ¿á½«úá -  φΓ«  «»¿ßá¡¿Ñ  »á¡Ñ½¿  ñ¿á½«úá  ¿
  2254.         í½«¬«ó π»αáó½Ñ¡¿∩, ¬«Γ«αδÑ «¡á ß«ñÑনΓ. ÿáí½«¡ ¼«ª¡« ß«ºñáΓ∞ ß
  2255.         »«¼«Θ∞ε  ΓѬßΓ«ó«ú«  αÑñá¬Γ«αá  ¿½¿  ÉÑñá¬Γ«αá  ñ¿á½«úá   ßαÑñδ
  2256.         Windows 3.0, ¿ ºáΓѼ ñ«íáó¿Γ∞ Ñú« ¬ Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
  2257.  
  2258.              öπ¡¬µ¿∩ ñ¿á½«úá   -   φΓ«  Σπ¡¬µ¿∩  ¼¡«ú«¬αáΓ¡«ú«  ó맮óá,
  2259.         ¬«Γ«απε óδºδóáÑΓ Windows,  ¬«úñá «¡á ¿¼ÑÑΓ ß««íΘÑ¡¿Ñ ñ½∩ »á¡Ñ½¿
  2260.         ñ¿á½«úá.  ò«Γ∩ Σπ¡¬µ¿∩ ñ¿á½«úá á¡á½«ú¿τ¡á Σπ¡¬µ¿¿ «¬¡á, Windows
  2261.         óδ»«½¡∩ÑΓ ß»Ñµ¿á½∞¡πε «íαáí«Γ¬π »á¡Ñ½Ñ⌐ ñ¿á½«úá Γᬿ¼  «íαẫ¼,
  2262.         τΓ«  Σπ¡¬µ¿∩ ñ¿á½«úá (»« ßαáó¡Ñ¡¿ε ß Σπ¡¬µ¿Ñ⌐ «¬¡á) «ΓóÑτáÑΓ ºá
  2263.         ñαπú¿Ñ ñÑ⌐ßΓó¿∩.
  2264.  
  2265.        Windows 3.0/pg/2#3                                        = 45 =
  2266.  
  2267.  
  2268.              Äíδτ¡δ⌐ ß»«ß«í ó맮óá »á¡Ñ½¿ ñ¿á½«úá - ó «ΓóÑΓ ¡á óó«ñ  ¿º
  2269.         ¼Ñ¡ε. ìá»α¿¼Ñα,  ¬«¼á¡ñδ "Open" ¿ "Save As" ó ¼Ñ¡ε File ΓαÑíπεΓ
  2270.         ñ«»«½¡¿Γѽ∞¡«⌐ ¿¡Σ«α¼áµ¿¿ ñ½∩ ºáóÑαΦÑ¡¿∩  ¿σ  αáí«Γδ.  ÄíÑ  «¡¿
  2271.         ¿¡ñ¿µ¿απεΓ    »á¡Ñ½¿   ñ¿á½«úá   ñ½∩   ºá»α«ßá   ñ«»«½¡¿Γѽ∞¡«⌐
  2272.         ¿¡Σ«α¼áµ¿¿.
  2273.  
  2274.              ê¼ÑÑΓß∩ ñóá Γ¿»á »á¡Ñ½Ñ⌐ ñ¿á½«úá: ¼«ñá½∞¡δÑ ¿ ¡Ñ¼«ñá½∞¡δÑ.
  2275.                                   9.1.1  î«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá.             
  2276.  
  2277.              î«ñá½∞¡á∩ »á¡Ñ½∞  ñ¿á½«úá  (About)  πªÑ  ¿ß»«½∞º«óá½áß∞  ó
  2278.         »α¿¬½áñ¡«⌐ »α«úαἼѠ Generic.  î«ñá½∞¡á∩  »á¡Ñ½∞ ñ¿á½«úá - φΓ«
  2279.         ¡á¬½áñδóáѼ«Ñ «¬¡«,  ¬«Γ«α«Ñ ¿¡ñ¿µ¿απÑΓ ¿¡Σ«α¼áµ¿ε ¿ ºá»α«ß  ¡á
  2280.         óó«ñ  «Γ  »«½∞º«óáΓѽ∩.  Ä¡á  ¡áºδóáÑΓß∩  ¼«ñá½∞¡«⌐,  »«ß¬«½∞¬π
  2281.         ñѽáÑΓ α«ñ¿Γѽ∞߬«Ñ  «¬¡«  óαѼѡ¡«  ¡Ññ«ßΓπ»¡δ¼  ¿  ºáßΓáó½∩ÑΓ
  2282.         »«½∞º«óáΓѽ∩  ºá¬«¡τ¿Γ∞  ºá»αáΦ¿óáѼδÑ ñÑ⌐ßΓó¿∩ »ÑαÑñ ó«ºóαáΓ«¼
  2283.         π»αáó½Ñ¡¿∩ α«ñ¿Γѽ∞߬«¼π  «¬¡π.  ìá»α¿¼Ñα,  »α«úαἼᠠ Windows
  2284.         Notepad  óδó«ñ¿Γ  ¼«ñá½∞¡πε  »á¡Ñ½∞  ñ¿á½«úá  ó  «ΓóÑΓ ¡á óδí«α
  2285.         ¬«¼á¡ñδ  Open  ó  ¼Ñ¡ε  File.  Notepad  ¡Ñ   ¼«ªÑΓ   »α«ñ«½ª¿Γ∞
  2286.         óδ»«½¡Ñ¡¿Ñ ¬«¼á¡ñδ Open ñ« ΓÑσ »«α, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ π¬áªÑΓ
  2287.         Σá⌐½.
  2288.  
  2289.              ò«Γ∩ ¼«ª¡« ñáΓ∞ ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá »«τΓ¿ ½εí«⌐  Γ¿»,
  2290.         αѬ«¼Ñ¡ñ«óá¡¡δ¼¿ Γ¿»á¼¿   ∩ó½∩εΓß∩  DS_MODALFRAME,  WS_CAPTION,
  2291.         ¿ WS_SYSMENU.  Æ¿» DS_MODALFRAME ºáñáÑΓ »á¡Ñ½¿ ñ¿á½«úá ó ¬áτÑßΓóÑ
  2292.         »áαá¼ÑΓαá  ñó«⌐¡πε  ½¿¡¿ε  «¬á¡Γ«ó¬¿.
  2293.  
  2294.              î«ñá½∞¡á∩ »á¡Ñ½∞  ñ¿á½«úá  ºá»π߬áÑΓ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ µ¿¬½
  2295.         «íαáí«Γ¬¿  ß««íΘÑ¡¿⌐  ¿º  «τÑαÑñ¿  »α¿¬½áñ¡«⌐   »α«úαá¼¼δ   íѺ
  2296.         ó«ºóαáΓá   ó   Σπ¡¬µ¿ε   WinMain.   ä½∩   Γ«ú«,  τΓ«íδ  ºá¬αδΓ∞
  2297.         α«ñ¿Γѽ∞߬«¼π «¬¡π «íαáí«Γ¬π óó«ñá,  »á¡Ñ½∞ ñ¿á½«úá ñѽáÑΓ  Ñú«
  2298.         ¡Ññ«ßΓπ»¡δ¼  »ÑαÑñ  φΓ«⌐ «íαáí«Γ¬«⌐.  Å« φΓ«⌐ »α¿τ¿¡Ñ ¼«ñá½∞¡á∩
  2299.         »á¡Ñ½∞ ñ¿á½«úá ¡¿¬«úñá ¡Ñ ¼«ªÑΓ íδΓ∞ ß«ºñá¡á  ß  ºáñ᡿Ѽ  Γ¿»á
  2300.         WS_CHILD,    »«ß¬«½∞¬π,   Ñß½¿   α«ñ¿Γѽ∞߬«Ñ   «¬¡«   ñѽáÑΓß∩
  2301.         ¡Ññ«ßΓπ»¡δ¼, ΓᬪѠñѽáÑΓß∩ ¡Ññ«ßΓπ»¡δ¼ ¿ «¬¡« ñ«τÑα¡Ñú«  Γ¿»á,
  2302.         »α¿¡áñ½ÑªáΘÑÑ φΓ«¼π α«ñ¿Γѽ∞߬«¼π «¬¡π.
  2303.  
  2304.              ä½∩ «Γ«íαáªÑ¡¿∩   ¼«ñá½∞¡«⌐  »á¡Ñ½¿  ñ¿á½«úá  ¿ß»«½∞ºπÑΓß∩
  2305.         Σπ¡¬µ¿∩ DialogBox.    Éáí«Γá    ¼«ñá½∞¡«⌐    »á¡Ñ½¿     ñ¿á½«úá
  2306.         ºá¬á¡τ¿óáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ EndDialog.
  2307.                                  9.1.2  ìѼ«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá.            
  2308.  
  2309.              ìѼ«ñá½∞¡á∩ »á¡Ñ½∞  ñ¿á½«úá  -  φΓ«  »α«ßΓ«  ¡á¬½áñδóáѼ«Ñ
  2310.         «¬¡«, ¬«Γ«α«Ñ ¿¡ñ¿µ¿απÑΓ ¿¡Σ«α¼áµ¿ε  ¿½¿  ºá»αáΦ¿óáÑΓ  óó«ñ  «Γ
  2311.         »«½∞º«óáΓѽ∩.   é   «Γ½¿τ¿Ñ   «Γ   ¼«ñá½∞¡«⌐   »á¡Ñ½¿  ñ¿á½«úá,
  2312.         ¡Ñ¼«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá ¡Ñ ñѽáÑΓ  ¡Ññ«ßΓπ»¡δ¼  α«ñ¿Γѽ∞߬«Ñ
  2313.         «¬¡«.   ¥Γ«   «º¡áτáÑΓ,   τΓ«   ¼«ª¡«   »α«ñ«½ªáΓ∞  αáí«ΓáΓ∞  ó
  2314.         α«ñ¿Γѽ∞߬«¼ «¬¡Ñ,    »«¬á    ¡Ñ¼«ñá½∞¡á∩    »á¡Ñ½∞     ñ¿á½«úá
  2315.         ¿¡ñ¿µ¿απÑΓß∩. ìá»α¿¼Ñα,  Windows  Write  ¿ß»«½∞ºπÑΓ ¡Ñ¼«ñá½∞¡πε
  2316.         »á¡Ñ½∞ ñ¿á½«úá ñ½∩ ¬«¼á¡ñδ  Find.  ¥Γ«  »«ºó«½∩ÑΓ  »«½∞º«óáΓѽε
  2317.         »α«ñ«½ªáΓ∞ αÑñá¬Γ¿α«óáΓ∞ ΓѬßΓ ¡Ñ ºá¬αδóá∩ »á¡Ñ½∞ ñ¿á½«úá Find.
  2318.  
  2319.        Windows 3.0/pg/2#3                                        = 46 =
  2320.  
  2321.  
  2322.              ü«½∞Φ¿¡ßΓ󫠡Ѽ«ñá½∞¡δσ   »á¡Ñ½Ñ⌐   ñ¿á½«úá   ¿¼ÑεΓ   Γ¿»δ
  2323.         WS_POPUP,  WS_CAPTION,  WS_BORDER   ¿   WS_SYSTEMMENU.   Äíδτ¡«
  2324.         ¡Ñ¼«ñá½∞¡δÑ »á¡Ñ½¿   ñ¿á½«úá   ¿¼ÑεΓ   ß¿ßΓѼ¡«Ñ  ¼Ñ¡ε,  ßΓ᫬π
  2325.         ºáú«½«ó¬á ¿ Γ«¡¬πε τÑα¡πε «¬á¡Γ«ó¬π.
  2326.  
  2327.              ò«Γ∩ Windows áóΓ«¼áΓ¿τÑ߬¿ ñѽáÑΓ  ¡Ññ«ßΓπ»¡δ¼¿  ¡Ñ¬«Γ«αδÑ
  2328.         ¬«¼á¡ñδ ß¿ßΓѼ¡«ú« ¼Ñ¡ε ó »á¡Ñ½¿ ñ¿á½«úá,  ¼Ñ¡ε óßÑ ªÑ ß«ñÑনΓ
  2329.         ¬«¼á¡ñπ Close.  Å«½∞º«óáΓѽ∞  ¼«ªÑΓ  ÑÑ   ¿ß»«½∞º«óáΓ∞   ó¼ÑßΓ«
  2330.         á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿Φ¿ ñ½∩ ºáóÑαΦÑ¡¿∩ αáí«Γδ ß »á¡Ñ½∞ε ñ¿á½«úá.
  2331.         î«ª¡« ΓᬪѠó¬½ετ¿Γ∞ ó »á¡Ñ½∞ ñ¿á½«úá í½«¬¿  π»αáó½Ñ¡¿∩,  ΓᬿÑ
  2332.         ¬á¬ αÑñá¬Γ¿απѼδÑ í½«¬¿ π»αáó½Ñ¡¿∩ ¿ »á¡Ñ½¿ ¬«¡Γα«½∩.
  2333.  
  2334.              ìѼ«ñá½∞¡á∩ »á¡Ñ½∞  ñ¿á½«úá »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε τÑαѺ µ¿¬½
  2335.         «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ Σπ¡¬µ¿¿  WinMain.  àß½¿  ó  »á¡Ñ½¿  ñ¿á½«úá
  2336.         ¿¼ÑεΓß∩ í½«¬¿   π»αáó½Ñ¡¿∩   ¿   ¡Ñ«íσ«ñ¿¼«  ñáΓ∞  »«½∞º«óáΓѽε
  2337.         ó«º¼«ª¡«ßΓ∞ »ÑαѼÑßΓ¿Γ∞ ¿½¿ óδíαáΓ∞ í½«¬¿ π»αáó½Ñ¡¿∩ ß  »«¼«Θ∞ε
  2338.         ¬½áó¿áΓπαδ,   ¡Ñ«íσ«ñ¿¼«   óδºóáΓ∞  Σπ¡¬µ¿ε  IsDialogMessage  ó
  2339.         «ß¡«ó¡«¼ µ¿¬½Ñ «íαáí«Γ¬¿  ß««íΘÑ¡¿⌐.  ¥Γá  Σπ¡¬µ¿∩  «»αÑñѽ∩ÑΓ,
  2340.         ¿¼ÑÑΓß∩ ½¿ ß««íΘÑ¡¿Ñ « óó«ñÑ ß ¬½áó¿áΓπαδ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá, ¿
  2341.         »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ «íαáíáΓδóáÑΓ Ñú«.  û¿¬½  «íαáí«Γ¬¿  ß««íΘÑ¡¿⌐
  2342.         ñ½∩ »α«úαá¼¼δ,  ¬«Γ«αá∩ ¿¼ÑÑΓ ¡Ñ¼«ñá½∞¡πε »á¡Ñ½∞ ñ¿á½«úá, íπñÑΓ
  2343.         óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  2344.  
  2345.              while (GetMessage(&msg, NULL, NULL, NULL) {
  2346.                  if (hDlg == NULL || !IsDialogMessage(hDlg, &msg)) {
  2347.                      TranslateMessage(&msg);
  2348.                      DispatchMessage(&msg);
  2349.                  }
  2350.              }
  2351.  
  2352.              Å«ß¬«½∞¬π ¡Ñ¼«ñá½∞¡á∩  »á¡Ñ½∞  ñ¿á½«úá  ¼«ªÑΓ  ¿ ¡Ñ óßÑúñá
  2353.         »α¿ßπΓßΓó«óáΓ∞,  ¡Ñ«íσ«ñ¿¼« »α«¬«¡Γα«½¿α«óáΓ∞ »ÑαѼѡ¡πε  hDlg,
  2354.         ¬«Γ«αá∩ ß«ñÑαª¿Γ  ñÑß¬α¿»Γ«α,  τΓ«íδ  «»αÑñѽ¿Γ∞,  ñ«»πßΓ¿¼á ½¿
  2355.         »á¡Ñ½∞. àß½¿ «¡á ñ«»πßΓ¿¼á, Σπ¡¬µ¿∩ IsDialogMessage «»αÑñѽ∩ÑΓ,
  2356.         »αÑñ¡áº¡áτÑ¡«  ½¿  ß««íΘÑ¡¿Ñ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá.  àß½¿ φΓ« Γá¬,
  2357.         ß««íΘÑ¡¿Ñ   «íαáíáΓδóáÑΓß∩   ¿   ¡Ñ   ñ«½ª¡«    ó    ñá½∞¡Ñ⌐ΦѼ
  2358.         «íαáíáΓδóáΓ∞ß∩    ß    »«¼«Θ∞ε   Σπ¡¬µ¿⌐   TranslateMessage   ¿
  2359.         DispatchMessage.
  2360.  
  2361.              çáóÑαΦÑ¡¿Ñ αáí«Γδ ¡Ñ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá »α«¿ßσ«ñ¿Γ  ß
  2362.         »«¼«Θ∞ε Σπ¡¬µ¿¿ DestroyWindow.
  2363.                                                                                
  2364.                      9.2  êß»«½∞º«óá¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá.
  2365.  
  2366.              ä½∩ ß«ºñá¡¿∩ »á¡Ñ½¿ ñ¿á½«úá ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ
  2367.         Φáú¿:
  2368.  
  2369.              1. æ«ºñáΓ∞ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá ¿ ñ«íáó¿Γ∞  Ñú«  ¬  Σá⌐½π
  2370.                 «»¿ßá¡¿∩ αÑßπαß«ó.
  2371.  
  2372.              2. æ«ºñáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá ñ½∩ »«ññÑ᪬¿ αáí«Γδ »á¡Ñ½¿.
  2373.  
  2374.  
  2375.        Windows 3.0/pg/2#3                                        = 47 =
  2376.  
  2377.              3. ¥¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá.
  2378.  
  2379.              4. Åá¡Ñ½∞ ñ¿á½«úá «Γ«íαáªáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ DialogBox
  2380.                 ¿  CreateDialog.  ¥Γ¿  Σπ¡¬µ¿¿  ºá»π߬áεΓ  ¼«ñá½∞¡πε  ¿
  2381.                 ¡Ñ¼«ñá½∞¡πε »á¡Ñ½¿ ñ¿á½«úá ß««ΓóÑΓßΓóÑ¡¡«.
  2382.  
  2383.              5. çá¬αδΓ∞  »á¡Ñ½¿ ñ¿á½«úá ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ EndDialog ¿½¿
  2384.                 DestroyWindow  ñ½∩  ¼«ñá½∞¡«⌐  ¿   ¡Ñ¼«ñá½∞¡«⌐   »á¡Ñ½¿
  2385.                 ñ¿á½«úá ß««ΓóÑΓßΓóÑ¡¡«.
  2386.  
  2387.              é ß½ÑñπεΘ¿σ αáºñѽáσ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
  2388.                               9.2.1  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿½«úá.           
  2389.  
  2390.              öπ¡¬µ¿∩ ñ¿á½«úá ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
  2391.  
  2392.              BOOL FAR PASCAL DlgFunc(hDlg, message, wParam, lParam)
  2393.              HWND hDlg;
  2394.              unsigned message;
  2395.              WORD wParam;
  2396.              DWORD lParam;
  2397.              {
  2398.                  switch (message) {
  2399.  
  2400.              /* ºñÑß∞ »«¼ÑΘáεΓß∩ Σαáú¼Ñ¡Γδ ß «íαáí«Γ¬«⌐ ß««íΘÑ¡¿⌐ */
  2401.  
  2402.                      default:
  2403.                           return FALSE;
  2404.                  }
  2405.              }
  2406.  
  2407.              ¥Γ« ó «ß¡«ó¡«¼ Σπ¡¬µ¿∩ «¬¡á ºá ¿ß¬½ετÑ¡¿Ñ¼  Γ«ú«,  τΓ«  ¡Ñ
  2408.         óδºδóáÑΓß∩  Σπ¡¬µ¿∩ DefWindowProc.  Äíαáí«Γ¬á ß««íΘÑ¡¿⌐ »á¡Ñ½Ñ⌐
  2409.         ñ¿á½«úá  »«  π¼«½τá¡¿ε  «ßπΘÑßΓó½∩ÑΓß∩  óßΓα«Ñ¡¡δ¼¿  ßαÑñßΓóἿ
  2410.         ß¿ßΓѼδ,  »«φΓ«¼π  Σπ¡¬µ¿∩  ñ¿á½«úá  ¡Ñ ñ«½ª¡á óδºδóáΓ∞ Σπ¡¬µ¿ε
  2411.         DefWindowProc.
  2412.  
  2413.              öπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á íδΓ∞ «»αÑñѽѡᠬᬠ »α«µÑñπαá  FAR
  2414.         PASCAL  ¿ ñ«½ª¡á ¿¼ÑΓ∞ π¬áºá¡¡δÑ ºñÑß∞ »áαá¼ÑΓαδ.  é«ºóαáΘáѼ«Ñ
  2415.         º¡áτÑ¡¿Ñ ñ«½ª¡« ¿¼ÑΓ∞ Γ¿» BOOL.
  2416.  
  2417.              èᬠ¿  ó  ß½πτáÑ  Σπ¡¬µ¿⌐  «¬¡á,  ßαÑñá  Windows  »«ßδ½áÑΓ
  2418.         ß««íΘÑ¡¿∩  Σπ¡¬µ¿¿  ñ¿á½«úá,  ¬«úñá  ¿¼ÑÑΓ ñ½∩ ¡ÑÑ ¿¡Σ«α¼áµ¿ε ¿
  2419.         ¬«úñá ¡Ñ«íσ«ñ¿¼« ,  τΓ«íδ Σπ¡¬µ¿∩ óδ»«½¡¿½á ¡Ñ¬«Γ«αδÑ ñÑ⌐ßΓó¿∩.
  2420.         é «Γ½¿τ¿Ñ «Γ Σπ¡¬µ¿¿ «¬¡á Σπ¡¬µ¿∩ ñ¿á½«úá «ΓóÑτáÑΓ ¡á ß««íΘÑ¡¿Ñ
  2421.         »«ß佬«⌐  íπ½Ñó߬«ú«  º¡áτÑ¡¿∩.   àß½¿   Σπ¡¬µ¿∩   «íαáíáΓδóáÑΓ
  2422.         ß««íΘÑ¡¿Ñ,   «¡á   ó«ºóαáΘáÑΓ  TRUE.  é  »α«Γ¿ó¡«¼  ß½πτáÑ  «¡á
  2423.         ó«ºóαáΘáÑΓ FALSE.
  2424.  
  2425.              é φΓ«⌐ Σπ¡¬µ¿¿ »ÑαѼѡ¡á∩ hDlg »«½πτáÑΓ ñÑß¬α¿»Γ«α  »á¡Ñ½¿
  2426.         ñ¿á½«úá.  äαπú¿Ñ  »áαá¼ÑΓαδ  ß½πªáΓ  ΓѼ ªÑ ßá¼δ¼ µÑ½∩¼,  τΓ« ¿
  2427.         »áαá¼ÑΓαδ Σπ¡¬µ¿¿  «¬¡á.  Ä»ÑαáΓ«α  switch  ß½πª¿Γ  ó  ¬áτÑßΓóÑ
  2428.         Σ¿½∞Γαá  ñ½∩  αẽ¿τ¡δσ ß««íΘÑ¡¿⌐.  ü«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐ ñ¿á½«úá
  2429.  
  2430.        Windows 3.0/pg/2#3                                        = 48 =
  2431.  
  2432.         «íαáíáΓδóáÑΓ ß««íΘÑ¡¿∩ WM_INITDIALOG ¿ WM_COMMAND ¿ «τÑ¡∞ αÑñ¬«
  2433.         ñαπú¿Ñ.
  2434.  
  2435.              æ««íΘÑ¡¿Ñ WM_INITDIALOG,    »«ßδ½áѼ«Ñ    »á¡Ñ½¿   ñ¿á½«úá
  2436.         ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ ÑÑ ¿¡ñ¿µ¿α«ó᡿Ѽ,  »αÑñ«ßΓáó½∩ÑΓ Σπ¡¬µ¿¿
  2437.         ñ¿á½«úá ó«º¼«ª¡«ßΓ∞ ºáσóáΓ¿Γ∞ óó«ñ ñ½∩ ½εí«ú« í½«¬á π»αáó½Ñ¡¿∩.
  2438.         àß½¿ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ TRUE,  Windows «íÑß»Ñτ¿Γ  ºáσóáΓ  óó«ñá
  2439.         ñ½∩ óδíαá¡¡«ú« í½«¬á π»αáó½Ñ¡¿∩.
  2440.  
  2441.              æ««íΘÑ¡¿Ñ WM_COMMAND  »«ßδ½áÑΓß∩  ó Σπ¡¬µ¿ε ñ¿á½«úá í½«¬«¼
  2442.         π»αáó½Ñ¡¿∩, »α¿¡áñ½ÑªáΘ¿¼ »á¡Ñ½¿ ñ¿á½«úá. àß½¿ ó »á¡Ñ½¿ ñ¿á½«úá
  2443.         ßπΘÑßΓóπεΓ   í½«¬¿   π»αáó½Ñ¡¿∩,   «¡¿   »«ßδ½áεΓ  πóÑñ«¼½∩εΘ¿Ñ
  2444.         ß««íΘÑ¡¿∩,  ¬«úñá »«½∞º«óáΓѽ∞ óδ»«½¡∩ÑΓ ¡Ñ¬«Γ«αδÑ  ñÑ⌐ßΓó¿∩  ß
  2445.         ¡¿¼¿.    ìá»α¿¼Ñα,   Σπ¡¬µ¿∩   «íαáí«Γ¬¿   »á¡Ñ½¿   ñ¿á½«úá   ß
  2446.         á½∞ΓÑα¡áΓ¿ó¡δ¼¿ ¬½áó¿ΦἿ ¼«ªÑΓ »α«óÑα∩Γ∞ ß««íΘÑ¡¿∩  WM_COMMAND
  2447.         ¡á   ID  í½«¬á  π»αáó½Ñ¡¿∩  á½∞ΓÑα¡áΓ¿ó¡«⌐  ¬½áó¿Φ¿.  ID  í½«¬á
  2448.         π»αáó½Ñ¡¿∩ ß«ñÑনΓß∩ ó »áαá¼ÑΓαÑ wParam. è«úñá Σπ¡¬µ¿∩ ñ¿á½«úá
  2449.         ¡áσ«ñ¿Γ ID, Γ« óδ»«½¡∩εΓß∩ ß««ΓóÑΓßΓóπεΘ¿Ñ ñÑ⌐ßΓó¿∩.
  2450.  
  2451.              àß½¿ »á¡Ñ½∞ ñ¿á½«úá ß«ºñá¡á ß Γ¿»«¼ WS_SYSMENU,  óδ ñ«½ª¡δ
  2452.         ó¬½ετ¿Γ∞ ó «»ÑαáΓ«α switch «íαáí«Γ¬π  ¿ñÑ¡Γ¿Σ¿¬áΓ«αá  IDCANCEL,
  2453.         ¬«Γ«αδ⌐ »«ßδ½áÑΓß∩  »α¿  óδí«αÑ  »«½∞º«óáΓѽѼ  ¬«¼á¡ñδ Close ó
  2454.         ß¿ßΓѼ¡«¼ ¼Ñ¡ε. Äíαáí«Γ¬á φΓ«ú« ß««íΘÑ¡¿∩ ñ«½ª¡á ó¬½ετáΓ∞ ó맮ó
  2455.         Σπ¡¬µ¿¿ EndDialog.
  2456.                                                                                
  2457.           9.2.2  êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½∩σ ñ¿á½«úá.
  2458.  
  2459.              ü½«¬¿ π»αáó½Ñ¡¿∩  ó »á¡Ñ½∩σ ñ¿á½«úá ¿ß»«½∞ºπεΓß∩ ó« ¼¡«ú«¼
  2460.         ΓᬪÑ, ¬á¬ «¡¿ ¿ß»«½∞ºπεΓß∩ ó «íδτ¡δ󠫬¡áσ. Äñ¡á¬«, ¬«úñá í½«¬
  2461.         π»αáó½Ñ¡¿∩  ¡áσ«ñ¿Γß∩  ó  »á¡Ñ½¿  ñ¿á½«úá,  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞
  2462.         ¡Ñ¬«Γ«αδѠ߻ѵ¿á½∞¡δÑ Σπ¡¬µ¿¿ ñ½∩ ñ«ßΓπ»á ¬ í½«¬π π»αáó½Ñ¡¿∩  ¿
  2463.         »«ß佬¿  Ñ¼π  ß««íΘÑ¡¿⌐.  ìá»α¿¼Ñα,  Σπ¡¬µ¿∩ SendDlgItemMessage
  2464.         »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ í½«¬π π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá, á Σπ¡¬µ¿∩
  2465.         SetDlgItemText πßΓá¡áó½¿óáÑΓ ΓѬßΓ í½«¬á π»αáó½Ñ¡¿∩. ìÑ ß½ÑñπÑΓ
  2466.         ºáñáóáΓ∞ φΓ¿¼  Σπ¡¬µ¿∩¼  ñÑß¬α¿»Γ«α  í½«¬á  π»αáó½Ñ¡¿∩.  é¼ÑßΓ«
  2467.         φΓ«ú«  ¡πª¡«  ºáñáΓ∞  ñÑß¬α¿»Γ«α ñ¿á½«úá ¿ ID í½«¬á π»αáó½Ñ¡¿∩.
  2468.         ä½∩ »«½πτÑ¡¿∩ ñÑß¬α¿»Γ«αá í½«¬á π»αáó½Ñ¡¿∩  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞
  2469.         Σπ¡¬µ¿ε GetDlgItem.
  2470.                            9.3  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ FileOpen.          
  2471.  
  2472.              äá¡¡δ⌐ »α¿¼Ñα   »α¿¬½áñ¡«⌐   »α«úαá¼¼δ   »«¬áºδóáÑΓ,   ¬á¬
  2473.         »«ßΓα«¿Γ∞ ¿ ¿ß»«½∞º«óáΓ∞ ¼«ñá½∞¡πε »á¡Ñ½∞ ñ¿á½«úá ñ½∩ »«ññÑ᪬¿
  2474.         ¬«¼á¡ñδ  ÄΓ¬αδΓ∞  ó  ¼Ñ¡ε  öá⌐½.  ìạáτÑ¡¿Ñ ¿ αáí«Γá ß »á¡Ñ½∞ε
  2475.         ñ¿á½«úá »«½¡«ßΓ∞ε «»¿ßá¡δ ó  System  Application  Architecture,
  2476.         Common User Access: Advanced Interface Design Guide. ìá α¿ßπ¡¬Ñ
  2477.         9.1 »«¬áºá¡ ó¿ñ »á¡Ñ½¿ ñ¿á½«úá,  ¬«Γ«απε  «Γ«íαáªáÑΓ  »α«úαá¼¼á
  2478.         FileOpen »α¿ óδí«αÑ ¬«¼á¡ñδ Open ó ¼Ñ¡ε File.
  2479.  
  2480.              É¿ßπ¡«¬ 9.1  Åá¡Ñ½∞ ñ¿á½«úá »α«úαá¼¼δ FileOpen.
  2481.              1. ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó«½Ñ¡¿∩.
  2482.              2. æΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
  2483.              3. Åá¡Ñ½∞ »ÑαÑτ¡∩.
  2484.  
  2485.        Windows 3.0/pg/2#3                                        = 49 =
  2486.  
  2487.              4. Ç½∞ΓÑα¡áΓ¿ó¡δÑ ¬½áó¿Φ¿.
  2488.  
  2489.              Åá¡Ñ½∞ ñ¿á½«úá    FileOpen    ß«ñÑαª¿Γ   ß½ÑñπεΘ¿Ñ   í½«¬¿
  2490.         π»αáó½Ñ¡¿∩:
  2491.  
  2492.              1. ü½«¬ π»αáó½Ñ¡¿∩ Γ¿»á á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½-
  2493.                 τá¡¿ε, »«¼ÑτÑ¡¡δ⌐  "Open",  ¿ß»«½∞ºπѼδ⌐  ñ½∩  Γ«ú«,
  2494.                 τΓ«íδ »«íπñ¿Γ∞ »α«úαá¼¼π «Γ¬αδΓ∞ óδíαá¡¡δ⌐ Σá⌐½.
  2495.  
  2496.              2. è½áó¿Φ¡δ⌐   í½«¬   π»αáó½Ñ¡¿∩,   »«¼ÑτÑ¡¡δ⌐   "Cancel",
  2497.                 ¿ß»«½∞ºπÑΓß∩ ñ½∩ «Γ¼Ñ¡δ ¬«¼á¡ñδ ÄΓ¬αδΓ∞.
  2498.  
  2499.              3. Äñ¡«ßΓα«τ¡δ⌐  αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩,  ó ¬«Γ«αδ⌐
  2500.                 »«½∞º«óáΓѽ∞ ¼«ªÑΓ óó«ñ¿Γ∞ ¿¼∩ «Γ¬αδóáѼ«ú« Σá⌐½á.
  2501.  
  2502.              4. Åá¡Ñ½∞  »ÑαÑτ¡∩,  ß«ñÑαªáΘá∩  ¿¼Ñ¡á  Σá⌐½«ó  ó  ΓѬπΘѼ
  2503.                 ¬áΓὫúÑ, ¿º  ¬«Γ«αδσ  »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ Σá⌐½
  2504.                 ñ½∩ «Γ¬αδΓ¿∩.
  2505.  
  2506.                 Åá¡Ñ½∞ »ÑαÑτ¡∩  ΓᬪѠ ß«ñÑαª¿Γ   ¿¼Ñ¡á   ¬áΓὫú«ó   ¿
  2507.                 πßΓα«⌐ßΓó,   ¬«Γ«αδÑ   ¼«úπΓ   íδΓ∞   ¿ß»«½∞º«óá¡δ  ñ½∩
  2508.                 ¿º¼Ñ¡Ñ¡¿∩ ΓѬπΘÑú« ¬áΓὫúá ¿½¿ πßΓα«⌐ßΓóá.
  2509.  
  2510.              5. ìÑ߬«½∞¬« ßΓáΓ¿τÑ߬¿σ í½«¬«ó  π»αáó½Ñ¡¿∩,  ¿ß»«½∞ºπѼδσ
  2511.                 ñ½∩ »«¼ÑΓ¬¿   »á¡Ñ½¿  »ÑαÑτ¡∩  ¿  αÑñá¬Γ¿απѼ«ú«  í½«¬á
  2512.                 π»αáó½Ñ¡¿∩,  á ΓᬪѠñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩  ΓѬπΘÑú«  ¿¼Ñ¡¿
  2513.                 ¬áΓὫúá.
  2514.  
  2515.              ä½∩ ß«ºñá¡¿∩  »α«úαá¼¼δ FileOpen ß¬«»¿απ⌐ΓÑ ¿ »ÑαÑ¿¼Ñ¡π⌐ΓÑ
  2516.         ¿ßσ«ñ¡δÑ Σá⌐½δ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl,  á ºáΓѼ ßñѽá⌐ΓÑ
  2517.         ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
  2518.  
  2519.              1. ä«íáó∞ΓÑ ¡«óδÑ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
  2520.  
  2521.              2. æ«ºñá⌐ΓÑ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá Open ¿ ñ«íáó∞ΓÑ Ñú« ¬
  2522.                 Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
  2523.  
  2524.              3. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ.
  2525.  
  2526.              4. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ IDM_OPEN ¬ Σαáú¼Ñ¡Γπ WM_COMMAND.
  2527.  
  2528.              5. æ«ºñá⌐ΓÑ Σπ¡¬µ¿ε ñ¿á½«úá OpenDlg.
  2529.  
  2530.              6. ä«íáó∞ΓÑ óß»«¼«úáΓѽ∞¡δÑ Σπ¡¬µ¿¿ ñ½∩ »«ññÑ᪬¿  Σπ¡¬µ¿¿
  2531.                 ñ¿á½«úá OpenDlg.
  2532.  
  2533.              7. ¥¬ß»«αΓ¿απ⌐ΓÑ Σπ¡¬µ¿ε ñ¿á½«úá OpenDlg.
  2534.  
  2535.              8. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
  2536.  
  2537.              Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
  2538.         ó  ß½ÑñπεΘ¿σ  αáºñѽáσ,  ó«º¼«ª¡«  óá¼  íπñÑΓ  πñ«í¡ÑÑ   »α«ßΓ«
  2539.         »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
  2540.  
  2541.        Windows 3.0/pg/2#3                                        = 50 =
  2542.  
  2543.                                                                                
  2544.                9.3.1  ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
  2545.  
  2546.              ìÑ«íσ«ñ¿¼« ¿¼ÑΓ∞  ¡Ñ߬«½∞¬«  ¡«óδσ  ¬«¡ßΓá¡Γ ó« ó¬½ετáѼ«¼
  2547.         Σá⌐½Ñ  ñ½∩  ¿ñÑ¡Γ¿Σ¿¬áµ¿¿  í½«¬«ó  π»αáó½Ñ¡¿∩  »á¡Ñ½¿   ñ¿á½«úá
  2548.         FileOpen. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  2549.  
  2550.              #define      ID_FILENAME   400
  2551.              #define      ID_EDIT       401
  2552.              #define      ID_FILES      402
  2553.              #define      ID_PATH       403
  2554.              #define      ID_LISTBOX    404
  2555.  
  2556.              ò«Γ∩ ¼«ª¡«  óδíαáΓ∞  ½εí«Ñ  µÑ½«Ñ ñ½∩ ID í½«¬á π»αáó½Ñ¡¿∩,
  2557.         ñ½∩ ¬áªñ«ú« í½«¬á π»αáó½Ñ¡¿∩  ó  ºáñá¡¡«⌐  »á¡Ñ½¿  ñ¿á½«úá  «¡«
  2558.         ñ«½ª¡«  íδΓ∞ π¡¿¬á½∞¡δ¼.  Äíδτ¡« óßΓα«Ñ¡¡δÑ ID,  ΓᬿѠ¬á¬ IDOK
  2559.         ¿½¿ IDCANCEL,  ¼Ñ¡∞ΦÑ 100,  ΓᬠτΓ« ½εí«Ñ τ¿ß½«,  í«½∞ΦÑÑ  100,
  2560.         ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ñαπú¿σ í½«¬«ó π»αáó½Ñ¡¿∩.
  2561.                          9.3.2  æ«ºñá¡¿Ñ Φáí½«¡á »á¡Ñ½¿ ñ¿á½«úá Open.          
  2562.  
  2563.              é Σá⌐½Ñ  «»¿ßá¡¿∩  αÑßπα߫󠠡ѫíσ«ñ¿¼«  ¿¼ÑΓ∞  Φáí½«¡ ñ½∩
  2564.         «»αÑñѽѡ¿∩ αẼÑα«ó  ¿  ó¡ÑΦ¡Ñú«  ó¿ñá  »á¡Ñ½¿  ñ¿á½«úá  Open.
  2565.         Ä»ÑαáΓ«α  DIALOG ß»Ñµ¿Σ¿µ¿απÑΓ ¿¼∩ ¿ αẼÑαδ »á¡Ñ½¿ ñ¿á½«úá,  á
  2566.         ΓᬪѠ í½«¬¿  π»αáó½Ñ¡¿∩,  ¬«Γ«αδÑ   «¡á   ß«ñÑনΓ.   ä«íáó∞ΓÑ
  2567.         ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  2568.  
  2569.         (1)  Open DIALOG 10, 10, 148, 112
  2570.              STYLE WS_MODALFRAME | WS_CAPTION | WS_SYSMENU
  2571.              CAPTION "FileOpen"
  2572.         (2)  BEGIN
  2573.         (3)   LTEXT "Open File &Name",     ID_FILENAME, 4, 4, 60, 10
  2574.         (4)   EDITTEXT ID_EDIT,            4, 16, 100, 12, ES_AUTOHSCROLL
  2575.               LTEXT "&Files in",           ID_FILES, 4, 40,  32, 10
  2576.         (5)   LISTBOX ID_LISTBOX,          4, 52,  70, 56, WS_TABSTOP
  2577.         (6)   LTEXT "", ID_PATH,           40, 40, 100, 10
  2578.         (7)   DEFPUSHBUTTON "&ÄΓ¬αδΓ∞",    IDOK, 87, 60, 50, 14
  2579.         (8)   PUSHBUTTON "ÄΓ¼Ñ¡¿Γ∞",       IDCANCEL 87, 80, 50, 14
  2580.              END
  2581.  
  2582.              é φΓ«¼ «»ÑαáΓ«αÑ DIALOG:
  2583.  
  2584.         1)   Åá¡Ñ½∞ ñ¿á½«úá    ¿¼ÑÑΓ    Φ¿α¿¡π    ¿    óδß«Γπ,   αáó¡πε
  2585.              ß««ΓóÑΓßΓóÑ¡¡« 148 ¿ 112  (ó  Ññ¿¡¿µáσ  ñ¿á½«úá).  àñ¿¡¿µá
  2586.              ñ¿á½«úá  -  φΓ«  ñ«½∩ αẼÑαá ß¿¼ó«½á ß¿ßΓѼ¡«ú« Φα¿ΣΓá »«
  2587.              π¼«½τá¡¿ε,  ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩  ó  »á¡Ñ½∩σ  ñ¿á½«úá  ñ½∩
  2588.              Γ«ú«,   τΓ«íδ   »á¡Ñ½∞   ñ¿á½«úá   ¿¼Ñ½á   «ñ¡¿  ¿  ΓÑ  ªÑ
  2589.              «Γ¡«ß¿Γѽ∞¡δÑ αẼÑαδ  ó¡Ñ  ºáó¿ß¿¼«ßΓ¿  «Γ  ¿ß»«½∞ºπѼ«ú«
  2590.              Γ¿»á »Ñαß«¡á½∞¡«⌐ ¥éî.
  2591.  
  2592.         2)   ìÑ«íσ«ñ¿¼δ «»ÑαáΓ«αδ BEGIN ¿ END.
  2593.  
  2594.         3)   ÅÑαóδ⌐ «»ÑαáΓ«α    LTEXT    ß«ºñáÑΓ    óδαáó¡Ñ¡¡δ⌐   ó½Ñó«
  2595.  
  2596.        Windows 3.0/pg/2#3                                        = 51 =
  2597.  
  2598.              ßΓáΓ¿τÑ߬¿⌐  í½«¬  π»αáó½Ñ¡¿∩,  ¬«Γ«αδ⌐  ß«ñÑαª¿Γ   ßΓ᫬π
  2599.              "Open File &Name".  ¥Γá ßΓ᫬á ß½πª¿Γ ó ¬áτÑßΓóÑ ¼ÑΓ¬¿ ñ½∩
  2600.              »á¡Ñ½¿   ñ¿á½«úá.   é   ¡Ñ¬«Γ«αδσ   »á¡Ñ½∩σ   ñ¿á½«úá  óßÑ
  2601.              ßΓáΓ¿τÑ߬¿Ñ í½«¬¿ π»αáó½Ñ¡¿∩ ¿¼ÑεΓ «ñ¿¡ ¿ Γ«Γ ªÑ ID.  ò«Γ∩
  2602.              »«  «íΘ¿¼  »αáó¿½á¼  ¡áñ«  ¿¼ÑΓ∞ π¡¿¬á½∞¡δ⌐ ID ñ½∩ ¬áªñ«ú«
  2603.              í½«¬á π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá,  ñ«»πßΓ¿¼« ¿ß»«½∞º«óáΓ∞
  2604.              -1  ñ½∩  ßΓáΓ¿τÑ߬¿σ  í½«¬«ó  π»αáó½Ñ¡¿∩ ñ« ΓÑσ »«α,  »«¬á
  2605.              Σπ¡¬µ¿¿ ñ¿á½«úá ¡Ñ ¡áñ« íπñÑΓ αẽ¿τáΓ∞ ¿σ  (¡á»α¿¼Ñα,  ñ«
  2606.              ΓÑσ »«α, »«¬á Σπ¡¬µ¿∩ ñ¿á½«úá ¡Ñ »«»δΓáÑΓß∩ ¿º¼Ñ¡¿Γ∞ ΓѬßΓ
  2607.              ¿½¿ αáß»«½«ªÑ¡¿Ñ ßΓáΓ¿τÑ߬«ú« í½«¬á π»αáó½Ñ¡¿∩).
  2608.  
  2609.         4)   Ä»ÑαáΓ«α EDITTEXT  ñ«íáó½∩ÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩
  2610.              ¬ »á¡Ñ½¿ ñ¿á½«úá ¿ ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ Ñú« ¬á¬  ID_EDIT.  çáñá¡
  2611.              Γ¿» ES_AUTOHSCROLL,  ΓᬠτΓ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ óóÑßΓ¿ ¿¼∩
  2612.              Σá⌐½á, ¬«Γ«α«Ñ ñ½¿¡¡ÑÑ Φ¿α¿¡δ í½«¬á π»αáó½Ñ¡¿∩.
  2613.  
  2614.         5)   Ä»ÑαáΓ«α LISTBOX ß«ºñáÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩. ID »á¡Ñ½¿ »ÑαÑτ¡∩
  2615.              αáóÑ¡ ID_LISTBOX.  ÿ¿α¿¡á ¿ óδß«Γá »á¡Ñ½¿ »ÑαÑτ¡∩ αáó¡δ 70
  2616.              ¿  56  ß««ΓóÑΓßΓóÑ¡¡«  (ó  Ññ¿¡¿µáσ  ñ¿á½«úá).  çáñá¡  Γ¿»
  2617.              WS_TABSTOP,  ΓᬠτΓ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ ºáσóáΓ¿Γ∞ óó«ñ ñ½∩
  2618.              »á¡Ñ½¿ »ÑαÑτ¡∩,  ¿ß»«½∞ºπ∩ ¬½áó¿áΓπαπ.  àß½¿ φëà Γ¿»  ¡Ñ
  2619.              ¿ß»«½∞º«óáΓ∞, Γ« Ññ¿¡ßΓóÑ¡¡δ¼ ß»«ß«í«¼ »«½πτÑ¡¿∩ ñ«ßΓπ»á ¬
  2620.              »á¡Ñ½¿ »ÑαÑτ¡∩ ∩ó½∩ÑΓß∩ ¡áªáΓ¿Ñ ¡á ¬¡«»¬π ¼δΦ¿.
  2621.  
  2622.         6)   Å«ß½Ññ¡¿⌐ «»ÑαáΓ«α   LTEXT   ß«ºñáÑΓ   óδαáó¡Ñ¡¡δ⌐   ó½Ñó«
  2623.              ßΓáΓ¿τÑ߬¿⌐     í½«¬    π»αáó½Ñ¡¿∩,    ¿ß»«½∞ºπѼδ⌐    ñ½∩
  2624.              π¬áºá¡¿∩ ΓѬπΘÑú«  ¬áΓὫúá ¿ πßΓα«⌐ßΓóá.  ü½«¬ π»αáó½Ñ¡¿∩
  2625.              »Ñαó«¡áτá½∞¡« »πßΓ;  »«ºªÑ ñ«íáó½∩ÑΓß∩ ¿¼∩ ¼áαΦαπΓá.  ¥Γ«Γ
  2626.              í½«¬ π»αáó½Ñ¡¿∩ ¿¼ÑÑΓ π¡¿¬á½∞¡δ⌐ ID,  αáó¡δ⌐ ID_PATH,  ñ½∩
  2627.              Γ«ú«,  τΓ«íδ «Γ½¿τáΓ∞ Ñú«  «Γ  ñαπú¿σ  ßΓáΓ¿τÑ߬¿σ  í½«¬«ó
  2628.              π»αáó½Ñ¡¿∩.  ¥Γ«  ó᪡«,  »«ß¬«½∞¬π  ñ½∩  ºá»«½¡Ñ¡¿∩ í½«¬á
  2629.              π»αáó½Ñ¡¿∩ íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿∩ DlgDirList.
  2630.  
  2631.         7)   Ä»ÑαáΓ«α DEFPUSHBUTTON  ß«ºñáÑΓ  á½∞ΓÑα¡áΓ¿ó¡πε ¬½áó¿Φπ »«
  2632.              π¼«½τá¡¿ε, ¬«Γ«αá∩   »«¼Ñτѡᠠ "Open"  ¿  ¿¼ÑΓ  ID  í½«¬á
  2633.              π»αáó½Ñ¡¿∩  IDOK.  é  ¼«ñá½∞¡δσ  »á¡Ñ½∩σ  ñ¿á½«úá  ¡áªáΓ¿Ñ
  2634.              ¬½áó¿Φ¿  Enter úÑ¡Ñα¿απÑΓ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ,  ¬«Γ«α«Ñ
  2635.              ¿ß»«½∞ºπÑàëàªÑ  ßá¼δ⌐  ID,  Γᬠ τΓ«  ñ½∩  Γ«ú«,  τΓ«íδ
  2636.              «Γ¬αδΓ∞  óδíαá¡¡δ⌐  Σá⌐½,  »«½∞º«óáΓѽ∞  ¼«ªÑΓ  ¿½¿ ¡áªáΓ∞
  2637.              ¼∩ú¬πε ¬½áó¿Φπ, ¿½¿ ¬½áó¿Φπ Enter.
  2638.  
  2639.         8)   Ä»ÑαáΓ«α PUSHBUTTON    ß«ºñáÑΓ    á½∞ΓÑα¡áΓ¿ó¡πε   ¬½áó¿Φπ
  2640.              "Cancel". àÑ ID αáóÑ¡ IDCANCEL (óßΓα«Ñ¡¡δ⌐ ID, ¡áσ«ñ∩Θ¿⌐ß∩
  2641.              ó Σá⌐½Ñ windows.h).  é ¼«ñá½∞¡δσ »á¡Ñ½∩σ  ñ¿á½«úá  ¡áªáΓ¿Ñ
  2642.              ¬½áó¿Φ¿    Escape   úÑ¡Ñα¿απÑΓ   πóÑñ«¼½∩εΘÑÑ   ß««íΘÑ¡¿Ñ,
  2643.              ¿ß»«½∞ºπεΘÑÑ Γ«Γ ªÑ ßá¼δ⌐ ID,  ΓᬠτΓ« ñ½∩ «Γ¼Ñ¡δ  ¬«¼á¡ñδ
  2644.              Open ¼«ª¡«   αáºαÑΦ¿Γ∞   »«½∞º«óáΓÑ½ε  ¡áªáΓ∞  ¿½¿  ¼∩ú¬πε
  2645.              ¬½áó¿Φπ, ¿½¿ ¬½áó¿Φπ Escape.
  2646.                                                                                
  2647.                        9.3.3  ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.
  2648.  
  2649.              ìÑ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞ ¡Ñ߬«½∞¬« ¡«óδσ ú½«íá½∞¡δσ ¿ ½«¬á½∞¡δσ
  2650.         »ÑαѼѡ¡δσ  ñ½∩  σαá¡Ñ¡¿∩  ¿¼Ñ¡¿  Σá⌐½á ¿ «Γñѽ∞¡δσ τáßΓÑ⌐,  ¿º
  2651.  
  2652.        Windows 3.0/pg/2#3                                        = 52 =
  2653.  
  2654.         ¬«Γ«αδσ «¡« ßΓα«¿Γß∩.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ  ó  ¡áτὫ
  2655.         Σá⌐½á αÑßπαß«ó:
  2656.  
  2657.              char FileName[128];        /* ΓѬπΘÑÑ ¿¼∩ Σá⌐½á      */
  2658.              char PathName[128];        /* ΓѬπΘ¿⌐ ¼áαΦαπΓ        */
  2659.              char OpenName[128];        /* ¿¼∩ «Γ¬αδóáѼ«ú« Σá⌐½á */
  2660.              char DefPath[128];         /* ¼áαΦαπΓ »« π¼«½τá¡¿ε
  2661.                                            ñ½∩ »á¡Ñ½¿ »ÑαÑτ¡∩     */
  2662.              char DefSpec[13] = "*.*";  /* óδí«α¬á »« π¼«½τá¡¿ε   */
  2663.              char DefExt[] = ".txt";    /* αáßΦ¿αÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á
  2664.                                            »« π¼«½τá¡¿ε           */
  2665.              char str[255];             /* ßΓ᫬á ñ½∩ ó맮óá Σπ¡¬-
  2666.                                            µ¿¿ sprintf()          */
  2667.  
  2668.              ìÑ«íσ«ñ¿¼á ΓᬪѠ¡«óá∩ ½«¬á½∞¡á∩ »ÑαѼѡ¡á∩  ñ½∩  σαá¡Ñ¡¿∩
  2669.         áñαÑßá   φ¬ºÑ¼»½∩αá  »α«µÑñπαδ  ñ½∩  »á¡Ñ½¿  ñ¿á½«úá  FileOpen.
  2670.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ¬ Σπ¡¬µ¿¿ «¬¡á:
  2671.  
  2672.              FAPROC lpOpenDlg;
  2673.                            9.3.4  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_OPEN.               
  2674.  
  2675.              ìÑ«íσ«ñ¿¼« ºá¡ÑßΓ¿   Σαáú¼Ñ¡Γ   IDM_OPEN   ñ½∩   ß««íΘÑ¡¿∩
  2676.         WM_COMMAND   ¿   ¿¡ñ¿µ¿α«óáΓ∞   »á¡Ñ½∞   ñ¿á½«úá   Open,  ¬«úñá
  2677.         »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ  ¬
  2678.         Σπ¡¬µ¿¿ «¬¡á:
  2679.  
  2680.              case IDM_OPEN:
  2681.                  lpOpenDlg = MakeProcInstance((FARPROC) OpenDlg, hInst));
  2682.                  DialogBox(hInst, "Open", hWnd, lpOpenDlg);
  2683.                  FreeProcInstance(lpOpenDlg);
  2684.                  break;
  2685.  
  2686.              öπ¡¬µ¿∩ MakeProcInstance    ß«ºñáÑΓ    áñαÑß    φ¬ºÑ¼»½∩αá
  2687.         »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿ OpenDlg.  ¥Γ« ñáÑΓ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ«
  2688.         »α¿   ó맮óÑ   Σπ¡¬µ¿¿  ñ¿á½«úá  ¿ß»«½∞ºπεΓß∩  ßÑú¼Ñ¡Γδ  ñá¡¡δσ
  2689.         ΓѬπΘÑú«   φ¬ºÑ¼»½∩αá.   öπ¡¬µ¿¿    Γ¿»á    OpenDlg,    ¬«Γ«αδÑ
  2690.         φ¬ß»«αΓ¿απεΓß∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐, ¼«úπΓ íδΓ∞ óδºóá¡δ Γ«½∞¬«
  2691.         τÑαѺ áñαÑß  φ¬ºÑ¼»½∩αá  »α«µÑñπαδ  ¿  ¡Ñ  ¼«úπΓ  íδΓ∞  óδºóá¡δ
  2692.         ¡Ñ»«ßαÑñßΓóÑ¡¡«.
  2693.  
  2694.              öπ¡¬µ¿∩ FreeProcInstance   ¿ß»«½∞ºπÑΓß∩  ñ½∩  «ßó«í«ªñÑ¡¿∩
  2695.         áñαÑßá φ¬ºÑ¼»½∩αá »α«µÑñπαδ,  ¬«úñá  «¡  ßΓá¡«ó¿Γß∩  ¡Ñ  ¡πªÑ¡.
  2696.         Å«ß½Ñ Γ«ú«,  ¬á¬ Σπ¡¬µ¿∩ DialogBox ó«ºóαáΓ¿Γ π»αáó½Ñ¡¿Ñ,  áñαÑß
  2697.         φ¬ºÑ¼»½∩αá »α«µÑñπαδ lpOpenDlg ßΓá¡«ó¿Γß∩ ¡Ñ ¡πªÑ¡ ¿ ¼«ªÑΓ íδΓ∞
  2698.         «ßó«í«ªñÑ¡.  Åα¿ ß½ÑñπεΘѼ ó맮óÑ »á¡Ñ½¿ ñ¿á½«úá «¡ ñ«½ªÑ¡ íδΓ∞
  2699.         ó«ßßΓá¡«ó½Ñ¡.
  2700.  
  2701.              öπ¡¬µ¿∩ DialogBox ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ Γ«½∞¬« »«ß½Ñ Γ«ú«,
  2702.         ¬á¬  Σπ¡¬µ¿∩  ñ¿á½«úá  ºáóÑαΦ¿Γ  αáí«Γπ ß »á¡Ñ½∞ε ñ¿á½«úá.  ¥Γ«
  2703.         «º¡áτáÑΓ,  τΓ« »á¡Ñ½∞ ñ¿á½«úá ñ«½ª¡á  óδ»«½¡¿Γ∞  óßÑ  ñÑ⌐ßΓó¿∩,
  2704.         ºá»α«ΦÑ¡¡δÑ »«½∞º«óáΓѽѼ,    »αѪñÑ    τѼ   »α«úαἼᠠ ¼«ªÑΓ
  2705.         »α«ñ«½ª¿Γ∞ αáí«Γπ.  Æá¬á∩ »á¡Ñ½∞ ñ¿á½«úá ¡áºδóáÑΓß∩  ¼«ñá½∞¡«⌐,
  2706.  
  2707.        Windows 3.0/pg/2#3                                        = 53 =
  2708.  
  2709.         »«ß¬«½∞¬π »«¬á  «¡á  ¡áσ«ñ¿Γß∩ ¡á φ¬αá¡Ñ,  »α«úαá¼¼á αáí«ΓáÑΓ ó
  2710.         ñαπú«¼ αѪ¿¼Ñ.  ¥Γ« «º¡áτáÑΓ,  τΓ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ  «ΓóÑΓ¿Γ∞
  2711.         Γ«½∞¬« »á¡Ñ½¿ ñ¿á½«úá,  á ¬«¼á¡ñδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ «ßΓáεΓß∩
  2712.         ¡Ññ«ßΓπ»¡δ¼¿.
  2713.                                     9.3.5  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ OpenDlg.           
  2714.  
  2715.              ä½∩ «íαáí«Γ¬¿  αẽ¿τ¡δσ  í½«¬«ó   π»αáó½Ñ¡¿∩   ¡Ñ«íσ«ñ¿¼«
  2716.         ß«ºñáΓ∞  »á¡Ñ½∞  ñ¿á½«úá  Open.  è«úñá  »á¡Ñ½∞  ñ¿á½«úá ó»ÑαóδÑ
  2717.         ¿¡ñ¿µ¿απÑΓß∩, Σπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á ºá»«½¡¿Γ∞ »á¡Ñ½∞ »ÑαÑτ¡∩ ¿
  2718.         αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩, á ºáΓѼ ºáσóáΓ¿Γ∞ óó«ñ ñ½∩ φΓ«ú«
  2719.         í½«¬á  π»αáó½Ñ¡¿∩   ¿   óδíαáΓ∞   »«½¡πε   ß»Ñµ¿Σ¿¬áµ¿ε.   àß½¿
  2720.         »«½∞º«óáΓѽ∞  óδí¿αáÑΓ  ¿¼∩  Σá⌐½á  ¿º »á¡Ñ½¿ »ÑαÑτ¡∩,  Σπ¡¬µ¿∩
  2721.         ñ¿á½«úá ñ«½ª¡á ß¬«»¿α«óáΓ∞ ¿¼∩ ó αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
  2722.         àß½¿ »«½∞º«óáΓѽ∞  ¡áª¼ÑΓ ¬½áó¿Φπ Open,  Σπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á
  2723.         »«½πτ¿Γ∞  ¿¼∩  Σá⌐½á  ¿º  αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩   ¿
  2724.         »«ñú«Γ«ó¿Γ∞ Σá⌐½ ¬ «Γ¬αδΓ¿ε. àß½¿ »«½∞º«óáΓѽ∞ ñóáªñδ ¡áª¼ÑΓ ¡á
  2725.         ¬¡«»¬π ¼δΦ¿,  ¡áσ«ñ∩ß∞ ¡á ¿¼Ñ¡¿ Σá⌐½á ó »á¡Ñ½¿ »ÑαÑτ¡∩, Σπ¡¬µ¿∩
  2726.         ñ¿á½«úá ñ«½ª¡á ¡á⌐Γ¿ ¿¼∩ Σá⌐½á, ß¬«»¿α«óáΓ∞ Ñú« ó αÑñá¬Γ¿απѼδ⌐
  2727.         í½«¬ π»αáó½Ñ¡¿∩ ¿ »«ñú«Γ«ó¿Γ∞ Σá⌐½ ¬ «Γ¬αδΓ¿ε.
  2728.  
  2729.              ä«íáó∞ΓÑ ß½ÑñπεΘπε Σπ¡¬µ¿ε ¬ Σá⌐½π αÑßπαß«ó:
  2730.  
  2731.         HANDLE FAR PASCAL OpenDlg(hDlg, message, wParam, lParam)
  2732.         HWND hDlg;
  2733.         unsigned message;
  2734.         WORD wParam;
  2735.         LONG lParam;
  2736.         {
  2737.             WORD index;    /* ¿¡ñѬߠ¿¼Ñ¡¿ Σá⌐½á ó »á¡Ñ½¿ »ÑαÑτ¡∩ */
  2738.             PSTR pTptr;    /* óαѼѡ¡δ⌐ π¬áºáΓѽ∞                 */
  2739.             HANDLE hFile;  /* ñÑß¬α¿»Γ«α «Γ¬αδóáѼ«ú« Σá⌐½á       */
  2740.  
  2741.             switch (message) {
  2742.                 case WM_COMMAND:
  2743.                     switch (wParam) {
  2744.                         case ID_LISTBOX:
  2745.                             switch (HIWORD) {
  2746.                                   case LBN_SELCHANGE:
  2747.                                       if (!DlgDirSelect(hDlg, str,
  2748.                                              ID_LISTBOX)) {
  2749.                                          SetDlgItemText(hDlg,
  2750.                                              ID_EDIT, str);
  2751.                                          SendDlgItemMessage(hDlg,
  2752.                                              ID_EDIT, EM_SETSEL,
  2753.                                              NULL,
  2754.                                              MAKELONG(0, 0x7fff));
  2755.                                       }
  2756.                                       else {
  2757.                                           strcat(str, DefSpec);
  2758.                                           DlgDirList(hDlg, str,
  2759.                                               ID_LISTBOX, ID_PATH,
  2760.                                               0x4010);
  2761.  
  2762.        Windows 3.0/pg/2#3                                        = 54 =
  2763.  
  2764.                                       }
  2765.                                       break;
  2766.                                   case LBN_DBLCLK:
  2767.                                      goto openfile; /* ¬«¡Ñµ Σαáú-
  2768.                                                        ¼Ñ¡Γá
  2769.                                                        ID_LISTBOX */
  2770.                         }
  2771.                         return (TRUE);
  2772.                         case IDOK:
  2773.         openfile:
  2774.                             GetDlgItemText(hDlg, ID_EDIT, OpenName,
  2775.                                   128);
  2776.                             if (strchr(OpenName, '*') ||
  2777.                                 strchr(OpenName, '?')) {
  2778.                                 SeparateFile(hDlg, (LPSTR) str,
  2779.                                         (LPSTR) DefSpec,
  2780.                                         (LPSTR) OpenName);
  2781.                                 if (str[0])
  2782.                                     strcpy(DefPath, str);
  2783.                                 ChangeDefExt(DefExt, DefSpec);
  2784.                                 UpdateListBox(hDlg);
  2785.                                 return (TRUE);
  2786.                             }
  2787.                             if (!OpenName[0]) {
  2788.                                 MessageBox(hDlg,
  2789.                                     "ê¼∩ Σá⌐½á ¡Ñ ºáñá¡«", NULL,
  2790.                                     MB_OK | MB_ICONQUESTION);
  2791.                                 return (TRUE);
  2792.                             }
  2793.                             AddExt(OpenName, DefExt);
  2794.                             EndDialog(hDlg, NULL);
  2795.                             return (TRUE);
  2796.                         case IDCANCEL:
  2797.                             EndDialog(hDlg, NULL);
  2798.                             return (TRUE);
  2799.                     }
  2800.                     break;
  2801.  
  2802.                 case WM_INITDIALOG:           /* ºá»α«ß ¡á ¿¡¿µ¿á½¿-
  2803.                                                  ºáµ¿ε            */
  2804.                     UpdateListBox(hDlg);
  2805.                     SetDlgItemText(hDlg, ID_EDIT, DefSpec);
  2806.                     SendDlgItemMessage(hDlg,  /* ñÑß¬α¿»Γ«α »á¡Ñ½¿
  2807.                                                  ñ¿á½«úá          */
  2808.                         ID_EDIT,              /* ¬πñá »«ß½áΓ∞ ß««í-
  2809.                                                  ΘÑ¡¿Ñ            */
  2810.                         EM_SETSEL,            /* óδí«α ß¿¼ó«½«ó   */
  2811.                         NULL,                 /* ñ«íáó«τ¡á∩ ¿¡Σ«α¼á-
  2812.                                                  µ¿∩              */
  2813.                         MAKELONG(0, 0x7fff)); /* »α¿Ñ¼ »«½¡«ú« ß«-
  2814.                                                  ñÑন¼«ú«        */
  2815.                     SetFocus(GetDlgItem(hDlg, ID_EDIT));
  2816.                     return (FALSE); /* ¿¡ñ¿¬áΓ«α ºáσóáΓá óó«ñá í½«-
  2817.  
  2818.        Windows 3.0/pg/2#3                                        = 55 =
  2819.  
  2820.                                        ¬«¼ π»αáó½Ñ¡¿∩             */
  2821.  
  2822.             }
  2823.             return (FALSE);
  2824.         }
  2825.  
  2826.              è«úñá Σπ¡¬µ¿∩  ñ¿á½«úá  »«½πτáÑΓ  ß««íΘÑ¡¿Ñ WM_INITDIALOG,
  2827.         Σπ¡¬µ¿∩  SetDlgItemText  ¬«»¿απÑΓ   ¡áτá½∞¡«Ñ   ¿¼∩   Σá⌐½á   ó
  2828.         αÑñá¬Γ¿απѼδ⌐  í½«¬  π»αáó½Ñ¡¿∩,  á  Σπ¡¬µ¿∩ SendDlgItemMessage
  2829.         »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ EM_SETSEL í½«¬π π»αáó½Ñ¡¿∩ ñ½∩  Γ«ú«,  τΓ«íδ
  2830.         óδíαáΓ∞  Ñú«  »«½¡«Ñ  ß«ñÑন¼«Ñ  ñ½∩  αÑñá¬Γ¿α«óá¡¿∩.  öπ¡¬µ¿∩
  2831.         SetFocus ºáσóáΓδóáÑΓ óó«ñ ñ½∩ αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩
  2832.         (Σπ¡¬µ¿∩    GetDlgItem    »«½πτáÑΓ   ñÑß¬α¿»Γ«α   φΓ«ú«   í½«¬á
  2833.         π»αáó½Ñ¡¿∩). öπ¡¬µ¿∩ UpdateListBox, ºáñá¡¡á∩ ó ¡áτá½Ñ Σαáú¼Ñ¡Γá
  2834.         WM_INITDIALOG, ∩ó½∩ÑΓß∩ ½«¬á½∞¡« «»αÑñѽѡ¡«⌐ Σπ¡¬µ¿Ñ⌐, ¬«Γ«αá∩
  2835.         ºá»«½¡∩ÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩ ß»¿ß¬«¼ Σá⌐½«ó ΓѬπΘÑú« ¬áΓὫúá.
  2836.  
  2837.              è«úñá Σπ¡¬µ¿∩ ñ¿á½«úá »«½πτáÑΓ ß««íΘÑ¡¿Ñ  WM_COMMAND,  «¡á
  2838.         Ñú« «íαáíáΓδóáÑΓ ñ½∩ ΓαÑσ αẽ¿τ¡δσ º¡áτÑ¡¿⌐:  IDOK, ID_LISTBOX
  2839.         ¿ IDCANCEL.
  2840.  
  2841.              é ß½πτáÑ  ID_LISTBOX   Σπ¡¬µ¿∩   ñ¿á½«úá   »α«óÑα∩ÑΓ   Γ¿»
  2842.         πóÑñ«¼½∩εΘÑú« ß««íΘÑ¡¿∩.  àß½¿ «¡ αáóÑ¡ LBN_SELCHANGE,  Σπ¡¬µ¿∩
  2843.         ñ¿á½«úá ñѽáÑΓ ¡«óπε óδí«α¬π ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿  DlgDirSelect.
  2844.         çáΓѼ  «¡á  ¬«»¿απÑΓ  ¡«ó«Ñ  ¿¼∩  Σá⌐½á  ó  αÑñá¬Γ¿απѼδ⌐  í½«¬
  2845.         π»αáó½Ñ¡¿∩,  ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SetDlgItem,  ¿ óδí¿αáÑΓ Ñú«  ñ½∩
  2846.         αÑñá¬Γ¿α«óá¡¿∩,   »«ßδ½á∩  ß««íΘÑ¡¿Ñ  EM_SETSEL.  àß½¿  ΓѬπΘá∩
  2847.         óδí«α¬á ¡Ñ ∩ó½∩ÑΓß∩  ¿¼Ñ¡Ñ¼  Σá⌐½á,  Σπ¡¬µ¿∩  ñ¿á½«úá  ¬«»¿απÑΓ
  2848.         ß»Ñµ¿Σ¿¬áµ¿ε  »« π¼«½τá¡¿ε ó »á¡Ñ½∞ »ÑαÑτ¡∩,  ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
  2849.         DlgDirList.  Åα¿ φΓ«¼ »á¡Ñ½∞ »ÑαÑτ¡∩ ºá»«½¡∩ÑΓß∩ ¿¼Ñ¡á¼¿ Σá⌐½«ó
  2850.         ΓѬπΘÑú« ¬áΓὫúá.
  2851.  
  2852.              àß½¿ Γ¿»    πóÑñ«¼½∩εΘÑú«   ß««íΘÑ¡¿∩   ID_LISTBOX   αáóÑ¡
  2853.         LBN_DBLCLK, Σπ¡¬µ¿∩ ñ¿á½«úá óδ»«½¡∩ÑΓ ΓÑ ªÑ ßá¼δÑ ñÑ⌐ßΓó¿∩, τΓ«
  2854.         ñ½∩  IDOK.  Åá¡Ñ½∞ »ÑαÑτ¡∩ »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ LBN_DBLCLK Γ«½∞¬«
  2855.         »«ß½Ñ Γ«ú«,  ¬á¬ íπñÑΓ  »«ß½á¡«  ß««íΘÑ¡¿Ñ  LBN_SELCHANGE.  ¥Γ«
  2856.         «º¡áτáÑΓ, τΓ« ¬«úñá »«½∞º«óáΓѽ∞ »«½πτáÑΓ πóÑñ«¼½Ñ¡¿Ñ « ñó«⌐¡«¼
  2857.         ¡áªáΓ¿¿, ¡Ñ ß½ÑñπÑΓ ¿ß¬áΓ∞ ¡«ó«Ñ ¿¼∩ Σá⌐½á.
  2858.  
  2859.              é ß½πτáÑ  IDOK   Σπ¡¬µ¿∩   ñ¿á½«úá   »«½πτáÑΓ   ß«ñÑন¼«Ñ
  2860.         αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩  ¿  »α«óÑα∩ÑΓ  ¿¼∩  Σá⌐½á  ¡á
  2861.         ¬«ααÑ¬Γ¡«ßΓ∞.  öπ¡¬µ¿∩  strchr  ¿ΘÑΓ  ó   ¿¼Ñ¡¿   π¡¿óÑαßá½∞¡δÑ
  2862.         ß¿¼ó«½δ.  àß½¿ «¡á ¡áσ«ñ¿Γ Γᬫ⌐ ß¿¼ó«½, Γ« αáºñѽ∩ÑΓ ¿¼∩ Σá⌐½á
  2863.         ¡á «Γñѽ∞¡δÑ τáßΓ¿ - ¼áαΦαπΓ ¿ ¿¼∩  Σá⌐½á,  ¿ß»«½∞ºπ∩  ½«¬á½∞¡«
  2864.         «»αÑñѽѡ¡πε Σπ¡¬µ¿ε SeparateFile.  öπ¡¬µ¿∩ strcpy ¬«ααÑ¬Γ¿απÑΓ
  2865.         »ÑαѼѡ¡πε DefPath ß πτÑΓ«¼  ¡«ó«ú«  ¼áαΦαπΓá,  Ñß½¿  «¡  ÑßΓ∞.
  2866.         ï«¬á½∞¡«   «»αÑñѽѡ¡á∩   Σπ¡¬µ¿∩   ChangeDefExt   ¬«ααÑ¬Γ¿απÑΓ
  2867.         »ÑαѼѡ¡πε DefExt ß πτÑΓ«¼ ¡«ó«ú«  αáßΦ¿αÑ¡¿∩  ¿¼Ñ¡¿  Σá⌐½á  »«
  2868.         π¼«½τá¡¿ε, Ñß½¿ «¡« ÑßΓ∞. Å«ß½Ñ π¬áºá¡¡«⌐ ¬«ααÑ¬Γ¿α«ó¬¿ Σπ¡¬µ¿∩
  2869.         UpdateListBox ¬«ααÑ¬Γ¿απÑΓ ß«ñÑন¼«Ñ »á¡Ñ½¿ »ÑαÑτ¡∩, á Σπ¡¬µ¿∩
  2870.         ñ¿á½«úá   ó«ºóαáΘáÑΓ   π»αáó½Ñ¡¿Ñ,   τΓ«íδ   ñáΓ∞  »«½∞º«óáΓѽε
  2871.         ó«º¼«ª¡«ßΓ∞ óδíαáΓ∞ ¬«ααÑ¬Γ¡«Ñ ¿¼∩ Σá⌐½á ¿º ¡«ó«ú« »ÑαÑτ¡∩.
  2872.  
  2873.  
  2874.        Windows 3.0/pg/2#3                                        = 56 =
  2875.  
  2876.              àß½¿ ¿¼∩ Σá⌐½á ¡Ñ ß«ñÑαª¿Γ π¡¿óÑαßá½∞¡δσ ß¿¼ó«½«ó, Σπ¡¬µ¿∩
  2877.         ñ¿á½«úá ñ«½ª¡á πñ«ßΓ«óÑα¿Γ∞ß∩,  τΓ« Σá⌐½ ¡Ñ »πßΓ. àß½¿ «¡ »πßΓ,
  2878.         Σπ¡¬µ¿∩ ñ¿á½«úá ¿¡ñ¿µ¿απÑΓ  »αÑñπ»αѪñáεΘÑÑ  ß««íΘÑ¡¿Ñ,  ¡«  ¡Ñ
  2879.         ºáóÑαΦáÑΓ  αáí«Γπ  ß  »á¡Ñ½∞ε  ñ¿á½«úá.  ¥Γ«  ñáÑΓ »«½∞º«óáΓѽε
  2880.         ó«º¼«ª¡«ßΓ∞  ßñѽáΓ∞  ÑΘÑ  «ñ¡π  »«»δΓ¬π.  àß½¿  ¿¼∩  Σá⌐½á  ¡Ñ
  2881.         ß«ñÑαª¿Γ   π¡¿óÑαßá½∞¡δσ  ß¿¼ó«½«ó  ¿  Σá⌐½  ¡Ñ  »πßΓ,  ¿  Ñß½¿
  2882.         »«½∞º«óáΓѽ∞  óó«ñ¿Γ  ¿¼∩  Σá⌐½á,  ¡Ñ  ß«ñÑαªáΘÑÑ   αáßΦ¿αÑ¡¿∩,
  2883.         Σπ¡¬µ¿∩ ñ¿á½«úá ¿ß»«½∞ºπÑΓ ½«¬á½∞¡« «»αÑñѽѡ¡πε Σπ¡¬µ¿ε AddExt
  2884.         ñ½∩ ñ«íáó½Ñ¡¿∩  αáßΦ¿αÑ¡¿∩  ¿¼Ñ¡¿  Σá⌐½á  »«  π¼«½τá¡¿ε.  çáΓѼ
  2885.         Σπ¡¬µ¿∩  ñ¿á½«úá  óδºδóáÑΓ  Σπ¡¬µ¿ε  EndDialog  ñ½∩  ºáóÑαΦÑ¡¿∩
  2886.         αáí«Γδ  ¼«ñá½∞¡«⌐  »á¡Ñ½¿  ñ¿á½«úá  ¿  πßΓᡫ󬿠 ó«ºóαáΘáѼ«ú«
  2887.         º¡áτÑ¡¿∩ ó NULL.
  2888.  
  2889.              é ß½πτáÑ   IDCANCEL   Σπ¡¬µ¿∩   ñ¿á½«úá  óδºδóáÑΓ  Σπ¡¬µ¿ε
  2890.         EndDialog ñ½∩ ºáóÑαΦÑ¡¿∩ αáí«Γδ  ß  »á¡Ñ½∞ε  ñ¿á½«úá  ¿  «Γ¼Ñ¡δ
  2891.         ¬«¼á¡ñδ. é«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ πßΓá¡áó½¿óáÑΓß∩ ó NULL.
  2892.  
  2893.              ÅÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ αáí«Γδ ß »á¡Ñ½∞ε ñ¿á½«úá Σπ¡¬µ¿∩ ñ¿á½«úá
  2894.         ¼«ªÑΓ ΓᬪѠ»α«óÑα¿Γ∞ ßπΘÑßΓó«óá¡¿Ñ ¿ αѪ¿¼ ñ«ßΓπ»á ¬ ºáñá¡¡«¼π
  2895.         Σá⌐½π. Åα«óÑα¬á   ¡á  ßπΘÑßΓó«óá¡¿Ñ  -  ñѽ«  ßἫ⌐  »α¿¬½áñ¡«⌐
  2896.         »α«úαá¼¼δ ¿ ó ñá¡¡«¼ »α¿¼ÑαÑ ¡Ñ »α«¿ºó«ñ¿Γß∩. ìѬ«Γ«αδÑ »α«ßΓδÑ
  2897.         ß»«ß«íδ  Γᬫ⌐  »α«óÑન  »α¿óÑñÑ¡δ  ó ú½áóÑ 10 "éó«ñ ¿ óδó«ñ ó
  2898.         Σá⌐½".
  2899.                             9.3.6  ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.         
  2900.  
  2901.              ìÑ«íσ«ñ¿¼«  ñ«íáó¿Γ∞  ¡Ñ߬«½∞¬«  Σπ¡¬µ¿⌐  ¬   ¿ßσ«ñ¡«¼π
  2902.         æ-Σá⌐½π ñ½∩  »«ññÑ᪬¿  Σπ¡¬µ¿¿  ñ¿á½«úá  OpenDlg.  ¥Γ¿ Σπ¡¬µ¿¿
  2903.         »ÑαÑτ¿ß½Ñ¡δ ¡¿ªÑ:
  2904.  
  2905.         öπ¡¬µ¿∩             Ä»¿ßá¡¿Ñ
  2906.         ───────────────────────────────────────────────────────────────
  2907.         UpdateListBox       çừ½¡∩ÑΓ  »á¡Ñ½∞ »ÑαÑτ¡∩ ó »á¡Ñ½¿ ñ¿á½«úá
  2908.                             Open ¿¼Ñ¡á¼¿ π¬áºá¡¡δσ Σá⌐½«ó.
  2909.  
  2910.         SeparateFile        Éáºñѽ∩ÑΓ »«½¡«Ñ ¿¼∩ Σá⌐½á ¡á ¿¼∩ ¼áαΦαπΓá
  2911.                             ¿ ¿¼∩ Σá⌐½á.
  2912.  
  2913.         ChangeDefExt        è«»¿απÑΓ  αáßΦ¿αÑ¡¿Ñ  ¿¼Ñ¡¿ Σá⌐½á ó íπΣÑα,
  2914.                             Ñß½¿ Γ«½∞¬« αáßΦ¿αÑ¡¿Ñ ¡Ñ ß«ñÑαª¿Γ π¡¿óÑα-
  2915.                             ßá½∞¡δσ ß¿¼ó«½«ó.
  2916.  
  2917.         AddExt              ä«íáó½∩ÑΓ αáßΦ¿αÑ¡¿Ñ ¬ ¿¼Ñ¡¿ Σá⌐½á, Ñß-
  2918.                             ½¿ «¡« ¡Ñ ¿¼Ñ½« αáßΦ¿αÑ¡¿∩.
  2919.         ───────────────────────────────────────────────────────────────
  2920.  
  2921.              öπ¡¬µ¿∩ UpdateListBox ßΓα«¿Γ »«½¡«Ñ ¿¼∩  Σá⌐½á,  ¿ß»«½∞ºπ∩
  2922.         ¼áαΦαπΓ  »« π¼«½τá¡¿ε ¿ ¿¼∩ Σá⌐½á,  á ºáΓѼ »ÑαÑñáÑΓ Ñú« »á¡Ñ½¿
  2923.         »ÑαÑτ¡∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿  DlgDirList.  ¥Γá  Σπ¡¬µ¿∩  ºá»«½¡∩ÑΓ
  2924.         »á¡Ñ½∞  »ÑαÑτ¡∩  ¿¼Ñ¡á¼¿ Σá⌐½«ó ¿ ¬áΓὫú«ó,  ¬áªñδ⌐ ¿º ¬«Γ«αδσ
  2925.         ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡  »«½¡δ¼   ¿¼Ñ¡Ñ¼   ¼áαΦαπΓá   Σá⌐½á.   ä«íáó∞ΓÑ
  2926.         ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
  2927.  
  2928.  
  2929.        Windows 3.0/pg/2#3                                        = 57 =
  2930.  
  2931.              void UpdateListBox(hDlg)
  2932.              HWND hDlg;
  2933.              {
  2934.                  strcpy(str, DefPath);
  2935.                  strcat(str, DefSpec);
  2936.                  DlgDirList(hDlg, str, ID_LISTBOX, ID_PATH, 0x4010);
  2937.                  SetDlgItemText(hDlg, ID_EDIT, DefSpec);
  2938.              }
  2939.  
  2940.              öπ¡¬µ¿∩ SetDlgItemText ¬«»¿απÑΓ ¿¼∩ Σá⌐½á »«  π¼«½τá¡¿ε  ó
  2941.         αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ »á¡Ñ½¿ ñ¿á½«úá.
  2942.  
  2943.              öπ¡¬µ¿∩ SeparateFile  αáºñѽ∩ÑΓ  »«½¡«Ñ  ¿¼∩  Σá⌐½á ¡á ñóÑ
  2944.         τáßΓ¿  ¿  ¬«»¿απÑΓ  ¿σ  ó  αáºñѽ∞¡δÑ   íπΣÑαδ.   Ä¡á   ß¡áτá½á
  2945.         »ÑαѼÑΘáÑΓß∩  ó  ¬«¡Ñµ »«½¡«ú« ¿¼Ñ¡¿ Σá⌐½á ¿ ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε
  2946.         AnsiPrev ñ½∩ «íαáΓ¡«ú« »ÑαѼÑΘÑ¡¿∩, ¡áσ«ñ∩ »α¿ φΓ«¼ αáºñѽ¿Γѽ∞
  2947.         »ÑαÑñ   ¿¼Ñ¡Ñ¼   ñαá⌐óÑαá   ¿½¿  ¬áΓὫúá.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿Ñ
  2948.         «»ÑαáΓ«αδ  ¬  ¿ßσ«ñ¡«¼π   æ-Σá⌐½π:
  2949.  
  2950.         void   SeparateFile(hDlg,lpDestPath, lpDestFileName,
  2951.                           lpSrcFileName)
  2952.         HWND hDlg;
  2953.         LPSTR lpDestPath, lpDestFileName, lpSrcFileName;
  2954.         {
  2955.              LPSTR lpTmp;
  2956.              CHAR cTmp;
  2957.              lpTmp = lpSrcFileName + (long) lstrlen(lpSrcFileName);
  2958.              while (*lpTmp != ':' && *lpTmp != '\' &&
  2959.                     lpTmp > lpSrcFileName)
  2960.                   lpTmp = AnsiPrev(lpSrcFileName, lpTmp);
  2961.              if (*lpTmp != ':' &&  *lpTmp != '\') {
  2962.                  lstrcpy(lpDestFileName, lpSrcFileName);
  2963.                  lpDestPath[0] = 0;
  2964.                  return;
  2965.              }
  2966.              lstrcpy(lpDestFileName, lpTmp + 1);
  2967.              cTmp = *(lpTmp + 1);
  2968.              lstrcpy(lpDestPath, lpSrcFileName);
  2969.              *(lpTmp + 1) = cTmp;
  2970.              lpDestPath[(lpTmp - lpSrcFileName) + 1] = 0;
  2971.         }
  2972.  
  2973.              öπ¡¬µ¿¿ ChangeDefExt   ¿   AddExt  ¿ß»«½∞ºπεΓ  ßΓá¡ñáαΓ¡δÑ
  2974.         «»ÑαáΓ«αδ ∩ºδ¬á  æ  ñ½∩  óδ»«½¡Ñ¡¿∩  »«ßΓáó½Ñ¡¡«⌐  »ÑαÑñ   ¡¿¼¿
  2975.         ºáñáτ¿. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
  2976.  
  2977.  
  2978.         void ChangeDefExt(Ext, Name)
  2979.         PSTR Ext, Name;
  2980.         {
  2981.             PSTR pTptr;
  2982.  
  2983.             pTptr = Name;
  2984.  
  2985.        Windows 3.0/pg/2#3                                        = 58 =
  2986.  
  2987.             while (*pTptr && *pTptr != '.')
  2988.                 pTptr++;
  2989.                 if (*pTptr)                /* true, Ñß½¿ φΓ« - αáß-
  2990.                                               Φ¿αÑ¡¿Ñ             */
  2991.                    if (!strchr(pTptr, '*') && !strchr(pTptr, '?'))
  2992.                        strcpy(Ext, pTptr); /* ¬«»¿α«óáΓ∞ αáßΦ¿αÑ-
  2993.                                               ¡¿Ñ                 */
  2994.         }
  2995.  
  2996.         void AddExt(Name, Ext)
  2997.         PSTR Ext, Name;
  2998.         {
  2999.             PSTR pTptr;
  3000.             pTptr = Name;
  3001.             while (*pTptr && *pTptr != '.')
  3002.                 pTptr++;
  3003.                 if (*pTptr != '.')         /* Ñß½¿ ¡ÑΓ αáßΦ¿αÑ¡¿∩ -
  3004.                                               ñ«íáó¿Γ∞ αáßΦ¿αÑ¡¿Ñ
  3005.                                               »« π¼«½τá¡¿ε        */
  3006.                     strcat(Name, Ext);
  3007.         }
  3008.                                                                                
  3009.                      9.3.7  ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá.
  3010.  
  3011.              ìÑ«íσ«ñ¿¼« φ¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿ε  ñ¿á½«úá  OpenDlg,  Γ.¬.
  3012.         φΓ« Σπ¡¬µ¿∩  ¼¡«ú«¬αáΓ¡«ú«  ó맮óá ¿ óδºδóáÑΓß∩ Γ«½∞¬« Windows.
  3013.         ä«íáó∞ΓÑ  ß½ÑñπεΘπε  ßΓ᫬𠠬  «»ÑαáΓ«απ   EXPORTS   ó   Σá⌐½Ñ
  3014.         «»αÑñѽѡ¿∩ ¼«ñπ½∩:
  3015.  
  3016.              OpenDlg @3
  3017.                                                                                
  3018.                        9.3.8  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
  3019.  
  3020.              é Σá⌐½Ñ    make    ¡Ñ   ΓαÑíπÑΓß∩   »α«ó«ñ¿Γ∞   ¿º¼Ñ¡Ñ¡¿⌐.
  3021.         ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ  »α¿¬½áñ¡πε  »α«úαá¼¼π,  ºá»πßΓ¿ΓÑ
  3022.         Windows ¿  »α«úαá¼¼π FileOpen.  è«úñá íπñÑΓ «Γ¬αδΓ« ¼Ñ¡ε File ¿
  3023.         óδíαá¡á ¬«¼á¡ñá Open, »á¡Ñ½∞ ñ¿á½«úá »α¿¼ÑΓ ó¿ñ, »αÑñßΓáó½Ñ¡¡δ⌐
  3024.         ¡á α¿ß.  9.1. ó ¡áτá½Ñ ñá¡¡«ú« αáºñѽá. éδíÑα¿ΓÑ Σá⌐½ ¿º »á¡Ñ½¿
  3025.         »ÑαÑτ¡∩ ¿½¿ óóÑñ¿ΓÑ ¿¼∩ Σá⌐½á ó αÑñá¬Γ¿απѼδ⌐ í½«¬  π»αáó½Ñ¡¿∩,
  3026.         á ºáΓѼ óδíÑα¿ΓÑ ¬½áó¿Φπ "Open".
  3027.                                               9.4  çᬽετÑ¡¿Ñ.                 
  3028.  
  3029.              é ñá¡¡«⌐  ú½áóÑ  «»¿ßá¡«  ¬á¬  ß«ºñáóáΓ∞  ¿ ¿ß»«½∞º«óáΓ∞ ó
  3030.         »α¿¬½áñ¡δσ »α«úαá¼¼áσ »á¡Ñ½¿  ñ¿á½«úá.  Åá¡Ñ½∞  ñ¿á½«úá  -  φΓ«
  3031.         ß»Ñµ¿á½∞¡«Ñ «¬¡«,  ¬«Γ«α«Ñ »ÑαѬαδóáÑΓ «ß¡«ó¡«Ñ «¬¡« »α¿¬½áñ¡«⌐
  3032.         »α«úαá¼¼δ. ê¼ÑÑΓß∩  ñóá  Γ¿»á  »á¡Ñ½Ñ⌐  ñ¿á½«úá:  ¼«ñá½∞¡δÑ   ¿
  3033.         ¡Ñ¼«ñá½∞¡δÑ. î«ñá½∞¡δÑ  »á¡Ñ½¿ ñ¿á½«úá ΓαÑíπεΓ ºáóÑαΦÑ¡¿∩ óó«ñá
  3034.         «Γ »«½∞º«óáΓѽ∩ ñ« Γ«ú«,  ¬á¬ «¡¿ óÑα¡πΓ  π»αáó½Ñ¡¿Ñ  «ß¡«ó¡«¼π
  3035.         «¬¡π »α¿¬½áñ¡«⌐   »α«úαá¼¼δ.   ìѼ«ñá½∞¡δÑ  »á¡Ñ½¿  ñ¿á½«úá  ¡Ñ
  3036.         ΓαÑíπεΓ ºáóÑαΦÑ¡¿∩  óó«ñá  «Γ  »«½∞º«óáΓѽ∩  ñ½∩  Γ«ú«,   τΓ«íδ
  3037.         »ÑαÑñáΓ∞ π»αáó½Ñ¡¿∩ ñαπú¿¼ «¬¡á¼ »α«úαá¼¼δ.
  3038.  
  3039.  
  3040.        Windows 3.0/pg/2#3                                        = 59 =
  3041.  
  3042.              Windows »αÑñ«ßΓáó½∩ÑΓ ¡áí«α ß»Ñµ¿á½∞¡δσ Σπ¡¬µ¿⌐ ñ½∩ αáí«Γδ
  3043.         ß í½«¬á¼¿ π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá.
  3044.  
  3045.              ä½∩ ß«ºñá¡¿∩ »á¡Ñ½Ñ⌐  ñ¿á½«úá  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  Dialog
  3046.         Editor.
  3047.  
  3048.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε  «Γ¡«ß¿Γѽ∞¡« »á¡Ñ½Ñ⌐ ñ¿á½«úá óδ
  3049.         ¡á⌐ñÑΓÑ ó:
  3050.  
  3051.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  3052.         ───────────────────────────────────────────────────────────────
  3053.         Äíαáí«Γ¬á ß««íΘÑ¡¿⌐  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 4, "éó«ñ ß
  3054.         óó«ñá                ¿ß»«½∞º«ó᡿Ѽ ¼δΦ¿ ¿ ¬½áó¿áΓπαδ".
  3055.  
  3056.         ü½«¬¿ π»αáó½Ñ¡¿∩     Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 8, "ü½«¬¿
  3057.                              π»αáó½Ñ¡¿∩".
  3058.  
  3059.         öπ¡¬µ¿¿ í½«¬«ó π»-   æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 1,
  3060.         αáó½Ñ¡¿∩ ¿ »á¡Ñ½Ñ⌐   "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá π»αáó½Ñ¡¿∩ «¬¡á¼¿".
  3061.         ñ¿á½«úá
  3062.  
  3063.         Ä»ÑαáΓ«αδ «»¿ßá¡¿∩   æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 8,
  3064.         αÑßπα߫󠠠          "Ä»ÑαáΓ«αδ «»¿ßá¡¿∩ αÑßπαß«ó".
  3065.  
  3066.         êß»«½∞º«óá¡¿Ñ        "Tools", â½áóá 5, "櫺ñá¡¿Ñ »á¡Ñ½Ñ⌐ ñ¿á-
  3067.         Dialog Editor        ½«úá: The Dialog Editor".
  3068.  
  3069.         äѼ«¡ßΓαᵿ«¡¡á∩     ä¿ß¬ "SDK Sample Source Code Disk".
  3070.         »α«úαá¼¼á
  3071.         OWNCOMBO.EXE,
  3072.         ¿½½εßΓα¿απεΘá∩ ¿ß-
  3073.         »«½∞º«óá¡¿Ñ ¬«¼í¿-
  3074.         ¡¿α«óá¡¡δσ í½«¬«ó ¿
  3075.         α¿ßπѼδσ í½«¬«ó π»-
  3076.         αáó«Ñ¡¿∩.
  3077.  
  3078.  
  3079.  
  3080.        Windows 3.0/pg/2#3                                        = 60 =
  3081.  
  3082.                                   â½áóá 10. éó«ñ ¿ óδó«ñ ¿º Σá⌐½«ó.            
  3083.  
  3084.              éó«ñ ¿  óδó«ñ  Σá⌐½«ó  ó  ßαÑñÑ Windows á¡á½«ú¿τÑ¡ óó«ñπ ¿
  3085.         óδó«ñπ Σá⌐½«ó ó ßΓá¡ñáαΓ¡δσ »α«úαá¼¼áσ ¿ß»«½¡∩εΘÑ⌐  ß¿ßΓÑ¼δ  æ.
  3086.         Äñ¡á¬« ¿¼ÑεΓß∩ ¿ ßπΘÑßΓóÑ¡¡δÑ «Γ½¿τ¿∩.  ìá»α¿¼Ñα, σ«Γ∩ ó« óαѼ∩
  3087.         óδ»«½¡Ñ¡¿∩ »α«úαá¼¼  ó  Windows  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞   »«Γ«τ¡δÑ
  3088.         Σπ¡¬µ¿¿ óó«ñá ¿ óδó«ñá ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ,  »αÑñ»«τΓ¿Γѽ∞¡ÑÑ
  3089.         «¬áºδóáεΓß∩ Σπ¡¬µ¿¿ óó«ñá ¿ óδó«ñá ¡¿º¬«ú« πα«ó¡∩.  èα«¼Ñ Γ«ú«,
  3090.         »«ß¬«½∞¬π  Windows  ∩ó½∩ÑΓß∩  ¼¡«ú«ºáñáτ¡«⌐ ßαÑñ«⌐,  ¡Ñ«íσ«ñ¿¼«
  3091.         «ß«íÑ¡¡« ó¡¿¼áΓѽ∞¡« ß½Ññ¿Γ∞ ºá «Γ¬αδΓ묨 Σá⌐½á¼¿.
  3092.  
  3093.              ä½∩ Γ«ú«,  τΓ«íδ »«ññÑনóáΓ∞ π¬áºá¡¡δÑ αẽ¿τ¿∩,  ¿¼ÑÑΓß∩
  3094.         Σπ¡¬µ¿∩ OpenFile.  öπ¡¬µ¿∩ OpenFile «Γ¬αδóáÑΓ Σá⌐½δ ¿ π»αáó½∩ÑΓ
  3095.         ¿¼¿,  ó«ºóαáΘá∩ ñÑß¬α¿»Γ«α Σá⌐½á,  ¬«Γ«αδ⌐ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ó
  3096.         Σπ¡¬µ¿∩σ ¡¿º¬«ú«  πα«ó¡∩  ¿ß»«½¡∩εΘÑ⌐  ß¿ßΓÑ¼δ  æ  ñ½∩ τΓÑ¡¿∩ ¿
  3097.         ºá»¿ß¿ ñá¡¡δσ.
  3098.  
  3099.              é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡δ ß½ÑñπεΘ¿Ñ ΓѼδ:
  3100.  
  3101.              - Éáí«Γá ß Σá⌐½á¼¿ ó ßαÑñÑ Windows.
  3102.  
  3103.              - èᬠ ¿ß»«½∞º«óáΓ∞   Σπ¡¬µ¿ε   OpenFile   ñ½∩   ß«ºñá¡¿∩,
  3104.                «Γ¬αδΓ¿∩, »«óΓ«α¡«ú«   «Γ¬αδΓ¿∩,   ºá»α«ßá   ¿  »α«óÑન
  3105.                ß«ßΓ«∩¡¿∩ Σá⌐½«ó.
  3106.  
  3107.              - Éáí«Γá ß ¡¿º¬«πα«ó¡Ñó묨 Σπ¡¬µ¿∩¼¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ
  3108.                ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó Σá⌐½δ.
  3109.  
  3110.              é ñá¡¡«⌐   ú½áóÑ   «»¿ßá¡«   ß«ºñá¡¿Ñ  »α«ßΓ«⌐  »α¿¬½áñ¡«⌐
  3111.         »α«úαá¼¼δ EditFile,  ¬«Γ«αá∩  ¿½½εßΓα¿απÑΓ  ¿ß»«½∞º«óá¡¿Ñ  φΓ¿σ
  3112.         ó«º¼«ª¡«ßΓÑ⌐.
  3113.                         10.1 Åαáó¿½á αáí«Γδ ß Σá⌐½á¼¿ ó ßαÑñÑ Windows.         
  3114.  
  3115.              î¡«ú«ºáñáτ¡«ßΓ∞ ¡á¬½áñδóáÑΓ      ¡Ñ¬«Γ«αδÑ     ß»Ñµ¿á½∞¡δÑ
  3116.         «úαá¡¿τÑ¡¿∩ ¡á ñ«ßΓπ» ¬ Σá⌐½á¼,  ß ¬«Γ«α묨 ¡Ñ  ßΓὬ¿óáεΓß∩  ó
  3117.         «íδτ¡δσ æ-»α«úαá¼¼áσ.  Å«ß¬«½∞¬π ¼«ªÑΓ íδΓ∞ ¡Ñ߬«½∞¬« »α«úαá¼¼,
  3118.         «ñ¡«óαѼѡ¡«  αáí«ΓáεΘ¿σ  ß   Σá⌐½á¼¿,   ¡Ñ«íσ«ñ¿¼«   ß½Ññ«óáΓ∞
  3119.         ¡Ñ¬«Γ«αδ¼ »α«ßΓδ¼ »αáó¿½á¼ ñ½∩ Γ«ú«,  τΓ«íδ ¿ºíѪáΓ∞ ¬«¡Σ½¿¬Γ«ó
  3120.         ¿ ó«º¼«ª¡«ú« ºáΓ¿αá¡¿∩ Σá⌐½«ó.
  3121.  
  3122.           äÑনΓÑ Σá⌐½ «Γ¬αδΓδ¼  Γ«½∞¬« ¬«úñá óáΦá »α«úαἼᠠ¿¼ÑÑΓ
  3123.                                   π»αáó½Ñ¡¿Ñ.
  3124.  
  3125.              ìÑ«íσ«ñ¿¼« ºá¬αδóáΓ∞    Σá⌐½δ    »ÑαÑñ   óδº«ó«¼   Σπ¡¬µ¿¿
  3126.         GetMessage ¿½¿ ½εí«⌐ ñαπú«⌐  Σπ¡¬µ¿¿,  ¬«Γ«αá∩  íÑαÑΓ  ¡á  ßÑí∩
  3127.         π»αáó½Ñ¡¿Ñ óδ»«½¡Ñ¡¿Ñ¼  »α«úαá¼¼δ.  çá¬αδΓ¿Ñ Σá⌐½á »αÑñ«ΓóαáΓ¿Γ
  3128.         Ñú« «Γ ó½¿∩¡¿∩ ¿º¼Ñ¡Ñ¡¿⌐ Σá⌐½«ó«⌐  ßαÑñδ,  ¬«Γ«αδÑ  ¼«úπΓ  íδΓ∞
  3129.         αѺπ½∞ΓáΓ«¼ αáí«Γδ ñαπú«⌐ »α«úαá¼¼δ. ÅαÑñ»«½«ª¿¼ óáΦá »α«úαá¼¼á
  3130.         »α«¿ºó«ñ¿Γ ºá»¿ß∞ ¡á ú¿í¬¿⌐ ñ¿ß¬ ¿ óαѼѡ¡« »ÑαÑñá½á π»αáó½Ñ¡¿Ñ
  3131.         ñαπú«⌐ »α«úαá¼¼Ñ,  ¬«Γ«αá∩  ¼«ªÑΓ  ñáΓ∞ π¬áºá¡¿Ñ πñ὿Γ∞ ú¿í¬¿⌐
  3132.         ñ¿ß¬ ¿ ºá¼Ñ¡¿Γ∞ Ñú« ñαπú¿¼. àß½¿ »Ñαóá∩ »α«úαá¼¼á ó¡«ó∞ »«½πτ¿Γ
  3133.         π»αáó½Ñ¡¿Ñ  ¿ »«»δΓáÑΓß∩ »¿ßáΓ∞ ¡á ñ¿ß¬,  ¬á¬ ñѽá½á φΓ« αá¡ÑÑ,
  3134.  
  3135.        Windows 3.0/pg/2#3                                        = 61 =
  3136.  
  3137.         Γ« íѺ ºá¬αδΓ¿∩ ¿ »«óΓ«α¡«ú« «Γ¬αδΓ¿∩ Σá⌐½á «¡á αáºαπΦ¿Γ ñá¡¡δÑ
  3138.         ¡á ¡«ó«¼ ñ¿ß¬Ñ.
  3139.  
  3140.              äαπúá∩ »α¿τ¿¡á   ñÑαªáΓ∞   Σá⌐½δ   ºá¬αδΓ묨   ß«ßΓ«¿Γ   ó
  3141.         «úαá¡¿τÑ¡¡«¼ τ¿ß½Ñ «Γ¬αδΓδσ  Σá⌐½«ó  («úαá¡¿τÑ¡¿Ñ  «»Ñαᵿ«¡¡«⌐
  3142.         ß¿ßΓѼδ). àß½¿  ßαáºπ í«½∞Φ«Ñ τ¿ß½« »α«úαá¼¼ »«»δΓáÑΓß∩ «Γ¬αδΓ∞
  3143.         ¿  ¿ß»«½∞º«óáΓ∞  Σá⌐½δ,  Γ«  π¬áºá¡¡δ⌐  »αÑñѽ   ¼«ªÑΓ   íδßΓα«
  3144.         ¿ßτÑα»áΓ∞ß∩.
  3145.  
  3146.              ä½∩ αÑΦÑ¡¿∩  »α«í½Ñ¼δ  «Γ¬αδΓδσ  Σá⌐½«ó  Σπ¡¬µ¿∩  OpenFile
  3147.         ¿¼ÑÑΓ »áαá¼ÑΓα OF_REOPEN,  ¬«Γ«αδ⌐ »«ºó«½∩ÑΓ ½Ñú¬« ºá¬αδóáΓ∞  ¿
  3148.         »«óΓ«α¡«  «Γ¬αδóáΓ∞  Σá⌐½δ.  èᬠ Γ«½∞¬«  Σá⌐½  «Γ¬αδóáÑΓß∩ ¿½¿
  3149.         ß«ºñáÑΓß∩,    Σπ¡¬µ¿∩    OpenFile    áóΓ«¼áΓ¿τÑ߬¿     ¬«»¿απÑΓ
  3150.         ß««ΓóÑΓßΓóπεΘπε ¿¡Σ«α¼áµ¿ε « Σá⌐½Ñ, ó¬½ετáεΘπε »«½¡«Ñ ¿¼∩ Σá⌐½á
  3151.         ¿ ΓѬπΘπε »«º¿µ¿ε π¬áºáΓѽ∩ Σá⌐½á,  ó ßΓαπ¬Γπαπ  OFSTRUCT.  ¥Γ«
  3152.         «º¡áτáÑΓ, τΓ« ¼«ª¡« ºá¬αδΓ∞ Σá⌐½, á ºáΓѼ Ñú« »«óΓ«α¡« «Γ¬αδΓ∞,
  3153.         ºáñáóá∩ Γ«½∞¬« φΓπ ßΓαπ¬Γπαπ.
  3154.  
  3155.              àß½¿ ñ¿ß¬ íδ½ ¿º¼Ñ¡Ñ¡ ó« óαѼ∩ αáí«Γδ ß ñαπú«⌐ »α«úαá¼¼«⌐,
  3156.         Σπ¡¬µ¿∩  OpenFile  óδñáÑΓ  «Φ¿í¬π »α¿ »«óΓ«α¡«¼ «Γ¬αδΓ¿¿ Σá⌐½á.
  3157.         àß½¿ »α¿ »«óΓ«α¡«¼ «Γ¬αδΓ¿¿ Σá⌐½á í佫 ß»Ñµ¿Σ¿µ¿α«óá¡« π¬áºá¡¿Ñ
  3158.         OF_PROMPT,  Σπ¡¬µ¿∩  OpenFile  áóΓ«¼áΓ¿τÑ߬¿  ¿¡ñ¿µ¿απÑΓ »á¡Ñ½∞
  3159.         ß««íΘÑ¡¿⌐, ñѽá∩ ºá»α«ß ¡á πßΓá¡«ó¬π ¡πª¡«ú« ñ¿ß¬á.
  3160.  
  3161.            Åα¿ óδ»«½¡Ñ¡¿¿ «»Ñαᵿ⌐ ¡áñ Σá⌐½á¼¿ ¡Ñ«íσ«ñ¿¼« ß½Ññ«óáΓ∞
  3162.                                ß«ú½áΦÑ¡¿∩¼ DOS.
  3163.  
  3164.              é ¬«¡Ñτ¡«¼  ßτÑΓÑ,  »α¿  óó«ñÑ  ¿  óδó«ñÑ  Σá⌐½«ó  Windows
  3165.         ºáó¿ß¿Γ «Γ Σπ¡¬µ¿⌐ π»αáó½Ñ¡¿∩ Σá⌐½á¼¿ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ. ¥Γ«
  3166.         «º¡áτáÑΓ,  τΓ«  »α¿  óδ»«½¡Ñ¡¿¿ «»Ñαᵿ⌐ ¡áñ Σá⌐½á¼¿ ¡Ñ«íσ«ñ¿¼«
  3167.         ß½Ññ«óáΓ∞  ß«ú½áΦÑ¡¿∩¼,  »α¿¡∩Γδ¼   ó   «»Ñαᵿ«¡¡«⌐   ß¿ßΓѼÑ.
  3168.         ìá»α¿¼Ñα, ¿¼∩ Σá⌐½á ¼«ªÑΓ ¿¼ÑΓ∞ «Γ «ñ¡«ú« ñ« ó«ß∞¼¿ ß¿¼ó«½«ó, á
  3169.         τ¿ß½« ß¿¼ó«½«ó ó αáßΦ¿αÑ¡¿¿ Σá⌐½á ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ß∩ «Γ  ¡π½∩  ñ«
  3170.         ΓαÑσ.  ê¼∩  Σá⌐½á  ¡Ñ ñ«½ª¡« ß«ñÑαªáΓ∞ »α«íѽ«ó ¿½¿ ß»Ñµ¿á½∞¡δσ
  3171.         ß¿¼ó«½«ó.  ü«½ÑÑ Γ«ú«, ¿¼Ñ¡á Σá⌐½«ó ñ«½ª¡δ íδΓ∞ ß»Ñµ¿Σ¿µ¿α«óá¡δ
  3172.         ¡áí«α«¼  ß¿¼ó«½«ó  OEM,  á  ¡Ñ  ¡áí«α«¼  ß¿¼ó«½«ó  »« π¼«½τá¡¿ε
  3173.         (ANSI).
  3174.  
  3175.              äѽ« »α«úαá¼¼¿ßΓá - ß½Ññ¿Γ∞ ºá ΓѼ,  τΓ«íδ ¿¼∩ Σá⌐½á ¿¼Ñ½«
  3176.         «»αÑñѽѡ¡πε  ñ½¿¡π ¿½¿ ß«ßΓ«∩½« ¿º ß««ΓóÑΓßΓóπεΘ¿σ º¡á¬«ó,  ¡«
  3177.         «¡ ¼«ªÑΓ ¡Ñ íÑß»«¬«¿Γ∞ß∩ « »αÑ«íαẫóá¡¿¿ ¡áí«αá  º¡á¬«ó,  Ñß½¿
  3178.         ¿ß»«½∞ºπÑΓ   Σπ¡¬µ¿ε   OpenFile.   ä½∩   πñ«íßΓóá  φΓá  Σπ¡¬µ¿∩
  3179.         áóΓ«¼áΓ¿τÑ߬¿ »αÑ«íαáºπÑΓ ¿¼Ñ¡á Σá⌐½«ó ¿º ¡áí«αá ß¿¼ó«½«ó  ANSI
  3180.         ó ¡áí«α ß¿¼ó«½«ó OEM. äѽáÑΓß∩ φΓ« ß »«¼«Θ∞ε Σπ¡¬µ¿¿ AnsiToOem.
  3181.  
  3182.              Åα¿¼Ñτá¡¿Ñ: éßÑ  αÑñá¬Γ¿απѼδÑ  í½«¬¿  π»αáó½Ñ¡¿∩ ¿ »á¡Ñ½¿
  3183.         »ÑαÑτ¡Ñ⌐ »« π¼«½τá¡¿ε ¿ß»«½∞ºπεΓ ¡áí«α ß¿¼ó«½«ó ANSI,  ΓᬠτΓ«,
  3184.         Ñß½¿  »½á¡¿απÑΓß∩  ¿¡ñ¿µ¿α«óáΓ∞  ¿¼Ñ¡á Σá⌐½«ó DOS ¿½¿ »«ºó«½¿Γ∞
  3185.         »«½∞º«óáΓÑ½ε    óóÑßΓ¿    ¿¼Ñ¡á    Σá⌐½«ó,    ¼«ª¡«    »«½πτ¿Γ∞
  3186.         ¡Ñ»αÑñ߬áºπѼδÑ  ß¿¼ó«½δ  Γá¼,  úñÑ  ß¿¼ó«½  OEM  ¡Ñ  ¿ñÑ¡Γ¿τÑ¡
  3187.         ß¿¼ó«½π ANSI.
  3188.  
  3189.              àß½¿ ¡Ñ«íσ«ñ¿¼« αáí«ΓáΓ∞ ß ¼Ñªñπ¡áα«ñ¡δ¼¿ ¿¼Ñ¡á¼¿  Σá⌐½«ó,
  3190.  
  3191.        Windows 3.0/pg/2#3                                        = 62 =
  3192.  
  3193.         ¡Ñ«íσ«ñ¿¼«  »«ñú«Γ«ó¿Γ∞  ñ½∩  «íαáí«Γ¬¿  ¿¼Ñ¡á Σá⌐½«ó,  ¬«Γ«αδÑ
  3194.         ß«ñÑαªáΓ ¼¡«ú«íá⌐Γ¡δÑ º¡áτÑ¡¿∩ ß¿¼ó«½«ó (¡á»α¿¼Ñα,  ¿Ñα«ú½¿Σδ).
  3195.         ä½∩  Γá¬¿σ  ¿¼Ñ¡ Σá⌐½«ó ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ AnsiNext ¿
  3196.         AnsiPrev ñ½∩  »ÑαѼÑΘÑ¡¿∩  »«  ßΓ᫬Ñ.  ¥Γ¿  Σπ¡¬µ¿¿  »αáó¿½∞¡«
  3197.         π»αáó½∩εΓ ßΓα«¬á¼¿,  ¬«Γ«αδÑ ß«ñÑαªáΓ ß¿¼ó«½δ, ñ½¿¡á ¬«Γ«αδσ ¡Ñ
  3198.         αáó¡á «ñ¡«¼π íá⌐Γπ,  ¡á»α¿¼Ñα, ¬á¬ ßΓ᫬¿ ¿º ß¿¼ó«½«ó ∩»«¡ß¬«ú«
  3199.         á½Σáó¿Γá.
  3200.  
  3201.           êß»«½∞ºπ⌐ΓÑ ó ¬áªñ«¼ φ¬ºÑ¼»½∩αÑ óáΦÑ⌐ »α«úαá¼¼δ π¡¿¬á½∞¡δÑ
  3202.                                  ¿¼Ñ¡á Σá⌐½«ó.
  3203.  
  3204.              Å«ß¬«½∞¬π ¡Ñ߬«½∞¬«  φ¬ºÑ¼»½∩α«ó  «ñ¡«⌐  »α«úαá¼¼δ   ¼«úπΓ
  3205.         αáí«ΓáΓ∞ «ñ¡«óαѼѡ¡«,  «ñ¿¡ ¿º ¡¿σ ¼«ªÑΓ ßΓÑαÑΓ∞ óαѼѡ¡δ⌐ ¿½¿
  3206.         αáí«τ¿⌐  Σá⌐½  ñαπú«ú«   φ¬ºÑ¼»½∩αá,   Ñß½¿   ¡Ñ   ¿ß»«½∞º«óáΓ∞
  3207.         π¡¿¬á½∞¡«Ñ ¿¼∩ Σá⌐½á ñ½∩ ¬áªñ«ú« φ¬ºÑ¼»½∩αá.
  3208.  
  3209.              ô¡¿¬á½∞¡«Ñ ¿¼∩  Σá⌐½á  ¼«ª¡«  ß«ºñáΓ∞  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  3210.         GetTempFilename.  ¥Γá Σπ¡¬µ¿∩ ß«ºñáÑΓ π¡¿¬á½∞¡«Ñ ¿¼∩, «íΩÑñ¿¡∩∩
  3211.         π¡¿¬á½∞¡«Ñ   µÑ½«Ñ  ß  »αÑΣ¿¬ß«¼  ¿  αáßΦ¿αÑ¡¿Ñ¼  ¿¼Ñ¡¿  Σá⌐½á,
  3212.         ºáñáóáÑ¼δ¼¿  »«½∞º«óáΓѽѼ.   éαѼѡ¡δÑ   ¿¼Ñ¡á   πñ«ó½ÑΓó«α∩εΓ
  3213.         ΓαÑí«óá¡¿∩¼,   »αÑñΩ∩ó½∩Ñ¼δ¼   ¬   ¿¼Ñ¡á¼  Σá⌐½«ó  «»Ñαᵿ«¡¡«⌐
  3214.         ß¿ßΓѼ«⌐.
  3215.  
  3216.              Åα¿¼Ñτá¡¿Ñ: öπ¡¬µ¿∩ GetTempFilename ¿ß»«½∞ºπÑΓ  »ÑαѼѡ¡πε
  3217.         ßαÑñδ  TEMP  ñ½∩ ß«ºñá¡¿∩ »«½¡«ú« ¿¼Ñ¡¿ óαѼѡ¡«ú« Σá⌐½á.  àß½¿
  3218.         »«½∞º«óáΓѽ∞ ¡Ñ ºáñáßΓ φΓπ  »ÑαѼѡ¡πε,  óαѼѡ¡δ⌐  Σá⌐½  íπñÑΓ
  3219.         »«¼ÑΘÑ¡ ó ¬«α¡Ñó«⌐ ¬áΓὫú ΓѬπΘÑú« πßΓα«⌐ßΓóá. àß½¿ »ÑαѼѡ¡á∩
  3220.         «»αÑñѽ∩ÑΓ ¡Ññ«ßΓπ»¡δ⌐ ¬áΓὫú,  »«½∞º«óáΓѽ∞ ¡Ñ ß¼«ªÑΓ ß«ºñáΓ∞
  3221.         óαѼѡ¡δ⌐ Σá⌐½.
  3222.  
  3223.            çá¬αδóá⌐ΓÑ Σá⌐½δ »ÑαÑñ «Γ«íαáªÑ¡¿Ñ¼ »á¡Ñ½¿  ß««íΘÑ¡¿∩ ¿½¿
  3224.            ¿ß»«½∞ºπ⌐ΓÑ ß¿ßΓѼ¡δÑ  ¼«ñá½∞¡δÑ   »á¡Ñ½¿   ß««íΘÑ¡¿⌐  «í
  3225.                                    «Φ¿í¬áσ.
  3226.  
  3227.            èᬠí佫   ß¬áºá¡«  óδΦÑ,  »α«úαἼᠠ¡Ñ  ñ«½ª¡á  »ÑαÑñáóáΓ∞
  3228.         π»αáó½Ñ¡¿Ñ,  »«¬á ñÑαª¿Γ Σá⌐½δ «Γ¬αδΓ묨.  àß½¿ óáΦá  »α«úαá¼¼á
  3229.         ¿ß»«½∞ºπÑΓ  ¡Ñ ß¿ßΓѼ¡πε ¼«ñá½∞¡πε »á¡Ñ½∞ óδñáτ¿ ß««íΘÑ¡¿⌐,  Γ«
  3230.         »«½∞º«óáΓѽ∞ ¼«ªÑΓ »ÑαÑ⌐Γ¿ ¬ ñαπú«⌐ »α«úαá¼¼Ñ,  ¬«úñá ¡á φ¬αá¡Ñ
  3231.         ¿¡ñ¿µ¿απÑΓß∩  »á¡Ñ½∞ ß««íΘÑ¡¿⌐.  àß½¿ ó »α«úαἼѠÑßΓ∞ «Γ¬αδΓδÑ
  3232.         Σá⌐½δ,  Γ«  »ÑαѬ½ετÑ¡¿Ñ  ¡á  ñαπúπε  »α«úαá¼¼π  ¼«ªÑΓ  óδºóáΓ∞
  3233.         »α«í½Ñ¼δ óó«ñá óδó«ñá.
  3234.  
  3235.              ä½∩ ¿ß¬½ετÑ¡¿∩    φΓ¿σ   »α«í½Ñ¼,   óáΦá   »α«úαἼᠠ »α¿
  3236.         «Γ«íαáªÑ¡¿¿ »á¡Ñ½¿ ß««íΘÑ¡¿⌐ ñ«½ª¡á ñѽáΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¡«
  3237.         ¿º:
  3238.  
  3239.              - çá¬αδΓ∞   «Γ¬αδΓδÑ   Σá⌐½δ   »ÑαÑñ  «Γ«íαáªÑ¡¿Ñ¼  »á¡Ñ½¿
  3240.                ß««íΘÑ¡¿⌐.
  3241.  
  3242.              - àß½¿ ºá¬αδΓ¿Ñ Σá⌐½«ó  ¡Ñπñ«í¡«,  Γ«  ¡Ñ«íσ«ñ¿¼«  ßñѽáΓ∞
  3243.                »á¡Ñ½∞ ñ¿á½«úá ß¿ßΓѼ¡«-¼«ñá½∞¡«⌐.
  3244.  
  3245.  
  3246.        Windows 3.0/pg/2#3                                        = 63 =
  3247.  
  3248.                                           10.2  æ«ºñá¡¿Ñ Σá⌐½«ó.               
  3249.  
  3250.              ä½∩ ß«ºñá¡¿∩   ¡«ó«ú«  Σá⌐½á  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε
  3251.         OpenFile  ß  ¬½ετѼ  OF_CREATE.  Åα¿  ó맮óÑ  Σπ¡¬µ¿¿  OpenFile
  3252.         ¡Ñ«íσ«ª¿¼« π¬áºáΓ∞:
  3253.  
  3254.              - Ä¬á¡τ¿óáεΘÑÑß∩ ¡π½Ñ¼ ¿¼∩  Σá⌐½á.
  3255.  
  3256.              - üπΣÑα Γ¿»á OFSTRUCT.
  3257.  
  3258.              - è½ετ OF_CREATE.
  3259.  
  3260.              é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  ß«ºñáÑΓß∩  Σá⌐½  file.txt  ¿
  3261.         ó«ºóαáΘáÑΓß∩ ñÑß¬α¿»Γ«α Σá⌐½á, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ó
  3262.         Σπ¡¬µ¿∩σ óó«ñá/óδó«ñá ¡¿º¬«ú« πα«ó¡∩ í¿í½¿«ΓѬ¿ æ:
  3263.  
  3264.              int hFile;
  3265.              OFSTRUCT OfStruct;
  3266.                 .
  3267.                 .
  3268.                 .
  3269.              hFile=OpenFile("file.txt", &OfStruct, OF_CREATE);
  3270.  
  3271.              öπ¡¬µ¿∩ OpenFile ß«ºñáÑΓ  Σá⌐½  (Ñß½¿  φΓ«  ¡Ñ«íσ«ñ¿¼«)  ¿
  3272.         «Γ¬αδóáÑΓ  Ñú«  ñ½∩ ºá»¿ß¿.  àß½¿ Σá⌐½ πªÑ ßπΘÑßΓóπÑΓ,  Σπ¡¬µ¿∩
  3273.         πßѬáÑΓ Ñú« ñ« ¡π½Ñó«⌐ ñ½¿¡δ ¿ «Γ¬αδóáÑΓ ñ½∩ ºá»¿ß¿.
  3274.  
  3275.              àß½¿ ¡Ñ ñ«»π߬áÑΓß∩ ßΓ¿αá¡¿Ñ ßπΘÑßΓóπεΘÑú« Σá⌐½á, Γ« »ÑαÑñ
  3276.         ß«ºñ᡿Ѽ  ¡«ó«ú«  Σá⌐½á ¼«ª¡« »α«óÑα¿Γ∞,  ßπΘÑßΓóπÑΓ ½¿ ñá¡¡δ⌐
  3277.         Σá⌐½, óδºóáó Σπ¡¬µ¿ε OpenFile, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
  3278.  
  3279.              hFile = OpenFile("file.txt", &OfStruct, OF_EXIST);
  3280.              if (hFile >= 0) {
  3281.                  wAction = MessageBox(hWnd,
  3282.                      (LPSTR) "öá⌐½ ßπΘÑßΓóπÑΓ. ÅÑαÑ»¿ßáΓ∞?",
  3283.                      (LPSTR) "File",
  3284.                      MB_OKCANCEL);
  3285.                  if (wAction == IDCANCEL)
  3286.              /* ºá¬«¡τ¿Γ∞ φΓπ «íαáí«Γ¬π */
  3287.                  }
  3288.              }
  3289.              /* «Γ¬αδΓ∞ Σá⌐½ */
  3290.                                                                                
  3291.                      10.3  ÄΓ¬αδΓ¿Ñ ßπΘÑßΓóπεΘ¿σ Σá⌐½«ó.
  3292.  
  3293.              î«ª¡« «Γ¬αδΓ∞  ßπΘÑßΓóπεΘ¿⌐  Σá⌐½,  ¿ß»«½∞º«óáó  »áαá¼ÑΓαδ
  3294.         OF_READ,  OF_WRITE  ¿½¿  OF_READWRITE.  ¥Γ¿ »áαá¼ÑΓαδ »«íπªñáεΓ
  3295.         Σπ¡¬µ¿ε OpenFile «Γ¬αδΓ∞ ßπΘÑßΓóπεΘ¿Ñ Σá⌐½δ ñ½∩ τΓÑ¡¿∩,  ºá»¿ß¿
  3296.         ¿½¿  τΓÑ¡¿∩ ¿ ºá»¿ß¿.  é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ Σá⌐½ file.txt
  3297.         «Γ¬αδóáÑΓß∩ ñ½∩ τΓÑ¡¿∩:
  3298.  
  3299.              hFile = OpenFile("file.txt", &OfStruct, OF_READ);
  3300.  
  3301.              àß½¿ »α«¿º«Φ½á   «Φ¿í¬á   »α¿   «Γ¬αδΓ¿¿   Σá⌐½á,    ¼«ª¡«
  3302.  
  3303.        Windows 3.0/pg/2#3                                        = 64 =
  3304.  
  3305.         ¿¡ñ¿µ¿α«óáΓ∞ »á¡Ñ½∞ ñ¿á½«úá ¿ π¬áºáΓ∞,  τΓ« Σá⌐½ ¡Ñ íδ½ ¡á⌐ñÑ¡.
  3306.         î«ª¡«  ΓᬪѠ ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  OpenFile   ñ½∩   »«ñ߬Ậ¿
  3307.         »«½∞º«óáΓÑ½ε « Σá⌐½Ñ, ¬á¬ φΓ« «»¿ßá¡« ó »«ñαáºñѽѠ10.6 "çá»α«ß
  3308.         ¿¼Ñ¡¿ Σá⌐½á".
  3309.                                      10.4  ùΓÑ¡¿Ñ ¿ ºá»¿ß∞ Σá⌐½«ó.             
  3310.  
  3311.              èá¬ Γ«½∞¬« Σá⌐½ «Γ¬αδΓ, Γ« ¼«ª¡« ¿º ¡Ñú« τ¿ΓáΓ∞ ¿½¿ ó ¡Ñú«
  3312.         ºá»¿ßδóáΓ∞, ¿ß»«½∞ºπ∩  Σπ¡¬µ¿¿ æ ¡¿º¬«ú« πα«ó¡∩.  é »α¿óÑñÑ¡¡«¼
  3313.         ¡¿ªÑ »α¿¼ÑαÑ Σá⌐½ file.txt «Γ¬αδóáÑΓß∩ ñ½∩ τΓÑ¡¿∩  ¿  ºáΓѼ  ¿º
  3314.         ¡Ñú« ßτ¿ΓδóáÑΓß∩ 512 íá⌐Γ«ó:
  3315.  
  3316.              char buffer[512];
  3317.              int count;
  3318.                .
  3319.                .
  3320.                .
  3321.              hFile = OpenFile("file.txt", &OfStruct, OF_READ);
  3322.              if (hFile >= 0) {
  3323.                  count = read(hFile, buffer, 512);
  3324.                  close(hFile);
  3325.              }
  3326.  
  3327.              é φΓ«¼ »α¿¼ÑαÑ  »ÑαÑñ  ßτ¿Γδó᡿Ѽ  ¿º  Σá⌐½á  »α«óÑα∩ÑΓß∩
  3328.         ñÑß¬α¿»Γ«α Σá⌐½á.  öπ¡¬µ¿∩ OpenFile ó«ºóαáΘáÑΓ -1, Ñß½¿ Σá⌐½ ¡Ñ
  3329.         ¼«ªÑΓ íδΓ∞ ¡á⌐ñÑ¡ ¿½¿  «Γ¬αδΓ.  öπ¡¬µ¿∩  close  ºá¬αδóáÑΓ  Σá⌐½
  3330.         ßαáºπ ªÑ »«ß½Ñ τΓÑ¡¿∩.
  3331.  
  3332.              é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ Σá⌐½ file.tmp «Γ¬αδóáÑΓß∩ ñ½∩
  3333.         ºá»¿ß¿,  ¿, ºáΓѼ, ó ¡Ñú« ºá»¿ßδóáÑΓß∩ ß«ñÑন¼«Ñ íπΣÑαá ó ó¿ñÑ
  3334.         ¼áßß¿óá ß¿¼ó«½«ó:
  3335.  
  3336.              hFile = OpenFile("file.tmp", &OfStruct, OF_READ);
  3337.              if (hFile >= 0) {
  3338.                 write (hFile, buffer, count);
  3339.                 close (hFile);
  3340.              }
  3341.  
  3342.              éßÑúñá ¡Ñ«íσ«ñ¿¼«  ºá¬αδóáΓ∞  Σá⌐½δ ¡á ú¿í¬¿σ ñ¿ß¬áσ »«ß½Ñ
  3343.         τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. ¥Γ« ¡Ñ«íσ«ñ¿¼« ñѽáΓ∞ ñ½∩ Γ«ú«, τΓ«íδ «í«⌐Γ¿
  3344.         »α«í½Ñ¼δ,  ó«º¡¿¬áεΘ¿Ñ  »α¿  πñá½Ñ¡¿¿  ΓѬπΘÑú«  ñ¿ß¬á ó« óαѼ∩
  3345.         αáí«Γδ ß ñαπú«⌐ »α«úαá¼¼«⌐.  éßÑúñá ¼«ª¡« »«óΓ«α¡« «Γ¬αδΓ∞ Σá⌐½
  3346.         ¡á ñ¿ß¬Ñ, ¿ß»«½∞ºπ∩ »áαá¼ÑΓα OF_REOPEN.
  3347.                                                                                
  3348.                       10.5  Å«óΓ«α¡«Ñ «Γ¬αδΓ¿Ñ Σá⌐½«ó.
  3349.  
  3350.              àß½¿ óδ  «Γ¬α뫨  Σá⌐½  ¡á  ú¿í¬«¼  ñ¿ß¬Ñ,  Ñú« ¡Ñ«íσ«ñ¿¼«
  3351.         ºá¬αδΓ∞ »ÑαÑñ ΓѼ,  ¬á¬ »ÑαÑñáΓ∞ π»αáó½Ñ¡¿Ñ  ñαπú«⌐  »α«úαá¼¼Ñ.
  3352.         ìá¿í«½ÑÑ »«ñσ«ñ∩Θ¿⌐  ñ½∩  φΓ«ú«  ¼«¼Ñ¡Γ - ¡Ñ»«ßαÑñßΓóÑ¡¡« »«ß½Ñ
  3353.         τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. öá⌐½ óßÑúñá ¼«ª¡« »«óΓ«α¡« «Γ¬αδΓ∞ ß »«¼«Θ∞ε
  3354.         Σπ¡¬µ¿¿ OpenFile ß ¬½ετѼ OF_REOPEN:
  3355.  
  3356.         hFile=OpenFile((LPSTR)NULL, &OfStruct, OF_REOPEN | OF_READ);
  3357.  
  3358.        Windows 3.0/pg/2#3                                        = 65 =
  3359.  
  3360.  
  3361.              é φΓ«¼  »α¿¼ÑαÑ  Σπ¡¬µ¿∩  OpenFile ¿ß»«½∞ºπÑΓ ¿¼∩ Σá⌐½á ¿º
  3362.         ßΓαπ¬Γπαδ OfStruct ñ½∩ «Γ¬αδΓ¿∩ Σá⌐½á.  Åα¿ »«óΓ«α¡«¼  «Γ¬αδΓ¿¿
  3363.         Σá⌐½á  Ñú«  π¬áºáΓѽ∞,  «Γ߽Ѫ¿óáεΘ¿⌐  ΓѬπΘπε »«º¿µ¿ε ó Σá⌐½Ñ,
  3364.         »ÑαѼÑΘáÑΓß∩ ó Γπ ªÑ ßá¼πε Γ«τ¬π Σá⌐½á,  ó ¬«Γ«α«⌐ «¡ ¡áσ«ñ¿½ß∩
  3365.         ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ ºá¬αδΓ¿Ñ¼ Σá⌐½á.
  3366.                                                                                
  3367.                           10.6  çá»α«ß ¿¼Ñ¡¿ Σá⌐½á.
  3368.  
  3369.              æ »«¼«Θ∞ε  ¬½ετá  OF_PROMPT ¼«ª¡« áóΓ«¼áΓ¿τÑ߬¿ »«ñ߬áºáΓ∞
  3370.         »«½∞º«óáΓѽε óßΓáó¿Γ∞ ¡πª¡πε ñ¿ß¬ÑΓπ »ÑαÑñ »«óΓ«α¡δ¼  «Γ¬αδΓ¿Ñ¼
  3371.         Σá⌐½á.  öπ¡¬µ¿∩  OpenFile  ¿ß»«½∞ºπÑΓ  ¿¼∩  Σá⌐½á  ñ½∩ ß«ºñá¡¿∩
  3372.         ßΓ᫬¿ »«ñ߬Ậ¿.  Åα¿  »«óΓ«α¡«¼   «Γ¬αδΓ¿¿   Σá⌐½á   ¡áñ«   ó
  3373.         ñ«íáó½Ñ¡¿Ñ  ¬  αѪ¿¼π «Γ¬αδΓ¿∩ ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓαδ OF_REOPEN
  3374.         ¿½¿ OF_PROMPT:
  3375.  
  3376.              hFile = OpenFile((LPSTR)NULL, &OfStruct, OF_PROMPT |
  3377.                                OF_REOPEN | OF_READ);
  3378.  
  3379.              àß½¿ Σá⌐½ »«óΓ«α¡« «Γ¬αδΓ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, Windows íπñÑΓ
  3380.         »α«óÑα∩Γ∞,  ß««ΓóÑΓßΓóπÑΓ ½¿ ñáΓá ¿ óαѼ∩ Γ«⌐ ñáΓÑ  ¿  óαѼѡ¿,
  3381.         ¬«úñá Σá⌐½ íδ½ «Γ¬αδΓ ó»ÑαóδÑ.
  3382.                                                                                
  3383.                        10.7  Åα«óÑα¬á ß«ßΓ«∩¡¿∩ Σá⌐½á.
  3384.  
  3385.              î«ª¡« «»αÑñѽ¿Γ∞   ΓѬπΘÑÑ   ß«ßΓ«∩¡¿Ñ   «Γ¬αδΓ«ú«  Σá⌐½á,
  3386.         ¿ß»«½∞º«óáó Σπ¡¬µ¿ε  æ  ¡¿º¬«ú«  πα«ó¡∩  fstat.   ¥Γá   Σπ¡¬µ¿∩
  3387.         ºá»«½¡∩ÑΓ ßΓαπ¬Γπαπ ¿¡Σ«α¼áµ¿Ñ⌐ « Σá⌐½Ñ,  Γᬫ⌐ ¬á¬ ñ½¿¡á Σá⌐½á
  3388.         ó  íá⌐Γáσ  (߻ѵ¿Σ¿µ¿α«óá¡á  »«½Ñ¼  size),  ñáΓá  ¿  óαѼ∩  Ñú«
  3389.         ß«ºñá¡¿∩.  é  »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  ßΓαπ¬Γπαá  FileStatus
  3390.         ºá»«½¡∩ÑΓß∩ ¿¡Σ«α¼áµ¿Ñ⌐ « Σá⌐½Ñ file.txt:
  3391.  
  3392.              stat FileStatus;
  3393.                 .
  3394.                 .
  3395.                 .
  3396.              fstat(hFile, FileStatus);
  3397.                              10.8  Åα«ßΓ«⌐ αÑñá¬Γ«α Σá⌐½«ó EditFile.           
  3398.  
  3399.              é ñá¡¡«¼ »α¿¼ÑαÑ »«¬áºá¡«,  ¬á¬ ß«ºñáΓ∞ »α«ßΓπε »α«úαá¼¼π,
  3400.         ¬«Γ«αá∩  ¿ß»«½∞ºπÑΓ  Σπ¡¬µ¿ε  OpenFile  ¿  Σπ¡¬µ¿¿  ¿ß»«½¡∩εΘÑ⌐
  3401.         ß¿ßΓÑ¼δ æ ñ½∩ «Γ¬αδΓ¿∩ ¿ ß«σαá¡Ñ¡¿∩ ¡Ñí«½∞Φ¿σ ΓѬßΓ«óδσ Σá⌐½«ó.
  3402.         ä½∩ ß«ºñá¡¿∩   »α«úαá¼¼δ   EditFile  ¡Ñ«íσ«ñ¿¼«  ß¬«»¿α«óáΓ∞  ¿
  3403.         »ÑαÑ¿¼Ñ¡«óáΓ∞ αÑßπαßδ »α«úαá¼¼δ FileOpen,  «»¿ßá¡¡δÑ ó ú½áóÑ  9
  3404.         "Åá¡Ñ½¿ ñ¿á½«úá" ¿ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ¿σ ß½ÑñπεΘ¿¼ «íαẫ¼:
  3405.  
  3406.              1. ä«íáó¿Γ∞ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
  3407.  
  3408.              2. æ«ºñáΓ∞  Φáí½«¡  »á¡Ñ½¿ ñ¿á½«úá SaveAs ¿ ñ«íáó¿Γ∞ Ñú« ¬
  3409.                 Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
  3410.  
  3411.              3. ä«íáó¿Γ∞ ¡«óδÑ «»ÑαáΓ«αδ ó¬½ετÑ¡¿∩ ó  ¿ßσ«ñ¡δ⌐  æ-Σá⌐½.
  3412.  
  3413.        Windows 3.0/pg/2#3                                        = 66 =
  3414.  
  3415.  
  3416.              4. ä«íáó¿Γ∞ ¡«óδÑ »ÑαѼѡ¡δÑ.
  3417.  
  3418.              5. çá¼Ñ¡¿Γ∞  Σαáú¼Ñ¡Γ WM_COMMAND.
  3419.  
  3420.              6. ä«íáó¿Γ∞  Σαáú¼Ñ¡Γδ  WM_QUERYENDSESSION  ¿ WM_CLOSE.
  3421.  
  3422.              7. î«ñ¿Σ¿µ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá OpenDlg.
  3423.  
  3424.              8. æ«ºñáΓ∞ Σπ¡¬µ¿ε  ñ¿á½«úá  SaveAs.
  3425.  
  3426.              9. æ«ºñáΓ∞ óß»«¼«úáΓѽ∞¡δÑ  Σπ¡¬µ¿¿  ñ½∩  Σπ¡¬µ¿¿  ñ¿á½«úá
  3427.                 SaveAs.
  3428.  
  3429.              10. ¥¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá SaveAs.
  3430.  
  3431.              11. î«ñ¿Σ¿µ¿α«óáΓ∞ «»ÑαáΓ«α HEAPSIZE.
  3432.  
  3433.              12. ÄΓΓαá¡ß½¿α«óáΓ∞ ¿ ß¬«¼»«¡«óáΓ∞ »α«úαá¼¼π.
  3434.  
  3435.              è«úñá »α¿¬½áñ¡á∩  »α«úαἼᠠºáóÑαΦÑ¡á,  ¼«ª¡« »α«ß¼«ΓαÑΓ∞
  3436.         ΓѬßΓ«óδÑ Σá⌐½δ  ó  αÑñá¬Γ¿απѼ«¼  í½«¬Ñ  π»αáó½Ñ¡¿∩.   è«¼á¡ñá
  3437.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ   Open  ¿º  ¼Ñ¡ε  File  »«ºó«½∩ÑΓ  π¬áºáΓ∞
  3438.         «Γ¬αδóáѼδ⌐ Σá⌐½.  î«ª¡« ΓᬪѠñѽáΓ∞  ¿º¼Ñ¡Ñ¡¿∩  ó  Σá⌐½Ñ  ¿½¿
  3439.         óó«ñ¿Γ∞ ¡«óδ⌐ ΓѬßΓ, á ΓᬪѠ߫σαá¡∩Γ∞ ΓѬßΓ, ¿ß»«½∞ºπ∩ ¬«¼á¡ñδ
  3440.         "Save" ¿½¿ "SaveAs" ó »á¡Ñ½¿ ñ¿á½«úá.
  3441.  
  3442.              Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
  3443.         ó  ß½ÑñπεΘ¿σ  αáºñѽáσ,  ó«º¼«ª¡«  óá¼  íπñÑΓ  πñ«í¡ÑÑ   »α«ßΓ«
  3444.         »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
  3445.                                                                                
  3446.                10.8.1  ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γ ó« ó¬½ετáѼδ⌐ Σá⌐½.
  3447.  
  3448.              ä½∩ »«ññÑ᪬¿ »á¡Ñ½¿ ñ¿á½«úá  SaveAs  ¡Ñ«íσ«ñ¿¼«  ñ«íáó¿Γ∞
  3449.         «»αÑñѽѡ¿∩  ¬«¡ßΓá¡Γ  ó«  ó¬½ετáѼδ⌐ Σá⌐½.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐
  3450.         «»ÑαáΓ«α ó φëàΣá⌐½:
  3451.  
  3452.              #define MAXFILESIZE 0x7FFF
  3453.                                                                                
  3454.                   10.8.2  ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá SaveAs.
  3455.  
  3456.              ä½∩ »«ññÑ᪬¿ ¬«¼á¡ñδ  "SaveAs"  ¡Ñ«íσ«ñ¿¼á  ¡«óá∩  »á¡Ñ½∞
  3457.         ñ¿á½«úá. Åá¡Ñ½∞  ñ¿á½«úá  "SaveAs" ºá»αáΦ¿óáÑΓ ¿¼∩ Σá⌐½á ¿ ñáÑΓ
  3458.         ó«º¼«ª¡«ßΓ∞  »«½∞º«óáΓÑ½ε  óóÑßΓ¿  ¿¼∩  ó  αÑñá¬Γ¿απѼδ⌐   í½«¬
  3459.         π»αáó½Ñ¡¿∩.  ä«íáó∞ΓÑ «»ÑαáΓ«α DIALOG ¬ Σá⌐½π αÑßπαß«ó:  SaveAs
  3460.  
  3461.         Saveas DIALOG 10, 10, 180, 53
  3462.         STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
  3463.         CAPTION "Save As "
  3464.         BEGIN
  3465.             LTEXT "Save As File &Name:", IDC_FILENAME,  4, 4, 72, 10
  3466.             LTEXT "",                    IDC_PATH,     84, 4, 92, 10
  3467.             EDITTEXT                     IDC_EDIT,      4, 16, 100, 12
  3468.  
  3469.        Windows 3.0/pg/2#3                                        = 67 =
  3470.  
  3471.             DEFPUSHBUTTON  "Save",       IDOK,       120, 16, 50, 14
  3472.             PUSHBUTTON     "Cancel",     IDCANCEL,   120, 36, 50, 14
  3473.         END
  3474.  
  3475.              è«¡ßΓá¡Γδ ID_PATH, ID_FILENAME, ID_EDIT, IDCANCEL ¿ IDOK -
  3476.         ΓÑ   ªÑ  ßá¼δÑ,  τΓ«  ¿ß»«½∞º«ó὿ß∞  ó  »á¡Ñ½¿  ñ¿á½«úá  Open.
  3477.         Å«ß¬«½∞¬π »á¡Ñ½¿ ñ¿á½«úá Open ¿ SaveAs ¡¿¬«úñá ¡Ñ íπñπΓ «Γ¬αδΓδ
  3478.         «ñ¡«óαѼѡ¡«,  ¡ÑΓ  ¡Ñ«íσ«ñ¿¼«ßΓ¿  íÑß»«¬«¿Γ∞ß∩ « ¬«¡Σ½¿¬Γáσ ID
  3479.         í½«¬«ó π»αáó½Ñ¡¿∩.
  3480.                                                                                
  3481.                    10.8.3  ä«íáó½Ñ¡¿Ñ «»ÑαáΓ«α«ó include.
  3482.  
  3483.              ä½∩ »«ññÑ᪬¿ «»Ñαᵿ⌐ óó«ñá ¿  óδó«ñá  Σá⌐½«ó  ¡Ñ«íσ«ñ¿¼«
  3484.         ó¬½ετ¿Γ∞  ñ«»«½¡¿Γѽ∞¡δÑ  ó¬½ετáѼδÑ Σá⌐½δ.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
  3485.         «»ÑαáΓ«αδ ó ¡áτὫ ¿ßσ«ñ¡«ú« æ-Σá⌐½á:
  3486.  
  3487.              #include <sys\types.h>
  3488.              #include <sys\stat.h>
  3489.                                 10.8.4 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.            
  3490.  
  3491.              ä½∩ «Γ¬αδΓ¿∩   ¿  ß«σαá¡Ñ¡¿∩  Σá⌐½«ó  ¡Ñ«íσ«ñ¿¼«  «íΩ∩ó¿Γ∞
  3492.         ¡Ñ¬«Γ«αδÑ ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ.  é ¡áτá½Ñ  Σá⌐½á  ñ«½ª¡δ  íδΓ∞
  3493.         «íΩ∩ó½Ñ¡δ ß½ÑñπεΘ¿Ñ »ÑαѼѡ¡δÑ:
  3494.  
  3495.         HANDLE hEditBuffer;        /* ñÑß¬α¿»Γ«α íπΣÑαá αÑñá¬Γ¿α«-
  3496.                                       óá¡¿∩                       */
  3497.         HANDLE hOldBuffer;         /* ñÑß¬α¿»Γ«α ßΓáα«ú« íπΣÑαá   */
  3498.         HANDLE hHourGlass;         /* ñÑß¬α¿»Γ«α ¬παß«αá "»Ñß«τ¡δÑ
  3499.                                       τáßδ"                       */
  3500.         HANDLE hSaveCursor;        /* ñÑß¬α¿»Γ«α ΓѬπΘÑú« ¬παß«αá */
  3501.         int hFile;                 /* ñÑß¬α¿»Γ«α Σá⌐½á            */
  3502.         int count;                 /* τ¿ß½« ßτ¿ΓδóáѼδσ ¿½¿ ºá»¿-
  3503.                                       ßδóáѼδσ ß¿¼ó«½«ó           */
  3504.         PSTR pBuffer;              /* áñαÑß íπΣÑαá τΓÑ¡¿∩/ºá»¿ß¿  */
  3505.         OFSTRUCT OfStruct;         /* ¿¡Σ«α¼áµ¿∩ ¿º OpenFile()    */
  3506.         struct stat FileStatus;    /* ¿¡Σ«α¼áµ¿∩ ¿º fstat()       */
  3507.         BOOL bChanges = FALSE;     /* TRUE, Ñß½¿ Σá⌐½ ¿º¼Ñ¡∩ÑΓß∩  */
  3508.         BOOL bSaveEnabled = FALSE; /* TRUE, Ñß½¿ ΓѬßΓ - ó íπΣÑαÑ
  3509.                                       αÑñá¬Γ¿α«óá¡¿∩              */
  3510.         PSTR pEditBuffer;          /* áñαÑß íπΣÑαá αÑñá¬Γ¿α«óá¡¿∩ */
  3511.         char Untitled[] =          /* ºáú«½«ó«¬ «¬¡á »« π¼«½τá¡¿ε */
  3512.             " Edit File - (untitled)";
  3513.  
  3514.              ÅÑαѼѡ¡á∩ hEditBuffer ß«ñÑαª¿Γ ñÑß¬α¿»Γ«α ΓѬπΘÑú« íπΣÑαá
  3515.         αÑñá¬Γ¿α«óá¡¿∩.   ¥Γ«Γ   íπΣÑα,  αáß»«½«ªÑ¡¡δ⌐  ó  ñ¿¡á¼¿τÑ߬«⌐
  3516.         «í½áßΓ¿ »á¼∩Γ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,  ß«ñÑαª¿Γ  ΓѬßΓ  ΓѬπΘÑú«
  3517.         Σá⌐½á.  ä½∩ ºáúαπº¬¿ Σá⌐½á ¡Ñ«íσ«ñ¿¼« «ΓóÑßΓ¿ íπΣÑα,  ºáúαπº¿Γ∞
  3518.         Σá⌐½,  á ºáΓѼ »ÑαÑñáΓ∞ ñÑß¬α¿»Γ«α íπΣÑαá αÑñá¬Γ¿απѼ«¼π  í½«¬π
  3519.         π»αáó½Ñ¡¿∩.   ÅÑαѼѡ¡á∩  hOldBuffer  ¿ß»«½∞ºπÑΓß∩  ñ½∩  ºá¼Ñ¡δ
  3520.         ßΓáα«ú« íπΣÑαá  ¡«óδ¼.  äÑß¬α¿»Γ«αδ  hHourGlass  ¿  hSaveCursor
  3521.         ß«ñÑαªáΓ ñÑß¬α¿»Γ«αδ ¬παß«αá »α¿ ñ½¿Γѽ∞¡δσ «»Ñαᵿ∩σ.
  3522.  
  3523.  
  3524.        Windows 3.0/pg/2#3                                        = 68 =
  3525.  
  3526.              ÅÑαѼѡ¡á∩ hFile   ß«ñÑαª¿Γ   ñÑß¬α¿»Γ«α   Σá⌐½á,  ¬«Γ«αδ⌐
  3527.         ó«ºóαáΓ¿½á Σπ¡¬µ¿∩ OpenFile.  ÅÑαѼѡ¡á∩ count ß«ñÑαª¿Γ ßτÑΓτ¿¬
  3528.         τ¿ß½á  ß¿¼ó«½«ó,  ¬«Γ«αδÑ  ñ«½ª¡δ  íδΓ∞  ßτ¿Γá¡δ  ¿½¿ ºá»¿ßá¡δ.
  3529.         ÅÑαѼѡ¡á∩ pBuffer  ∩ó½∩ÑΓß∩  π¬áºáΓѽѼ;  «¡á  ß«ñÑαª¿Γ  áñαÑß
  3530.         ß¿¼ó«½á,  ¡áτ¿¡á∩  ß  ¬«Γ«α«ú«  «ßπΘÑßΓó½∩ÑΓß∩  ßτ¿Γδóá¡¿Ñ  ¿½¿
  3531.         ºá»¿ß∞. æΓαπ¬Γπαá OfStruct ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε « Σá⌐½Ñ.
  3532.  
  3533.              æΓαπ¬Γπαá FileStatus Γ«ªÑ  ß«ñÑαª¿Γ  ¿¡Σ«α¼áµ¿ε  «  Σá⌐½Ñ.
  3534.         ÅÑαѼѡ¡á∩  bChanges  αáó¡á  TRUE,  Ñß½¿  »«½∞º«óáΓѽ∞  ¿º¼Ñ¡¿½
  3535.         ß«ñÑন¼«Ñ Σá⌐½á.  ÅÑαѼѡ¡á∩  bSaveEnabled  αáó¡á  TRUE,  Ñß½¿
  3536.         »«½∞º«óáΓѽ∞  óδíαá½  »αáó¿½∞¡«Ñ  ¿¼∩  ñ½∩  ß«σαá¡∩Ѽ«ú« Σá⌐½á.
  3537.         ÅÑαѼѡ¡á∩ Untitled ß«ñÑαª¿Γ ºáú«½«ó«¬ «ß¡«ó¡«ú« «¬¡á,  ¬«Γ«αδ⌐
  3538.         ¿º¼Ñ¡∩ÑΓß∩ »α¿ ¬áªñ«⌐ ºáúαπº¬Ñ ¡«ó«ú« Σá⌐½á.
  3539.                                10.8.5  çá¼Ñ¡á Σαáú¼Ñ¡Γá WM_COMMAND.            
  3540.  
  3541.              ä½∩ «íαáí«Γ¬¿  ¬«¼á¡ñ  ¼Ñ¡ε  File  (¬α«¼Ñ  ¬«¼á¡ñδ  Print)
  3542.         ¡Ñ«íσ«ñ¿¼«  ºá¼Ñ¡¿Γ∞  Σαáú¼Ñ¡Γ  WM_COMMAND.  ä½∩  ¬«¼á¡ñδ   New
  3543.         ¡Ñ«íσ«ñ¿¼«   «τ¿ßΓ¿Γ∞   ΓѬπΘÑÑ  ¿¼∩  Σá⌐½á  ¿  ßñѽáΓ∞  »πßΓδ¼
  3544.         αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩,  Ñß½¿ ó ¡Ñ¼  ¿¼ÑÑΓß∩  ¬á¬«⌐-½¿í«
  3545.         ΓѬßΓ.  ä½∩  ¬«¼á¡ñδ  Open  ¡Ñ«íσ«ñ¿¼«  »«½πτ¿Γ∞  óδíαá¡¡«Ñ ¿¼∩
  3546.         Σá⌐½á,  «Γ¬αδΓ∞ Σá⌐½ ¿ ºá»«½¡¿Γ∞ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
  3547.         ä½∩  ¬«¼á¡ñδ Save ¡Ñ«íσ«ñ¿¼« ºá»¿ßáΓ∞ ß«ñÑন¼«Ñ αÑñá¬Γ¿απѼ«ú«
  3548.         í½«¬á π»αáó½Ñ¡¿∩ «íαáΓ¡« ó ΓѬπΘ¿⌐ Σá⌐½.  ìᬫ¡Ñµ,  ñ½∩ ¬«¼á¡ñδ
  3549.         SaveAs  ¡Ñ«íσ«ñ¿¼«  ºá»α«ß¿Γ∞  ¿¼∩  Σá⌐½á ¿ ºá»¿ßáΓ∞ ß«ñÑন¼«Ñ
  3550.         αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩.
  3551.  
  3552.              àß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ New,  ¿ ΓѬßΓ ó ΓѬπΘѼ
  3553.         ¼«ñ¿Σ¿µ¿απѼ«¼  Σá⌐½Ñ ßπΘÑßΓóπÑΓ,  ¡Ñ«íσ«ñ¿¼« ñáΓ∞ »«½∞º«óáΓѽε
  3554.         »«ñ߬Ậπ ó ó¿ñÑ »á¡Ñ½¿ ß««íΘÑ¡¿∩, ¬«Γ«αá∩ «»αÑñѽ∩ÑΓ, ¡πª¡« ½¿
  3555.         ß«σαá¡¿Γ∞  ßñѽᡡδÑ ¿º¼Ñ¡Ñ¡¿∩.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬
  3556.         Σαáú¼Ñ¡Γπ WM_COMMAND:
  3557.  
  3558.              case IDM_NEW:
  3559.                   if (!QuerySaveFile(hWnd))
  3560.                      return (NULL);
  3561.                   bChanges=FALSE;
  3562.                   FileName[0]=0
  3563.                   SetNewBuffer(hWnd, NULL, Untitled);
  3564.                   break;
  3565.  
  3566.              ï«¬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ QuerySaveFile »α«óÑα∩ÑΓ Σá⌐½
  3567.         ¡á  ¡á½¿τ¿Ñ ¿º¼Ñ¡Ñ¡¿⌐ ¿ »«ñ߬áºδóáÑΓ »«½∞º«óáΓѽε ß«σαá¡¿Γ∞ φΓ¿
  3568.         ¿º¼Ñ¡Ñ¡¿∩.  àß½¿ ¿º¼Ñ¡Ñ¡¿∩ ß«σαá¡∩εΓß∩,  ¿¼∩ Σá⌐½á «τ¿ΘáÑΓß∩  ¿
  3569.         íπΣÑα   αÑñá¬Γ¿α«óá¡¿∩   ñѽáÑΓß∩   »πßΓδ¼  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  3570.         SetNewBuffer.
  3571.  
  3572.              àß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ Open, ¿ ΓѬßΓ ó ΓѬπΘѼ
  3573.         ¼«ñ¿Σ¿µ¿απѼ«¼    Σá⌐½Ñ    ßπΘÑßΓóπÑΓ,   ¡Ñ«íσ«ñ¿¼«   ºá»α«ß¿Γ∞
  3574.         »«½∞º«óáΓѽ∩,  ß½ÑñπÑΓ ½¿ ß«σαá¡¿Γ∞ ¿º¼Ñ¡Ñ¡¿∩  »ÑαÑñ  «Γ¬αδΓ¿Ñ¼
  3575.         ¡«ó«ú«   Σá⌐½á.   ä«íáó∞ΓÑ   ß½ÑñπεΘ¿Ñ   «»ÑαáΓ«αδ  ó  Σαáú¼Ñ¡Γ
  3576.         WM_COMMAND:
  3577.  
  3578.  
  3579.        Windows 3.0/pg/2#3                                        = 69 =
  3580.  
  3581.           case IDM_OPEN:
  3582.             if (!QuerySaveFile(hWnd))
  3583.                 return (NULL);
  3584.             lpOpenDlg = MakeProcInstance((FARPROC) OpenDlg, hInst);
  3585.             hFile = DialogBox(hInst, "Open", hWnd, lpOpenDlg);
  3586.             FreeProcInstance(lpOpenDlg);
  3587.             if (!hFile)
  3588.                 return (NULL);
  3589.             hEditBuffer =
  3590.                 LocalAlloc(LMEM_MOVEABLE | LMEM_ZEROINIT,
  3591.                     FileStatus.st_size+1);
  3592.             if (!hEditBuffer) {
  3593.                 MessageBox(hWnd, "ìÑ σóáΓáÑΓ »á¼∩Γ¿.",
  3594.                     NULL, MB_OK | MB_ICONHAND);
  3595.                 return (NULL);
  3596.             }
  3597.             hSaveCursor = SetCursor(hHourGlass);
  3598.             pEditBuffer = LocalLock(hEditBuffer);
  3599.             IOStatus = read(hFile, pEditBuffer, FileStatus.st_size);
  3600.             close(hFile);
  3601.             if (IOStatus != FileStatus.st_size) {
  3602.                 sprintf(str, "ÄΦ¿í¬á τΓÑ¡¿∩ %s.", FileName);
  3603.                 SetCursor(hSaveCursor);
  3604.                 MessageBox(hWnd, str, NULL,
  3605.                     MB_OK | MB_ICONEXCLAMATION);
  3606.             }
  3607.             LocalUnlock(hEditBuffer);
  3608.             sprintf(str, "ÉÑñá¬Γ¿απ¼δ⌐ Σá⌐½ - %s", FileName);
  3609.             SetNewBuffer(hWnd, hEditBuffer, str);
  3610.             SetCursor(hSaveCursor);     /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¬παß«αá */
  3611.             break;
  3612.  
  3613.              Åα¿ «íαáí«Γ¬Ñ  Σαáú¼Ñ¡Γá  IDM_OPEN  Σπ¡¬µ¿∩  QuerySaveFile
  3614.         »α«óÑα∩ÑΓ   ßπΘÑßΓóπεΘ¿⌐   Σá⌐½   ¡á  ¡á½¿τ¿Ñ  ¿º¼Ñ¡Ñ¡¿⌐  »ÑαÑñ
  3615.         ¿¡ñ¿µ¿α«ó᡿Ѽ »á¡Ñ½¿ ñ¿á½«úá Open.  öπ¡¬µ¿∩  DialogBox  ΓÑ»Ñα∞
  3616.         ó«ºóαáΘáÑΓ   ñÑß¬α¿»Γ«α   «Γ¬αδΓ«ú«   Σá⌐½á.   ¥Γ«Γ  ñÑß¬α¿»Γ«α
  3617.         ß«ºñáÑΓß∩ Σπ¡¬µ¿Ñ⌐ OpenDlg.  àß½¿ Σá⌐½ ¡Ñ  ¼«ªÑΓ  íδΓ∞  «Γ¬αδΓ,
  3618.         Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ NULL, ¿ «íαáí«Γ¬á ºá¬á¡τ¿óáÑΓß∩. é »α«Γ¿ó¡«¼
  3619.         ß½πτáÑ  Σπ¡¬µ¿∩  LocalAlloc  «Γó«ñ¿Γ  ¼ÑßΓ«,  ¡Ñ«íσ«ñ¿¼«Ñ   ñ½∩
  3620.         ºáúαπº¬¿  Σá⌐½á  ó »á¼∩Γ∞.  Å«ΓαÑí¡δ⌐ «íΩѼ »á¼∩Γ¿ «»αÑñѽ∩ÑΓß∩
  3621.         ßΓαπ¬Γπα«⌐ FileStatus, ¬«Γ«αá∩ ºá»«½¡∩ÑΓß∩ ¿¡Σ«α¼áµ¿Ñ⌐ « Σá⌐½Ñ,
  3622.         «Γ¬αδΓ«¼ Σπ¡¬µ¿Ñ⌐ ñ¿á½«úá OpenDlg. àß½¿ ¡ÑΓ ñ«ßΓáΓ«τ¡«ú« «íΩѼá
  3623.         »á¼∩Γ¿, ¿¡ñ¿µ¿απÑΓß∩    »á¡Ñ½∞    ß««íΘÑ¡¿⌐     ¿     «íαáí«Γ¬á
  3624.         ºá¬á¡τ¿óáÑΓß∩. é »α«Γ¿ó¡«¼ ß½πτáÑ, Σπ¡¬µ¿∩ SetCursor ¿¡ñ¿µ¿απÑΓ
  3625.         »Ñß«τ¡δÑ τáßδ,  Σπ¡¬µ¿∩  LocalLock  í½«¬¿απÑΓ  ¡«óδ⌐  íπΣÑα,  ¿
  3626.         Σπ¡¬µ¿∩ ¿ß»«½¡∩εΘÑ⌐  ß¿ßΓÑ¼δ æ read ¬«»¿απÑΓ ß«ñÑন¼«Ñ Σá⌐½á ó
  3627.         »á¼∩Γ∞.  àß½¿ Σá⌐½ ¡Ñ íδ½ ßτ¿Γá¡ »«½¡«ßΓ∞ε, ¿¡ñ¿µ¿απÑΓß∩ »á¡Ñ½∞
  3628.         ß««íΘÑ¡¿⌐.   öπ¡¬µ¿∩  SetCursor  ó«ßßΓá¡áó½¿óáÑΓ  ¬παß«α  »ÑαÑñ
  3629.         óδº«ó«¼ Σπ¡¬µ¿¿ MessageBox.  öπ¡¬µ¿∩  LocalUnlock  αáºí½«¬¿απÑΓ
  3630.         íπΣÑα αÑñá¬Γ¿α«óá¡¿∩,  ¿  »«ß½Ñ  ß«ºñá¡¿∩ ¡«ó«ú« ºáú«½«ó¬á «¬¡á
  3631.         ½«¬á½∞¡«  «»αÑñѽѡ¡á∩  Σπ¡¬µ¿∩  SetNewBuffer  ¿º¼Ñ¡∩ÑΓ   íπΣÑα
  3632.         αÑñá¬Γ¿α«óá¡¿∩ ¿ ºáú«½«ó«¬.
  3633.  
  3634.  
  3635.        Windows 3.0/pg/2#3                                        = 70 =
  3636.  
  3637.              àß½¿ »«½∞º«óáΓѽ∞  óδí¿αáÑΓ  ¬«¼á¡ñπ  Save  ¿  ΓѬπΘÑÑ ¿¼∩
  3638.         Σá⌐½á «ΓßπΓßΓóπÑΓ,  ß½ÑñπÑΓ óδ»«½¡¿Γ∞ ¡Ñ¬«Γ«αδÑ ñÑ⌐ßΓó¿∩, ¬á¬ ¿
  3639.         »α¿ ¬«¼á¡ñÑ  SaveAs.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σαáú¼Ñ¡Γπ
  3640.         WM_COMMAND:
  3641.  
  3642.              case IDM_SAVE;
  3643.                   if (!FileName[0])
  3644.                      goto saveas;
  3645.                   if (bChanges)
  3646.                      SaveFile(hWnd);
  3647.                   break;
  3648.  
  3649.              öαáú¼Ñ¡Γ IDM_SAVE  »α«óÑα∩ÑΓ  ¿¼∩  Σá⌐½á  ¿,  Ñß½¿  «¡« ¡Ñ
  3650.         ßπΘÑßΓóπÑΓ,  »α«»π߬áÑΓ «»ÑαáΓ«αδ ñ« Σαáú¼Ñ¡Γá IDM_SAVEAS. àß½¿
  3651.         ¿¼∩  Σá⌐½á  ßπΘÑßΓóπÑΓ,  ½«¬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ SaveFile
  3652.         ß«σαá¡∩ÑΓ Σá⌐½ Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿ ó ¡Ñ¼ í뫨 ¿º¼Ñ¡Ñ¡¿∩.
  3653.  
  3654.              è«¼á¡ñá SaveAs  óßÑúñá  ñ«½ª¡á  ºá»αáΦ¿óáΓ∞   ¿¼∩   Σá⌐½á.
  3655.         æ½ÑñπÑΓ  ß«σαá¡¿Γ∞ Σá⌐½ Γ«½∞¬« Γ«úñá,  ¬«úñá »«½∞º«óáΓѽ∞ ºáñá½
  3656.         »αáó¿½∞¡«Ñ ¿¼∩ Σá⌐½á.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σαáú¼Ñ¡Γπ
  3657.         WM_COMMAND:
  3658.  
  3659.              case IDM_SAVEAS:
  3660.              saveas:
  3661.                  lpSaveAsDlg = MakeProcInstance(SaveAsDlg, hInst);
  3662.                  Success = DialogBox(hInst, "SaveAs", hWnd,
  3663.                                      lpSaveAsDlg);
  3664.                  FreeProcInstance(lpSaveAsDlg);
  3665.                  if (Success == IDOK) {
  3666.                      sprintf(str, "ÉÑñá¬Γ¿απѼδ⌐ Σá⌐½ %s",
  3667.                              FileName);
  3668.                      SetWindowText(hWnd, str);
  3669.                      SaveFile(hWnd);
  3670.                  }
  3671.                  break;
  3672.  
  3673.              öπ¡¬µ¿∩ DialogBox   ¿¡ñ¿µ¿απÑΓ   »á¡Ñ½∞   ñ¿á½«úá  SaveAs.
  3674.         öπ¡¬µ¿¿   MakeProcInstance   ¿   FreeProcInstance   ß«ºñáεΓ   ¿
  3675.         «ßó«í«ªñáεΓ  áñαÑß  »α«µÑñπαδ  φ¬ºÑ¼»½∩αá  ñ½∩  Σπ¡¬µ¿¿ ñ¿á½«úá
  3676.         SaveAsDlg.  öπ¡¬µ¿∩ DialogBox »«½πτáÑΓ IDOK ¿º Σπ¡¬µ¿¿  ñ¿á½«úá
  3677.         SaveAsDlg, Ñß½¿ »«½∞º«óáΓѽ∞ óó«ñ¿Γ »αáó¿½∞¡«Ñ ¿¼∩ Σá⌐½á. çáΓѼ
  3678.         Σπ¡¬µ¿∩  SetWindowText  ¿º¼Ñ¡∩ÑΓ  ºáú«½«ó«¬  «¬¡á,  á   Σπ¡¬µ¿∩
  3679.         SaveFile ß«σαá¡∩ÑΓ ó Σá⌐½Ñ ß«ñÑন¼«Ñ íπΣÑαá αÑñá¬Γ¿α«óá¡¿∩.
  3680.  
  3681.              ÆÑ»Ñα∞ ¬«¼á¡ñá   Exit   ñ«½ª¡á  ºá»α«ß¿Γ∞  »«½∞º«óáΓѽ∩  ¿
  3682.         «»αÑñѽ¿Γ∞,  ñ«½ªÑ¡ ½¿ íδΓ∞ ß«σαá¡Ñ¡ ΓѬπΘ¿⌐ Σá⌐½.  èα«¼Ñ Γ«ú«,
  3683.         τΓ«íδ   «Γß½Ññ¿Γ∞  ¿º¼Ñ¡Ñ¡¿∩  ó  Σá⌐½Ñ,  ¡Ñ«íσ«ñ¿¼«  «íαáí«ΓáΓ∞
  3684.         πóÑñ«¼½∩εΘ¿Ñ   ß««íΘÑ¡¿∩   αÑñá¬Γ¿απѼ«ú«   í½«¬á   π»αáó½Ñ¡¿∩.
  3685.         î«ñ¿Σ¿µ¿απ⌐ΓÑ Σαáú¼Ñ¡Γ  IDM_EXIT ¿ ñ«íáó∞ΓÑ Σαáú¼Ñ¡Γ IDC_EDIT ¬
  3686.         Σαáú¼Ñ¡Γπ WM_COMMAND, ¬á¬ π¬áºá¡« ¡¿ªÑ:
  3687.  
  3688.              case IDM_EXIT:
  3689.                   QuerySaveFile(hWnd);
  3690.  
  3691.        Windows 3.0/pg/2#3                                        = 71 =
  3692.  
  3693.                   DestroyWindow(hWnd);
  3694.                   break;
  3695.  
  3696.              case ID_EDIT:
  3697.                   if (HIWORD(lParam) == EN_CHANGE)
  3698.                      bChanges = TRUE;
  3699.                   return (NULL);
  3700.               10.8.6 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_QUERYENDSESSION ¿ WM_CLOSE.      
  3701.  
  3702.              ìÑ«íσ«ñ¿¼« «íαáí«ΓáΓ∞   ß««íΘÑ¡¿∩   WM_QUERYENDSESSION   ¿
  3703.         WM_CLOSE   ñ½∩  Γ«ú«,  τΓ«íδ  ¡Ñ  »«ΓÑα∩Γ∞  ß«ñÑন¼«Ñ  Σá⌐½«ó.
  3704.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  3705.  
  3706.              case WM_QUERYENDSESSION:          /* «¬«¡τ¿Γ∞ ßÑá¡ß? */
  3707.                   return (QuerySaveFile(hWnd));
  3708.  
  3709.              case WM_CLOSE:                    /* ºá¬αδΓ∞ «¬¡«?  */
  3710.                   if (QuerySaveFile(hWnd));
  3711.                      DestroyWindow(hWnd);
  3712.                   break;
  3713.  
  3714.              Windows »«ßδ½áÑΓ  ß««íΘÑ¡¿Ñ   WM_QUERYENDSESSION   Σπ¡¬µ¿¿
  3715.         «¬¡á, ¬«úñá  »«½∞º«óáΓѽ∞  αÑΦ¿½  ºá¬«¡τ¿Γ∞  αáí«Γπ  ß Windows.
  3716.         æÑá¡ß αáí«Γδ ºá¬á¡τ¿óáÑΓß∩ Γ«½∞¬« Γ«úñá, ¬«úñá ó«ºóαáΘÑ¡« TRUE.
  3717.         öπ¡¬µ¿∩  QuerySaveFile  »α«óÑα∩ÑΓ  Σá⌐½  ¡á  ¡á½¿τ¿Ñ ¿º¼Ñ¡Ñ¡¿⌐,
  3718.         ß«σαá¡∩ÑΓ ¿σ,  Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«, ¿ ó«ºóαáΘáÑΓ TRUE ¿½¿ FALSE
  3719.         ó  ºáó¿ß¿¼«ßΓ¿  «Γ  Γ«ú«,  «Γ¼Ñ¡∩ÑΓ  »«½∞º«óáΓѽ∞  «»Ñαáµ¿ε ¿½¿
  3720.         »«ñΓóÑαªñáÑΓ ÑÑ.
  3721.  
  3722.              Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ  WM_CLOSE  Σπ¡¬µ¿¿  «¬¡á,  Ñß½¿
  3723.         »«½∞º«óáΓѽ∞ óδíαá½  ¬«¼á¡ñπ  Close  ó ß¿ßΓѼ¡«¼ ¼Ñ¡ε «ß¡«ó¡«ú«
  3724.         «¬¡á. öπ¡¬µ¿∩ QuerySaveFile óδ»«½¡∩ÑΓ Γπ ªÑ ßá¼πε ºáñáτπ, τΓ« ¿
  3725.         ß««íΘÑ¡¿Ñ  WM_QUERYENDSESSION,  ¡«  ñ½∩  Γ«ú«,  τΓ«íδ ºáóÑαΦ¿Γ∞
  3726.         Σαáú¼Ñ¡Γ WM_CLOSE,  ¡Ñ«íσ«ñ¿¼« ΓᬪѠαáºαπΦ¿Γ∞  «ß¡«ó¡«Ñ  «¬¡«,
  3727.         ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε DestroyWindow.
  3728.                          10.8.7  î«ñ¿Σ¿¬áµ¿∩ Σπ¡¬µ¿¿ ñ¿á½«úá OpenDlg.          
  3729.  
  3730.              ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞  Σαáú¼Ñ¡Γ IDOK ó Σπ¡¬µ¿¿ OpenDlg
  3731.         ñ½∩ Γ«ú«,  τΓ«íδ «Γ¬αδΓ∞  ¿  »α«óÑα¿Γ∞  αẼÑα  Σá⌐½á,  ¬«Γ«αδ⌐
  3732.         óδíαá¡ »«½∞º«óáΓѽѼ.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ßαáºπ »«ß½Ñ
  3733.         ó맮óá Σπ¡¬µ¿¿ AddExt ó Σαáú¼Ñ¡Γ IDOK Σπ¡¬µ¿¿ OpenDlg:
  3734.  
  3735.              if ((hFile = OpenFile(OpenName, (LPOFSTRUCT) &OfStruct,
  3736.                      OF_READ)) < 0) {
  3737.                  sprintf(str, "ÄΦ¿í¬á %d »α¿ «Γ¬αδΓ¿¿ %s.",
  3738.                      OfStruct.nErrorCode, OpenName);
  3739.                  MessageBox(hDlg, str, NULL, MB_OK |
  3740.                             MB_ICONQUESTION);
  3741.              }
  3742.              else {
  3743.                  fstat(hFile, &FileStatus);
  3744.  
  3745.        Windows 3.0/pg/2#3                                        = 72 =
  3746.  
  3747.                  if (FileStatus.st_size > MAXFILESIZE) {
  3748.                      sprintf(str,
  3749.                          "ìÑ σóáΓáÑΓ »á¼∩Γ¿ ñ½∩ αẼÑΘÑ¡¿∩ %s.\n%s
  3750.                          »αÑóδΦáÑΓ %ld íá⌐Γ«ó.", OpenName,
  3751.                          OpenName, MAXEFILESIZE);
  3752.                      MessageBox(hDlg, str, NULL,
  3753.                          MB_OK | MB_ICONQUESTION);
  3754.                      return (TRUE);
  3755.                   }
  3756.                   strcpy(FileName, OpenName);
  3757.                   EndDialog(hDlg, hFile);
  3758.                   return (TRUE);
  3759.  
  3760.              öπ¡¬µ¿∩ OpenFile «Γ¬αδóáÑΓ π¬áºá¡¡δ⌐ Σá⌐½  ñ½∩  τΓÑ¡¿∩  ¿,
  3761.         Ñß½¿ φΓá «»Ñαᵿ∩ »α«Φ½á πß»ÑΦ¡«,  ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α Σá⌐½á.
  3762.         àß½¿ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬αδΓ,  ¿¡ñ¿µ¿απÑΓß∩ »á¡Ñ½∞ ß««íΘÑ¡¿⌐,
  3763.         ß«ñÑαªáΘá∩ ¡«¼Ñα  «Φ¿í¬¿,  úÑ¡Ñα¿απѼ«⌐ DOS.  àß½¿ Σá⌐½ «Γ¬αδΓ,
  3764.         Σπ¡¬µ¿∩ C  fstat  ¬«»¿απÑΓ  ¿¡Σ«α¼áµ¿ε  «  Σá⌐½Ñ  ó   ßΓαπ¬Γπαπ
  3765.         FileStatus. ÉẼÑα Σá⌐½á »α«óÑα∩ÑΓß∩ ñ½∩ πóÑαÑ¡¡«ßΓ¿ ó Γ«¼, τΓ«
  3766.         Σá⌐½ ¡Ñ »αÑóδΦáÑΓ  ¼á¬ß¿¼á½∞¡δÑ  αẼÑαδ,  ºáñá¡¡δÑ  ¬«¡ßΓá¡Γ«⌐
  3767.         MAXFILESIZE.  àß½¿  αẼÑα  Σá⌐½á  ß½¿Φ¬«¼ óѽ¿¬,  ¿¡ñ¿µ¿απÑΓß∩
  3768.         ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ. é »α«Γ¿ó¡«¼ ß½πτáÑ Σπ¡¬µ¿∩ strcpy ¬«»¿απÑΓ
  3769.         ¡«ó«Ñ ¿¼∩ ó »ÑαѼѡ¡πε FileName,  á Σπ¡¬µ¿∩ EndDialog ºáóÑαΦáÑΓ
  3770.         αáí«Γπ »á¡Ñ½¿ ñ¿á½«úá ¿  ó«ºóαáΘáÑΓ  ñÑß¬α¿»Γ«α  hFile  Σπ¡¬µ¿¿
  3771.         DialogBox.
  3772.                          10.8.8  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg.         
  3773.  
  3774.              ä½∩ »á¡Ñ½¿   ñ¿á½«úá   SaveAs  ¡Ñ«íσ«ñ¿¼«  ºáñáΓ∞  Σπ¡¬µ¿ε
  3775.         ñ¿á½«úá.  öπ¡¬µ¿∩ íπñÑΓ »«½πτáΓ∞ ¿¼∩  Σá⌐½á  ¿º  αÑñá¬Γ¿απѼ«ú«
  3776.         í½«¬á  π»αáó½Ñ¡¿∩  ¿ ¬«»¿α«óáΓ∞ φΓ« ¿¼∩ ó ú½«íá½∞¡πε »ÑαѼѡ¡πε
  3777.         FileName. öπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
  3778.  
  3779.         int FAR PASCAL SaveAsDlg(hDlg, message, wParam, lParam)
  3780.         HWND hDlg;
  3781.         unsigned message;
  3782.         WORD wParam;
  3783.         LONG lParam;
  3784.         {
  3785.             char TempName[128];
  3786.             switch (message) {
  3787.                 case WM_INITDIALOG:
  3788.                     if (!FileName[0])
  3789.                         bSaveEnabled = FALSE;
  3790.                     else {
  3791.                         bSaveEnabled = TRUE;
  3792.                         DlgDirList(hDlg, DefPath, NULL, ID_PATH,
  3793.                             0x4010);
  3794.                         SetDlgItemText(hDlg, ID_EDIT, FileName);
  3795.                         SendDlgItemMessage(hDlg, ID_EDIT, EM_SETSEL,
  3796.                             0, MAKELONG(0, 0x7fff);
  3797.                     }
  3798.                     EnableWindow(GetDlgItem(hDlg, IDOK),
  3799.  
  3800.        Windows 3.0/pg/2#3                                        = 73 =
  3801.  
  3802.                         bSaveEnabled);
  3803.                     SetFocus(GetDlgItem(hDlg, ID_EDIT));
  3804.                     return  (FALSE); /* FALSE, Ñß½¿ ºáσóáΓ óó«ñá
  3805.                                         ¼Ñ¡∩ÑΓß∩                  */
  3806.                 case WM_COMMAND:
  3807.                     switch (wParam) {
  3808.                         case ID_EDIT:
  3809.                             if (HIWORD(lParam) == EN_CHANGE &&
  3810.                                                   !bSaveEnabled)
  3811.                             EnableWindow(GetDlgItem(hDlg, IDOK),
  3812.                                 bSaveEnabled = TRUE);
  3813.                             return (TRUE);
  3814.                         case IDOK:
  3815.                             GetDlgItemText(hDlg, ID_EDIT, TempName,
  3816.                                    128);
  3817.                             if (CheckFileName(hDlg, FileName,
  3818.                                    TempName)) {
  3819.                                 SeparateFile(hDlg, (LPSTR) str,
  3820.                                    (LPSTR)DefSpec, (LPSTR)FileName);
  3821.                                 if (str[0])
  3822.                                     strcpy(DefPath, str);
  3823.                                 EndDialog(hDlg, IDOK);
  3824.                             }
  3825.                             return (TRUE);
  3826.                         case IDCANCEL:
  3827.                             EndDialog(hDlg, IDCANCEL);
  3828.                             return (TRUE);
  3829.                     }
  3830.                     break;
  3831.             }
  3832.             return (FALSE);
  3833.         }
  3834.              öαáú¼Ñ¡Γ WM_INITDIALOG ñѽáÑΓ  ñ«ßΓπ»¡«⌐  ¿½¿  ¡Ññ«ßΓπ»¡«⌐
  3835.         ¼∩ú¬πε ¬½áó¿Φπ Save.  ¥Γá ¬½áó¿Φá ñ«½ª¡á íδΓ∞ ¡Ññ«ßΓπ»¡«⌐, Ñß½¿
  3836.         ¡Ñ  ßπΘÑßΓóπÑΓ  ΓѬπΘÑú«  ¿¼Ñ¡¿  Σá⌐½á.  öπ¡¬µ¿∩   EnableWindow
  3837.         (ó¼ÑßΓÑ   ß  »ÑαѼѡ¡«⌐  bSaveEnabled)  ñѽáÑΓ  ¼∩ú¬πε  ¬½áó¿Φπ
  3838.         ñ«ßΓπ»¡«⌐ ¿½¿ ¡Ññ«ßΓπ»¡«⌐.  àß½¿ ΓѬπΘÑÑ ¿¼∩ Σá⌐½á  ßπΘÑßΓóπÑΓ,
  3839.         Γ« «¡« ñ«½ª¡« íδΓ∞ »αÑñ½áúáÑ¼δ¼ ¿¼Ñ¡Ñ¼.  öπ¡¬µ¿∩ SetDlgItemText
  3840.         ¬«»¿απÑΓ ¿¼∩ Σá⌐½á ó αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩,  á  Σπ¡¬µ¿∩
  3841.         SendDlgItemMessage  óδí¿αáÑΓ  »«½¡«Ñ  ¿¼∩  ñ½∩  αÑñá¬Γ¿α«óá¡¿∩.
  3842.         öπ¡¬µ¿∩ DlgDirList πßΓá¡áó½¿óáÑΓ  í½«¬  π»αáó½Ñ¡¿∩  ID_PATH  ¡á
  3843.         ΓѬπΘ¿⌐  ¬áΓὫú.  Å«ß¬«½∞¬π  ¡Ñ  ßπΘÑßΓóπÑΓ ºá»«½¡∩Ѽ«⌐ »á¡Ñ½¿
  3844.         »ÑαÑτ¡∩, Γ« ÑÑ ID ¡Ñ ºáñáÑΓß∩.
  3845.  
  3846.              öαáú¼Ñ¡Γ WM_COMMAND «íαáíáΓδóáÑΓ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ ¿º
  3847.         í½«¬«ó   π»αáó½Ñ¡¿∩  »á¡Ñ½¿  ñ¿á½«úá.  è«úñá  Σπ¡¬µ¿∩  »«½πτáÑΓ
  3848.         πóÑñ«¼½Ñ¡¿Ñ  EN_CHANGE  «Γ  αÑñá¬Γ¿απѼ«ú«   í½«¬á   π»αáó½Ñ¡¿∩
  3849.         ID_EDIT,  «¡á  ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε EnableWindow ñ½∩ Γ«ú«,  τΓ«íδ
  3850.         ßñѽáΓ∞ ¡Ññ«ßΓπ»¡«⌐ ¼∩ú¬πε ¬½áó¿Φπ Save, Ñß½¿ «¡á αá¡ÑÑ ¡Ñ íδ½á
  3851.         ßñѽá¡á ¡Ññ«ßΓπ»¡«⌐.
  3852.  
  3853.              è«úñá Σπ¡¬µ¿∩   »«½πτáÑΓ  πóÑñ«¼½Ñ¡¿Ñ  «Γ  ¼∩ú¬«⌐  ¬½áó¿Φ¿
  3854.         Save, «¡á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε GetDlgItemText ñ½∩ »«½πτÑ¡¿∩ ¿¼Ñ¡¿
  3855.  
  3856.        Windows 3.0/pg/2#3                                        = 74 =
  3857.  
  3858.         Σá⌐½á ¿º αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩,  á ºáΓѼ ¬«¡Γα«½¿απÑΓ
  3859.         »αáó¿½∞¡«ßΓ∞  ¿¼Ñ¡¿  Σá⌐½á,  ¿ß»«½∞ºπ∩  ½«¬á½∞¡«   «»αÑñѽѡ¡πε
  3860.         Σπ¡¬µ¿ε CheckFileName.  ¥Γá Σπ¡¬µ¿∩ ¬«¡Γα«½¿απÑΓ ¿¼∩ Σá⌐½á Γá¬,
  3861.         τΓ«íδ «¡« ¡Ñ ß«ñÑαªá½« αáºñѽ¿ΓѽÑ⌐ ¼áαΦαπΓá ¿½¿  π¡¿óÑαßá½∞¡δσ
  3862.         ß¿¼ó«½«ó.  çáΓѼ  »α«óÑα∩ÑΓß∩,  ßπΘÑßΓó«óá½  ½¿ πªÑ Γᬫ⌐ Σá⌐½;
  3863.         Ñß½¿ φΓ« Γá¬,  Γ« CheckFileName ¿ß»«½∞ºπÑΓ  Σπ¡¬µ¿ε  MessageBox
  3864.         ñ½∩  ºá»α«ßá  π »«½∞º«óáΓѽ∩,  ñ«½ªÑ¡ ½¿ Σá⌐½ íδΓ∞ »ÑαѺỿßá¡.
  3865.         ìᬫ¡Ñµ,  Σπ¡¬µ¿∩ ñ¿á½«úá ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε  SeparateFile  ñ½∩
  3866.         ¬«»¿α«óá¡¿∩ ¿¼Ñ¡¿ Σá⌐½á ó »ÑαѼѡ¡δÑ DefSpec ¿ DefPath.
  3867.                            10.8.9 ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.          
  3868.  
  3869.              ä½∩ »«ññÑ᪬¿   »α«úαá¼¼δ   EditFile  ¡Ñ«íσ«ñ¿¼«  ñ«íáó¿Γ∞
  3870.         ¡Ñ߬«½∞¬« Σπ¡¬µ¿⌐ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π.  ¥Γ« ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿:
  3871.  
  3872.              öπ¡¬µ¿∩         Ä»¿ßá¡¿Ñ
  3873.         ───────────────────────────────────────────────────────────────
  3874.              CheckFileName  è«¡Γα«½¿απÑΓ ¿¼∩ Σá⌐½á ¡á π¡¿óÑαßá½∞¡δÑ
  3875.                             ß¿¼ó«½δ,  ñ«íáó½∩ÑΓ  αáßΦ¿αÑ¡¿Ñ   ¿¼Ñ¡¿
  3876.                             Σá⌐½á  »« π¼«½τá¡¿ε, Ñß½¿ «¡« ¡Ñ«íσ«ñ¿-
  3877.                             ¼«, ¿ »α«óÑα∩ÑΓ ßπΘÑßΓó«óá¡¿Ñ Σá⌐½á.
  3878.  
  3879.              SaveFile       æ«σαá¡∩ÑΓ ó Σá⌐½Ñ ß«ñÑন¼«Ñ íπΣÑαá αÑ-
  3880.                             ñá¬Γ¿α«óá¡¿∩.
  3881.  
  3882.              QuerySaveFile  Å«ñ߬áºδóáÑΓ  »«½∞º«óáΓÑ½ε  « ¡Ñ«íσ«ñ¿-
  3883.                             ¼«ßΓ¿ ß«σαá¡¿Γ∞ ¿º¼Ñ¡Ñ¡¿∩.
  3884.  
  3885.              SetNewBuffer   Äßó«í«ªñáÑΓ ßπΘÑßΓóπεΘ¿⌐ íπΣÑα αÑñá¬Γ¿-
  3886.                             α«óá¡¿∩ ¿ ºá¼Ñ¡∩ÑΓ Ñú« ¡«óδ¼.
  3887.         ───────────────────────────────────────────────────────────────
  3888.  
  3889.              öπ¡¬µ¿∩ CheckFileName  »α«óÑα∩ÑΓ,  ¡Ñ »πßΓ« ½¿ ¿¼∩ Σá⌐½á ¿
  3890.         ¡Ñ  ß«ñÑαª¿Γ  ½¿   «¡«   π¡¿óÑαßá½∞¡δÑ   ß¿¼ó«½δ.   Ä¡á   ΓᬪÑ
  3891.         ¬«¡Γα«½¿απÑΓ, ßπΘÑßΓóπÑΓ   ½¿   πªÑ   Σá⌐½,  ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε
  3892.         OpenFile ¿ »áαá¼ÑΓα OF_EXIST.  àß½¿  Σá⌐½  ßπΘÑßΓóπÑΓ,  Σπ¡¬µ¿∩
  3893.         CheckFileName »«ñ߬áºδóáÑΓ »«½∞º«óáΓÑ½ε »«ß¼«ΓαÑΓ∞, ¡áñ« ½¿ Ñú«
  3894.         »ÑαѺỿßáΓ∞. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  3895.  
  3896.         BOOL CheckFileName(hWnd, pDest, pSrc)
  3897.         HWND hWnd;
  3898.         PSTR pDest, pSrc;
  3899.         {
  3900.             PSTR pTmp;
  3901.  
  3902.             if (!pSrc[0])
  3903.                 return (FALSE); /* »«¬áºδóáÑΓ, τΓ«  ¡Ñ π¬áºá¡« ¿¼∩
  3904.                                    Σá⌐½á                */
  3905.             pTmp = pSrc;
  3906.             while (*pTmp) {     /* »«¿ß¬ ó ßΓα«¬Ñ π¡¿óÑαßá½∞¡δσ
  3907.                                    ß¿¼ó«½«ó                        */
  3908.                 switch (*pTmp++) {
  3909.                     case '*':
  3910.  
  3911.        Windows 3.0/pg/2#3                                        = 75 =
  3912.  
  3913.                     case '?':
  3914.                         MessageBox(hWnd,
  3915.                             "ô¡¿óÑαßá½∞¡δÑ ß¿¼ó«½δ ¡Ñ ñ«»π߬áεΓß∩",
  3916.                             NULL, MB_OK | MB_ICONEXCLAMATION);
  3917.                         return (FALSE);
  3918.                 }
  3919.             }
  3920.  
  3921.             AddExt(pSrc, DefExt); /* ñ«íáó½Ñ¡¿Ñ ó ß½πτáÑ ¡Ñ«íσ«ñ¿-
  3922.                                      ¼«ßΓ¿ αáßΦ¿αÑ¡¿∩ ¿¼Ñ¡¿ Σá⌐½á
  3923.                                      »« π¼«½τá¡¿ε                 */
  3924.             if (OpenFile(pSrc, (LPOFSTRUCT) &OfStruct, OF_EXIST >= 0)
  3925.                 {
  3926.                 sprintf(str, "çá¼Ñ¡¿Γ∞ ßπΘÑßΓóπεΘ¿⌐ %s?", pSrc);
  3927.                 if (MessageBox(hWnd, str, "EditFile",
  3928.                     MB_OKCANCEL | MB_ICONHAND) == IDCANCEL);
  3929.                     return (FALSE);
  3930.             }
  3931.             strcpy(pDest, pSrc);
  3932.             return (TRUE);
  3933.         }
  3934.  
  3935.              öπ¡¬µ¿∩ SaveFile  ¿ß»«½∞ºπÑΓ  »áαá¼ÑΓα  OF_CREATE  Σπ¡¬µ¿¿
  3936.         OpenFile ñ½∩ Γ«ú«, τΓ«íδ «Γ¬αδΓ∞ Σá⌐½ ñ½∩ ºá»¿ß¿. ¥Γ«Γ »áαá¼ÑΓα
  3937.         »«íπªñáÑΓ Σπ¡¬µ¿ε OpenFile πñ὿Γ∞  ΓѬπΘÑÑ  ß«ñÑন¼«Ñ  Σá⌐½á.
  3938.         çáΓѼ  Σπ¡¬µ¿∩  SaveFile  »«½πτáÑΓ  ñÑß¬α¿»Γ«α  íπΣÑαá Σá⌐½á ¿º
  3939.         αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩,  í½«¬¿απÑΓ  íπΣÑα  ¿  ¬«»¿απÑΓ
  3940.         ß«ñÑন¼«Ñ ó Σá⌐½. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  3941.  
  3942.         BOOL SaveFile(hWnd)
  3943.         HWND hWnd;
  3944.         {
  3945.            BOOL bSuccess;
  3946.            int IOStatus;                /* αѺπ½∞ΓáΓ ºá»¿ß¿ Σá⌐½á */
  3947.            if ((hFile = OpenFile(FileName, &OfStruct,
  3948.                OF_PROMPT | OF_CANCEL | OF_CREATE)) < 0) {
  3949.                sprintf(str, "ìѽ∞º∩ ºá»¿ßáΓ∞ ó Σá⌐½ %s.", FileName);
  3950.                MessageBox(hWnd, str, NULL, MB_OK | MB_ICONQUESTION);
  3951.                return (FALSE);
  3952.            }
  3953.            hEditBuffer = SendMessage(hEditWnd, EM_GETHANDLE, 0, 0L);
  3954.            pEditBuffer = LocalLock(hEditBuffer);
  3955.            hSaveCursor = SetCursor(hHourGlass);
  3956.            IOStatus = write(hFile,pEditBuffer, strlen(pEditBuffer));
  3957.            close(hFile);
  3958.            SetCursor(hSaveCursor);
  3959.            if (IOStatus != strLen(pEditBuffer)) {
  3960.                sprintf(str, " ÄΦ¿í¬á ºá»¿ß¿ ó %s.", FileName);
  3961.                MessageBox(hWnd, str, NULL, MB_OK | MB_ICONHAND);
  3962.                bSuccess = FALSE;
  3963.            }
  3964.  
  3965.            else {
  3966.  
  3967.        Windows 3.0/pg/2#3                                        = 76 =
  3968.  
  3969.                bSuccess = TRUE;                  /* Σá⌐½ ß«σαá¡Ñ¡ */
  3970.                bChanges = FALSE;           /* ¿º¼Ñ¡Ñ¡¿∩ ß«σαá¡Ñ¡δ */
  3971.            }
  3972.            LocalUnlock(hEditBuffer);
  3973.            return (bSuccess);
  3974.         }
  3975.  
  3976.              æ««íΘÑ¡¿Ñ EM_GETHANDLE,  »«ß½á¡¡«Ñ   ß   »«¼«Θ∞ε   Σπ¡¬µ¿¿
  3977.         SendMessage, »«íπªñáÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ó«ºóαáΓ¿Γ∞
  3978.         ñÑß¬α¿»Γ«α Ñú« íπΣÑαá αÑñá¬Γ¿α«óá¡¿∩.  ¥Γ«Γ íπΣÑα αáß»«½áúáÑΓß∩
  3979.         ó  ½«¬á½∞¡«⌐  »á¼∩Γ¿,  Γᬠ τΓ«  «¡  ¼«ªÑΓ  íδΓ∞ ºáí½«¬¿α«óá¡ ß
  3980.         »«¼«Θ∞ε  Σπ¡¬µ¿¿   LocalLock.   Å«ß½Ñ   í½«¬¿α«ó¬¿   ß«ñÑন¼«Ñ
  3981.         ºá»¿ßδóáÑΓß∩ ó   Σá⌐½   ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿  C  write.  öπ¡¬µ¿∩
  3982.         SetCursor ¿¡ñ¿µ¿απÑΓ ¬παß«α ó ó¿ñÑ »Ñß«τ¡δσ τáß«ó ñ½∩  π¬áºá¡¿∩
  3983.         ñ½¿Γѽ∞¡«⌐  «»Ñαᵿ¿.  àß½¿ Σπ¡¬µ¿∩ write ¡Ñ ¼«ªÑΓ ºá»¿ßáΓ∞ óßÑ
  3984.         íá⌐Γδ,  Σπ¡¬µ¿∩ SaveFile ¿¡ñ¿µ¿απÑΓ »á¡Ñ½∞  ß««íΘÑ¡¿⌐.  öπ¡¬µ¿∩
  3985.         LocalUnlock «ßó«í«ªñáÑΓ  íπΣÑα  αÑñá¬Γ¿α«óá¡¿∩  »ÑαÑñ ó«ºóαáΓ«¼
  3986.         Σπ¡¬µ¿¿ SaveFile.
  3987.  
  3988.              öπ¡¬µ¿∩ QuerySaveFile  ¬«¡Γα«½¿απÑΓ  ¡á½¿τ¿Ñ  ¿º¼Ñ¡Ñ¡¿⌐  ó
  3989.         Σá⌐½Ñ ¿  »«ñ߬áºδóáÑΓ  »«½∞º«óáΓѽε,  ß«σαá¡¿Γ∞ ¿½¿ πñ὿Γ∞ φΓ¿
  3990.         ¿º¼Ñ¡Ñ¡¿∩,  ¿½¿  «Γ¼Ñ¡¿Γ∞  «»Ñαᵿε.  àß½¿  »«½∞º«óáΓѽ∞  σ«τÑΓ
  3991.         ß«σαá¡¿Γ∞  ¿º¼Ñ¡Ñ¡¿∩,  Σπ¡¬µ¿∩  ºá»αáΦ¿óáÑΓ  π »«½∞º«óáΓѽ∩ ¿¼∩
  3992.         Σá⌐½á,  ¿ß»«½∞ºπ∩ »á¡Ñ½∞  ñ¿á½«úá  SaveAs.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿Ñ
  3993.         «»ÑαáΓ«αδ:
  3994.  
  3995.              BOOL QuerySaveFile(hWnd);
  3996.              HWND hWnd;
  3997.              {
  3998.                  int Response;
  3999.                  FARPROC lpSaveAsDlg;
  4000.                  if (bChanges) {
  4001.                     sprintf(str, "æ«σαá¡Ñ¡¿Ñ ΓѬπΘ¿σ ¿º¼Ñ¡Ñ¡¿⌐: %s",
  4002.                       FileName);
  4003.                     Response = MessageBox(hWnd, str,
  4004.                       "EditFile", MB_YESNOCANCEL | MB_ICONQUESTION);
  4005.                     if (Response == IDYES) {
  4006.              check_name:
  4007.                         if (!FileName[0]) {
  4008.                            lpSaveAsDlg = MakeProcInstance(SaveAsDlg,
  4009.                                hInst);
  4010.                            Response = DialogBox(hInst, "SaveAs",
  4011.                                hWnd, lpSaveAsDlg);
  4012.                            FreeProcInstance(lpSaveAsDlg);
  4013.                            if (Response == IDOK)
  4014.                               goto check_name;
  4015.                            else
  4016.                               return (FALSE);
  4017.                         }
  4018.                         SaveFile(hWnd);
  4019.                     }
  4020.                     else if (Response == IDCANCEL)
  4021.                         return (FALSE);
  4022.  
  4023.        Windows 3.0/pg/2#3                                        = 77 =
  4024.  
  4025.                  }
  4026.                  else
  4027.                      return (TRUE);
  4028.              }
  4029.  
  4030.              öπ¡¬µ¿∩ SetNewBuffer    ¡áσ«ñ¿Γ    ¿   «ßó«í«ªñáÑΓ   íπΣÑα
  4031.         αÑñá¬Γ¿α«óá¡¿∩ »ÑαÑñ αẼÑΘÑ¡¿Ñ¼  ¿  πßΓá¡«ó¬«⌐  ¡«ó«ú«  íπΣÑαá
  4032.         αÑñá¬Γ¿α«óá¡¿∩.   çáΓѼ  «¡á  ¬«ααÑ¬Γ¿απÑΓ  αÑñá¬Γ¿απѼδ⌐  í½«¬
  4033.         π»αáó½Ñ¡¿∩.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
  4034.  
  4035.         void SetNewBuffer(hWnd,  hNewBuffer,  Title)
  4036.         HWND hWnd;
  4037.         HANDLE hNewBuffer;
  4038.         PSRT Title;
  4039.         {
  4040.             HANDLE hOldBuffer;
  4041.  
  4042.             hOldBuffer = SendMessage(hEditWnd, EM_GETHANDLE, 0, 0L);
  4043.             LocalFree(hOldBuffer);
  4044.             if (!hNewBuffer)          /* αẼÑΘÑ¡¿Ñ ¡«ó«ú« íπΣÑαá */
  4045.                 hNewBuffer = LocalAlloc(LMEM_MOVAABLE |
  4046.                                   LMEM_ZEROINIT, 1);
  4047.             SendMessage(hEditWnd, EM_SETHANDLE, hNewBuffer, 0L);
  4048.             InvalidateRect(hEditWnd, NULL, TRUE); /* ¬«ααÑ¬Γ¿α«ó¬á
  4049.                                                      íπΣÑαá       */
  4050.             UpdateWindow(hEditWnd);
  4051.             SetWindowText(hWnd, Title);
  4052.             SetFocus(hEditWnd);
  4053.             bChanges = FALSE;
  4054.         }
  4055.  
  4056.              ì«óδ⌐ ΓѬßΓ   ¡Ñ   íπñÑΓ  ¿¡ñ¿µ¿α«óá¡  ñ«  ΓÑσ  »«α,  »«¬á
  4057.         αÑñá¬Γ¿απѼδ⌐  í½«¬  π»αáó½Ñ¡¿∩  ¡Ñ  »ÑαÑα¿ßπÑΓ  ßó«ε   «í½áßΓ∞
  4058.         »«½∞º«óáΓѽ∩.    öπ¡¬µ¿∩    InvalidateRect    «ßó«í«ªñáÑΓ   ñ½∩
  4059.         »ÑαÑα¿ß«ó¬¿ τáßΓ∞ «í½áßΓ¿ »«½∞º«óáΓѽ∩  ó  αÑñá¬Γ¿απѼ«¼  í½«¬Ñ
  4060.         π»αáó½Ñ¡¿∩. Çαúπ¼Ñ¡Γ NULL «º¡áτáÑΓ, τΓ« ñ«½ªÑ¡ íδΓ∞ »ÑαÑα¿ß«óá¡
  4061.         óÑß∞ í½«¬ π»αáó½Ñ¡¿∩;  TRUE «º¡áτáÑΓ,  τΓ«  »ÑαÑñ  »ÑαÑα¿ß«ó¬«⌐
  4062.         ñ«½ªÑ¡   íδΓ∞   ßΓÑαΓ  Σ«¡.  é  ½εí«¼  ß½πτáÑ  í½«¬  π»αáó½Ñ¡¿∩
  4063.         »«ñú«Γáó½¿óáÑΓß∩   ñ½∩   »ÑαÑα¿ß«ó¬¿.   öπ¡¬µ¿∩    UpdateWindow
  4064.         »«íπªñáÑΓ   ÅÄïêöàëæ  ßαáºπ  ªÑ  »«ß½áΓ∞  αÑñá¬Γ¿απѼ«¼π  í½«¬π
  4065.         π»αáó½Ñ¡¿∩ ß««íΘÑ¡¿Ñ WM_PAINT.
  4066.                                                                                
  4067.                  10.8.10  ¥¬ß»«αΓ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg.
  4068.  
  4069.              ìÑ«íσ«ñ¿¼« φ¬ß»«αΓ¿α«óáΓ∞   Σπ¡¬µ¿ε   ñ¿á½«úá   SaveAsDlg.
  4070.         ä«íáó∞ΓÑ   ß½ÑñπεΘπε   ßΓ᫬𠠠¬  «»ÑαáΓ«απ  EXPORTS  ó  Σá⌐½Ñ
  4071.         «»αÑñѽѡ¿∩ ¼«ñπ½∩:
  4072.  
  4073.              SaveAsDlg @4
  4074.                                                                                
  4075.                10.8.11 ÉáßΦ¿αÑ¡¿Ñ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
  4076.  
  4077.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞   ñ«»«½¡¿Γѽ∞¡δ⌐   «íΩѼ   »á¼∩Γ¿    ¬
  4078.  
  4079.        Windows 3.0/pg/2#3                                        = 78 =
  4080.  
  4081.         ½«¬á½∞¡«⌐   ñ¿¡á¼¿τÑ߬«⌐  «í½áßΓ¿.  ¥Γá  »á¼∩Γ∞  ΓαÑíπÑΓß∩  ñ½∩
  4082.         »«ññÑ᪬¿ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩,  ¬«Γ«αδ⌐  ¿ß»«½∞ºπÑΓ
  4083.         »á¼∩Γ∞  ¿º  ñ¿¡á¼¿τÑ߬«⌐  «í½áßΓ¿ ñ½∩ σαá¡Ñ¡¿∩ ΓѬπΘÑú« ΓѬßΓá.
  4084.         æñѽá⌐ΓÑ ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩:
  4085.  
  4086.              HEAPSIZE 0xAFFF
  4087.  
  4088.              ¥Γ«Γ «»ÑαáΓ«α   ºáñáÑΓ   ¼á¬ß¿¼á½∞¡«    ó«º¼«ª¡δ⌐    íπΣÑα
  4089.         αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩,  ¡Ñ¼¡«ú« ¼Ñ¡∞Φ¿⌐ 32707 (32è-1)
  4090.         íá⌐Γ«ó. öá⌐½δ í«½∞ΦÑ π¬áºá¡¡δσ ¡Ñ ¼«úπΓ íδΓ∞ «Γ¬αδΓδ.
  4091.                                                                                
  4092.                       10.8.12  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
  4093.  
  4094.              é Σá⌐½Ñ  make  ¿º¼Ñ¡Ñ¡¿∩  ¡Ñ   ¡πª¡δ.   ÄΓΓαá¡ß½¿απ⌐ΓÑ   ¿
  4095.         ß¬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε  »α«úαá¼¼π,  ºá»πßΓ¿ΓÑ  Windows  ¿ ºáΓѼ
  4096.         »α«úαá¼¼π EditFile. çáΓѼ óδíÑα¿ΓÑ ¬«¼á¡ñπ Open, óδíÑα¿ΓÑ Σá⌐½,
  4097.         ¿ »α«úαἼᠠEditFile  íπñÑΓ ßτ¿ΓδóáΓ∞ ¿ «Γ«íαáªáΓ∞ Σá⌐½.  àß½¿
  4098.         Σá⌐½ »«½¡«ßΓ∞ε ¡Ñ ¼«ªÑΓ ó¼ÑßΓ¿Γ∞ß∩ ó «¬¡Ñ,  ¿ß»«½∞ºπ⌐ΓÑ ¬½áó¿Φ¿
  4099.         ßΓαѽ«¬ ñ½∩ »α«¬απΓ¬¿ ó½Ñó« ¿ ó»αáó« ¿½¿ óóÑασ ¿ ó¡¿º.
  4100.                                               10.9  çᬽετÑ¡¿Ñ.                
  4101.  
  4102.              é ñá¡¡«⌐  ú½áóÑ  «»¿ßá¡«,  ¬á¬  αáí«ΓáΓ∞ ß Σá⌐½á¼¿ ó ßαÑñÑ
  4103.         Windows, ¿  »α¿ó«ñ¿Γß∩  ¡áí«α   »αáó¿½,   ¬«Γ«α묨   ¡Ñ«íσ«ñ¿¼«
  4104.         »«½∞º«óáΓ∞ß∩ »α¿ αáí«ΓÑ ß Σá⌐½á¼¿.
  4105.  
  4106.              Æ.¬. Windows  ¼¡«ú«ºáñáτ¡á∩  ß¿ßΓѼá,  Γ«  óáΦá  »α«úαá¼¼á
  4107.         ñ«½ª¡á αáí«ΓáΓ∞  ß  Σá⌐½á¼¿  Γᬿ¼  «íαẫ¼,  τΓ«íδ   ¿ß¬½ετ¿Γ∞
  4108.         ó«º¼«ª¡«ßΓ∞ ¬«¡Σ½¿¬Γ«ó  ß ñαπú¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.  ä½∩
  4109.         ß«ºñá¡¿∩, «Γ¬αδΓ¿∩,  ºá¬αδΓ¿∩ ¿ ñαπú¿σ «»Ñαᵿ⌐ óδ  ¿ß»«½∞ºπÑΓÑ
  4110.         Σπ¡¬µ¿ε OpenFile.  Åα¿  óδ»«½¡Ñ¡¿¿  óó«ñá  ¿  óδó«ñá  ó Σá⌐½ óδ
  4111.         ¿ß»«½∞ºπÑΓÑ Σπ¡¬µ¿¿  æ  ¡¿º¬«ú«  πα«ó¡∩,   ¬α«¼Ñ   Σπ¡¬µ¿⌐   æ,
  4112.         «ßπΘÑßΓó½∩εΘ¿σ »«Γ«¬«óδ⌐ óó«ñ/óδó«ñ.
  4113.  
  4114.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε   »«  »«ó«ñπ  Σá⌐½«ó  óδ  ¼«ªÑΓÑ
  4115.         »«½πτ¿Γ∞ ó:
  4116.  
  4117.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  4118.         ───────────────────────────────────────────────────────────────
  4119.         æαáó¡Ñ¡¿Ñ ßαÑñδ      Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá. â½áóá 1 "Äüº«α
  4120.         Windows ¿ ßΓá¡ñáαΓ-  ßαÑñδ Windows".
  4121.         ¡«ú« «¬απªÑ¡¿∩ æ
  4122.  
  4123.         êß»«½∞º«óá¡¿Ñ ∩ºδ¬á  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá. â½áóá 14 "ƒºδ¬
  4124.         æ ¿ ∩ºδ¬á áßßѼí½Ñαá æ ¿ ∩ºδ¬ áßßѼí½Ñαá".
  4125.         ó ßαÑñÑ Windows
  4126.  
  4127.         æ««íΘÑ¡¿Ñ OpenFile   æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, â½áóá 3
  4128.                              "æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿"   ¿  â½áóá  4  "滿߫¬
  4129.                              Σπ¡¬µ¿⌐".
  4130.  
  4131.                           â½áóá 11. ÉáßΓα«óδÑ ¬áαΓδ.
  4132.  
  4133.  
  4134.        Windows 3.0/pg/2#3                                        = 79 =
  4135.  
  4136.              ä½∩ óδó«ñá  ¿º«íαáªÑ¡¿⌐,  ¬«Γ«αδÑ  ß½¿Φ¬«¼  ß½«ª¡δ,  τΓ«íδ
  4137.         α¿ß«óáΓ∞  ¿σ  ß  »«¼«Θ∞ε  Σπ¡¬µ¿⌐  GDI,  óáΦá  »α«úαἼᠠ¼«ªÑΓ
  4138.         ¿ß»«½∞º«óáΓ∞ αáßΓα«óδÑ  ¬áαΓδ.  é  ñá¡¡«⌐  ú½áóÑ »«¬áºá¡«,  ¬á¬
  4139.         ¡áα¿ß«óáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞  αáßΓα«óδÑ  ¬áαΓδ  ¡á  ¼«¡«σα«¼¡δσ  ¿
  4140.         µóÑΓ¡δσ ñ¿ß»½Ñ∩σ.
  4141.  
  4142.              é ñá¡¡«⌐ ú½áóÑ óδ ¡á⌐ñÑΓÑ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
  4143.  
  4144.              - ùΓ« ΓᬫѠαáßΓα«óá∩ ¬áαΓá.
  4145.  
  4146.              - æ«ºñá¡¿Ñ αáßΓα«óδσ ¬áαΓ.
  4147.  
  4148.              - ÄΓ«íαáªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ.
  4149.  
  4150.              - ä«íáó½Ñ¡¿Ñ µóÑΓ«ó ¬ ¼«¡«σα«¼¡δ¼ αáßΓα«óδ¼ ¬áαΓá¼.
  4151.  
  4152.              - ôñá½Ñ¡¿Ñ αáßΓα«óδσ ¬áαΓ.
  4153.  
  4154.              é ñá¡¡«⌐   ú½áóÑ   «»¿ßá¡«   ΓᬪÑ,  ¬á¬  ß«ºñáΓ∞  »α«ßΓπε
  4155.         »α«úαá¼¼π,  Bitmap, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¬«¡µÑ»µ¿¿, «íßπªñáѼδÑ
  4156.         ºñÑß∞.
  4157.  
  4158.  
  4159.  
  4160.        Windows 3.0/pg/2#3                                        = 80 =
  4161.  
  4162.                                                                                
  4163.                       11.1  ùΓ« ΓᬫѠαáßΓα«óá∩ ¬áαΓá.
  4164.  
  4165.              ÆÑନ¡ αáßΓα«óá∩     ¬áαΓá     «í«º¡áτáÑΓ     ¿º«íαáªÑ¡¿Ñ,
  4166.         ßΣ«α¼¿α«óá¡¡«Ñ ó ó¿ñÑ  ¬áαΓδ  í¿Γ  ó¼ÑßΓ«  ½¿¡¿⌐.  é  Microsoft
  4167.         Windows ¿¼ÑÑΓß∩ ñóá Γ¿»á αáßΓα«óδσ ¬áαΓ:
  4168.  
  4169.              - çáó¿ß¿¼δÑ «Γ πßΓα«⌐ßΓóá αáßΓα«óδÑ ¬áαΓδ - φΓ« ¼áßß¿ó í¿Γ
  4170.                ó »á¼∩Γ¿,  ¬«Γ«αδ⌐  ¼«ªÑΓ  íδΓ∞  óδóÑñÑ¡  ¡á  πßΓα«⌐ßΓó«
  4171.                óδó«ñá. Å«ß¬«½∞¬π   ¿¼ÑÑΓß∩  »«½¡«Ñ  ß««ΓóÑΓßΓó¿Ñ  ¼Ñªñπ
  4172.                í¿ΓἿ ó »á¼∩Γ¿ ¿ »¿¬ßѽ∩¼¿ ¡á  πßΓα«⌐ßΓóÑ  «Γ«íαáªÑ¡¿∩,
  4173.                Γ« «  Γᬫ⌐ αáßΓα«ó«⌐ ¬áαΓÑ ú«ó«α∩Γ,  τΓ« «¡á ºáó¿ß¿Γ «Γ
  4174.                πßΓα«⌐ßΓóá. ä½∩  Γᬿσ  αáßΓα«óδσ   ¬áαΓ   »αÑñßΓáó½Ñ¡¿Ñ
  4175.                ¿º«íαáªÑ¡¿∩ ó »á¼∩Γ¿ ºáó¿ß¿Γ «Γ πßΓα«⌐ßΓóá «Γ«íαáªÑ¡¿∩.
  4176.  
  4177.              - ìѺáó¿ß¿¼δÑ   «Γ   πßΓα«⌐ßΓóá   αáßΓα«óδÑ   ¬áαΓδ  (DIB)
  4178.                «»¿ßδóáεΓ ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ ó¿ñ ¿º«íαáªÑ¡¿∩,  á ¡Ñ Γ«,  ¬á¬
  4179.                «¡« »αÑñßΓáó½∩ÑΓß∩   ó¡πΓα¿   «»αÑñѽѡ¡«ú«   πßΓα«⌐ßΓóá
  4180.                «Γ«íαáªÑ¡¿∩. Å«ß¬«½∞¬π ΓᬫѠó¡ÑΦ¡ÑÑ  «»αÑñѽѡ¿Ñ  ¼«ªÑΓ
  4181.                íδΓ∞ ¿ß»«½∞º«óá¡«  ß  ½εíδ¼  πßΓα«⌐ßó«¼,  Γ« ¿σ ¡áºδóáεΓ
  4182.                ¡Ñºáó¿ß¿¼δ¼¿ «Γ πßΓα«⌐ßΓó αáßΓα«ó묨 ¬áαΓἿ.
  4183.                                       11.2  æ«ºñá¡¿Ñ αáßΓα«óδσ ¬áαΓ.           
  4184.  
  4185.              ÉáßΓα«óπε ¬áαΓπ ¼«ª¡« ß«ºñáΓ∞,  ºáñáó GDI αẼÑαδ ¿ Σ«α¼áΓ
  4186.         µóÑΓá   αáßΓα«ó«⌐   ¬áαΓδ,  á  ΓᬪѠ ¡Ñ«í∩ºáΓѽ∞¡«Ñ  ¡áτá½∞¡«Ñ
  4187.         º¡áτÑ¡¿Ñ í¿Γ«ó αáßΓα«ó«⌐ ¬áαΓδ. GDI ºáΓѼ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α
  4188.         αáßΓα«ó«⌐   ¬áαΓδ.   ¥Γ«Γ   ñÑß¬α¿»Γ«α   ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  ó
  4189.         »«ß½ÑñπεΘ¿σ Σπ¡¬µ¿∩σ  GDI  ñ½∩  óδí«αá  ¿  ¿¡ñ¿¬áµ¿¿  αáßΓα«ó«⌐
  4190.         ¬áαΓδ.
  4191.  
  4192.              î«ª¡« ß«ºñáóáΓ∞ αáßΓα«óδÑ ¬áαΓδ ß½ÑñπεΘ¿¼¿ ß»«ß«íἿ:
  4193.  
  4194.              - æ«ºñáΓ∞  αáßΓα«óπε  ¬áαΓπ  ß  »«¼«Θ∞ε Windows SDKPaint ¿
  4195.                ß«σαá¡¿Γ∞ ÑÑ ó  Σá⌐½Ñ.  çáΓѼ  ñ«íáó¿Γ∞  ÑÑ  ¬  αÑßπαßá¼
  4196.                »α¿¬½áñ¡«⌐    »α«úαá¼¼δ   ¿   ºáúαπº¿Γ∞   ó   »α¿¬½áñ¡«⌐
  4197.                »α«úαá¼¼¼Ñ, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε LoadBitmap.
  4198.  
  4199.              - æ«ºñáΓ∞ »πßΓπε αáßΓα«óπε ¬áαΓπ  ¿  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿¿
  4200.                óδó«ñá GDI ñ½∩ α¿ß«óá¡¿∩ í¿Γ«ó αáßΓα«ó«⌐ ¬áαΓδ.
  4201.  
  4202.              - æ«ºñáΓ∞   »πßΓπε   αáßΓα«óπε   ¬áαΓπ,  ºáΓѼ  πßΓá¡«ó¿Γ∞
  4203.                º¡áτÑ¡¿∩ ÑÑ Γ«τѬ ß »«¼«Θ∞ε í¿Γ«ó«ú« ¼áßß¿óá.
  4204.  
  4205.              - éáΦá »α¿¬½áñ¡á∩ »α«úαἼᠼ«ªÑΓ ΓᬪѠ߫ºñáΓ∞  αáßΓα«óπε
  4206.                ¬áαΓπ ¿   ¿¡¿µ¿á½¿º¿α«óáΓ∞   ÑÑ   ß«ñÑন¼«Ñ  ß  »«¼«Θ∞ε
  4207.                ßπΘÑßΓóπεΘÑ⌐ ¡Ñºáó¿ß¿¼«⌐ «Γ  πßΓα«⌐ßΓó  αáßΓα«ó«⌐  ¬áαΓδ
  4208.                (DIB).
  4209.  
  4210.              é »«ß½ÑñπεΘ¿σ »π¡¬Γáσ »«∩ß¡∩ÑΓß∩,  ¬á¬ ¿ß»«½∞º«óáΓ∞ ¬áªñδ⌐
  4211.         ¿º φΓ¿σ ß»«ß«í«ó ñ½∩ ß«ºñá¡¿∩ αáßΓα«óδσ ¬áαΓ.
  4212.  
  4213.  
  4214.        Windows 3.0/pg/2#3                                        = 81 =
  4215.  
  4216.                      11.2.1  æ«ºñá¡¿Ñ ¿ ºáúαπº¬á Σá⌐½«ó αáßΓα«óδσ ¬áαΓ.        
  4217.  
  4218.              ÉáßΓα«óδÑ ¬áαΓδ  ¼«ª¡«  ß«ºñáóáΓ∞  ß   »«¼«Θ∞ε   SDKPaint.
  4219.         SDKPaint »«ºó«½∩ÑΓ   π¬áºáΓ∞  αẼÑαδ  αáßΓα«ó«⌐  ¬áαΓδ,  ºáΓѼ
  4220.         ºá»«½¡¿Γ∞ ÑÑ, ¿ß»«½∞ºπ∩ ΓᬿѠßαÑñßΓóᠬᬠ¬¿ßΓ∞, αáß»δ½¿Γѽ∞ ¿
  4221.         ñáªÑ  ΓѬßΓ.  ïεí«Ñ  ¿º  φΓ¿σ  ßαÑñßΓ󠼫ªÑΓ ß«ºñáóáΓ∞ µóÑΓá ¿º
  4222.         »á½¿Γαδ,  ß«ñÑαªáΘÑ⌐ ñ«  28  µóÑΓ«ó,  ¬«Γ«αδÑ  óδ  ¼«ªÑΓÑ  ßἿ
  4223.         «»αÑñѽ∩Γ∞.
  4224.  
  4225.              ä½∩ ß«ºñá¡¿∩  αáßΓα«ó«⌐  ¬áαΓδ  ß  »«¼«Θ∞ε  ñá¡¡«ú« ¼ÑΓ«ñá
  4226.         óδ»«½¡¿ΓÑ ß½ÑñπεΘÑÑ:
  4227.  
  4228.              - çá»πßΓ¿ΓÑ SDKPaint ¿,  ß½Ññπ∩ ¿¡ßΓαπ¬µ¿∩¼, »α¿óÑñÑ¡¡δ¼ ó
  4229.                "Tools", ß«ºñá⌐ΓÑ αáßΓα«óπε ¬áαΓπ.
  4230.  
  4231.              - æ«σαá¡¿ÑΓÑ ÑÑ ó Σá⌐½Ñ ß αáßΦ¿αÑ¡¿Ñ¼ .bmp.
  4232.  
  4233.              - é  Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ«íáó∞ΓÑ
  4234.                ÑÑ ß »«¼«Θ∞ε «»ÑαáΓ«αá BITMAP.
  4235.  
  4236.                ìá»α¿¼Ñα, ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  ß½ÑñπεΘ¿⌐  «»ÑαáΓ«α   ñ½∩
  4237.                ºáúαπº¬¿ αáßΓα«ó«⌐ ¬áαΓδ ß ¿¼Ñ¡Ñ¼ "dog" ¿º Σá⌐½á DOG.BMP:
  4238.  
  4239.                dog BITMAP dog.bmp
  4240.  
  4241.                ê¼∩ "dog"  ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ  αáßΓα«óπε ¬áαΓπ,  á ¿¼∩ Σá⌐½á
  4242.                dog.bmp «»αÑñѽ∩ÑΓ ß«ñÑαªáΘ¿⌐ ÑÑ Σá⌐½.
  4243.  
  4244.              - é »α¿¬½áñ¡«⌐ »α«úαἼѠ óδ  ¼«ªÑΓÑ  ºáúαπº¿Γ∞  αáßΓα«óπε
  4245.                ¬áαΓπ, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε LoadBitmap.
  4246.  
  4247.                öπ¡¬µ¿∩ LoadBitmap   »«½πτáÑΓ   ¿¼∩  Σá⌐½á,  ß«ñÑαªáΘÑú«
  4248.                αáßΓα«óπε ¬áαΓπ,  ºáúαπªáÑΓ αáßΓα«óπε ¬áαΓπ ó  »á¼∩Γ∞  ¿
  4249.                ó«ºóαáΘáÑΓ   ñÑß¬α¿»Γ«α   αáßΓα«ó«⌐   ¬áαΓδ.   ìá»α¿¼Ñα,
  4250.                ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºáúαπªáÑΓ αáßΓα«óπε  ¬áαΓπ  ß  ¿¼Ñ¡Ñ¼
  4251.                "dog" ¿   ß«σαá¡∩ÑΓ   ñÑß¬α¿»Γ«α   αáßΓα«ó«⌐   ¬áαΓδ   ó
  4252.                »ÑαѼѡ¡«⌐ ß ¿¼Ñ¡Ñ¼ hDogBitmap:
  4253.  
  4254.                hDogBitmap = LoadBitmap(hInstance, "dog");
  4255.  
  4256.              - éδíÑα¿ΓÑ  αáßΓα«óπε  ¬áαΓπ  ó  ¬«¡ΓѬßΓÑ  πßΓα«⌐ßΓóá   ß
  4257.                »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject.
  4258.  
  4259.                ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐  «»ÑαáΓ«α  ºáúαπªáÑΓ αáßΓα«óπε ¬áαΓπ
  4260.                «»αÑñѽ∩Ѽπε hDogBitmap,    ó    ¬«¡ΓѬßΓ    πßΓα«⌐ßΓóá,
  4261.                «»αÑñѽ∩Ѽδ⌐ hMemoryDC:
  4262.  
  4263.                SelectObject(hMemoryDC,hDogBitmap);
  4264.  
  4265.              - ÄΓ«íαếΓÑ αáßΓα«óπε ¬áαΓπ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt.
  4266.  
  4267.                ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐  «»ÑαáΓ«α ¬«»¿απÑΓ αáßΓα«óπε ¬áαΓπ ß
  4268.                ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá  »á¼∩Γ¿  ó   ¬«¡ΓѬßΓ   πßΓα«⌐ßΓóá,
  4269.                ºáñá¡¡δ⌐ »áαá¼ÑΓα«¼ hDC:
  4270.  
  4271.  
  4272.        Windows 3.0/pg/2#3                                        = 82 =
  4273.  
  4274.                BitBlt(hDC,10,10,100,150,hMemoryDC,0,0,SRCCOPY);
  4275.  
  4276.                é φΓ«¼  »α¿¼ÑαÑ «Γ«íαáªáÑΓß∩ αáßΓα«óá∩ ¬áαΓá ß ¡áτὫ¼ ó
  4277.                Γ«τ¬Ñ (10,10)  πßΓα«⌐ßΓóá  ¡áº¡áτÑ¡¿∩.  ÉáßΓα«óá∩  ¬áαΓá
  4278.                ¿¼ÑÑΓ  100 φ½Ñ¼Ñ¡Γ«ó ó Φ¿α¿¡π ¿ 150 ó óδß«Γπ.  ÉáßΓα«óá∩
  4279.                ¬áαΓá íÑαÑΓß∩  ß  πßΓα«⌐ßΓóá  »á¼∩Γ¿,  ¡áτ¿¡á∩  ß  Γ«τ¬¿
  4280.                (0,0).  è«¡ßΓá¡Γá SRCCOPY «»αÑñѽ∩ÑΓ, τΓ« Windows ñ«½ª¡á
  4281.                ß¬«»¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ ¡á πßΓα«⌐ßΓ󫠡ạáτÑ¡¿∩.
  4282.  
  4283.  
  4284.                    11.2.2  æ«ºñá¡¿Ñ ¿ ºá»«½¡Ñ¡¿Ñ »πßΓδσ αáßΓα«óδσ ¬áαΓ.        
  4285.  
  4286.              î«ª¡« ß«ºñáΓ∞ αáßΓα«óπε ¬áαΓπ  "¡á  ½ÑΓπ",  ß«ºñáó  »πßΓπε
  4287.         αáßΓα«óπε ¬áαΓπ  ¿  ºáΓѼ  ºá»«½¡¿ó ÑÑ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ óδó«ñá
  4288.         GDI. êß»«½∞ºπ∩ φëà¼ÑΓ«ñ óδ ¼«ªÑΓÑ ß¡∩Γ∞ «úαá¡¿τÑ¡¿Ñ ¡á  τ¿ß½«
  4289.         Σá⌐½«ó ß   αáßΓα«ó묨  ¬áαΓἿ,  αÑßπαß«ó  αáßΓα«óδσ  ¬áαΓ  ¿½¿
  4290.         αáßΓα«óδσ ¬áαΓ, ¬«Γ«αδÑ óδ ªÑßΓ¬« ¬«ñ¿απÑΓÑ ó ΓѬßΓÑ »α«úαá¼¼δ.
  4291.  
  4292.              æ½Ññπ⌐ΓÑ ß½ÑñπεΘѼπ ¼ÑΓ«ñπ:
  4293.  
  4294.              1. æ«ºñá⌐ΓÑ  »πßΓπε  αáßΓα«óπε  ¬áαΓπ  ß  »«¼«Θ∞ε  Σπ¡¬µ¿⌐
  4295.                 CreateBitmap ¿ CreateCompatibleBitmap.
  4296.  
  4297.              2. çáΓѼ  óδíÑα¿ΓÑ  αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá
  4298.                 »á¼∩Γ¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject.
  4299.  
  4300.              3. ìáα¿ßπ⌐ΓÑ  ¿º«íαáªÑ¡¿Ñ  ó  αáßΓα«ó«⌐  ¬áαΓÑ  ß  »«¼«Θ∞ε
  4301.                 Σπ¡¬µ¿⌐  óδó«ñá  GDI.
  4302.  
  4303.              Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ  »α¿¼Ñα ß«ºñáÑΓ αáßΓα«óπε ¬áαΓπ "ºóѺñá",
  4304.         »α¿τѼ ß¡áτá½á íÑαÑΓß∩ αáßΓα«óá∩ ¬áαΓá, ß«ó¼ÑßΓ¿¼á∩ ß ñ¿ß»½ÑѼ,
  4305.         ºáΓѼ «¡á ºá»«½¡∩ÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ Polygon:
  4306.  
  4307.              HDC hDC;
  4308.              HDC hMemoryDC;
  4309.              HBITMAP hBitmap;
  4310.              HBITMAP hOldBitmap;
  4311.              POINT Points[5] = { 32,0, 16,63, 63,16, 0,16, 48,63 };
  4312.                 .
  4313.                 .
  4314.                 .
  4315.         (1)  hDC = GetDC(hWnd);
  4316.         (2)  hMemoryDC = CreateCompatibleDC(hDC);
  4317.         (3)  hBitmap = CreateCompatibleBitmap(hDC, 64, 64);
  4318.         (4)  hOldBitmap = SelectObject(hMemoryDC, hBitmap);
  4319.         (5)  PatBlt(hMemoryDC, 0, 0, 64, 64, WHITENESS);
  4320.         (6)  Polygon(hMemoryDC, Points, 5);
  4321.         (7)  BitBlt(hDC,0,0,64,hMemoryDC,0,0,SRCCOPY);
  4322.         (8)  SelectObject(hMemoryDC, hOldBitmap);
  4323.              DeleteDC(hMemoryDC);
  4324.         (9)  ReleaseDC(hWnd, hDC);
  4325.  
  4326.  
  4327.        Windows 3.0/pg/2#3                                        = 83 =
  4328.  
  4329.         1)   öπ¡¬µ¿∩ GetDC ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.
  4330.              ÉáßΓα«óá∩  ¬áαΓá  ñ«½ª¡á  íδΓ∞ ß«ó¼ÑßΓ¿¼á ß ñ¿ß»½ÑѼ.  Åα¿
  4331.              ß«ºñá¡¿¿ αáßΓα«ó«⌐ ¬áαΓδ,  ß«ó¼ÑßΓ¿¼«⌐ ß ¡Ñ¬«Γ«αδ¼  ñαπú¿¼
  4332.              πßΓα«⌐ßΓó«¼,  ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε CreateDC ñ½∩
  4333.              »«½πτÑ¡¿∩ ñÑß¬α¿»Γ«αá φΓ«ú« πßΓα«⌐ßΓóá.
  4334.  
  4335.  
  4336.         2)   öπ¡¬µ¿∩ CreateCompatibleDC   ß«ºñáÑΓ  ¬«¡ΓѬßΓ  πßΓα«⌐ßΓóá
  4337.              »á¼∩Γ¿, ó ¬«Γ«α«¼ íπñÑΓ ¡áα¿ß«óá¡ «íαẠαáßΓα«ó«⌐ ¬áαΓδ.
  4338.  
  4339.         3)   öπ¡¬µ¿∩ CreateCompatibleBitmap  ß«ºñáÑΓ  »πßΓπε  αáßΓα«óπε
  4340.              ¬áαΓπ.  ÉẼÑα  αáßΓα«ó«⌐  ¬áαΓδ  πßΓá¡áó½¿óáÑΓß∩ 64 ¡á 64
  4341.              »¿¬ßѽ∩.  öá¬Γ¿τÑ߬«Ñ τ¿ß½« í¿Γ«ó αáßΓα«ó«⌐ ¬áαΓδ  ºáó¿ß¿Γ
  4342.              «Γ   µóÑΓ«ó«ú«  Σ«α¼áΓá  ñ¿ß»½Ñ∩.  àß½¿  ñ¿ß»½Ñ⌐  ∩ó½∩ÑΓß∩
  4343.              µóÑΓ¡δ¼,  αáßΓα«óá∩ ¬áαΓá  íπñÑΓ  µóÑΓ¡«⌐  ¿  ¼«ªÑΓ  ¿¼ÑΓ∞
  4344.              ¡Ñ߬«½∞¬« í¿Γ ¡á ¬áªñδ⌐ »¿¬ßѽ∞.
  4345.  
  4346.         4)   öπ¡¬µ¿∩ SelectObject  óδí¿αáÑΓ αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ
  4347.              πßΓα«⌐ßΓóá  »á¼∩Γ¿  ¿  »«ñú«Γáó½¿óáÑΓ  ÑÑ  ñ½∩  α¿ß«óá¡¿∩.
  4348.              äÑß¬α¿»Γ«α αá¡ÑÑ  óδíαá¡¡«⌐  αáßΓα«ó«⌐ ¬áαΓδ ß«σαá¡∩ÑΓß∩ ó
  4349.              »ÑαѼѡ¡«⌐ hOldBitmap.
  4350.  
  4351.         5)   öπ¡¬µ¿∩ PatBlt «τ¿ΘáÑΓ αáßΓα«óπε ¬áαΓπ ¿ πßΓá¡áó½¿óáÑΓ óßÑ
  4352.              »¿¬ßѽ¿   ó   íѽδ⌐   µóÑΓ.    ìÑ«íσ«ñ¿¼«    »Ñαó«¡áτá½∞¡«
  4353.              ¿ß»«½∞º«óáΓ∞  φΓπ  ¿½¿  á¡á½«ú¿τ¡πε Ñ⌐ Σπ¡¬µ¿ε,  »«ß¬«½∞¬π
  4354.              «íαẠ»πßΓ«⌐  αáßΓα«ó«⌐  ¬áαΓδ  ¡Ñ  «»αÑñѽѡ.  éδ  ¼«ªÑΓÑ
  4355.              α¿ß«óáΓ∞ ó αáßΓα«ó«⌐ ¬áαΓÑ ¡Ñºáó¿ß¿¼« «Γ Γ«ú«,  »πßΓá∩ «¡á
  4356.              ¿½¿ ¡ÑΓ.
  4357.  
  4358.         6)   öπ¡¬µ¿∩ Polygon α¿ßπÑΓ ºóѺñπ, ¿ß»«½∞ºπ∩ ¬«¡Ñτ¡δÑ Γ«τ¬¿ ÑÑ
  4359.              ½πτÑ⌐, «»αÑñѽѡ¡δÑ ó ¼áßß¿óÑ ßΓαπ¬Γπα Points.
  4360.  
  4361.         7)   öπ¡¬µ¿∩ BitBlt ¬«»¿απÑΓ αáßΓα«óπε ¬áαΓπ ¿º »á¼∩Γ¿ ¡á φ¬αá¡.
  4362.  
  4363.         8)   Å«ß½Ññ«óáΓѽ∞¡« ¿ß»«½∞ºπѼδÑ   Σπ¡¬µ¿¿   SelectObject    ¿
  4364.              DeleteDC ó«ßßΓá¡áó½¿óáεΓ »αѪ¡εε αáßΓα«óπε ¬áαΓπ ¿ πñá½∩εΓ
  4365.              ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿  (¬á¬  Γ«½∞¬«  αáßΓα«óá∩  ¬áαΓá
  4366.              ¡áα¿ß«óá¡á,  ¬«¡ΓѬßΓ  πßΓα«⌐ßΓóá »á¼∩Γ¿ í«½∞ΦÑ ßΓá¡«ó¿Γß∩
  4367.              ¡Ñ  ¡πªÑ¡).  ÄΦ¿í¬«⌐  ∩ó½∩ÑΓß∩  »«»δΓ¬á  πñ὿Γ∞  ¬«¡ΓѬßΓ
  4368.              πßΓα«⌐ßΓóá,  ¬«úñá  óδíαá¡á  αáßΓα«óá∩  ¬áαΓá,  ¬«Γ«αá∩ ¡Ñ
  4369.              ∩ó½∩ÑΓß∩ »Ñαó«¡áτá½∞¡«⌐ αáßΓα«ó«⌐ ¬áαΓ«⌐ ¬«¡ΓѬßΓá.
  4370.  
  4371.  
  4372.         9)   ìᬫ¡Ñµ, Σπ¡¬µ¿∩    ReleaseDC     «ßó«í«ªñáÑΓ     ¬«¡ΓѬßΓ
  4373.              «Γ«íαáªÑ¡¿∩.  ÆÑ»Ñα∞  ñÑß¬α¿»Γ«α  αáßΓα«ó«⌐  ¬áαΓδ hBitmap
  4374.              ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ó »«ß½ÑñπεΘ¿σ Σπ¡¬µ¿∩σ GDI.
  4375.                   11.2.3  æ«ºñá¡¿Ñ αáßΓα«óδσ ¬áαΓ ß »«¼«Θ∞ε Σ¿¬ß¿α«óá¡¡δσ      
  4376.                                        ¬«ñ«ó.
  4377.  
  4378.              î«ª¡« ß«ºñáΓ∞   αáßΓα«óπε   ¬áαΓπ    ¿    πßΓá¡«ó¿Γ∞    ÑÑ
  4379.         »Ñαó«¡áτá½∞¡δ⌐  «íαẠ ß  »«¼«Θ∞ε  ¼áßß¿óá í¿Γ αáßΓα«ó«⌐ ¬áαΓδ,
  4380.         ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε  CreateBitmap.  öπ¡¬µ¿∩  ß«ºñáÑΓ   αáßΓα«óπε
  4381.  
  4382.        Windows 3.0/pg/2#3                                        = 84 =
  4383.  
  4384.         ¬áαΓπ,  ¿¼ÑεΘπε  ∩ó¡« ºáñá¡¡δ⌐ αẼÑα ¿ µóÑΓ«ó«⌐ Σ«α¼áΓ,  ºáΓѼ
  4385.         ¿¡¿µ¿á½¿º¿απÑΓ «íαẠ  αáßΓα«ó«⌐   ¬áαΓδ    Γαá¡ß½¿απ∩    «íαáº
  4386.         ¡Ñºáó¿ß¿¼«⌐ «Γ  πßΓα«⌐ßΓóá  αáßΓα«ó«⌐  ¬áαΓδ,  ó  ºáó¿ß¿¼δ⌐  «Γ
  4387.         πßΓα«⌐ßΓóá Σ«α¼áΓ, ΓαÑíπѼδ⌐ πßΓα«⌐ßΓó«¼ «Γ«íαáªÑ¡¿∩, ¿ ¬«»¿απ∩
  4388.         ó  φΓπ  αáßΓα«óπε  ¬áαΓπ.  ¥Γ«Γ  ¼ÑΓ«ñ  «íδτ¡«  »α¿¼Ñ¡∩ÑΓß∩ »α¿
  4389.         ß«ºñá¡¿¿ ¡Ñí«½∞Φ¿σ αáßΓα«óδσ ¬áαΓ ñ½∩ ¿ß»«½∞º«óá¡¿∩  ß  ¬¿ßΓ∩¼¿
  4390.         Φáí½«¡á,  ¡«  ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ΓᬪѠñ½∩ ß«ºñá¡¿∩ í«½∞Φ¿σ ¿
  4391.         αáßΓα«óδσ ¬áαΓ.
  4392.  
  4393.              Åα¿¼Ñτá¡¿Ñ: àß½¿  αáßΓα«óá∩  ¬áαΓá  ¡Ñ  ¼«¡«σα«¼¡á∩  (Γ.Ñ.
  4394.         ¿¼ÑεΘá∩ «ñ¿¡ »½á¡ µóÑΓ«ó ¿ «ñ¿¡ í¿Γ ¡á »¿¬ßѽ∞), Γ« ß«ºñáóáѼá∩
  4395.         Σπ¡¬µ¿Ñ⌐ CreateBitmap αáßΓα«óá∩  ¬áαΓá  ∩ó½∩ÑΓß∩  ºáó¿ß¿¼«⌐  «Γ
  4396.         πßΓα«⌐ßΓóá, ¿ Γ.«. ¡Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¡á αạδσ ñ¿ß»½Ñ∩σ.
  4397.  
  4398.              é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  ¿¡¿µ¿á½¿º¿απÑΓß∩ ¼«¡«σα«¼¡á∩
  4399.         αáßΓα«óá∩ ¬áαΓá 64 σ 32 »¿¬ßѽ∩ ß »«¼«Θ∞ε í¿Γ«ó ¼áßß¿óá Square:
  4400.  
  4401.              HBITMAP hBitmap;
  4402.              HDC hDC;
  4403.              BYTE Square[] = {
  4404.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4405.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4406.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4407.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4408.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4409.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4410.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4411.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4412.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4413.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4414.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4415.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4416.  
  4417.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4418.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4419.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4420.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4421.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4422.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4423.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4424.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4425.              0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
  4426.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4427.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4428.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4429.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4430.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4431.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4432.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4433.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4434.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4435.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  4436.              0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
  4437.  
  4438.        Windows 3.0/pg/2#3                                        = 85 =
  4439.  
  4440.                      .
  4441.                      .
  4442.                      .
  4443.              HANDLE hDibInfo;
  4444.              PBITMAPINFO pDibInfo;
  4445.  
  4446.              if(pDibInfo = (PBITMAPINFO) LocalAlloc(LMEM_FIXED,
  4447.                            sizeof(BITMAPINFOHEADER) + 2*sizeof(RGBQUARD)))
  4448.              {
  4449.                 HBRUSH hOldBrush,hBrush;
  4450.                 pDibInfo -> bmiHeader.biSize =
  4451.                                          (long)sizeof(BITMAPINFOHEADER);
  4452.                 pDibInfo -> bmiHeader.biWidth = 64L;
  4453.                 pDibInfo -> bmiHeader.biHeight = 32;
  4454.                 pDibInfo -> bmiHeader.biPlanes = 1;
  4455.                 pDibInfo -> bmiHeader.biBitCount = 1;
  4456.                 pDibInfo -> bmiHeader.biCompression = 0L;
  4457.                 pDibInfo -> bmiHeader.biSizeImage = 0L;
  4458.                 pDibInfo -> bmiHeader.biXPelsPerMeter = 0L;
  4459.                 pDibInfo -> bmiHeader.biYPelsPerMeter = 0L;
  4460.                 pDibInfo -> bmiHeader.biClrUsed = 0L;
  4461.                 pDibInfo -> bmiHeader.biClrImportant = 0L;
  4462.                 pDibInfo -> bmiColors[0].rgbRed = 0;
  4463.                 pDibInfo -> bmiColors[0].rgbGreen = 0;
  4464.                 pDibInfo -> bmiColors[0].rgbBlue = 0;
  4465.                 pDibInfo -> bmiColors[1].rgbRed = 0xff;
  4466.                 pDibInfo -> bmiColors[1].rgbGreen = 0xff;
  4467.                 pDibInfo -> bmiColors[1].rgbBlue = 0xff;
  4468.                 hDC = GetDC(hWnd);
  4469.                 hBitmap = CreateDIBitmap(hDC,
  4470.                               (LPBITMAPINFOHEADER)&(pDibInfo->bmiHeader),
  4471.                               CBM_INIT,
  4472.                               (LPSTR)Square,
  4473.                               (LPBITMAPINFO)pDibInfo,
  4474.                               DIB_RGB_COLORS);
  4475.                 ReleaseDC(hWnd,hDC);
  4476.                 DeleteObject(hBitmap);
  4477.                 LocalFree((HANDLE)pDibInfo);
  4478.              }
  4479.  
  4480.              öπ¡¬µ¿∩ CreateDIBitmap ß«ºñáÑΓ ¿ ¿¡¿µ¿á½¿º¿απÑΓ  αáßΓα«óπε
  4481.         ¬áαΓπ »ÑαÑñ ΓѼ,  ¬á¬ ó«ºóαáΓ¿Γ∞ ÑÑ ñÑß¬α¿»Γ«α. ÿ¿α¿¡á ¿ óδß«Γá
  4482.         αáßΓα«ó«⌐ ¬áαΓδ - 64 ¿  32  »¿¬cѽ∩  ß««ΓóÑΓßΓóÑ¡¡«.  ÉáßΓα«óá∩
  4483.         ¬áαΓá  ¿¼ÑÑΓ  «ñ¿¡  µóÑΓ«ó«⌐ »½á¡ ¿ «ñ¿¡ í¿Γ ¡á ¬áªñδ⌐ »¿¬ßѽ∞.
  4484.         ¥Γ« «º¡áτáÑΓ, τΓ« αáßΓα«óá∩ ¬áαΓá ¼«¡«σα«¼¡á∩.
  4485.  
  4486.              îáßß¿ó Square    ß«ñÑαª¿Γ    í¿Γδ,    ¿ß»«½∞ºπѼδÑ     ñ½∩
  4487.         ¿¡¿µ¿á½¿ºáµ¿¿ αáßΓα«ó«⌐ ¬áαΓδ. æΓαπ¬Γπαá BITMAPINFO «»αÑñѽ∩ÑΓ,
  4488.         ¬á¬ íπñÑΓ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ß∩ ¼áßß¿ó í¿Γ.  Ä¡á «»αÑñѽ∩ÑΓ óδß«Γπ
  4489.         ¿  Φ¿α¿¡π αáßΓα«ó«⌐ ¬áαΓδ,  ß¬«½∞¬« í¿Γ (1,4,8,24) ¿ß»«½∞ºπεΓß∩
  4490.         ñ½∩ »αÑñßΓáó½Ñ¡¿∩ ¬áªñ«ú« »¿¬ßѽ∩ ó ¼áßß¿óÑ,  ¿ Γáí½¿µπ  µóÑΓ«ó
  4491.         ñ½∩  »¿¬ßѽÑ⌐.  Å«ß¬«½∞¬π  ¼áßß¿ó Square «»αÑñѽ∩ÑΓ ¼«¡«σα«¼¡πε
  4492.         αáßΓα«óπε ¬áαΓπ,  Γ« ¡á ¬áªñδ⌐ »¿¬ßѽ∞ «Γó«ñ¿Γß∩ »« «ñ¡«¼π í¿Γπ
  4493.  
  4494.        Windows 3.0/pg/2#3                                        = 86 =
  4495.  
  4496.         ¿  Γáí½¿µá  µóÑΓ«ó  ß«ñÑαª¿Γ Γ«½∞¬« ñóá φ½Ñ¼Ñ¡Γá,  ñ½∩ íѽ«ú« ¿
  4497.         τÑα¡«ú«.  àß½¿ í¿Γ ó ¼áßß¿óÑ αáóÑ¡  0,  Γ«  GDI  α¿ßπÑΓ  τÑα¡δ⌐
  4498.         »¿¬ßѽ∞, ¿¡áτÑ íѽδ⌐.
  4499.  
  4500.              Å«ß¬«½∞¬π Square  «»αÑñѽ∩ÑΓ  ¼«¡«σα«¼¡πε αáßΓα«óπε ¬áαΓπ,
  4501.         Γ« óδ ¼«ªÑΓÑ ñ½∩ ß«ºñá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε
  4502.         CreateBitmap:
  4503.  
  4504.              hBitmap = CreateBitmap(64,32,1,1,(LPSTR)Square);
  4505.  
  4506.              ¥Γ« Γá¬,   »«ß¬«½∞¬π   óßÑ   ¼«¡«σα«¼¡δÑ  αáßΓα«óδÑ  ¬áαΓδ
  4507.         á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ. Äñ¡á¬«  ñ½∩   µóÑΓ¡δσ   αáßΓα«óδσ   ¬áαΓ
  4508.         CreateBitmap ¿ß»«½∞ºπÑΓ  ñαπú¿Ñ  ß»Ñµ¿Σ¿¬áµ¿¿  í¿Γ«ó  αáßΓα«ó«⌐
  4509.         ¬áαΓδ »« ßαáó¡Ñ¡¿ε ß CreateDIBitmap.
  4510.  
  4511.              Å«ß½Ñ ß«ºñá¡¿∩  ¿  ¿¡¿µ¿á½¿ºáµ¿¿  αáßΓα«ó«⌐  ¬áαΓδ   ¼«ª¡«
  4512.         ¿ß»«½∞º«óáΓ∞  ÑÑ  ñÑß¬α¿»Γ«α  ó »«ß½ÑñπεΘ¿σ Σπ¡¬µ¿∩σ GDI.  àß½¿
  4513.         ¡Ñ«íσ«ñ¿¼« ¿º¼Ñ¡¿Γ∞ αáßΓα«óπε ¬áαΓπ,  Γ« ¼«ª¡« α¿ß«óáΓ∞ ó  ¡Ñ⌐,
  4514.         óδíαáó  ÑѠ󠬫¡ΓѬßΓÑ πßΓα«⌐ßΓóá »á¼∩Γ¿,  ¬á¬ «»¿ßá¡« ó »π¡¬ΓÑ
  4515.         11.2.2 "櫺ñá¡¿Ñ ¿  ºá»«½¡Ñ¡¿Ñ  »πßΓδσ  αáßΓα«óδσ  ¬áαΓ".  àß½¿
  4516.         ¡Ñ«íσ«ñ¿¼« ºá¼Ñ¡¿Γ∞   «íαẠ óßÑ⌐  ¿½¿  τáßΓ¿  αáßΓα«ó«⌐  ¬áαΓδ
  4517.         ñαπú¿¼, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε  SetDIBits  ñ½∩  ¬«»¿α«óá¡¿∩
  4518.         ñαπú«ú« ¼áßß¿óá í¿Γ ó αáßΓα«óπε ¬áαΓπ. ìá»α¿¼Ñα, π¬áºá¡¡δ⌐ ¡¿ªÑ
  4519.         ó맮ó Σπ¡¬µ¿¿ ¼«ªÑΓ  ºá¼Ñ¡¿Γ∞  ΓѬπΘ¿⌐  «íαẠ αáßΓα«ó«⌐  ¬áαΓδ
  4520.         í¿ΓἿ ¿º ¼áßß¿óá Circle:
  4521.  
  4522.              BYTE Circle[ ]={
  4523.                 .
  4524.                 .
  4525.                 .
  4526.              };
  4527.              SetDIBits(hDC,hBitmap,0,32,(LPSTR)Circle,
  4528.                        (LPBITMAPINFO)&myDIBInfo,DIB_RGB_COLORS);
  4529.  
  4530.              öπ¡¬µ¿∩ SetDIBits ¬«»¿απÑΓ í¿Γδ ¼áßß¿óá Circle ó αáßΓα«óπε
  4531.         ¬áαΓπ, «»αÑñѽ∩Ѽπε  »ÑαѼѡ¡«⌐  hBitmap.  îáßß¿ó  ß«ñÑαª¿Γ  32
  4532.         ßΓ᫬¿, »αÑñßΓáó½∩εΘ¿σ   «íαẠ  ¼«¡«σα«¼¡«⌐   αáßΓα«ó«⌐  ¬áαΓδ
  4533.         αẼÑα«¼ 64 σ 32 »¿¬ßѽ∩.  àß½¿  ¡Ñ«íσ«ñ¿¼«  ß«σαá¡¿Γ∞  ΓѬπΘ¿Ñ
  4534.         í¿Γδ  αáßΓα«ó«⌐  ¬áαΓδ  »ÑαÑñ  ¿σ  ºá¼Ñ¡«⌐,  ¼«ª¡« ¿ß»«½∞º«óáΓ∞
  4535.         Σπ¡¬µ¿ε GetDIBits.  Ä¡á  ¬«»¿απÑΓ  π¬áºá¡¡«Ñ  τ¿ß½«  ßΓ᫬   ¿º
  4536.         αáßΓα«ó«⌐ ¬áαΓδ  ó  á»»áαáΓ¡«¡Ñºáó¿ß¿¼πε ß»Ñµ¿Σ¿¬áµ¿ε αáßΓα«óá⌐
  4537.         ¬áαΓδ. æ«σαá¡¿Γ∞  ¼«¡«σα«¼¡πε  αáßΓα«óπε  ¬áαΓπ   ¼«ª¡«   ΓᬪÑ
  4538.         ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GetBitmapBits.
  4539.  
  4540.              Ç¡á½«ú¿τ¡«, »«ß¬«½∞¬π ¼áßß¿ó Circle «»αÑñѽ∩ÑΓ ¼«¡«σα«¼¡πε
  4541.         αáßΓα«óπε ¬áαΓπ,  óδ  ¼«ªÑΓÑ  ñ½∩  ¿º¼Ñ¡Ñ¡¿∩  αáßΓα«ó«⌐   ¬áαΓδ
  4542.         óδºóáΓ∞ SetBitmapBits:
  4543.  
  4544.              SetBitmapBits(hBitmap,256,(LPSTR)Circle);
  4545.  
  4546.              é »αÑñΦÑßΓóπεΘѼ   »α¿¼ÑαÑ   »«¬áºá¡«,   ¬á¬  ß«ºñáóáΓ∞  ¿
  4547.         ¿º¼Ñ¡∩Γ∞ ¡Ñí«½∞Φ¿Ñ αáßΓα«óδÑ ¬áαΓδ.  Äíδτ¡«  í«½∞ΦδÑ  αáßΓα«óδÑ
  4548.         ¬áαΓδ ¡Ñ ¬«ñ¿απεΓ óαπτ¡πε.  é¼ÑßΓ« φΓ«ú« óδ ¼«ªÑΓÑ ß«ºñáΓ∞ Σá⌐½
  4549.  
  4550.        Windows 3.0/pg/2#3                                        = 87 =
  4551.  
  4552.         ß á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓ«⌐ ß »«¼«Θ∞ε SDKPaint ¿½¿
  4553.         ñαπú¿¼¿ ßαÑñßΓóἿ.   öá⌐½  ß  á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐  αáßΓα«ó«⌐
  4554.         ¬áαΓ«⌐ ß«ßΓ«¿Γ ¿º ßΓαπ¬Γπαδ Γ¿»á BITMAPFILEHEADER,  ºá  ¬«Γ«α«⌐
  4555.         ß½ÑñπεΓ  ßΓαπ¬Γπαá  BITMAPINFO  ¿  ¼áßß¿ó íá⌐Γ,  ¬«Γ«αδÑ ó¼ÑßΓÑ
  4556.         «»αÑñѽ∩εΓ αáßΓα«óπε ¬áαΓπ.
  4557.  
  4558.              Åα¿¼Ñα »α«úαá¼¼δ   ShiwDIB   »«¬áºδóáÑΓ,   ¬á¬    óδó«ñ¿Γ∞
  4559.         á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ αáßΓα«óδÑ   ¬áαΓδ   ß  µóÑΓἿ,  ¬«Γ«α묨
  4560.         π»αáó½∩ÑΓ »á½¿Γαá.  Åα«úαἼᠠShowDIB  »«ßΓáó½∩ÑΓß∩  ¡á  ñ¿ß¬Ñ
  4561.         "Saple   Source   Code   Disk"  ó¼ÑßΓÑ  ß  SDK.  ä«»«½¡¿Γѽ∞¡πε
  4562.         ¿¡Σ«α¼áµ¿ε óδ ¡á⌐ñÑΓÑ ó â½áóÑ 19 "Å὿Γαδ µóÑΓ«ó".
  4563.                             11.2.4  É¿ß«óá¡¿Ñ µóÑΓ¡δσ αáßΓα«óδσ ¬áαΓ.          
  4564.  
  4565.              Å«ß¬«½∞¬π Σ¿¬ß¿α«óá¡¡«Ñ ¬«ñ¿α«óá¡¿Ñ µóÑΓ¡δσ αáßΓα«óδσ ¬áαΓ
  4566.         ºáó¿ß¿Γ  «Γ πßΓα«⌐ßΓóá ¿ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ º¡áτ¿Γѽ∞¡δσ πß¿½¿⌐,
  4567.         í«½ÑÑ »«ñσ«ñ∩Θ¿⌐  ß»«ß«í  ß«ºñáΓ∞  µóÑΓ¡πε  αáßΓα«óπε  ¬áαΓπ  -
  4568.         ß«ºñá¡¿Ñ   ß«ó¼ÑßΓ¿¼«⌐  αáßΓα«ó«⌐  ¬áαΓδ  ¿  α¿ß«óá¡¿Ñ  ó  ¡Ñ⌐.
  4569.         ìá»α¿¼Ñα,  ñ½∩ Γ«ú«,  τΓ«íδ ß«ºñáΓ∞ µóÑΓ¡πε αáßΓα«óπε ¬áαΓπ,  ó
  4570.         ¬«Γ«α«⌐ «ß¡«ó¡δÑ µóÑΓá - ¬αáß¡δ⌐, ºÑ½Ñ¡δ⌐ ¿ ß¿¡¿⌐, ¼«ª¡« »α«ßΓ«
  4571.         ß«ºñáΓ∞ »πßΓπε αáßΓα«óπε ¬áαΓπ ¿  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  PatBlt
  4572.         ñ½∩ α¿ß«óá¡¿∩ ß »«¼«Θ∞ε ¬αáß¡«⌐,  ºÑ½Ñ¡«⌐ ¿ ß¿¡Ñ⌐ ¬¿ßΓÑ⌐.  ¥Γ«Γ
  4573.         ¼ÑΓ«ñ ¿¼ÑÑΓ »αÑ¿¼πΘÑßΓó« »α¿ úÑ¡Ñαᵿ¿ ¡πª¡«⌐  αáßΓα«ó«⌐  ¬áαΓδ
  4574.         ñáªÑ ó Γ«¼ ß½πτáÑ,  ¬«úñá ñ¿ß»½Ñ⌐ ∩ó½∩ÑΓß∩ ¼«¡«σα«¼¡δ¼.  äѽ« ó
  4575.         Γ«¼,   τΓ«   GDI   «íÑß»Ñτ¿óáÑΓ   "»ßÑóñ«µóÑΓ¡πε"   ¬¿ßΓ∞   ñ½∩
  4576.         ¼«¡«σα«¼¡«ú«  ñ¿ß»½Ñ∩,  ¡Ñ »«ññÑনóáεΘÑú« µóÑΓ.  ÅßÑóñ«µóÑΓ¡á∩
  4577.         ¬¿ßΓ∞ ¿¼ÑÑΓ π¡¿¬á½∞¡δ⌐ ¡áí«α  »¿¬ßѽÑ⌐,  »αÑñßΓáó½∩εΘ¿σ  ñá¡¡δ⌐
  4578.         µóÑΓ,  ¬«úñá «¡ ¡Ñ »«ññÑনóáÑΓß∩ πßΓα«⌐ßΓó«¼.
  4579.  
  4580.              Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ   Σαáú¼Ñ¡Γ   »α«úαá¼¼δ   ß«ºñáÑΓ  µóÑΓ¡πε
  4581.         αáßΓα«óπε ¬áαΓπ:
  4582.  
  4583.              # define PATORDEST 0x00FA0089L
  4584.              HDC hDC;
  4585.              HDC hMemoryDC;
  4586.              HBITMAP hBitmap;
  4587.              HBITMAP hOldBitmap;
  4588.              HBRUSH hRedBrush;
  4589.              HBRUSH hGreenBrush;
  4590.              HBRUSH hBlueBrush;
  4591.              HBRUSH hOldBrush;
  4592.                   .
  4593.                   .
  4594.                   .
  4595.              hDC = GetDC(hWnd);
  4596.              hMemoryDC = CreateCompatibleDC(hDC);
  4597.              hBitmap = CreateCompatibleBitmap(hDC, 64, 32);
  4598.              hOldBitmap = SelectObject(hMemoryDC, hBitmap);
  4599.  
  4600.              hRedBrush = CreateSolidBrush(RGB(255,0,0));
  4601.              hGreenBrush = CreateSolidBrush(RGB(0,255,0));
  4602.              hBlueBrush = CreateSolidBrush(RGB(0,0,255));
  4603.  
  4604.  
  4605.        Windows 3.0/pg/2#3                                        = 88 =
  4606.  
  4607.              PatBlt(hMemoryDC, 0, 0, 64, 32, BLACKNESS);
  4608.              hOldBrush = SelectObject(hMemoryDC, hRedBrush);
  4609.              PatBlt(hMemoryDC, 0, 0, 24, 11, PATORDEST);
  4610.              PatBlt(hMemoryDC, 40, 10, 24, 12, PATORDEST);
  4611.              PatBlt(hMemoryDC, 24, 22, 24, 11, PATORDEST);
  4612.              SelectObject(hMemoryDC, hGreenBrush);
  4613.              PatBlt(hMemoryDC, 24, 0, 24, 11, PATORDEST);
  4614.              PatBlt(hMemoryDC, 0, 10, 24, 12, PATORDEST);
  4615.              PatBlt(hMemoryDC, 40, 22, 24, 11, PATORDEST);
  4616.              SelectObject(hMemoryDC, hBlueBrush);
  4617.              PatBlt(hMemoryDC, 40, 0, 24, 11, PATORDEST);
  4618.              PatBlt(hMemoryDC, 24, 10, 24, 12, PATORDEST);
  4619.              PatBlt(hMemoryDC, 0, 22, 24, 11, PATORDEST);
  4620.  
  4621.              BitBlt(hDC,0,0,64,32,hMemoryDC,0,0,SRCCOPY);
  4622.  
  4623.              SelectObject(hMemoryDC, hOldBrush);
  4624.              DeleteObject(hRedBrush);
  4625.              DeleteObject(hGreenBrush);
  4626.              DeleteObject(hBlueBrush);
  4627.  
  4628.              SelectObject(hMemoryDC, hOldBitmap);
  4629.              DeleteDC(hMemoryDC);
  4630.              ReleaseDC(hWnd, hDC);
  4631.  
  4632.              é φΓ«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ CreateSolidBrush  ß«ºñáÑΓ  ¬αáß¡πε,
  4633.         ºÑ½Ñ¡πε  ¿ ß¿¡εε ¬¿ßΓ¿,  ¡Ñ«íσ«ñ¿¼δÑ ñ½∩ ß«ßΓáó½Ñ¡¿∩ ¬½ÑΓ«τ¡«ú«
  4634.         Φáí½«¡á. öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ ¬áªñπε ¬¿ßΓ∞ ó ¬«¡ΓѬßΓÑ
  4635.         πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬«úñá φΓá ¬¿ßΓ∞ ¡Ñ«íσ«ñ¿¼á, á Σπ¡¬µ¿∩ PatBlt
  4636.         α¿ßπÑΓ µóÑΓá ó αáßΓα«ó«⌐ ¬áαΓÑ.  èáªñδ⌐ µóÑΓ  α¿ßπÑΓß∩  Γਦñδ,
  4637.         óß∩¬¿⌐ αẠó ¡Ñí«½∞Φ«¼ »α∩¼«πú«½∞¡¿¬Ñ. öπ¡¬µ¿∩ PatBlt ¡á¼ÑαÑ¡¡«
  4638.         ¡Ñ¼¡«ú« »ÑαѬαδóáÑΓ ¡Ñí«½∞Φ¿Ñ »α∩¼«πú«½∞¡¿¬¿ αẽ¿τ¡δσ  µóÑΓ«ó.
  4639.         Å«ß¬«½∞¬π  ºáñá¡á αáßΓα«óá∩ «»Ñαᵿ∩ PATORDEST,  Σπ¡¬µ¿∩ PatBlt
  4640.         «íΩÑñ¿¡∩ÑΓ µóÑΓ ¬¿ßΓ¿  ß  µóÑΓ«¼,  πªÑ  ¿¼ÑεΘ¿¼ß∩  ó  αáßΓα«ó«⌐
  4641.         ¬áαΓÑ,  ¿ß»«½∞ºπ∩  íπ½Ñó߬πε «»Ñαᵿε OR.  ÉѺπ½∞ΓáΓ«¼ ∩ó½∩ÑΓß∩
  4642.         αẽ¿τ¡á∩ µóÑΓ«óá∩  «¬á¡Γ«ó¬á  ¬áªñ«ú«  »α∩¼«πú«½∞¡¿¬á.   Å«ß½Ñ
  4643.         ºáóÑαΦÑ¡¿∩ ß«ºñá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ «¡á ¬«»¿απÑΓß∩ ¿º ¬«¡ΓѬßΓá
  4644.         πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡á φ¬αá¡ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt.
  4645.  
  4646.                           11.3  ÄΓ«íαáªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ ¡á φ¬αá¡Ñ.          
  4647.  
  4648.              ÉáßΓα«óπε ¬áαΓπ  ¼«ª¡« ¿¡ñ¿µ¿α«óáΓ∞ ¡Ñ߬«½∞¬¿¼¿ αẽ¿τ¡δ¼¿
  4649.         ß»«ß«íἿ:
  4650.  
  4651.              - éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε  BitBlt  ñ½∩  ¬«»¿α«óá¡¿∩
  4652.                αáßΓα«ó«⌐ ¬áαΓδ   ¿º  ¬«¡ΓѬßΓá  «Γ«íαáªÑ¡¿∩  »á¼∩Γ¿  ¡á
  4653.                πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩.
  4654.  
  4655.              - éδ   ¼«ªÑΓÑ   ¿ß»«½∞º«óáΓ∞   Σπ¡¬µ¿ε   StretchBlt    ñ½∩
  4656.                ¬«»¿α«óá¡¿∩  αáßΓ∩¡πΓ«⌐  ¿½¿  ßªáΓ«⌐  αáßΓα«ó«⌐ ¬áαΓδ ¿º
  4657.                ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩ »á¼∩Γ¿ ¡á πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩.
  4658.  
  4659.  
  4660.        Windows 3.0/pg/2#3                                        = 89 =
  4661.  
  4662.              - éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  CreatePatternBrush  ñ½∩
  4663.                ß«ºñá¡¿∩  ¬¿ßΓ¿,  ¬«Γ«αá∩  «íΩÑñ¿¡∩ÑΓ  αáßΓα«óπε  ¬áαΓπ.
  4664.                Å«ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿ GDI,  ¿ß»«½∞ºπεΘ¿Ñ φΓπ ¬¿ßΓ∞,  ΓᬿÑ
  4665.                ¬á¬ PatBlt, ¼«úπΓ ¿¡ñ¿µ¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ.
  4666.  
  4667.              - éδ  ¼«ªÑΓÑ  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  SetDIBitsToDevice ñ½∩
  4668.                ¬«»¿α«óá¡¿∩ á»»áαáΓ¡«  ¡Ñºáó¿ß¿¼«⌐  αáßΓα«ó«⌐  ¬áαΓδ  ¿º
  4669.                ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩   »á¼∩Γ¿   »α∩¼«   ¡á   πßΓα«⌐ßΓó«
  4670.                «Γ«íαáªÑ¡¿∩.
  4671.  
  4672.              î«ª¡« ΓᬪѠ¿¡ñ¿µ¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ ó  ¼Ñ¡ε.  é  φΓ«¼
  4673.         ß½πτáÑ  αáßΓα«óá∩ ¬áαΓá ¿ß»«½∞ºπÑΓß∩ ¬á¬ φ½Ñ¼Ñ¡Γ ¼Ñ¡ε,  ¬«Γ«αδ⌐
  4674.         »«½∞º«óáΓѽ∞  ¼«ªÑΓ  óδíαáΓ∞  ñ½∩  óδ»«½¡Ñ¡¿∩  ñÑ⌐ßΓó¿∩.  ü«½ÑÑ
  4675.         »«ñα«í¡« ß¼«Γα¿ΓÑ ú½áóπ 7 "îÑ¡ε".
  4676.               11.3.1. ê¡ñ¿µ¿α«óá¡¿Ñ  αáßΓα«ó«⌐  ¬áαΓδ  ß  »«¼«Θ∞ε Σπ¡¬µ¿¿      
  4677.                                     BitBlt.
  4678.  
  4679.              î«ª¡« ¿¡ñ¿µ¿α«óáΓ∞  αáßΓα«óπε  ¬áαΓπ,  ¿ß»«½∞ºπ∩   Σπ¡¬µ¿ε
  4680.         BitBlt.  ¥Γá  Σπ¡¬µ¿∩  ¬«»¿απÑΓ  αáßΓα«óπε  ¬áαΓπ  ¿º ¿ßσ«ñ¡«ú«
  4681.         ¬«¡ΓѬßΓá   πßΓα«⌐ßΓóá-¿ßΓ«τ¡¿¬á    ó    ¬«¡ΓѬßΓ    πßΓα«⌐ßΓóá
  4682.         ¡áº¡áτÑ¡¿∩.  ä½∩ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε BitBlt
  4683.         ¡Ñ«íσ«ñ¿¼«  ß«ºñáΓ∞  ¬«¡ΓѬßΓ  πßΓα«⌐ßΓóá  »á¼∩Γ¿   ¿   óδíαáΓ∞
  4684.         αáßΓα«óπε  ¬áαΓπ  ó φΓ«¼ ¬«¡ΓѬßΓÑ.  é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ
  4685.         αáßΓα«óá∩ ¬áαΓá ¿¡ñ¿µ¿απÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt:
  4686.  
  4687.              HDC hDC, hMemoryDC;
  4688.                 .
  4689.                 .
  4690.                 .
  4691.              hDC = GetDC(hWnd);
  4692.              hMemoryDC = CreateCompatibleDC(hDC);
  4693.  
  4694.              hOldBitmap = SelectObject(hMemoryDC , hBitmap);
  4695.  
  4696.              if(hOldBitmap) {
  4697.                 BitBlt(hDC, 100, 30, 64, 32, hMemoryDC, 0, 0, SRCCOPY);
  4698.                 SelectObject(hMemoryDC, hOldBitmap);
  4699.              }
  4700.              DeleteDC(hMemoryDC);
  4701.              ReleaseDC(hWnd, hDC);
  4702.  
  4703.              öπ¡¬µ¿∩ GetDC  «»αÑñѽ∩ÑΓ  ¬«¡ΓѬßΓ  «Γ«íαáªÑ¡¿∩   «í½áßΓ¿
  4704.         »«½∞º«óáΓѽ∩     «¬¡á     ß    ñÑß¬α¿»Γ«α«¼    hWnd.    öπ¡¬µ¿∩
  4705.         CreateCompatibleDC ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿,  ¬«Γ«αδ⌐
  4706.         ß«ó¼ÑßΓ¿¼   ß   ¬«¡ΓѬßΓ«¼  «Γ«íαáªÑ¡¿∩.  öπ¡¬µ¿∩  SelectObject
  4707.         óδí¿αáÑΓ αáßΓα«óπε ¬áαΓπ ß  ñÑß¬α¿»Γ«α«¼  hBit¼ap  ó  ¬«¡ΓѬßΓÑ
  4708.         πßΓα«⌐ßΓóá »á¼∩Γ¿ ¿ ó«ºóαáΘáÑΓ αá¡ÑÑ óδíαá¡¡πε αáßΓα«óπε ¬áαΓπ.
  4709.         àß½¿  φΓá  Σπ¡¬µ¿∩  ¡Ñ  ¼«ªÑΓ  óδíαáΓ∞  αáßΓα«óπε  ¬áαΓπ,   «¡á
  4710.         ó«ºóαáΘáÑΓ ¡π½∞.
  4711.  
  4712.              öπ¡¬µ¿∩ BitBlt   ¬«»¿απÑΓ  αáßΓα«óπε  ¬áαΓπ  ¿º  ¬«¡ΓѬßΓá
  4713.         πßΓα«⌐ßΓóá »á¼∩Γ¿  ó  ¬«¡ΓѬßΓ  «Γ«íαáªÑ¡¿∩  ñ¿ß»½Ñ∩.   öπ¡¬µ¿∩
  4714.  
  4715.        Windows 3.0/pg/2#3                                        = 90 =
  4716.  
  4717.         »«¼ÑΘáÑΓ   óÑασ¡¿⌐   ½Ñóδ⌐  πú«½  αáßΓα«ó«⌐  ¬áαΓδ  ó  Γ«τ¬π  ß
  4718.         ¬««αñ¿¡áΓἿ (100,  30). è«»¿απÑΓß∩ óß∩ αáßΓα«óá∩ ¬áαΓá Φ¿α¿¡«⌐
  4719.         64 í¿Γá   ¿   óδß«Γ«⌐  32  í¿Γá.  ÅÑαѼѡ¡δÑ  hDC  ¿  hMemoryDC
  4720.         »αÑñßΓáó½∩εΓ ñÑß¬α¿»Γ«αδ ¬«¡ΓѬßΓá ¼ÑßΓᠡạáτÑ¡¿∩ ¿ ¿ßΓ«τ¡¿¬á
  4721.         ß««ΓóÑΓßΓóÑ¡¡«.  è«¡ßΓá¡Γá  SRCCOPY  «»αÑñѽ∩ÑΓ  ¬«ñ  αáßΓα«ó«⌐
  4722.         «»Ñαᵿ¿.  Ä¡á ºáßΓáó½∩ÑΓ Σπ¡¬µ¿ε BitBlt  ¬«»¿α«óáΓ∞  αáßΓα«óπε
  4723.         ¬áαΓπ-¿ßΓ«τ¡¿¬ íѺ  ¬«¼í¿¡áµ¿¿  ÑÑ  ß Φáí½«¡á¼¿ ¿½¿ µóÑΓἿ πªÑ
  4724.         ßπΘÑßΓóπεΘ¿¼¿ ó ¼ÑßΓÑ ¡áº¡áτÑ¡¿∩.
  4725.  
  4726.              öπ¡¬µ¿¿ SelectObject,  DeleteDC  ¿  ReleaseDC  ß½πªáΓ  ñ½∩
  4727.         «τ¿ßΓ¬¿ »«ß½Ñ  Γ«ú«,  ¬á¬  αáßΓα«óá∩  ¬áαΓá  íδ½á ¿¡ñ¿µ¿α«óá¡á.
  4728.         é««íΘÑ   ú«ó«α∩,   »«   ºáóÑαΦÑ¡¿¿   ¿ß»«½∞º«óá¡¿∩   ¬«¡ΓѬßΓ«ó
  4729.         «Γ«íαáªÑ¡¿∩ ¿  πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡Ñ«íσ«ñ¿¼« ¿σ ¬á¬ ¼«ª¡« ß¬«αÑÑ
  4730.         «ßó«í«ñ¿Γ∞ («ß«íÑ¡¡« ¬«¡ΓѬßΓ  «Γ«íαáªÑ¡¿∩),  »«ß¬«½∞¬π  φΓ«  -
  4731.         «úαá¡¿τÑ¡¡δ⌐  αÑßπαß.  àß½¿  »α«úαἼᠠ¡Ñ  «ßó«í«ñ¿Γ  ¬«¡ΓѬßΓ
  4732.         «Γ«íαáªÑ¡¿∩  »«ß½Ñ  Ñú«  ¿ß»«½∞º«óá¡¿∩,  Γ«  ñαπú¿Ñ  »α¿¬½áñ¡δÑ
  4733.         »α«úαá¼¼δ  »α¿  ¡Ñ«íσ«ñ¿¼«ßΓ¿  ¡Ñ ß¼«úπΓ Ñú« »«½πτ¿Γ∞.  àß½¿ óδ
  4734.         »«½πτ¿½¿ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿  GetDC  Γ«  óδ
  4735.         ñ«½ª¡δ  íπñÑΓÑ  Ñú«  «ßó«í«ñ¿Γ∞ Σπ¡¬µ¿Ñ⌐ ReleaseDC.  àß½¿ ªÑ óδ
  4736.         ß«ºñ὿    ¬«¡ΓѬßΓ    πßΓα«⌐ßΓóá     ß     »«¼«Θ∞ε     Σπ¡¬µ¿¿
  4737.         CreateCompatibleDC, Γ«   óδ  ñ«½ª¡δ  íπñÑΓÑ  Ñú«  ó  ñá½∞¡Ñ⌐ΦѼ
  4738.         «ßó«í«ñ¿Γ∞,  ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε DeleteDC.  öπ¡¬µ¿∩  SelectObject
  4739.         ¡Ñ«íσ«ñ¿¼á,  »«ß¬«½∞¬π ¡Ñ½∞º∩ πñ὿Γ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá, Ñß½¿
  4740.         óδíαá¡á  αáßΓα«óá∩  ¬áαΓá,  ¡Ñ  ∩ó½∩εΘá∩ß∩  »Ñαó«¡áτá½∞¡«⌐  ñ½∩
  4741.         ñá¡¡«ú« ¬«¡ΓѬßΓá.
  4742.  
  4743.              é »αÑñδñπΘѼ  »α¿¼ÑαÑ »αÑñ»«½áúὫß∞,  τΓ« Φ¿α¿¡á ¿ óδß«Γá
  4744.         αáßΓα«ó«⌐ ¬áαΓδ αáó¡á 64 ¿ 32 »¿¬ßѽ∩¼  ß««ΓóÑΓßΓóÑ¡¡«.  äαπú¿¼
  4745.         ß»«ß«í«¼  «»αÑñѽѡ¿∩  Φ¿α¿¡δ  ¿  óδß«Γδ ¿¡ñ¿µ¿απѼ«⌐ αáßΓα«ó«⌐
  4746.         ¬áαΓδ ∩ó½∩ÑΓß∩ ¡áσ«ªñÑ¡¿Ñ ¿σ  ¿º  ßἫ⌐  αáßΓα«ó«⌐  ¬áαΓδ.  ¥Γ«
  4747.         ¼«ª¡« ßñѽáΓ∞,  ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GetObject,  ¬«Γ«αá∩ ºá»«½¡∩ÑΓ
  4748.         π¬áºá¡¡πε ßΓαπ¬Γπαπ αẼÑαἿ ºáñá¡¡«ú« «íΩѬΓá.  ìá»α¿¼Ñα, ñ½∩
  4749.         ¡áσ«ªñÑ¡¿∩  Φ¿α¿¡δ  ¿ óδß«Γδ αáßΓα«ó«⌐ ¬áαΓδ ¼«ª¡« ¿ß»«½∞º«óáΓ∞
  4750.         ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  4751.  
  4752.              BITMAP Bitmap;
  4753.                .
  4754.                .
  4755.                .
  4756.              GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&Bitmap);
  4757.  
  4758.              é ß½ÑñπεΘѼ  »α¿¼ÑαÑ  Φ¿α¿¡á  ¿  óδß«Γá  αáßΓα«ó«⌐   ¬áαΓδ
  4759.         ¬«»¿απεΓß∩  ó  »«½∩ bmWidth ¿ bmHeight ßΓαπ¬Γπαδ Bitmap.  î«ª¡«
  4760.         ¿ß»«½∞º«óáΓ∞ φΓ¿ º¡áτÑ¡¿∩ ó Σπ¡¬µ¿¿ BitBlt ß½ÑñπεΘ¿¼ «íαẫ¼:
  4761.  
  4762.              BitBlt (hDC, 100, 30, Bitmap.bmWidth, Bitmap.bmHeight,
  4763.                     hMemoryDC, 0, 0, SRCCOPY);
  4764.  
  4765.              öπ¡¬µ¿∩ BitBlt  ¼«ªÑΓ  ¿¡ñ¿µ¿α«óáΓ∞  ¼«¡«σα«¼¡πε ¿ µóÑΓ¡πε
  4766.         αáßΓα«óδÑ  ¬áαΓδ.  ìÑ  ΓαÑíπÑΓß∩   ß»Ñµ¿á½∞¡δσ   ñÑ⌐ßΓó¿⌐   ñ½∩
  4767.         ¿¡ñ¿¬áµ¿¿ αáßΓα«óδσ ¬áαΓ αẽ¿τ¡δσ Σ«α¼áΓ«ó. Äñ¡á¬«, ¡Ñ«íσ«ñ¿¼«
  4768.         »«¼¡¿Γ∞,  τΓ«  Σπ¡¬µ¿∩  BitBlt  ¼«ªÑΓ  »αÑ«íαẫóáΓ∞  αáßΓα«óπε
  4769.         ¬áαΓπ,  Ñß½¿  ÑÑ  µóÑΓ¡«⌐  Σ«α¼áΓ  ¡Ñ  ß«ó»áñáÑΓ  ß πßΓα«⌐ßΓó«¼
  4770.  
  4771.        Windows 3.0/pg/2#3                                        = 91 =
  4772.  
  4773.         ¡áº¡áτÑ¡¿∩.  ìá»α¿¼Ñα, »α¿ ¿¡ñ¿¬áµ¿¿ µóÑΓ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ ¡á
  4774.         ¼«¡«σα«¼¡«¼ ñ¿ß»½ÑÑ Σπ¡¬µ¿∩ BitBlt »αÑ«íαáºπÑΓ »¿¬ßѽ¿, ¿¼ÑεΘ¿Ñ
  4775.         µóÑΓ Σ«¡á, ó íѽδ⌐ µóÑΓ, á óßÑ ñαπú¿Ñ - ó τÑα¡δ⌐.
  4776.                                  11.3.2  ÉáßΓ∩ªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ.            
  4777.  
  4778.              ÉáßΓα«óδÑ ¬áαΓδ  ¡Ñ  «úαá¡¿τ¿óáεΓß∩   ¿σ   »Ñαó«¡áτá½∞¡δ¼¿
  4779.         αẼÑαἿ.  êσ ¼«ª¡« αáßΓ∩ú¿óáΓ∞ ¿½¿ ßª¿¼áΓ∞, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
  4780.         StretchBlt  ó¼ÑßΓ«  Σπ¡¬µ¿¿  BitBlt.  ìá»α¿¼Ñα,  ¼«ª¡«  πñó«¿Γ∞
  4781.         αẼÑα αáßΓα«ó«⌐  ¬áαΓδ  64  σ 32 »¿¬ßѽ∩,  ¿ß»«½∞ºπ∩ ß½ÑñπεΘ¿⌐
  4782.         «»ÑαáΓ«α:
  4783.  
  4784.              StretchBlt(hDC, 100, 30, 128, 64, hMemoryDC, 0, 0, 64,
  4785.                         32, SRCCOPY);
  4786.  
  4787.              öπ¡¬µ¿∩ StretchBlt  ¿¼ÑÑΓ  ñóá  ñ«»«½¡¿Γѽ∞¡δσ  »áαá¼ÑΓαá,
  4788.         ¬«Γ«αδσ ¡ÑΓ π BitBlt. é τáßΓ¡«ßΓ¿, StretchBlt «»αÑñѽ∩ÑΓ Φ¿α¿¡π
  4789.         ¿  óδß«Γπ ¿ßσ«ñ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ.  ÅÑαóá∩ π»«¼∩¡πΓá∩ Φ¿α¿¡á ¿
  4790.         óδß«Γá,  ºáñá¡¡á∩ º¡áτÑ¡¿∩¼¿ 128  ¿  64  »¿¬ßѽÑ⌐,  »α¿¼Ñ¡∩ÑΓß∩
  4791.         Γ«½∞¬«  ¬  «¬«¡τáΓѽ∞¡«¼π  αẼÑαπ  αáßΓα«ó«⌐ ¬áαΓδ ó ¬«¡ΓѬßΓÑ
  4792.         πßΓα«⌐ßΓóá-»«½πτáΓѽ∩.
  4793.  
  4794.              ä½∩ ßªáΓ¿∩  αáßΓα«ó«⌐  ¬áαΓδ  Σπ¡¬µ¿∩  StretchBlt  πñá½∩ÑΓ
  4795.         »¿¬ßѽ¿  ¿º  ß¬«»¿α«óá¡¡δσ  αáßΓα«óδσ ¬áαΓ.  ¥Γ« «º¡áτáÑΓ,  τΓ«
  4796.         ¡Ñ¬«Γ«αá∩ τáßΓ∞ ¿¡Σ«α¼áµ¿¿ ó ¡Ñ⌐  ΓÑα∩ÑΓß∩  »α¿  ¿¡ñ¿µ¿α«óá¡¿¿.
  4797.         ä½∩ Γ«ú«, τΓ«íδ ¼¿¡¿¼¿º¿α«óáΓ∞ »«ΓÑα¿, ¼«ª¡« πßΓá¡«ó¿Γ∞ ΓѬπΘ¿⌐
  4798.         αѪ¿¼ αáßΓ∩ªÑ¡¿∩, τΓ«íδ ºáßΓáó¿Γ∞ Σπ¡¬µ¿ε StretchBlt »«»δΓáΓ∞ß∩
  4799.         ß«σαá¡¿Γ∞ ¡Ñ¬«Γ«απε   τáßΓ∞   ¿¡Σ«α¼áµ¿¿,   ¬«¼í¿¡¿απ∩   ÑÑ   ß
  4800.         »¿¬ßѽ∩¼¿,  ¬«Γ«αδÑ  íπñπΓ  ¿¡ñ¿µ¿α«óáΓ∞ß∩.  é«º¼«ª¡δÑ   αѪ¿¼δ
  4801.         αáßΓ∩ªÑ¡¿∩:
  4802.  
  4803.              ÉѪ¿¼                  Ä»¿ßá¡¿Ñ
  4804.              ──────────────────────────────────────────────────────────
  4805.              WHITEONBLACK           ¿ß»«½∞ºπÑΓß∩, Ñß½¿       ¡Ñ«íσ«ñ¿¼«
  4806.                                     ß«σαá¡¿Γ∞ íѽδÑ »¿¬ßѽ¿ »α¿ ¿ºíδΓ¬Ñ
  4807.                                     τÑα¡δσ; ¡á»α¿¼Ñα,   Ñß½¿    ¿¼ÑÑΓß∩
  4808.                                     íѽδ⌐ ΓѬßΓ ¡á τÑα¡«¼ Σ«¡Ñ.
  4809.  
  4810.              BLACKONWHITE           ¿ß»«½∞ºπÑΓß∩, Ñß½¿       ¡Ñ«íσ«ñ¿¼«
  4811.                                     ß«σαá¡¿Γ∞ τÑα¡δÑ    »¿¬ßѽ¿     »α¿
  4812.                                     ¿ºíδΓ¬Ñ   íѽδσ;   ¡á»α¿¼Ñα,   Ñß½¿
  4813.                                     ¿¼ÑÑΓß∩ íѽδ⌐ ΓѬßΓ ¡á τÑα¡«¼ Σ«¡Ñ.
  4814.  
  4815.  
  4816.  
  4817.              COLORONCOLOR           ¿ß»«½∞ºπÑΓß∩ ñ½∩  µóÑΓ¡δσ αáßΓα«óδσ
  4818.                                     ¬áαΓ. Å«»δΓ¬á    «íΩÑñ¿¡∩Γ∞   µóÑΓá
  4819.                                     ¼«ªÑΓ  »α¿óÑßΓ¿  ¬   ¡ÑªÑ½áΓѽ∞¡«¼π
  4820.                                     φΣΣѬΓπ.
  4821.  
  4822.              ÉѪ¿¼ αáßΓ∩ªÑ¡¿∩          πßΓá¡áó½¿óáÑΓß∩         Σπ¡¬µ¿Ñ⌐
  4823.         SetStrechBltMode. é   »α¿óÑñÑ¡¡«¼    ¡¿ªÑ    »α¿¼ÑαÑ    Σπ¡¬µ¿∩
  4824.         SetStretchBltMode  πßΓá¡áó½¿óáÑΓ  αѪ¿¼  αáßΓ∩ªÑ¡¿∩  ó º¡áτÑ¡¿Ñ
  4825.  
  4826.        Windows 3.0/pg/2#3                                        = 92 =
  4827.  
  4828.         WHITEONBLACK:
  4829.  
  4830.              SetStretchBltMode(hDC, WHITEONBLACK);
  4831.                    11.3.3  êß»«½∞º«óá¡¿Ñ αáßΓα«óδσ ¬áαΓ ó ¬¿ßΓ¿ Φáí½«¡á.       
  4832.  
  4833.              î«ª¡« ¿ß»«½∞º«óáΓ∞  αáßΓα«óδÑ  ¬áαΓδ  ß  ¬¿ßΓ∞ε,  »α¿¼Ñ¡∩∩
  4834.         ¬¿ßΓ∞ Φáí½«¡á. èá¬ Γ«½∞¬« ¬¿ßΓ∞ Φáí½«¡á ß«ºñá¡á, ¼«ª¡« óδí¿αáΓ∞
  4835.         ¬¿ßΓ∞ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá ¿ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε PatBlt  ñ½∩
  4836.         ¬«»¿α«óá¡¿∩  ÑÑ ¡á φ¬αá¡;  Rectangle,  Ellipse ¿ ñαπú¿Ñ Σπ¡¬µ¿¿
  4837.         α¿ß«óá¡¿∩ ¼«úπΓ ¿ß»«½∞º«óáΓ∞  ¬¿ßΓ∞  ñ½∩  ºá»«½¡Ñ¡¿∩  ß«ºñá¡¡δσ
  4838.         Σ¿úπα. è«úñá  Windows  α¿ßπÑΓ  ß  »«¼«Θ∞ε  ¬¿ßΓ¿  Φáí½«¡á,  «¡á
  4839.         ºá»«½¡∩ÑΓ  π¬áºá¡¡πε «í½áßΓ∞,  »«óΓ«α¡« ¬«»¿απ∩ αáßΓα«óπε ¬áαΓπ
  4840.         »« ú«α¿º«¡Γ὿ ¿ óÑαΓ¿¬á½¿ Γá¬,  ¬á¬ φΓ« ¡Ñ«íσ«ñ¿¼«.  Åα¿  φΓ«¼
  4841.         αẼÑα  αáßΓα«ó«⌐  ¬áαΓδ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩,  ¬á¬ φΓ« ñѽáÑΓ Σπ¡¬µ¿∩
  4842.         StretchBlt.
  4843.  
  4844.              àß½¿ αáßΓα«óá∩  ¬áαΓá  ¿ß»«½∞ºπÑΓß∩ ß ¬¿ßΓ∞ε Φáí½«¡á,  «¡á
  4845.         ñ«½ª¡á ¿¼ÑΓ∞ αẼÑα »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ 8 σ 8;  φΓ« αẼÑα  Φáí½«¡á
  4846.         »«  π¼«½τá¡¿ε,  ¿ß»«½∞ºπѼδ⌐  í«½∞Φ¿¡ßΓó«¼  ñαá⌐óÑα«ó ñ¿ß»½ÑÑó.
  4847.         î«ª¡«  »α¿¼Ñ¡∩Γ∞  ¿   í«½∞Φ¿Ñ   αáßΓα«óδÑ   ¬áαΓδ,   ¡«   íπñÑΓ
  4848.         ¿ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬«  ½Ñóδ⌐  óÑασ¡¿⌐  ÑÑ  πú«½  αẼÑα«¼ 8 σ 8
  4849.         »¿¬ßѽÑ⌐.  î«ª¡«  ªÑßΓ¬«  ºáñáΓ∞  αáßΓα«óπε  ¬áαΓπ  ¬«ñἿ  ¿½¿
  4850.         ºáúαπº¿Γ∞   ÑÑ   ¬á¬  αÑßπαß.  é  ½εí«¼  ß½πτáÑ,  Ñß½¿  ¿¼ÑÑΓß∩
  4851.         ñÑß¬α¿»Γ«α αáßΓα«ó«⌐  ¬áαΓδ,  ¼«ª¡«  ß«ºñáóáΓ∞  ¬¿ßΓ∞  Φáí½«¡á,
  4852.         ¿ß»«½∞ºπ∩   Σπ¡¬µ¿ε   CreatePatternBrush.  é  »α¿óÑñÑ¡¡«¼  ¡¿ªÑ
  4853.         »α¿¼ÑαÑ αáßΓα«óá∩ ¬áαΓá ºáúαπªáÑΓß∩ ¿ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ß«ºñá¡¿∩
  4854.         ¬¿ßΓ¿ Φáí½«¡á:
  4855.  
  4856.              hBitmap=LoadBitmap(hInstance, "checks");
  4857.              hBrush=CreatePatternBrush(hBitmap);
  4858.  
  4859.              èá¬ Γ«½∞¬« ¬¿ßΓ∞ Φáí½«¡á  ß«ºñá¡á,  ¼«ª¡«  óδí¿αáΓ∞  ÑÑ  ó
  4860.         ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject:
  4861.  
  4862.              hOldBrush=SelectObject(hDC, hBrush);
  4863.  
  4864.              Å«ß¬«½∞¬π αáßΓα«óá∩  ¬áαΓá  ∩ó½∩ÑΓß∩  τáßΓ∞ε  ¬¿ßΓ¿,  φΓ«Γ
  4865.         ó맮ó  Σπ¡¬µ¿¿  SelectObject  ¡Ñ  ó«ºñÑ⌐ßΓóπÑΓ   ¡á   óδíαá¡¡πε
  4866.         αáßΓα«óπε ¬áαΓπ ß ¬«¡ΓѬßΓ«¼ πßΓα«⌐ßΓóá.
  4867.  
  4868.              Å«ß½Ñ óδí«αá  ¬¿ßΓ¿  ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε PatBlt ñ½∩
  4869.         ºá»«½¡Ñ¡¿∩ π¬áºá¡¡«⌐  «í½áßΓ¿   αáßΓα«ó«⌐   ¬áαΓ«⌐.   ìá»α¿¼Ñα,
  4870.         »α¿óÑñÑ¡¡δ⌐  ¡¿ªÑ  «»ÑαáΓ«α  ºá»«½¡∩ÑΓ  óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ «¬¡á
  4871.         αáßΓα«ó«⌐ ¬áαΓ«⌐:
  4872.  
  4873.              PatBlt(hDC, 0, 0, 100, 100, PATCOPY);
  4874.  
  4875.              ÉáßΓα«óá∩ «»Ñαᵿ∩  PATCOPY  ºáßΓáó½∩ÑΓ   Σπ¡¬µ¿ε   PatBlt
  4876.         »«½¡«ßΓ∞ε ºá¼Ñ¡¿Γ∞ «íαẠ¼ÑßΓᠡạáτÑ¡¿∩ ¬¿ßΓ∞ε Φáí½«¡á.
  4877.  
  4878.              î«ª¡« ΓᬪѠ ¿ß»«½∞º«óáΓ∞  ¬¿ßΓ∞  Φáí½«¡á ó ¬áτÑßΓóÑ ¬¿ßΓ¿
  4879.         Σ«¡á  ñá¡¡«ú«  «¬¡á.  ä½∩  φΓ«ú«  »α«ßΓ«  ¡Ñ«íσ«ñ¿¼«  »α¿ßó«¿Γ∞
  4880.  
  4881.        Windows 3.0/pg/2#3                                        = 93 =
  4882.  
  4883.         ñÑß¬α¿»Γ«α ¬¿ßΓ¿ »«½ε hbrBackground ßΓαπ¬Γπαδ ¬½áßßá «¬¡á:
  4884.  
  4885.              pWndClass->hbrBackground=CreatePatternBrush(hBitmap);
  4886.  
  4887.              æ φΓ«ú«  ¼«¼Ñ¡Γá  Windows  ¿ß»«½∞ºπÑΓ  ¬¿ßΓ∞  Φáí½«¡á  »α¿
  4888.         ßΓ¿αá¡¿¿ Σ«¡á «¬¡á. î«ª¡« ΓᬪѠ¿º¼Ñ¡¿Γ∞ ΓѬπΘπε ¬¿ßΓ∞ Σ«¡á ñ½∩
  4889.         ¬½áßßá  «¬«¡,  ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SetClassWord.  ìá»α¿¼Ñα,  Ñß½¿
  4890.         ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ¡«óπε ¬¿ßΓ∞  Φáí½«¡á  »«ß½Ñ  Γ«ú«,  ¬á¬
  4891.         «¬¡« ß«ºñá¡«, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α:
  4892.  
  4893.              SetClassWord(hWnd, GCW_HBRBACKGROUND, hBrush);
  4894.  
  4895.              ìÑ«íσ«ñ¿¼« »«¼¡¿Γ∞,  τΓ« φëà«»ÑαáΓ«α ¿º¼Ñ¡∩ÑΓ ¬¿ßΓ∞ Σ«¡á
  4896.         ñ½∩ óßÑ󠫬«¡ ñá¡¡«ú«  ¬½áßßá.  àß½¿  ¡Ñ«íσ«ñ¿¼«  ¿º¼Ñ¡¿Γ∞  Σ«¡
  4897.         Γ«½∞¬«   ñ½∩  «ñ¡«ú«  «¬¡á,  ¡πª¡«  ∩ó¡«  «íαáí«ΓáΓ∞  ß««íΘÑ¡¿∩
  4898.         WM_ERASEBKGND,  ¬«Γ«αδÑ »«½πτáÑΓ «¬¡«.  Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ »α¿¼Ñα
  4899.         ¿½½εßΓα¿απÑΓ, ¬á¬ φΓ« ßñѽáΓ∞:
  4900.  
  4901.              RECT Rect;
  4902.              HBRUSH hOldBrush;
  4903.                  .
  4904.                  .
  4905.                  .
  4906.              case WM_ERASEBKGND:
  4907.                  UnrealizeObject(hMyBkgndBrush);
  4908.                  hOldBrush = SelectObject(wParam, hMyBkgndBrush);
  4909.                  GetUpdateRect(wParam, &Rect, FALSE);
  4910.                  PatBlt(wParam, Rect.left, Rect.top,
  4911.                      Rect.right - Rect.left, Rect.bottom - Rect.top,
  4912.                      PATCOPY);
  4913.                  SelectObject(wParam, hOldBrush);
  4914.                  break;
  4915.  
  4916.              æ««íΘÑ¡¿Ñ WM_ERASEBKGND  »ÑαÑñáÑΓ   ñÑß¬α¿»Γ«α   ¬«¡ΓѬßΓá
  4917.         «Γ«íαáªÑ¡¿∩  ó  »áαá¼ÑΓα wParam.  öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ
  4918.         ¡πª¡πε   ¬¿ßΓ∞   Σ«¡á   ó   ¬«¡ΓѬßΓÑ   «Γ«íαáªÑ¡¿∩.    öπ¡¬µ¿∩
  4919.         GetUpdateRect ¡áσ«ñ¿Γ «í½áßΓ∞,  ¬«Γ«απε ¡Ñ«íσ«ñ¿¼« ßΓÑαÑΓ∞ (φΓ«
  4920.         ¡Ñ óßÑúñá óß∩ «í½áßΓ∞ »«½∞º«óáΓѽ∩).  öπ¡¬µ¿∩  PatBlt  ¬«»¿απÑΓ
  4921.         Φáí½«¡,   ºáΓ¿αá∩   óßÑ,   τΓ«   ¡áσ«ñ¿Γß∩   ó   ¬«ααÑ¬Γ¿απѼ«¼
  4922.         »α∩¼«πú«½∞¡¿¬Ñ.  ìᬫ¡Ñµ,  Σπ¡¬µ¿∩ SelectObject ó«ßßΓá¡áó½¿óáÑΓ
  4923.         »αѪ¡εε ¬¿ßΓ∞ ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.
  4924.  
  4925.              é »αÑñδñπΘѼ      »α¿¼ÑαÑ      ¿ß»«½∞º«óá½áß∞      Σπ¡¬µ¿∩
  4926.         UnrealizeObject. èáªñδ⌐ αáº,  ¬«úñá »α«úαἼᠿ½¿  »«½∞º«óáΓѽ∞
  4927.         »ÑαѼÑΘáÑΓ   «¬¡«,   ó   ¬«Γ«α«¼   ¿ß»«½∞º«óá½áß∞   ¿½¿   íπñÑΓ
  4928.         ¿ß»«½∞º«óáΓ∞ß∩ ¬¿ßΓ∞ Φáí½«¡á,  ¡Ñ«íσ«ñ¿¼« ¡áßΓα«¿Γ∞ ÑÑ ¡á ¡«óπε
  4929.         »«º¿µ¿ε ß   »«¼«Θ∞ε   Σπ¡¬µ¿¿   UnrealizeObject.   ¥Γá  Σπ¡¬µ¿∩
  4930.         ßíαáßδóáÑΓ «í½áßΓ∞ α¿ß«óá¡¿∩ ¬¿ßΓ¿ Γá¬,  τΓ« ¼«ªÑΓ «Γ«íαáªáΓ∞ß∩
  4931.         ½εí«⌐ Φáí½«¡ »«ß½Ñ »ÑαѼÑΘÑ¡¿∩, ß«ó»áñáεΘ¿⌐ ß Φáí½«¡«¼, ¬«Γ«αδ⌐
  4932.         ¿ß»«½∞º«óá½ß∩ »ÑαÑñ ¡¿¼.
  4933.  
  4934.              î«ª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε DeleteObject ñ½∩ πñá½Ñ¡¿∩ ¬¿ßΓ¿
  4935.         Φáí½«¡á,  Ñß½¿  «¡á  í«½∞ΦÑ  ¡Ñ ¡πª¡á.  Äñ¡á¬«,  φΓá Σπ¡¬µ¿∩ ¡Ñ
  4936.  
  4937.        Windows 3.0/pg/2#3                                        = 94 =
  4938.  
  4939.         πñá½∩ÑΓ ó¼ÑßΓÑ ß ¬¿ßΓ∞ε αáßΓα«óπε ¬áαΓπ. ä½∩ πñá½Ñ¡¿∩ αáßΓα«ó«⌐
  4940.         ¬áαΓδ  ¡Ñ«íσ«ñ¿¼«  ß¡«óá  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  DeleteObject ¿
  4941.         π¬áºáΓ∞ ó ¡Ñ⌐ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ.
  4942.               11.3.4  ê¡ñ¿µ¿α«óá¡¿Ñ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δσ αáßΓα«óδσ ¬áαΓ.      
  4943.  
  4944.              Äñ¡¿¼ ¿º   πñ«íßΓó  á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δσ  αáßΓα«óδσ  ¬áαΓ
  4945.         ∩ó½∩ÑΓß∩ ó«º¼«ª¡«ßΓ∞ «Γ«íαáªÑ¡¿∩ ¿σ  »α∩¼«  ¡á  πßΓα«⌐ßΓóÑ  íѺ
  4946.         ¿ß»«½∞º«óá¡¿∩   »α«¼ÑªπΓ«τ¡δσ   ¬«¡ΓѬßΓ«ó  πßΓα«⌐ßΓóá  »á¼∩Γ¿.
  4947.         öπ¡¬µ¿∩ SetDIBitsToDevice    »«ßδ½áÑΓ     óßε     ¿½¿     τáßΓ∞
  4948.         á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐   αáßΓα«ó«⌐  ¬áαΓδ  »α∩¼«  ¡á  πßΓα«⌐ßΓó«
  4949.         óδó«ñá,  º¡áτ¿Γѽ∞¡«   π¼Ñ¡∞Φá∩   ΓαÑíπѼπε   ñ½∩   «Γ«íαáªÑ¡¿∩
  4950.         αáßΓα«ó«⌐ ¬áαΓδ »á¼∩Γ∞. è«úñá óδ óδºδóáÑΓÑ ñ½∩ óδó«ñá αáßΓα«ó«⌐
  4951.         ¬áαΓδ Σπ¡¬µ¿ε  SetDIBitsToDevice,  óδ  »ÑαÑñáÑΓÑ  Ñ⌐  ß½ÑñπεΘπε
  4952.         ¿¡Σ«α¼áµ¿ε:
  4953.  
  4954.              - è«¡ΓѬßΓ πßΓα«⌐ßΓóᠡạáτÑ¡¿∩.
  4955.  
  4956.              - Æ«τ¬π   ó   ¬«¡ΓѬßΓÑ   πßΓα«⌐ßΓóá,   ó  ¬«Γ«απε  ñ«½ª¡á
  4957.                óδó«ñ¿Γ∞ß∩ αáßΓα«óá∩ ¬áαΓá.
  4958.  
  4959.              - ÉẼÑα αáßΓα«ó«⌐ ¬áαΓδ ¡á πßΓα«⌐ßΓóÑ «Γ«íαáªÑ¡¿∩.
  4960.  
  4961.              - ù¿ß½«  ßΓ᫬  ó  ¿ßσ«ñ¡«¼  íπΣÑαÑ  αáßΓα«ó«⌐  ¬áαΓδ,  ¿º
  4962.                ¬«Γ«α«ú« «¡á ¬«»¿απÑΓß∩.
  4963.  
  4964.              - ÅÑαóδ⌐  »¿¬ßѽ∞,  ¬«Γ«αδ⌐ íπñÑΓ ¬«»¿α«óáΓ∞ß∩ ¿º ¿ßσ«ñ¡«⌐
  4965.                αáßΓα«ó«⌐ ¬áαΓδ ¡á πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩.
  4966.  
  4967.              - æΓαπ¬Γπαπ «»¿ßá¡¿∩ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ
  4968.                ¿ íπΣÑα ó ¬«Γ«α«¼ ß«ñÑনΓß∩ ßá¼á αáßΓα«óá∩ ¬áαΓá.
  4969.  
  4970.              - ùΓ«   ß«ñÑαª¿Γ   Γáí½¿µá   µóÑΓ«ó   «»¿ßá¡¿∩   á»»áαáΓ¡«
  4971.                ¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ - «Γñѽ∞¡δÑ RGB º¡áτÑ¡¿∩ ¿½¿
  4972.                ¿¡ñѬßδ ó »á½¿ΓαÑ µóÑΓ«ó.
  4973.  
  4974.              Åα¿¼Ñτá¡¿Ñ. Æ«τ¬«⌐      »α¿ó∩º¬¿     á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐
  4975.         αáßΓα«ó«⌐ ¬áαΓδ ß½πª¿Γ ¡¿ª¡¿⌐ ½Ñóδ⌐ πú«½ αáßΓα«ó«⌐ ¬áαΓδ,  á ¡Ñ
  4976.         ½Ñóδ⌐ óÑασ¡¿⌐ πú«½, ¬á¬ »α¿ «ßΓá½∞¡δσ úαáΣ¿τÑ߬¿σ «»Ñαᵿ∩σ.
  4977.  
  4978.              æ½ÑñπεΘ¿⌐ »α¿¼Ñα      ñѼ«¡ßΓα¿απÑΓ      óδº«ó     Σπ¡¬µ¿¿
  4979.         SetDIBitsToDevice:
  4980.  
  4981.              SetDIBitsToDevice(hDC,0,0,lpbi->bmciHeader.bcWidth,
  4982.                          lpbi->bmciHeader.bcHeight,0,0,0,
  4983.                          lpbi->bmciHeader.bcHeight,
  4984.                          pBuf,(LPBITMAPINFO)lpbi,
  4985.                          DIB_RGB_COLORS);
  4986.  
  4987.              é ñá¡¡«¼  »α¿¼ÑαÑ  hDC  «»αÑñѽ∩ÑΓ   ¬«¡ΓѬßΓ   πßΓα«⌐ßΓóá
  4988.         «Γ«íαáªÑ¡¿∩. SetDIBitsToDevice  ¿ß»«½∞ºπÑΓ  φΓπ  ¿¡Σ«α¼áµ¿ε ñ½∩
  4989.         «»αÑñѽѡ¿∩ »«óÑασ¡«ßΓ¿   πßΓα«⌐ßΓóá    ¿    ñ½∩    «»αÑñѽѡ¿∩
  4990.         ñ«»πßΓ¿¼«ú« Σ«α¼áΓá µóÑΓ«ó ñ½∩ αáßΓα«ó«⌐ ¬áαΓδ πßΓα«⌐ßΓóá.
  4991.  
  4992.        Windows 3.0/pg/2#3                                        = 95 =
  4993.  
  4994.  
  4995.              æ½ÑñπεΘ¿Ñ ñóá  »áαá¼ÑΓαá  «»αÑñѽ∩εΓ  Γ«τ¬π ¡á πßΓα«⌐ßΓóÑ,
  4996.         «Γ¬πñá SetDIBitsToDevice  ñ«½ª¡á  ¡áτáΓ∞   α¿ß«óáΓ∞   αáßΓα«óπε
  4997.         ¬áαΓπ. é  ñá¡¡«¼  ß½πτáÑ  -  φΓ«  ¡áτὫ  ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá.
  4998.         æ½ÑñπεΘ¿Ñ ñóá »áαá¼ÑΓαá «»αÑñѽ∩εΓ Φ¿α¿¡π  ¿  óδß«Γπ  αáßΓα«ó«⌐
  4999.         ¬áαΓδ.
  5000.  
  5001.              ÿÑßΓ«⌐ ¿  ßÑñ∞¼«⌐  »áαá¼ÑΓαδ,  ó  ¡áΦѼ  »α¿¼ÑαÑ  αáó¡δ 0,
  5002.         «»αÑñѽ∩εΓ »Ñαóδ⌐ »¿¬ßѽ∞ ¿º ¿ßσ«ñ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ,  ¬«Γ«αδ⌐
  5003.         »«ßδ½áÑΓß∩ ¡á πßΓα«⌐ßΓó«.  Å«ß¬«½∞¬π «¡¿ αáó¡δ 0,  Γ« αáßΓα«óá∩
  5004.         ¬áαΓá óδó«ñ¿Γß∩ ß »Ñαó«ú« »¿¬ßѽ∩.
  5005.  
  5006.              æ½ÑñπεΘ¿Ñ ñóá    »áαá¼ÑΓαá    ¿ß»«½∞ºπεΓß∩    ñ½∩    µÑ½Ñ⌐
  5007.         «íΩÑñ¿¡Ñ¡¿∩. ÅÑαóδ⌐  ¿º  ¡¿σ  πßΓá¡«ó½Ñ¡  ó 0,  «»αÑñѽ∩∩,  τΓ«
  5008.         ¡áτá½∞¡á∩ ßΓα«¬á  «Γ«íαáªÑ¡¿∩  ñ«½ª¡á  íδΓ∞  ó  íπΣÑαÑ  »Ñαó«⌐.
  5009.         éΓ«α«⌐ »áαá¼ÑΓα,  αáó¡δ⌐ óδß«ΓÑ αáßΓα«ó«⌐ ¬áαΓδ, ú«ó«α¿Γ « Γ«¼,
  5010.         τΓ« óß∩ αáßΓα«óá∩ ¬áαΓá íπñÑΓ «Γ«íαáªáΓ∞ß∩ ¡á φ¬αá¡Ñ  ¬á¬  «ñ¡«
  5011.         µÑ½«Ñ.
  5012.  
  5013.              æá¼á αáßΓα«óá∩ ¬áαΓá ß«ñÑনΓß∩ ó íπΣÑαÑ pBuf,  á »áαá¼ÑΓα
  5014.         lpbi «»αÑñѽ∩ÑΓ   ßΓαπ¬Γπαπ   BITMAPINFO,   ¬«Γ«αá∩    ß«ñÑনΓ
  5015.         ¿¡Σ«α¼áµ¿ε « Σ«α¼áΓÑ µóÑΓ«ó ¿ßσ«ñ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ.
  5016.  
  5017.              Å«ß½Ññ¡¿⌐ »áαá¼ÑΓα  -  φΓ« Σ½áú,  ¬«Γ«αδ⌐ «»αÑñѽ∩ÑΓ,  τΓ«
  5018.         Γáí½¿µá µóÑΓ«ó  αáßΓα«ó«⌐  ¬áαΓδ  ß«ñÑαª¿Γ  ñÑ⌐ßΓó¿Γѽ∞¡δÑ  RGB
  5019.         º¡áτÑ¡¿∩  ¿½¿  ¿¡ñѬßδ  ó ΓѬπΘÑ⌐ ½«ú¿τÑ߬«⌐ »á½¿ΓαÑ.  ç¡áτÑ¡¿Ñ
  5020.         DIB_RGB_COLORS   ú«ó«α¿Γ   «   Γ«¼,   τΓ«   Γáí½¿µá    ß«ñÑনΓ
  5021.         ñÑ⌐ßΓó¿Γѽ∞¡δÑ RGB º¡áτÑ¡¿∩.
  5022.                                                                                
  5023.          11.3.5 êß»«½∞º«óá¡¿Ñ  αáßΓα«ó«⌐  ¬áαΓδ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γá
  5024.                                      ¼Ñ¡ε.
  5025.              éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ αáßΓα«óπε ¬áαΓπ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γá
  5026.         ¼Ñ¡ε. ä½∩ φΓ«ú« ºá¼Ñ¡¿ΓÑ ΓѬßΓ φ½Ñ¼Ñ¡Γᠼѡε,  «»αÑñѽ∩Ѽ«ú«  ó
  5027.         Σá⌐½Ñ «»¿ßá¡¿∩  αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ αáßΓα«ó«⌐ ¬áαΓ«⌐.
  5028.         (éδ ¡Ñ ¼«ªÑΓÑ ÑÑ π¬áºáΓ∞ ßαáºπ ó Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó.)
  5029.  
  5030.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε óδ ¡á⌐ñÑΓÑ ó ú½áóÑ 7 "îÑ¡ε".
  5031.                    11.4  ä«íáó½Ñ¡¿Ñ µóÑΓá ¬ ¼«¡«σα«¼¡«⌐ αáßΓα«ó«⌐ ¬áαΓÑ.       
  5032.  
  5033.              àß½¿ óáΦ ¬«¼»∞εΓÑα ¿¼ÑÑΓ µóÑΓ¡«⌐ ñ¿ß»½Ñ⌐,  ¼«ª¡«  ñ«íáó¿Γ∞
  5034.         µóÑΓá  ¬  ¼«¡«σα«¼¡«⌐  αáßΓα«ó«⌐ ¬áαΓÑ,  πßΓá¡«ó¿ó µóÑΓá Σ«¡á ¿
  5035.         »ÑαÑñ¡Ñú« »½á¡á ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.  ûóÑΓá Σ«¡á ¿  »ÑαÑñ¡Ñú«
  5036.         »½á¡á ß»Ñµ¿Σ¿µ¿απεΓ, ¬á¬ «¬αáß¿Γ∞ íѽδÑ ¿ τÑα¡δÑ í¿Γδ αáßΓα«ó«⌐
  5037.         ¬áαΓδ »α¿  ÑÑ  «Γ«íαáªÑ¡¿¿.  ûóÑΓá  Σ«¡á  ¿   »ÑαÑñ¡Ñú«   »½á¡á
  5038.         πßΓá¡áó½¿óáεΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ SetTextColor ¿ SetBkColor.  é
  5039.         »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  »«¬áºá¡«,   ¬á¬   πßΓá¡«ó¿Γ∞   µóÑΓ
  5040.         »ÑαÑñ¡Ñú« »½á¡á ó ¬αáß¡δ⌐, á µóÑΓ Σ«¡á - ó ºÑ½Ñ¡δ⌐:
  5041.  
  5042.              SetTextColor(hDC, RGB(255, 0, 0));
  5043.              SetBkColor(hDC, RGB(0, 255, 0));
  5044.  
  5045.              ÅÑαѼѡ¡á∩ hDC ß«ñÑαª¿Γ ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá  «Γ«íαáªÑ¡¿∩.
  5046.  
  5047.        Windows 3.0/pg/2#3                                        = 96 =
  5048.  
  5049.         öπ¡¬µ¿∩  SetTextColor  πßΓá¡áó½¿óáÑΓ  µóÑΓ  »ÑαÑñ¡Ñú«  »½á¡á  ó
  5050.         ¬αáß¡δ⌐.  öπ¡¬µ¿∩ SetBkColor πßΓá¡áó½¿óáÑΓ µóÑΓ Σ«¡á ó ºÑ½Ñ¡δ⌐.
  5051.         æ½πªÑí¡á∩ ¬«¼á¡ñá RGB ß«ºñáÑΓ µóÑΓ«ó«Ñ º¡áτÑ¡¿Ñ RGB,  ¿ß»«½∞ºπ∩
  5052.         Γα¿ π¬áºá¡¡δσ   º¡áτÑ¡¿∩.   èáªñ«Ñ    ¿º    ¡¿σ    »αÑñßΓáó½∩ÑΓ
  5053.         ¿¡Γѡ߿ó¡«ßΓ∞ «ñ¡«ú« ¿º «ß¡«ó¡δσ µóÑΓ«ó - ¬αáß¡«ú«,  ºÑ½Ñ¡«ú« ¿
  5054.         ß¿¡Ñú«,  »α¿τѼ 255 - φΓ« ¼á¬ß¿¼á½∞¡á∩  ¿¡Γѡ߿ó¡«ßΓ∞,  á  0  -
  5055.         ¼¿¡¿¼á½∞¡á∩.  î«ª¡« Σ«α¼¿α«óáΓ∞ ñαπú¿Ñ µóÑΓá,  ºáñáóá∩ ½εíπε ¿σ
  5056.         ¿¡Γѡ߿ó¡«ßΓ∞ ó π¬áºá¡¡δσ »αÑñѽáσ ¿  «íΩÑñ¿¡∩∩  ¿σ.  ìá»α¿¼Ñα,
  5057.         »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ «»ÑαáΓ«α ß«ºñáÑΓ ªÑ½Γ«Ñ º¡áτÑ¡¿Ñ RGB:
  5058.  
  5059.              RGB(255, 255, 0);
  5060.  
  5061.              èá¬ Γ«½∞¬« íπñπΓ πßΓá¡«ó½Ñ¡δ µóÑΓá »ÑαÑñ¡Ñú« »½á¡á ¿ Σ«¡á,
  5062.         ¼«ª¡«  »α«¿ºó«ñ¿Γ∞  ñá½∞¡Ñ⌐Φ¿Ñ  ñÑ⌐ßΓó¿∩.  î«ª¡«   ¿¡ñ¿µ¿α«óáΓ∞
  5063.         αáßΓα«óπε   ¬áαΓπ   (¬á¬   «»¿ßá¡«   αá¡ÑÑ),  ¿  Windows  íπñÑΓ
  5064.         áóΓ«¼áΓ¿τÑ߬¿ ñ«íáó½∩Γ∞ µóÑΓá  Σ«¡á  ¿  »ÑαÑñ¡Ñú«  »½á¡á.  ûóÑΓ
  5065.         »ÑαÑñ¡Ñú«  »½á¡á »α¿¼Ñ¡∩ÑΓß∩ ¬ íÑ½δ¼ í¿Γá¼ (πßΓá¡«ó½Ñ¡¡δ¼ ó 1),
  5066.         á µóÑΓ Σ«¡á - ¬ τÑα¡δ¼ í¿Γá¼ (πßΓá¡«ó½Ñ¡¡δ¼ ó 0).  çá¼ÑΓ¿¼, τΓ«
  5067.         αѪ¿¼ Σ«¡á,  ¬á¬ «¡ «»αÑñѽѡ Σπ¡¬µ¿Ñ⌐ SetBkMode, ¡Ñ »α¿¼Ñ¡¿¼ ¬
  5068.         αáßΓα«óδ¼ ¬áαΓá¼.  èα«¼Ñ Γ«ú«,  µóÑΓá Σ«¡á ¿ »ÑαÑñ¡Ñú« »½á¡á ¡Ñ
  5069.         »α¿¼Ñ¡¿¼δ ¬ µóÑΓ¡δ¼ αáßΓα«óδ¼ ¬áαΓá¼.
  5070.  
  5071.              Åα¿ ¿¡ñ¿µ¿α«óá¡¿¿  ó  µóÑΓÑ αáßΓα«óá∩ ¬áαΓá ß ¿¼Ñ¡Ñ¼ "dog"
  5072.         íπñÑΓ ¬αáß¡«⌐, Σ«¡ - ºÑ½Ñ¡δ¼.
  5073.                                     11.5  ôñá½Ñ¡¿Ñ αáßΓα«óδσ ¬áαΓ.             
  5074.  
  5075.              ÉáßΓα«óá∩ ¬áαΓá »«ñ«í¡« ñαπú¿¼ αÑßπαßá¼ »«¬á  ¿ß»«½∞ºπÑΓß∩
  5076.         ºá¡¿¼áÑΓ  »á¼∩Γ∞.  èá¬ Γ«½∞¬« αáßΓα«óá∩ ¬áαΓá ßΓá¡«ó¿Γß∩ í«½∞ΦÑ
  5077.         ¡Ñ ¡πª¡á  (¿½¿  »ÑαÑñ  ºáóÑαΦÑ¡¿Ñ¼  »α«úαá¼¼δ),  ¡Ñ«íσ«ñ¿¼«  ÑÑ
  5078.         πñ὿Γ∞,  τΓ«íδ  «ßó«í«ñ¿Γ∞  »á¼∩Γ∞  ñ½∩  ñαπú¿σ »α«úαá¼¼.  ä½∩
  5079.         πñá½Ñ¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ß¡áτá½á ¡πª¡« πñ὿Γ∞ ÑÑ ¿º  ¬«¡ΓѬßΓá
  5080.         πßΓα«⌐ßΓóá,  ó  ¬«Γ«α«¼ «¡á íδ½á óδíαá¡á,  á ºáΓѼ «¬«¡τáΓѽ∞¡«
  5081.         πñ὿Γ∞ ÑÑ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ DeleteObject.
  5082.  
  5083.              é »α¿óÑñÑ¡¡«¼    ¡¿ªÑ     »α¿¼ÑαÑ     αáßΓα«óá∩     ¬áαΓá,
  5084.         ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡á∩    »áαá¼ÑΓα«¼   hBitmap,   πñá½∩ÑΓß∩   »«ß½Ñ
  5085.         π¡¿τΓ«ªÑ¡¿∩  ÑÑ  ¬á¬  ΓѬπΘÑ⌐  αáßΓα«ó«⌐  ¬áαΓδ,  óδíαá¡¡«⌐   ó
  5086.         ¬«¡ΓѬßΓÑ   πßΓα«⌐ßΓóá  »á¼∩Γ¿,  ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«¼  »áαá¼ÑΓα«¼
  5087.         hMemoryDC:
  5088.  
  5089.              SelectObject(hMemoryDC, hOldBitmap);
  5090.              DeleteObject(hBitmap);
  5091.  
  5092.              öπ¡¬µ¿∩ SelectObject  πñá½∩ÑΓ  αáßΓα«óπε ¬áαΓπ ¿º óδí«α¬¿,
  5093.         ºá¼Ñ¡∩∩  ÑÑ  »αÑñδñπΘÑ⌐  αáßΓα«ó«⌐  ¬áαΓ«⌐,  ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«⌐
  5094.         »áαá¼ÑΓα«¼   hOldBitmap.   öπ¡¬µ¿∩   DeleteObject  «¬«¡τáΓѽ∞¡«
  5095.         πñá½∩ÑΓ αáßΓα«óπε ¬áαΓπ.  æ φΓ«ú« ¼«¼Ñ¡Γá ñÑß¬α¿»Γ«α  αáßΓα«ó«⌐
  5096.         ¬áαΓδ  hBitmap  ßΓá¡«ó¿Γß∩  ¡Ñ¬«ααÑ¬Γ¡δ¼  ¿  ¡Ñ  ñ«½ªÑ¡  í«½∞ΦÑ
  5097.         ¿ß»«½∞º«óáΓ∞ß∩.
  5098.  
  5099.  
  5100.        Windows 3.0/pg/2#3                                        = 97 =
  5101.  
  5102.                             11.6  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Bitmap.          
  5103.  
  5104.              é φΓ«¼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ »«ñß«Ññ¿¡¿Γ∞ α∩ñ «»Ñαᵿ⌐ ¡áñ
  5105.         αáßΓα«ó묨 ¬áαΓἿ   ¬   »α¿¬½áñ¡«⌐   »α«úαá¼¼Ñ.  é  τáßΓ¡«ßΓ¿,
  5106.         »«¬áºá¡«  ¬á¬:
  5107.  
  5108.              - çáúαπº¿Γ∞ ¿ ¿¡ñ¿µ¿α«óáΓ∞ ¼«¡«σα«¼¡πε αáßΓα«óπε ¬áαΓπ.
  5109.  
  5110.              - æ«ºñáΓ∞  ¿  ¿¡ñ¿µ¿α«óáΓ∞  µóÑΓ¡πε αáßΓα«óπε ¬áαΓπ.
  5111.  
  5112.              - ÉáßΓ∩¡πΓ∞ ¿½¿ ßªáΓ∞ αáßΓα«óπε ¬áαΓπ  ß »«¼«Θ∞ε  ¼δΦ¿.
  5113.  
  5114.              - ôßΓá¡«ó¿Γ∞ αѪ¿¼ αáßΓ∩ªÑ¡¿∩/ߪáΓ¿∩.
  5115.  
  5116.              - æ«ºñáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞ ¬¿ßΓ∞ Φáí½«¡á.
  5117.  
  5118.              - êß»«½∞º«óáΓ∞ ¬¿ßΓ∞ Φáí½«¡á ñ½∩ Σ«¡á «¬¡á.
  5119.  
  5120.              é φΓ«⌐ »α«úαἼѠ »«½∞º«óáΓѽ∞  ß»Ñµ¿Σ¿µ¿απÑΓ  (ß  »«¼«Θ∞ε
  5121.         ¼δΦ¿), úñÑ  ¿  ¬á¬  íπñÑΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩ αáßΓα«óá∩ ¬áαΓá.  àß½¿
  5122.         »«½∞º«óáΓѽ∞ »ÑαѼÑΘáÑΓ ¼δΦ∞, πñÑনóá∩ ¡áªáΓ«⌐ ½Ñóπε ¬¡«»¬π, ¿
  5123.         ºáΓѼ  ÑÑ  «Γ»π߬áÑΓ,  »α¿¬½áñ¡á∩  »α«úαἼᠿ߻«½∞ºπÑΓ Σπ¡¬µ¿ε
  5124.         StretchBlt ñ½∩  ºá»«½¡Ñ¡¿∩  óδíαá¡¡«ú«  »α∩¼«πú«½∞¡¿¬á  ΓѬπΘÑ⌐
  5125.         αáßΓα«ó«⌐ ¬áαΓ«⌐.  àß½¿  »«½∞º«óáΓѽ∞  ¡áª¿¼áÑΓ  »αáóπε ¬¡«»¬π,
  5126.         »α«úαἼᠿ߻«½∞ºπÑΓ Σπ¡¬µ¿ε BitBlt ñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«ó«⌐
  5127.         ¬áαΓδ.
  5128.  
  5129.              ä½∩ ß«ºñá¡¿∩  »α¿¬½áñ¡«⌐  »α«úαá¼¼δ  Bitmap  ß¬«»¿απ⌐ΓÑ  ¿
  5130.         »ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿ßσ«ñ¡δÑ Σá⌐½δ »α«úαá¼¼δ Generic,  ºáΓѼ óδ»«½¡¿ΓÑ
  5131.         ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
  5132.  
  5133.              1. ä«íáó∞ΓÑ  «»αÑñѽѡ¿∩  ¬«¡ßΓá¡Γ ¿ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐ ó«
  5134.                 ó¬½ετáѼδ⌐ Σá⌐½.
  5135.  
  5136.              2. ä«íáó∞ΓÑ ñóÑ ¼«¡«σα«¼¡δÑ αáßΓα«óδÑ ¬áαΓδ,  ß«ºñá¡¡δÑ  ß
  5137.                 »«¼«Θ∞ε SDKPaint, ¬ Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
  5138.  
  5139.              3. ä«íáó∞ΓÑ  ¼Ñ¡ε Bitmap,  Pattern ¿ Mode ¬ Σá⌐½π «»¿ßá¡¿∩
  5140.                 αÑßπαß«ó.
  5141.  
  5142.              4. ä«íáó∞ΓÑ ú½«íá½∞¡δÑ ¿ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ.
  5143.  
  5144.              5. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_CREATE ¬ Σπ¡¬µ¿¿ «¬¡á ñ½∩ ß«ºñá¡¿∩
  5145.                 αáßΓα«óδσ ¬áαΓ ¿ ñ«íáó½Ñ¡¿∩ αáßΓα«óδσ ¬áαΓ ¬ ¼Ñ¡ε.
  5146.  
  5147.              6. î«ñ¿Σ¿µ¿απ⌐ΓÑ  Σαáú¼Ñ¡Γ  WM_DESTROY  ó Σπ¡¬µ¿¿ «¬¡á ñ½∩
  5148.                 πñá½Ñ¡¿∩ αáßΓα«óδσ ¬áαΓ.
  5149.  
  5150.              7. ä«íáó∞ΓÑ   Σαáú¼Ñ¡Γδ   WM_LBUTTONUP,   WM_MOUSEMOVE   ¿
  5151.                 WM_LBUTTONDOWN ¬     Σπ¡¬µ¿¿    «¬¡á    ñ½∩    ß«ºñá¡¿∩
  5152.                 »α∩¼«πú«½∞¡¿¬á óδí«αá ¿ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«óδσ ¬áαΓ.
  5153.  
  5154.              8. ä«íáó∞ΓÑ  Σαáú¼Ñ¡Γ  WM_RBUTTONUP  ¬  Σπ¡¬µ¿¿  «¬¡á  ñ½∩
  5155.                 «Γ«íαáªÑ¡¿∩ αáßΓα«óδσ ¬áαΓ.
  5156.  
  5157.  
  5158.        Windows 3.0/pg/2#3                                        = 98 =
  5159.  
  5160.              9. ä«íáó∞ΓÑ  Σαáú¼Ñ¡Γ  WM_ERASEBKGND  ¬  Σπ¡¬µ¿¿  «¬¡á ñ½∩
  5161.                 ßΓ¿αá¡¿∩ «í½áßΓ¿ »«½∞º«óáΓѽ∩.
  5162.  
  5163.              10. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_COMMAND ñ½∩ »«ññÑ᪬¿ ¼Ñ¡ε.
  5164.  
  5165.              11. î«ñ¿Σ¿µ¿απ⌐ΓÑ ¬«¼á¡ñ¡πε ßΓ᫬π link ó Σá⌐½Ñ  make  ñ½∩
  5166.                  ó¬½ετÑ¡¿∩ í¿í½¿«ΓÑτ¡«ú« Σá⌐½á select.lib.
  5167.  
  5168.              12. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π.
  5169.  
  5170.              Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
  5171.         ó  ß½ÑñπεΘ¿σ  αáºñѽáσ,  ó«º¼«ª¡«  óá¼  íπñÑΓ  πñ«í¡ÑÑ   »α«ßΓ«
  5172.         »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
  5173.  
  5174.              é ß½ÑñπεΘ¿σ αáºñѽáσ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
  5175.                                                                                
  5176.                    11.6.1  î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á.
  5177.  
  5178.              é« ó¬½ετáѼδ⌐    Σá⌐½    ¡Ñ«íσ«ñ¿¼«   ñ«íáó¿Γ∞   ß½ÑñπεΘ¿Ñ
  5179.         «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐ ¿ «»αÑñѽѡ¿∩ ¬«¡ßΓá¡Γ:
  5180.  
  5181.              #define IDM_BITMAP1                     200
  5182.              #define IDM_BITMAP2                     201
  5183.              #define IDM_BITMAP3                     202
  5184.  
  5185.              #define IDM_PATTERN1                    300
  5186.              #define IDM_PATTERN2                    301
  5187.              #define IDM_PATTERN3                    302
  5188.              #define IDM_PATTERN4                    303
  5189.  
  5190.              #define IDM_BLACKONWHITE                400
  5191.              #define IDM_WHITEONBLACK                401
  5192.              #define IDM_COLORONCOLOR                402
  5193.  
  5194.              #define PATORDEST               0x00FA0089L
  5195.  
  5196.              HBITMAP MakeColorBitmap(HWND);
  5197.                                                                                
  5198.                 11.6.2  ä«íáó½Ñ¡¿Ñ αÑßπαß«ó αáßΓα«ó«⌐ ¬áαΓδ.
  5199.  
  5200.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞  «»ÑαáΓ«αδ  BITMAP  ¬  Σá⌐½π  «»¿ßá¡¿∩
  5201.         αÑßπαß«ó.  æ½ÑñπεΘ¿Ñ ñóá «»ÑαáΓ«αá  ñ«íáó½∩εΓ  αáßΓα«óδÑ  ¬áαΓδ
  5202.         "dog" ¿ "cat" ¬ αÑßπαßá¼ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ:
  5203.  
  5204.              dog BITMAP dog.bmp
  5205.              cat BITMAP cat.bmp
  5206.  
  5207.              ÉáßΓα«óá∩  ¬áαΓá  "dog" - φΓ« íѽ«Ñ «τÑαΓá¡¿Ñ ß«íᬿ ¡á
  5208.         τÑα¡«¼ Σ«¡Ñ. ÉáßΓα«óá∩ ¬áαΓá "cat" -  φΓ«  τÑα¡«Ñ  «τÑαΓá¡¿Ñ
  5209.         ¬«Γá ¡á íѽ«¼ Σ«¡Ñ.
  5210.  
  5211.  
  5212.        Windows 3.0/pg/2#3                                        = 99 =
  5213.  
  5214.                       11.6.3  ä«íáó½Ñ¡¿Ñ ¼Ñ¡ε Bitmap, Pattern ¿ Mode.          
  5215.  
  5216.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞  «»ÑαáΓ«α  MENU   ¬   Σá⌐½π   «»¿ßá¡¿∩
  5217.         αÑßπαß«ó. ¥Γ«Γ «»ÑαáΓ«α «»αÑñѽ∩ÑΓ ¼Ñ¡ε Bitmap, Pattern ¿ Mode,
  5218.         ¿ß»«½∞ºπѼδÑ ñ½∩ óδí«αá αẽ¿τ¡δσ  αáßΓα«óδσ  ¬áαΓ  ¿  αѪ¿¼«ó,
  5219.         ¿ß»«½∞ºπѼδσ ó   »α¿¬½áñ¡«⌐   »α«úαá¼¼Ñ.   ä«íáó∞ΓÑ   ß½ÑñπεΘ¿Ñ
  5220.         «»ÑαáΓ«αδ ¬ Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó:
  5221.  
  5222.              BitmapMenu MENU
  5223.              BEGIN
  5224.                  POPUP "&Bitmap"
  5225.                  BEGIN
  5226.                      MENUITEM "", IDM_BITMAP1
  5227.                  END
  5228.  
  5229.                  POPUP "&Pattern"
  5230.                  BEGIN
  5231.                      MENUITEM "", IDM_PATTERN1
  5232.                  END
  5233.  
  5234.                  POPUP "&Mode"
  5235.                  BEGIN
  5236.                      MENUITEM "&WhiteOnBlack", IDM_WHITEONBLACK, CHECKED
  5237.                      MENUITEM "&BlackOnWhite", IDM_BLACKONWHITE
  5238.                      MENUITEM "&ColorOnColor", IDM_COLORONCOLOR
  5239.                  END
  5240.              END
  5241.  
  5242.              îÑ¡ε Bitmap  ¿  Pattern  ß«ñÑαªáΓ  Ññ¿¡ßΓóÑ¡¡δ⌐   «»ÑαáΓ«α
  5243.         MENUITEM.  ¥Γ«Γ  «»ÑαáΓ«α  «»αÑñѽ∩ÑΓ  ¬«¼á¡ñπ,  ¬«Γ«αá∩ Γ«½∞¬«
  5244.         αѺÑαó¿απÑΓ ¼ÑßΓ« ñ½∩ ¬«¼á¡ñ ¼Ñ¡ε.  Åਪ½áñ¡á∩ »α«úαἼᠠíπñÑΓ
  5245.         ñ«íáó½∩Γ∞  ¬«¡¬αÑΓ¡δÑ  ¬«¼á¡ñδ  ñ½∩  ¿ß»«½∞º«óá¡¿∩  ¿σ ó ¼Ñ¡ε ß
  5246.         »«¼«Θ∞ε Σπ¡¬µ¿¿ ChangeMenu.
  5247.                    11.6.4  ä«íáó½Ñ¡¿Ñ ú½«íá½∞¡δσ ¿ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ.       
  5248.  
  5249.              ìÑ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞    ¼áßß¿óδ    Φáí½«¡«ó,    ñÑß¬α¿»Γ«αδ
  5250.         αáßΓα«óδσ  ¬áαΓ,  ñÑß¬α¿»Γ«αδ  ¬«¡ΓѬßΓ«ó  ¿ ñαπú¿Ñ »ÑαѼѡ¡δÑ,
  5251.         ¿ß»«½∞ºπѼδÑ  ñ½∩  ß«ºñá¡¿∩  ¿  ¿¡ñ¿µ¿α«óá¡¿∩  αáßΓα«óδσ  ¬áαΓ.
  5252.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó ¡áτὫ Σá⌐½á «»¿ßá¡¿∩ αÑßπαß«ó:
  5253.  
  5254.              BYTE White[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
  5255.                                0xFF, 0xFF };
  5256.              BYTE Black[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  5257.                                0x00, 0x00 };
  5258.              BYTE Zigzag[] = { 0xFF, 0xF7, 0xEB, 0xDD, 0xBE, 0x7F,
  5259.                                0xFF, 0xFF };
  5260.              BYTE CrossHatch[] = { 0xEF, 0xEF, 0xEF, 0xEF, 0x00,
  5261.                                     0xEF, 0xEF, 0xEF };
  5262.              HBITMAP hPattern1;
  5263.              HBITMAP hPattern2;
  5264.              HBITMAP hPattern3;
  5265.              HBITMAP hPattern4;
  5266.  
  5267.        Windows 3.0/pg/2#3                                       = 100 =
  5268.  
  5269.              HBITMAP hBitmap1;
  5270.              HBITMAP hBitmap2;
  5271.              HBITMAP hBitmap3;
  5272.              HBITMAP hMenuBitmap1;
  5273.              HBITMAP hMenuBitmap2;
  5274.              HBITMAP hMenuBitmap3;
  5275.              HBITMAP hBitmap;
  5276.              HBITMAP hOldBitmap;
  5277.              HBRUSH hBrush;         /* ñÑß¬α¿»Γ«α ¬¿ßΓ¿           */
  5278.              WORD fStretchMode;       /* Γ¿» ¿ß»«½∞ºπѼ«ú« αѪ¿¼á
  5279.                                        αáßΓ∩ªÑ¡¿∩/ߪáΓ¿∩          */
  5280.              HDC hDC;          /* ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá */
  5281.              HDC hMemoryDC;    /* ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá
  5282.                                   »á¼∩Γ¿                          */
  5283.              BITMAP Bitmap;    /* ß«ºñá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ        */
  5284.              BOOL bTrack = FALSE;   /* TRUE, Ñß½¿ »«½∞º«óáΓѽ∞ óδí-
  5285.                                        αá½ «í½áßΓ∞                */
  5286.              RECT Rect;
  5287.  
  5288.              WORD wPrevBitmap = IDM_BITMAP1;
  5289.              WORD wPrevPattern = IDM_PATTERN1;
  5290.              WORD wPrevMode = IDM_WHITEONBLACK;
  5291.              WORD wPrevItem;
  5292.  
  5293.              int Shape = SL_BLOCK;  /* Γ«, τΓ« ¿ß»«½∞ºπÑΓß∩ ó »α∩¼«-
  5294.                                        πú«½∞¡¿¬Ñ óδí«α¬¿          */
  5295.  
  5296.              îáßß¿óδ Φáí½«¡«ó  White,  Black,   Zigzag   ¿   CrossHatch
  5297.         ß«ñÑαªáΓ í¿Γδ, «»αÑñѽ∩εΘ¿Ñ «íαáºδ αáßΓα«ó«⌐ ¬áαΓδ αẼÑα«¼ 8 σ
  5298.         8.  ÅÑαѼѡ¡δÑ  hPattern1,  hPattern2,  hPattern3  ¿  hPattern4
  5299.         ß«ñÑαªáΓ ñÑß¬α¿»Γ«αδ αáßΓα«óδσ ¬áαΓ ¬¿ßΓÑ⌐ Φáí½«¡«ó. ÅÑαѼѡ¡δÑ
  5300.         hBitmap1,  hBitmap2 ¿ hBitmap3 ß«ñÑαªáΓ  ñÑß¬α¿»Γ«αδ  αáßΓα«óδσ
  5301.         ¬áαΓ,  ¬«Γ«αδÑ  íπñπΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩.  ÅÑαѼѡ¡δÑ hMenuBitmap1,
  5302.         hMenuBitmap2  ¿  hMenuBitmap3  ß«ñÑαªáΓ  ñÑß¬α¿»Γ«αδ  αáßΓα«óδσ
  5303.         ¬áαΓ, ¬«Γ«αδÑ  íπñπΓ  ¿¡ñ¿µ¿α«óáΓ∞ß∩ ó ¼Ñ¡ε Bitmap.  ÅÑαѼѡ¡δÑ
  5304.         hBrush,  hBitmap ¿ fStretchMode ß«ñÑαªáΓ  ΓѬπΘ¿Ñ  ¬¿ßΓ∞  Σ«¡á,
  5305.         αáßΓα«óπε ¬áαΓπ ¿ αѪ¿¼ αáßΓ∩ªÑ¡¿∩. ÅÑαѼѡ¡δÑ hDC, hMemoryDC ¿
  5306.         hOldBitmap  ß«ñÑαªáΓ  ñÑß¬α¿»Γ«αδ,  ¿ß»«½∞ºπѼδÑ  ß  ¬«¡ΓѬßΓ«¼
  5307.         πßΓα«⌐ßΓóá  »á¼∩Γ¿.  æΓαπ¬Γπαá  Bitmap ß«ñÑαª¿Γ αẼÑαδ ΓѬπΘÑ⌐
  5308.         αáßΓα«ó«⌐ ¬áαΓδ.  ÅÑαѼѡ¡á∩ bTrack ¿ß»«½∞ºπÑΓß∩ ñ½∩  ¿¡ñ¿¬áµ¿¿
  5309.         Γ«ú«, τΓ«  »α«¿ßσ«ñ¿Γ óδí«α¬á.  æΓαπ¬Γπαá Rect ß«ñÑαª¿Γ ΓѬπΘ¿⌐
  5310.         »α∩¼«πú«½∞¡¿¬ óδí«α¬¿.  ÅÑαѼѡ¡δÑ  wPrevBitmap,  wPrevPattern,
  5311.         wPrevItem  ¿  wPrevMode  ß«ñÑαªáΓ  ID αá¡ÑÑ óδíαá¡¡δσ αáßΓα«óδσ
  5312.         ¬áαΓ,  Φáí½«¡«ó ¿  αѪ¿¼«ó  αáßΓ∩ªÑ¡¿∩.  Ä¡¿  ¿ß»«½∞ºπεΓß∩  ñ½∩
  5313.         »«¼ÑΘÑ¡¿∩ ¿ πñá½Ñ¡¿∩ ¬«¡Γα«½∞¡δσ «Γ¼ÑΓ«¬ ó ¼Ñ¡ε.
  5314.  
  5315.              ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ »ÑαѼѡ¡δÑ ó Σπ¡¬µ¿ε MainWndProc:
  5316.  
  5317.              HMENU    hMenu;
  5318.              HBRUSH   hOldBrush;
  5319.              HBITMAP  hOurBitmap;
  5320.  
  5321.  
  5322.        Windows 3.0/pg/2#3                                       = 101 =
  5323.  
  5324.                           11.6.5  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_CREATE.              
  5325.  
  5326.              ä½∩ ß«ºñá¡¿∩  ¿½¿ ºáúαπº¬¿ αáßΓα«óδσ ¬áαΓ ¿ πßΓᡫ󬿠¼Ñ¡ε
  5327.         ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ Σαáú¼Ñ¡Γ  WM_CREATE,  »ÑαѼѡ¡δÑ  »«ññÑ᪬¿  ¿
  5328.         «íΩ∩ó½Ñ¡¿∩   Σπ¡¬µ¿⌐.   öαáú¼Ñ¡Γ   WM_CREATE   ß«ºñáÑΓ   τÑΓδαÑ
  5329.         ¼«¡«σα«¼¡δÑ αáßΓα«óδÑ ¬áαΓδ αẼÑα«¼ 8 σ  8  »¿¬ßѽÑ⌐,  ¬«Γ«αδÑ
  5330.         íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩ ¬á¬ ¬¿ßΓ¿ Φáí½«¡«ó ñ½∩ Σ«¡á «¬¡á. Ä¡ ΓᬪÑ
  5331.         ß«ºñáÑΓ ¿½¿ ºáúαπªáÑΓ Γα¿ αáßΓα«óδÑ  ¬áαΓδ  αẼÑα«¼  64  σ  32
  5332.         »¿¬ßѽ∩,  ¬«Γ«αδÑ íπñπΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩ ó «¬¡Ñ.  ä½∩ Γ«ú«, τΓ«íδ
  5333.         αáºαÑΦ¿Γ∞ »«½∞º«óáΓѽε óδíαáΓ∞ ñ½∩  »α«ß¼«Γαá  αáßΓα«óπε  ¬áαΓπ
  5334.         ¿½¿ Φáí½«¡,  Σαáú¼Ñ¡Γ  WM_CREATE  ñ«íáó½∩ÑΓ  ¿σ ¬ ¼Ñ¡ε Bitmap ¿
  5335.         Pattern, ¿ß»«½∞ºπ∩  Σπ¡¬µ¿¿   ChangeMenu.   ìᬫ¡Ñµ,   Σαáú¼Ñ¡Γ
  5336.         πßΓá¡áó½¿óáÑΓ  ¡áτá½∞¡δÑ  º¡áτÑ¡¿∩  ¬¿ßΓ¿,  αáßΓα«ó«⌐  ¬áαΓδ  ¿
  5337.         αѪ¿¼«ó αáßΓ∩ªÑ¡¿∩ ¿ ß«ºñáÑΓ  ¬«¡ΓѬßΓ  πßΓα«⌐ßΓóá  »á¼∩Γ¿,  ¿º
  5338.         ¬«Γ«α«ú« ¬«»¿απεΓß∩ αáßΓα«óδÑ ¬áαΓδ.
  5339.  
  5340.              öαáú¼Ñ¡Γ WM_CREATE   ß«ºñáÑΓ   τÑΓδαÑ  Φáí½«¡á,  ¿ß»«½∞ºπ∩
  5341.         Σπ¡¬µ¿ε CreateBitmap.  Ä¡ ºáúαπªáÑΓ ñóÑ αáßΓα«óδÑ ¬áαΓδ "dog" ¿
  5342.         "cat" ¿  ß«ºñáÑΓ  ΓαÑΓ∞ε,  ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε  MakeColorBitmap,
  5343.         «»αÑñѽѡ¡πε ó »α«úαá¼¼Ñ.  Å«ß½Ñ ß«ºñá¡¿∩ Φáí½«¡«ó ¿  αáßΓα«óδσ
  5344.         ¬áαΓ    Σαáú¼Ñ¡Γ    WM_CREATE   ß«ºñáÑΓ   ¡á¬½áñδóáѼδÑ   ¼Ñ¡ε,
  5345.         »α¿ß«Ññ¿¡∩ÑΓ  ¬  ¡¿¼  Φáí½«¡δ  ¿  αáßΓα«óδÑ  ¬áαΓδ  ¿  ºá¼Ñ¡∩ÑΓ
  5346.         ßπΘÑßΓóπεΘ¿Ñ  ¼Ñ¡ε Bitmap ¿ Pattern ¡«ó묨 ¡á¬½áñδóáÑ¼δ¼¿ ¼Ñ¡ε.
  5347.         çáΓѼ »ÑαѼѡ¡δÑ hBrush, hBitmap ¿ fStretchMode πßΓá¡áó½¿óáεΓß∩
  5348.         ó  ¡áτá½∞¡δÑ  º¡áτÑ¡¿∩  ¬¿ßΓ¿  Σ«¡á,  αáßΓα«ó«⌐ ¬áαΓδ ¿ αѪ¿¼«ó
  5349.         αáßΓ∩ªÑ¡¿∩.  ìᬫ¡Ñµ,  Σαáú¼Ñ¡Γ  ß«ºñáÑΓ  ¬«¡ΓѬßΓ   πßΓα«⌐ßΓóá
  5350.         »á¼∩Γ¿,  ¿º  ¬«Γ«α«ú«  αáßΓα«óδÑ  ¬áαΓδ  ¬«»¿απεΓß∩ ¡á ñ¿ß»½Ñ⌐.
  5351.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  5352.  
  5353.            case WM_CREATE: /* ß««íΘÑ¡¿Ñ: ß«ºñáΓ∞ «¬¡« */
  5354.  
  5355.            hPattern1 = CreateBitmap(8, 8, 1, 1, (LPSTR) White);
  5356.            hPattern2 = CreateBitmap(8, 8, 1, 1, (LPSTR) Black);
  5357.            hPattern3 = CreateBitmap(8, 8, 1, 1, (LPSTR) Zigzag);
  5358.            hPattern4 = CreateBitmap(8, 8, 1, 1, (LPSTR) CrossHatch);
  5359.  
  5360.            hBitmap1 = LoadBitmap(hInst, "dog");
  5361.            hBitmap2 = LoadBitmap(hInst, "cat");
  5362.            hBitmap3 = MakeColorBitmap(hWnd);
  5363.  
  5364.            hMenuBitmap1 = LoadBitmap(hInst, "dog");
  5365.            hMenuBitmap2 = LoadBitmap(hInst, "cat");
  5366.            hMenuBitmap3 = MakeColorBitmap(hWnd);
  5367.  
  5368.            hMenu = CreateMenu();
  5369.  
  5370.            AppendMenu(hMenu, MF_STRING | MF_CHECKED, IDM_PATTERN1, "&White");
  5371.            AppendMenu(hMenu, MF_STRING, IDM_PATTERN2, "&Black");
  5372.            AppendMenu(hMenu, MF_BITMAP, IDM_PATTERN3,
  5373.                       (LPSTR)(LONG)hPattern3);
  5374.            AppendMenu(hMenu, MF_BITMAP, IDM_PATTERN4,
  5375.                       (LPSTR)(LONG)hPattern4);
  5376.  
  5377.            ModifyMenu(GetMenu(hWnd), 1, MF_POPUP | MF_BYPOSITION,
  5378.                       (WORD)hMenu, "&Pattern");
  5379.  
  5380.  
  5381.        Windows 3.0/pg/2#3                                       = 102 =
  5382.  
  5383.            hMenu = CreateMenu();
  5384.  
  5385.            /* êß»«½∞º«óáΓ∞ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γ«ó ¼Ñ¡ε αáßΓα«óδÑ ¬áαΓδ */
  5386.  
  5387.            AppendMenu(hMenu, MF_BITMAP | MF_CHECKED, IDM_BITMAP1,
  5388.                       (LPSTR)(LONG) hMenuBitmap1);
  5389.            AppendMenu(hMenu, MF_BITMAP, IDM_BITMAP2,
  5390.                       (LPSTR)(LONG) hMenuBitmap2);
  5391.            AppendMenu(hMenu, MF_BITMAP, IDM_BITMAP3,
  5392.                       (LPSTR)(LONG) hMenuBitmap3);
  5393.            ModifyMenu(GetMenu(hWnd), 0, MF_POPUP | MF_BYPOSITION,
  5394.                       (WORD) hMenu, "&Bitmap");
  5395.  
  5396.            hBrush = CreatePatternBrush(hPattern1);
  5397.            fStretchMode = IDM_BLACKONWHITE;
  5398.  
  5399.            hDC = GetDC(hWnd);
  5400.            hMemoryDC = CreateCompatibleDC(hDC);
  5401.            ReleaseDC(hWnd, hDC);
  5402.            hOldBitmap = SelectObject(hMemoryDC, hBitmap1);
  5403.            GetObject(hBitmap1, 16, (LPSTR) &Bitmap);
  5404.  
  5405.            break;
  5406.  
  5407.              öπ¡¬µ¿¿ CreateBitmap ¿ LoadBitmap αáí«ΓáεΓ,  ¬á¬ «»¿ßá¡« ó
  5408.         ¡áτá½Ñ ñá¡¡«⌐ ú½áóδ. öπ¡¬µ¿∩ MakeColorBitmap ß«ºñá¡á ñ½∩ ñá¡¡«⌐
  5409.         »α¿¬½áñ¡«⌐  »α«úαá¼¼δ.  Ä¡á  ß«ºñáÑΓ ¿ α¿ßπÑΓ µóÑΓ¡πε αáßΓα«óπε
  5410.         ¬áαΓπ, ¿ß»«½∞ºπ∩ ¼ÑΓ«ñ,  «»¿ßá¡¡δ⌐ ó »π¡¬ΓÑ 11.2.2 "櫺ñá¡¿Ñ  ¿
  5411.         ºá»«½¡Ñ¡¿Ñ »πßΓ«⌐  αáßΓα«ó«⌐  ¬áαΓδ".  Ä»ÑαáΓ«αδ  φΓ«⌐  Σπ¡¬µ¿¿
  5412.         «»¿ßá¡δ ¡¿ªÑ.  çá¼ÑΓ¿¼,  τΓ« ¬áªñá∩ αáßΓα«óá∩ ¬áαΓá ºáúαπªáÑΓß∩
  5413.         ¿½¿   ß«ºñáÑΓß∩   ñóáªñδ.  ¥Γ«  ¡Ñ«íσ«ñ¿¼«,  »«ß¬«½∞¬π  ¡¿¬á¬«⌐
  5414.         Ññ¿¡ßΓóÑ¡¡δ⌐ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ ¡Ñ ¼«ªÑΓ íδΓ∞ óδíαá¡  ó
  5415.         ñóπσ  ¬«¡ΓѬßΓáσ  πßΓα«⌐ßΓóá «ñ¡«óαѼѡ¡«.  ä½∩ ¿¡ñ¿µ¿α«óá¡¿∩ ó
  5416.         «í½áßΓ¿ ¼Ñ¡ε ΓαÑíπÑΓß∩  óδí«α¬á,  ¬á¬  ¿  ñ½∩  ¿¡ñ¿µ¿α«óá¡¿∩  ó
  5417.         «í½áßΓ¿ »«½∞º«óáΓѽ∩.
  5418.  
  5419.              öπ¡¬µ¿∩ CreateMenu  ß«ºñáÑΓ  »πßΓ«Ñ  ¼Ñ¡ε ¿ ó«ºóαáΘáÑΓ Ñú«
  5420.         ñÑß¬α¿»Γ«α. öπ¡¬µ¿∩   ChangeMenu,   «»αÑñѽ∩εΘá∩    ñÑß¬α¿»Γ«αδ
  5421.         Φáí½«¡«ó, ñ«íáó½∩ÑΓ Φáí½«¡δ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γ«ó ¬ ¡«ó«¼π ¼Ñ¡ε.
  5422.         MF_BITMAP π¬áºδóáÑΓ, τΓ« ñ«½ª¡á íδΓ∞ ñ«íáó½Ñ¡á αáßΓα«óá∩ ¬áαΓá.
  5423.         öπ¡¬µ¿∩  CheckMenuItem  »«¼ÑΘáÑΓ  ¬«¡Γα«½∞¡πε  «Γ¼ÑΓ¬π  α∩ñ«¼ ß
  5424.         ΓѬπΘ¿¼ φ½Ñ¼Ñ¡Γ«¼ ¼Ñ¡ε, á »«ß½Ññ¡∩∩ Σπ¡¬µ¿∩ ChangeMenu ºá¼Ñ¡∩ÑΓ
  5425.         ßπΘÑßΓóπεΘÑÑ  ¼Ñ¡ε  ÿáí½«¡.  ÆÑ ªÑ ßá¼δÑ Φáú¿ ºáΓѼ »«óΓ«α∩εΓß∩
  5426.         ñ½∩ ¼Ñ¡ε Bitmap.
  5427.  
  5428.              öπ¡¬µ¿∩ CreateCompatibleDC  ß«ºñáÑΓ  ¬«¡ΓѬßΓ   πßΓα«⌐ßΓóá
  5429.         »á¼∩Γ¿,  ¬«Γ«αδ⌐  ß«ó¼ÑßΓ¿¼  ß  ñ¿ß»½ÑѼ.  öπ¡¬µ¿∩ SelectObject
  5430.         óδí¿αáÑΓ ΓѬπΘπε αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá »á¼∩Γ¿,
  5431.         Γᬠ  τΓ«  «¡á  ú«Γ«óá  ñ½∩  ¬«»¿α«óá¡¿∩  ¡á  ñ¿ß»½Ñ⌐.  öπ¡¬µ¿∩
  5432.         GetObject ¬«»¿απÑΓ αẼÑαδ αáßΓα«ó«⌐ ¬áαΓδ ó ßΓαπ¬Γπαπ  Bitmap.
  5433.         çáΓѼ  φΓá  ßΓαπ¬Γπαá  ¼«ªÑΓ  íδΓ∞  ¿ß»«½∞º«óá¡á  ó »«ß½ÑñπεΘ¿σ
  5434.         Σπ¡¬µ¿∩σ BitBlt ¿ StretchBlt ñ½∩ «»αÑñѽѡ¿∩  Φ¿α¿¡δ  ¿  óδß«Γδ
  5435.         αáßΓα«ó«⌐ ¬áαΓδ.
  5436.  
  5437.        Windows 3.0/pg/2#3                                       = 103 =
  5438.  
  5439.  
  5440.              öπ¡¬µ¿∩ MakeColorBitmap  ß«ºñáÑΓ µóÑΓ¡πε αáßΓα«óπε ¬áαΓπ ß
  5441.         »«¼«Θ∞ε αáßΓα«ó«⌐ ¬áαΓδ,  ß«ó¼ÑßΓ¿¼«⌐ ß ñ¿ß»½ÑѼ,  ºáΓѼ  ºáΓѼ
  5442.         α¿ßπÑΓ ¬½ÑΓ«τ¡δ⌐ µóÑΓ¡«⌐ Φáí½«¡,  ¿ß»«½∞ºπ∩ ¬αáß¡πε,  ºÑ½Ñ¡πε ¿
  5443.         ß¿¡εε  ¬¿ßΓ¿  ¿  Σπ¡¬µ¿ε  PatBlt.  é  ¬«¡Ñµ   ¿ßσ«ñ¡«ú«   Σá⌐½á
  5444.         ñ«íáó½∩ÑΓß∩ ß½ÑñπεΘÑÑ «»¿ßá¡¿Ñ Σπ¡¬µ¿¿:
  5445.  
  5446.              HBITMAP MakeColorBitmap(hWnd);
  5447.              HWND hWnd;
  5448.              {
  5449.                  HDC hDC;
  5450.                  HDC hMemoryDC;
  5451.                  HBITMAP hBitmap;
  5452.                  HBITMAP hOldBitmap;
  5453.                  HBRUSH hRedBrush;
  5454.                  HBRUSH hGreenBrush;
  5455.                  HBRUSH hBlueBrush;
  5456.                  HBRUSH hOldBrush;
  5457.  
  5458.                  hDC = GetDC(hWnd);
  5459.                  hMemoryDC = CreateCompatibleDC(hDC);
  5460.                  hBitmap = CreateCompatibleBitmap(hDC, 64, 32);
  5461.                  hOldBitmap = SelectObject(hMemoryDC, hBitmap);
  5462.                  hRedBrush = CreateSolidBrush(RGB(255,0,0));
  5463.                  hGreenBrush = CreateSolidBrush(RGB(0,255,0));
  5464.                  hBlueBrush = CreateSolidBrush(RGB(0,0,255));
  5465.  
  5466.                  PatBlt(hMemoryDC, 0, 0, 64, 32, BLACKNESS);
  5467.                  hOldBrush = SelectObject(hMemoryDC, hRedBrush);
  5468.                  PatBlt(hMemoryDC, 0, 0, 24, 11, PATORDEST);
  5469.                  PatBlt(hMemoryDC, 40, 10, 24, 12, PATORDEST);
  5470.                  PatBlt(hMemoryDC, 20, 21, 24, 11, PATORDEST);
  5471.                  hOldBrush = SelectObject(hMemoryDC, hGreenBrush);
  5472.                  PatBlt(hMemoryDC, 20, 0, 24, 11, PATORDEST);
  5473.                  PatBlt(hMemoryDC, 0, 10, 24, 12, PATORDEST);
  5474.                  PatBlt(hMemoryDC, 40, 21, 24, 11, PATORDEST);
  5475.                  hOldBrush = SelectObject(hMemoryDC, hBlueBrush);
  5476.                  PatBlt(hMemoryDC, 40, 0, 24, 11, PATORDEST);
  5477.                  PatBlt(hMemoryDC, 20, 10, 24, 12, PATORDEST);
  5478.                  PatBlt(hMemoryDC, 0, 21, 24, 11, PATORDEST);
  5479.  
  5480.                  SelectObject(hMemoryDC, hOldBrush);
  5481.                  DeleteObject(hRedBrush);
  5482.                  DeleteObject(hGreenBrush);
  5483.                  DeleteObject(hBlueBrush);
  5484.                  SelectObject(hMemoryDC, hOldBitmap);
  5485.                  DeleteDC(hMemoryDC);
  5486.                  ReleaseDC(hWnd, hDC);
  5487.                  return (hBitmap);
  5488.              }
  5489.  
  5490.              ¥Γá Σπ¡¬µ¿∩ óδ»«½¡∩ÑΓ ΓÑ ªÑ ßá¼δÑ Φáú¿,  ¬«Γ«αδÑ «»¿ßá¡δ ó
  5491.         αáºñѽѠ11.2.3 "櫺ñá¡¿Ñ αáßΓα«óδσ ¬áαΓ ß »«¼«Θ∞ε Σ¿¬ß¿α«óá¡¡δσ
  5492.         ¬«ñ«ó".
  5493.  
  5494.        Windows 3.0/pg/2#3                                       = 104 =
  5495.  
  5496.                             11.6.6  î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_DESTROY.          
  5497.  
  5498.              ÅÑαÑñ ºáóÑαΦÑ¡¿Ñ¼  »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¡Ñ«íσ«ñ¿¼« πñ὿Γ∞
  5499.         ß«ºñá¡¡δÑ αáßΓα«óδÑ ¬áαΓδ, Φáí½«¡δ, ¬¿ßΓ¿ ¿ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
  5500.         »á¼∩Γ¿. ÉáßΓα«óδÑ  ¬áαΓδ,  Φáí½«¡δ  ¿ ¬¿ßΓ¿ πñá½∩εΓß∩ ß »«¼«Θ∞ε
  5501.         Σπ¡¬µ¿¿ DeleteObject.  è«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿  πñá½∩ÑΓß∩  ß
  5502.         »«¼«Θ∞ε  Σπ¡¬µ¿¿  DeleteDC.  î«ñ¿Σ¿µ¿απ⌐ΓÑ  Σαáú¼Ñ¡Γ WM_DESTROY
  5503.         Γá¬, τΓ«íδ «¡ óδú½∩ñѽ ß½ÑñπεΘ¿¼ «íαẫ¼:
  5504.  
  5505.              case WM_DESTROY:        /* ß««íΘÑ¡¿Ñ: αáºαπΦ¿Γ∞ «¬¡« */
  5506.                  SelectObject(hMemoryDC, hOldBitmap);
  5507.                  DeleteDC(hMemoryDC);
  5508.                  DeleteObject(hBrush);
  5509.  
  5510.                  DeleteObject(hPattern1);
  5511.                  DeleteObject(hPattern2);
  5512.                  DeleteObject(hPattern3);
  5513.                  DeleteObject(hPattern4);
  5514.                  DeleteObject(hBitmap1);
  5515.                  DeleteObject(hBitmap2);
  5516.                  DeleteObject(hBitmap3);
  5517.                  DeleteObject(hMenuBitmap1);
  5518.                  DeleteObject(hMenuBitmap2);
  5519.                  DeleteObject(hMenuBitmap3);
  5520.  
  5521.                  PostQuitMessage(0);
  5522.                  break;
  5523.                 11.6.7  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_LBUTTONUP, WM_MOUSEMOVE       
  5524.                                ¿ WM_LBUTTONDOWN.
  5525.  
  5526.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γδ WM_LBUTTONUP, WM_MOUSEMOVE ¿
  5527.         WM_LBUTTONDOWN   ¬   Σπ¡¬µ¿¿   «¬¡á,   τΓ«íδ  ñáΓ∞  ó«º¼«ª¡«ßΓ∞
  5528.         »«½∞º«óáΓѽε óδíαáΓ∞ »α∩¼«πú«½∞¡¿¬, ó ¬«Γ«αδ⌐ íπñÑΓ ß¬«»¿α«óá¡á
  5529.         ΓѬπΘá∩  αáßΓα«óá∩  ¬áαΓá.  ¥Γ¿  Σαáú¼Ñ¡Γδ  ¿ß»«½∞ºπεΓ  Σπ¡¬µ¿¿
  5530.         óδí«αá («»¿ßá¡¡δÑ  ó   ú½áóÑ   20   "信ἿτÑ߬¿   »«ñ¬½ετáѼδÑ
  5531.         í¿í½¿«ΓѬ¿") ñ½∩ ß«ºñá¡¿∩ »α∩¼«πú«½∞¡¿¬á óδí«αá ¿ «ßπΘÑßΓó½Ñ¡¿∩
  5532.         «íαáΓ¡«⌐ ßó∩º¿ ß  »«½∞º«óáΓѽѼ.  öαáú¼Ñ¡Γ  WM_LBUTTONUP  ºáΓѼ
  5533.         ¿ß»«½∞ºπÑΓ  Σπ¡¬µ¿ε  StretchBlt  ñ½∩ ºá»«½¡Ñ¡¿∩ »α∩¼«πú«½∞¡¿¬á.
  5534.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  5535.  
  5536.         case WM_LBUTTONDOWN: /* ß««íΘÑ¡¿Ñ: ¡áªáΓá ½Ñóá∩ ¬¡«»¬á
  5537.                                 "¼δΦ¿"                            */
  5538.             bTrack = TRUE;
  5539.             SetRectEmpty((LPRECT)&Rect);
  5540.             StartSelection(hWnd, MAKEPOINT(lParam), (LPRECT) &Rect,
  5541.                 (wParam & MF_SHIFT) ? (SL_EXTEND | Shape) : Shape);
  5542.             break;
  5543.  
  5544.         case WM_MOUSEMOVE: /* ß««íΘÑ¡¿Ñ: »ÑαѼÑΘÑ¡¿Ñ "¼δΦ¿"       */
  5545.             if (bTrack)
  5546.  
  5547.        Windows 3.0/pg/2#3                                       = 105 =
  5548.  
  5549.              UpdateSelection(hWnd, MAKEPOINT(lParam), (LPRECT)&Rect,
  5550.                              Shape);
  5551.             break;
  5552.  
  5553.         case WM_LBUTTONUP: /* ß««íΘÑ¡¿Ñ: «Γ»πΘѡᠽÑóá∩ ¬¡«»¬á
  5554.                               "¼δΦ¿"                              */
  5555.             bTrack = FALSE;
  5556.             EndSelection(MAKEPOINT(lParam), (LPRECT)&Rect);
  5557.             ClearSelection(hWnd, (LPRECT)&Rect, Shape);
  5558.  
  5559.             hDC = GetDC(hWnd);
  5560.             SetStretchBltMode(hDC, fStretchMode);
  5561.             StretchBlt(hDC, Rect.left, Rect.top,
  5562.                 Rect.right - Rect.left, Rect.bottom - Rect.top,
  5563.                 hMemoryDC, 0, 0,
  5564.                 hBitmap.bmWidth, Bitmap.bmHeight, SRCCOPY);
  5565.             ReleaseDC(hWnd, hDC);
  5566.             break;
  5567.  
  5568.              ä½∩ ¿ß»«½∞º«óá¡¿∩  φΓ¿σ  Σπ¡¬µ¿⌐ ΓᬪѠ¡Ñ«íσ«ñ¿¼« ó¬½ετ¿Γ∞
  5569.         Σá⌐½ select.h   («»αÑñѽѡ¡δ⌐   ó   ú½áóÑ    20    "信ἿτÑ߬¿
  5570.         »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿"). ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ó ¡áτὫ
  5571.         Σá⌐½á αÑßπαß«ó:
  5572.  
  5573.              #include "Select.h"
  5574.                                                                                
  5575.                  11.6.8  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_RBUTTONUP.
  5576.  
  5577.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞     Σαáú¼Ñ¡Γ     WM_RBUTTONUP      ñ½∩
  5578.         ¿¡ñ¿µ¿α«óá¡¿∩ ΓѬπΘÑ⌐ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt.
  5579.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  5580.  
  5581.              case WM_RBUTTONUP:  /*  ß««íΘÑ¡¿Ñ: «ßó«í«ªñѡᠻαáóá∩
  5582.                                      ¬¡«»¬á "¼δΦ¿"                */
  5583.                  hDC = GetDC(hWnd);
  5584.                  BitBlt(hDC, LOWORD(lParam), HIWORD(lParam),
  5585.                      Bitmap.bmWidth, Bitmap.bmHeight,
  5586.                      hMemoryDC, 0, 0, SRCCOPY);
  5587.                  ReleaseDC(hWnd, hDC);
  5588.                  break;
  5589.                           11.6.9  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_ERASEBKGND.          
  5590.  
  5591.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ WM_ERASEBKGND ñ½∩ πóÑαÑ¡¡«ßΓ¿
  5592.         ó  Γ«¼,  τΓ«  ¿ß»«½∞ºπÑΓß∩  óδíαá¡¡á∩  ¬¿ßΓ∞   Σ«¡á.   ä«íáó∞ΓÑ
  5593.         ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  5594.  
  5595.              case WM_ERASEBKGND:       /* ß««íΘÑ¡¿Ñ: «τ¿ßΓ¿Γ∞ Σ«¡ */
  5596.  
  5597.                  UnrealizeObject(hBrush);
  5598.                  hOldBrush = SelectObject(wParam, hBrush);
  5599.                  GetClientRect(hWnd, (LPRECT)&Rect);
  5600.                  PatBlt(wParam, Rect.left, Rect.top,
  5601.  
  5602.        Windows 3.0/pg/2#3                                       = 106 =
  5603.  
  5604.                      Rect.right - Rect.left, Rect.bottom - Rect.top,
  5605.                      PATCOPY);
  5606.                  SelectObject(wParam, hOldBrush);
  5607.                  return TRUE;
  5608.  
  5609.              ÅÑαѼѡ¡á∩ hOldBrush «íΩ∩ó½Ñ¡á ¬á¬  ½«¬á½∞¡á∩  »ÑαѼѡ¡á∩.
  5610.         öπ¡¬µ¿∩  UnrealizeObject  πßΓá¡áó½¿óáÑΓ  óδαáó¡¿óá¡¿Ñ  Φáí½«¡á,
  5611.         Ñß½¿  «¬¡«  »ÑαѼÑΘὫß∞.  öπ¡¬µ¿∩  SelectObject  πßΓá¡áó½¿óáÑΓ
  5612.         ¬¿ßΓ∞  Σ«¡á,  á  Σπ¡¬µ¿∩ GetClientRect «»αÑñѽ∩ÑΓ,  ¬á¬á∩ τáßΓ∞
  5613.         «í½áßΓ¿  »«½∞º«óáΓѽ∩  ñ«½ª¡á  íδΓ∞  ßΓÑαΓá.   öπ¡¬µ¿∩   PatBlt
  5614.         ¬«»¿απÑΓ   Φáí½«¡   ó  ¬«ααÑ¬Γ¿απѼδ⌐  »α∩¼«πú«½∞¡¿¬.  ìᬫ¡Ñµ,
  5615.         Σπ¡¬µ¿∩ SelectObject ó«ßßΓá¡áó½¿óáÑΓ »αÑñδñπΘπε ¬¿ßΓ∞.
  5616.                             11.6.10  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_COMMAND.          
  5617.  
  5618.              ìÑ«íσ«ñ¿¼« ¿º¼Ñ¡¿Γ∞ Σαáú¼Ñ¡Γ WM_COMMAND ñ½∩ »«ññÑ᪬¿ ¼Ñ¡ε
  5619.         Bitmap, Pattern ¿ Mode.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿
  5620.         «¬¡á:
  5621.  
  5622.         case WM_COMMAND: /* ß««íΘÑ¡¿Ñ: ¬«¼á¡ñá Windows */
  5623.             switch (wParam) {
  5624.                 case IDM_ABOUT:
  5625.                     lpProcAbout = MakeProcInstance(About, hInst);
  5626.                     DialogBox(hInst,
  5627.                         "AboutBox",
  5628.                         hWnd,
  5629.                         lpProcAbout);
  5630.                     FreeProcInstance(lpProcAbout);
  5631.                     break;
  5632.  
  5633.                 case IDM_BITMAP1:
  5634.                     wPrevItem = wPrevBitmap;
  5635.                     wPrevBitmap = wParam;
  5636.                     GetObject(hBitmap1, 16, (LPSTR) &Bitmap);
  5637.                     SelectObject(hMemoryDC, hBitmap1);
  5638.                     break;
  5639.  
  5640.                 case IDM_BITMAP2:
  5641.                     wPrevItem = wPrevBitmap;
  5642.                     wPrevBitmap = wParam;
  5643.                     GetObject(hBitmap2, 16, (LPSTR) &Bitmap);
  5644.                     SelectObject(hMemoryDC, hBitmap2);
  5645.                     break;
  5646.  
  5647.                 case IDM_BITMAP3:
  5648.                     wPrevItem = wPrevBitmap;
  5649.                     wPrevBitmap = wParam;
  5650.                     GetObject(hBitmap3, 16, (LPSTR) &Bitmap);
  5651.                     hOurBitmap = SelectObject(hMemoryDC, hBitmap3);
  5652.                     break;
  5653.  
  5654.                 case IDM_PATTERN1:
  5655.                     wPrevItem = wPrevPattern;
  5656.  
  5657.        Windows 3.0/pg/2#3                                       = 107 =
  5658.  
  5659.                     wPrevPattern = wParam;
  5660.                     DeleteObject(hBrush);
  5661.                     hBrush = CreatePatternBrush(hPattern1);
  5662.                     InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
  5663.                     UpdateWindow(hWnd);
  5664.                     break;
  5665.  
  5666.                 case IDM_PATTERN2:
  5667.                     wPrevItem = wPrevPattern;
  5668.                     wPrevPattern = wParam;
  5669.                     DeleteObject(hBrush);
  5670.                     hBrush = CreatePatternBrush(hPattern2);
  5671.                     InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
  5672.                     UpdateWindow(hWnd);
  5673.                     break;
  5674.  
  5675.                 case IDM_PATTERN3:
  5676.                     wPrevItem = wPrevPattern;
  5677.                     wPrevPattern = wParam;
  5678.                     DeleteObject(hBrush);
  5679.                     hBrush = CreatePatternBrush(hPattern3);
  5680.                     InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
  5681.                     UpdateWindow(hWnd);
  5682.                     break;
  5683.  
  5684.                 case IDM_PATTERN4:
  5685.                     wPrevItem = wPrevPattern;
  5686.                     wPrevPattern = wParam;
  5687.                     DeleteObject(hBrush);
  5688.                     hBrush = CreatePatternBrush(hPattern4);
  5689.                     InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
  5690.                     UpdateWindow(hWnd);
  5691.                     break;
  5692.  
  5693.                 case IDM_BLACKONWHITE:
  5694.                     wPrevItem = wPrevMode;
  5695.                     wPrevMode = wParam;
  5696.                     fStretchMode = BLACKONWHITE;
  5697.                     break;
  5698.  
  5699.                 case IDM_WHITEONBLACK:
  5700.                     wPrevItem = wPrevMode;
  5701.                     wPrevMode = wParam;
  5702.                     fStretchMode = WHITEONBLACK;
  5703.                     break;
  5704.  
  5705.                 case IDM_COLORONCOLOR:
  5706.                     wPrevItem = wPrevMode;
  5707.                     wPrevMode = wParam;
  5708.                     fStretchMode = COLORONCOLOR;
  5709.                     break;
  5710.             }
  5711.             CheckMenuItem(GetMenu(hWnd), wPrevItem, MF_UNCHECKED);
  5712.  
  5713.        Windows 3.0/pg/2#3                                       = 108 =
  5714.  
  5715.             CheckMenuItem(GetMenu(hWnd), wParam, MF_CHECKED);
  5716.             break;
  5717.  
  5718.                                                                                
  5719.                       11.6.11  î«ñ¿Σ¿¬áµ¿∩ make-Σá⌐½á.
  5720.  
  5721.              öá⌐½ αÑßπαß«ó  BITMAP.RES  ºáó¿ß¿Γ  «Γ  Σá⌐½«ó  DOG.BMP  ¿
  5722.         CAT.BMP. ä½∩ Γ«ú«,  τΓ«íδ íδΓ∞ πóÑαÑ¡¡δ¼¿ ó Γ«¼, τΓ« ¬«¼»¿½∩Γ«α
  5723.         αÑßπα߫󠼫ñ¿Σ¿µ¿απÑΓ Σá⌐½ αÑßπαß«ó ó  ß½πτáÑ  ¿º¼Ñ¡Ñ¡¿∩  Σá⌐½á
  5724.         CAT.BMP ¿½¿ DOG.BMP, ñ«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ¬ make-Σá⌐½π:
  5725.  
  5726.              BITMAP.RES: BITMAP.RC BITMAP.H DOG.BMP CAT.BMP
  5727.                   RC -r BITMAP.RC
  5728.  
  5729.              ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞ ¬«¼á¡ñ¡πε ßΓ᫬π  link  ó  Σá⌐½Ñ
  5730.         make  ñ½∩  ó¬½ετÑ¡¿∩ í¿í½¿«ΓÑτ¡«ú« Σá⌐½á select.lib.  ¥Γ«Γ Σá⌐½
  5731.         ß«ñÑαª¿Γ «íΩ∩ó½Ñ¡¿∩ ¿¼»«αΓ¿απѼδσ Σπ¡¬µ¿⌐ ñ½∩ óδí«α¬¿,  ¬«Γ«αδÑ
  5732.         ¿ß»«½∞ºπεΓß∩   ß   Σαáú¼Ñ¡ΓἿ   WM_LBUTTONUP,  WM_MOUSEMOVE  ¿
  5733.         WM_LBUTTONDOWN.  ü¿í½¿«ΓѬá ß«ºñáÑΓß∩ Γá¬,  ¬á¬ φΓ«  «»¿ßá¡«  ó
  5734.         ú½áóÑ 20 "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿". ì«óá∩ ¬«¼á¡ñ¡á∩
  5735.         ßΓ᫬á link ñ«½ª¡á óδú½∩ñÑΓ∞ Γá¬:
  5736.  
  5737.              link /NOD bitmap, , , slibcew libw select.lib, bitmap.def
  5738.                                                                                
  5739.                       11.6.12  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
  5740.  
  5741.              Å«ß½Ñ ó¡ÑßÑ¡¿∩  ¡Ñ«íσ«ñ¿¼δσ  ¿º¼Ñ¡Ñ¡¿⌐  «ΓΓαá¡ß½¿απ⌐ΓÑ   ¿
  5742.         ß¬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π Bitmap.  çá»πßΓ¿ΓÑ Windows,  á
  5743.         ºáΓѼ Bitmap.
  5744.  
  5745.              àß½¿ »ÑαѼÑßΓ¿Γ∞ ¼δΦ∞,  ¡áª¿¼á∩ ½Ñóπε ¬¡«»¬π,  á ºáΓѼ  ÑÑ
  5746.         «Γ»πßΓ¿Γ∞, Γ«  »«½πτ¿¼ »α∩¼«πú«½∞¡¿¬ ó «¬¡Ñ,  ó ¬«Γ«αδ⌐ ¿ íπñÑΓ
  5747.         óδóÑñÑ¡á αáßΓα«óá∩ ¬áαΓá.
  5748.  
  5749.              êß»«½∞ºπ⌐ΓÑ ¼Ñ¡ε ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ Σ«¡á ¿  αѪ¿¼á  αáßΓ∩ªÑ¡¿∩.
  5750.         äÑ⌐ßΓó¿Ñ αѪ¿¼á αáßΓ∩ªÑ¡¿∩ ¡áí½εñá⌐ΓÑ ¡á »α¿¼ÑαÑ αáßΓα«óδσ ¬áαΓ
  5751.         "dog" ¿ "cat".
  5752.                                               11.7  çᬽετÑ¡¿Ñ.                
  5753.  
  5754.              é ñá¡¡«⌐  ú½áóÑ  «»¿ßá¡«,  ¬á¬  ß«ºñáóáΓ∞  ¿  ¿ß»«½∞º«óáΓ∞
  5755.         ¼«¡«σα«¼¡δÑ  ¿  µóÑΓ¡δÑ  αáßΓα«óδÑ ¬áΓδ.  é Windows ¿¼ÑÑΓß∩ ñóá
  5756.         Γ¿»á αáßΓα«óδσ ¬áαΓ: á»»áαáΓ¡«-ºáó¿ß¿¼δÑ ¿
  5757.        á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ. Åα«ΘÑ  óßÑú«  ñ½∩ ¿ß»«½∞º«óá¡¿∩ αáßΓα«ó«⌐
  5758.         ¬áαΓδ ¡áα¿ß«óáΓ∞  ÑÑ  ß  »«¼«Θ∞ε  SDKPaint,  ñ«íáó¿Γ∞  ó   Σá⌐½
  5759.         «»¿ßá¡¿∩ αÑßπαß«ó  »α¿¬½áñ¡«⌐  »α«úαá¼¼δ ¿ ºáΓѼ ºáúαπº¿Γ∞ ÑÑ ß
  5760.         »«¼«Θ∞ε Σπ¡¬µ¿¿ LoadBitmap.  ê¼ÑÑΓß∩ ¡Ñ߬«½∞¬« ¼ÑΓ«ñ«ó, ¬«Γ«αδÑ
  5761.         óδ ¼«ªÑΓÑ   ¿ß»«½∞º«óáΓ∞   ó  óáΦÑ⌐  »α¿¬½áñ¡«⌐  »α«úαἼѠ ñ½∩
  5762.         ß«ºñá¡¿∩ ¿  «Γ«íαáªÑ¡¿∩  αáßΓα«óδσ  ¬áαΓ  ó«  óαѼ∩  óδ»«½¡Ñ¡¿∩
  5763.         »α«úαá¼¼δ. Åਪ½áñ¡δÑ  »α«úαá¼¼δ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ GDI
  5764.         ñ½∩ óδó«ñá  α¿ß«óá¡¿∩   ¬áªñ«ú«   í¿Γá.   èα«¼Ñ   φΓ«ú«   ¼«ª¡«
  5765.         ¿¡¿µ¿á½¿º¿α«óáΓ∞ αáßΓα«óδÑ  ¬áαΓδ  ¼áß߿󫼠 í¿Γ  ¿½¿ ¿ß»«½∞ºπ∩
  5766.         ßπΘÑßΓóπεΘπε á»»áαáΓ¡«-ºáó¿ß¿¼πε αáßΓα«óπε ¬áαΓπ.
  5767.  
  5768.        Windows 3.0/pg/2#3                                       = 109 =
  5769.  
  5770.  
  5771.              Windows »αÑñ«ßΓáó½∩ÑΓ ¡Ñ߬«½∞¬« Σπ¡¬µ¿⌐ ñ½∩ «Γ«íαáªÑ¡¿∩  ¿
  5772.         ¼á¡¿»π½¿α«óá¡¿∩  αáßΓα«ó묨  ¬áαΓἿ.  éδ  ¼«ªÑΓÑ  ¿ß»«½∞º«óáΓ∞
  5773.         αáßΓα«óδÑ ¬áαΓδ  ó  ¬áτÑßΓóÑ  φ½Ñ¼Ñ¡Γ«ó  ¼Ñ¡ε  ¿½¿  ó  ¬áτÑßΓóÑ
  5774.         ¬«¡Γα«½∞¡δσ «Γ¼ÑΓ«¬ ó ¼Ñ¡ε.
  5775.  
  5776.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε  »«  »«ó«ñπ  αáßΓα«óδσ  ¬áαΓ  óδ
  5777.         ¼«ªÑΓÑ »«½πτ¿Γ∞ ó:
  5778.  
  5779.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  5780.         ───────────────────────────────────────────────────────────────
  5781.         öπ¡¬µ¿¿ óδí«α¬¿      Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 6, "èπαß«α,
  5782.                              ¼δΦ∞ ¿ ¬½áó¿áΓπαá".
  5783.  
  5784.                              Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 20, "ä¿¡á-
  5785.                              ¼¿τÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
  5786.  
  5787.         êß»«½∞º«óá¡¿Ñ αáßΓ-  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 7, "îÑ¡ε".
  5788.         α«óδσ ¬áαΓ ó ¼Ñ¡ε
  5789.  
  5790.         öπ¡¬µ¿¿ αáßΓα«óδσ    æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: ú½áóá 2,
  5791.         ¬áαΓ                 "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó",
  5792.                              ú½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
  5793.  
  5794.         êß»«½∞º«óá¡¿Ñ        "Tools": â½áóá 4, "櫺ñá¡¿Ñ ¿º«íαáªÑ¡¿⌐:
  5795.         SDKPaint             SDKPaint".
  5796.  
  5797.  
  5798.  
  5799.  
  5800.        Windows 3.0/pg/2#3                                       = 110 =
  5801.  
  5802.                                        â½áóá 12. éδó«ñ ¡á »ÑτáΓ∞.              
  5803.        ----------------------------------------------------------------
  5804.              ü«½∞Φ¿¡ßΓó« »α¿¬½áñ¡δσ       »α«úαá¼¼        »αÑñ«ßΓáó½∩ÑΓ
  5805.         »«½∞º«óáΓѽ∩¼ ó«º¼«ª¡«ßΓ∞  »«½πτÑ¡¿∩  ¡á  »α¿¡ΓÑαÑ  ¬«»¿⌐ óáΦ¿σ
  5806.         ñá¡¡δσ. é  í«½∞Φ¿¡ßΓóÑ   »α«úαá¼¼¡δσ   ßαÑñ   óδΦá   »α¿¬½áñ¡á∩
  5807.         »α«úαá¼¼á ñ«½ª¡á   ¿¼ÑΓ∞  ñѽ«  ß  αẽ¿τ¡δ¼¿  ó«º¼«ª¡«ßΓ∩¼¿  ¿
  5808.         ΓαÑí«óá¡¿∩¼¿ αẽ¿τ¡δσ  »α¿¡ΓÑα«ó.  é  Microsoft  Windows  óáΦá
  5809.         »α¿¬½áñ¡á∩ »α«úαἼᠠ¡Ñ  ñ«½ª¡á  ¿ß»«½∞º«óáΓ∞  ß»Ñµ¿Σ¿τ¡πε ñ½∩
  5810.         ñá¡¡«ú« »α¿¡ΓÑαá ¿¡Σ«α¼áµ¿ε,  «¡á »α«ßΓá  »ÑτáΓáÑΓ  ¡á  ΓѬπΘѼ
  5811.         »α¿¡ΓÑαÑ. Windows,   ñαá⌐óÑαδ   »α¿¡ΓÑα«ó  Windows  »αÑ«íαáºπεΓ
  5812.         ºá»α«ßδ ¡á óδó«ñ ¡á »α¿¡ΓÑα óáΦÑ⌐ »α¿¬½áñ¡«⌐  »α«úαá¼¼δ  ó  Γ«Γ
  5813.         ó¿ñ, ¬«Γ«αδ⌐ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ ñá¡¡δ⌐ »α¿¡ΓÑα.
  5814.  
  5815.              é ñá¡¡«⌐ ú½áóÑ óδ ¡á⌐ñÑΓÑ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
  5816.  
  5817.              - Åα«µÑßß »ÑτáΓ¿ ó ßαÑñÑ Windows.
  5818.  
  5819.              - Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « »α¿¡ΓÑαÑ.
  5820.  
  5821.              - ÅÑτáΓ∞ ßΓ᫬¿  ΓѬßΓá.
  5822.  
  5823.              - ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ.
  5824.  
  5825.              - Äíαáí«Γ¬á «Φ¿í«¬ »ÑτáΓ¿.
  5826.  
  5827.              - ÄΓ¼Ñ¡á «»Ñαᵿ⌐ »ÑτáΓ¿.
  5828.  
  5829.              - ÅÑτáΓ∞ úαáΣ¿τÑ߬¿σ ¿º«íαáªÑ¡¿⌐ »«αµ¿∩¼¿.
  5830.  
  5831.              é ñá¡¡«⌐  ú½áóÑ  ΓᬪѠ«»¿ßá¡ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
  5832.         PrintFile, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ ¼¡«ú«Ñ  ¿º  «»¿ßá¡¡«ú«  ó  ñá¡¡«⌐
  5833.         ú½áóÑ.
  5834.                                      12.1  ÅÑτáΓ∞ ó ßαÑñÑ Windows.             
  5835.  
  5836.              é Windows  óáΦá  »α¿¬½áñ¡á∩  »α«úαἼᠠ¡Ñ óºá¿¼«ñÑ⌐ßΓóπÑΓ
  5837.         ¡á»α∩¼πε ß  »α¿¡ΓÑα«¼.  é¼ÑßΓ«  φΓ«ú«  óδ  »ÑτáΓáÑΓÑ,   »«ßδ½á∩
  5838.         ¿¡Σ«α¼áµ¿ε ¬«¡ΓѬßΓπ πßΓα«⌐ßΓóá »ÑτáΓ¿. ¥Γ« «º¡áτáÑΓ, τΓ« óáΦÑ⌐
  5839.         »α«úαἼѠ ¡ÑΓ  ¡Ñ«íσ«ñ¿¼«ßΓ¿  ßἫ⌐  αáºí¿αáΓ∞ß∩  ó  ß»Ñµ¿Σ¿¬Ñ
  5840.         ¬«¡¬αÑΓ¡δσ »α¿¡ΓÑα«ó.
  5841.  
  5842.              ÅÑτáΓ∞ε ó Windows π»αáó½∩εΓ Σπ¡¬µ¿¿ GDI. é «íΘѼ, »ÑτáΓ∞ ó
  5843.         Windows á¡á½«ú¿τ¡á óδó«ñπ ¡á  φ¬αá¡:  óδ  »«½πτáÑΓÑ  ñÑß¬α¿»Γ«α
  5844.         ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá   ¿   ºáΓѼ   »«ßδ½áÑΓÑ  ¿¡Σ«α¼áµ¿ε  φΓ«¼π
  5845.         ¬«¡ΓѬßΓπ.  ä½∩ »ÑτáΓ¿ »α¿¬½áñ¡á∩  »α«úαἼᠠ«íδτ¡«  óδ»«½¡∩ÑΓ
  5846.         ß½ÑñπεΘ¿Ñ Φáú¿:
  5847.  
  5848.              1. Åਪ½áñ¡á∩  »α«úαἼᠠ»«½πτáÑΓ  ¿¡Σ«α¼áµ¿ε  «  ΓѬπΘѼ
  5849.                 »α¿¡ΓÑαÑ, Γá¬πε ¬á¬ Ñú« Γ¿»,  ñαá⌐óÑα πßΓα«⌐ßΓóá ¿ »«αΓ
  5850.                 »α¿¡ΓÑαá, ¿º Σá⌐½á ¿¡¿µ¿á½¿ºáµ¿¿ WIN.INI.
  5851.  
  5852.                 ¥Γá ¿¡Σ«α¼áµ¿∩   ¡Ñ«íσ«ñ¿¼á   ñ½∩   ß«ºñá¡¿∩  ¬«¡ΓѬßΓá
  5853.                 πßΓα«⌐ßΓóá ΓѬπΘÑú« »α¿¡ΓÑαá.
  5854.  
  5855.        Windows 3.0/pg/2#3                                       = 111 =
  5856.  
  5857.  
  5858.              2. è«úñá  óδ  »«ßδ½áÑΓÑ  ¿¡Σ«α¼áµ¿ε  ¬«¡ΓѬßΓπ  πßΓα«⌐ßΓóá
  5859.                 »α¿¡ΓÑαá, Windows  á¬Γ¿ó¿º¿απÑΓ ß»π½½Ñα »ÑτáΓ¿,  «ª¿ñá∩
  5860.                 óδ»«½¡Ñ¡¿∩ óáΦÑú« ºá»α«ßá ¡á »ÑτáΓ∞.
  5861.  
  5862.              3. Åਪ½áñ¡á∩ »α«úαἼᠿ߻«½∞ºπÑΓ  ñ½∩  óºá¿¼«ñÑ⌐ßΓó¿∩  ß
  5863.                 ñαá⌐óÑα«¼ »α¿¡ΓÑαá π»αáó½∩εΘ¿Ñ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿.
  5864.                   12.1.1  êß»«½∞º«óá¡¿Ñ π»αáó½∩εΘ¿σ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐.       
  5865.  
  5866.              ô»αáó½∩εΘ¿Ñ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿       ¿ß»«½∞ºπεΓß∩      ñ½∩
  5867.         óºá¿¼«ñÑ⌐ßΓó¿∩ ß  ñαá⌐óÑα«¼  »α¿¡ΓÑαá.  ¥Γ¿  »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
  5868.         ß««íΘáεΓ ñαá⌐óÑαπ  πßΓα«⌐ßΓóá,  τΓ«  ¡πª¡«  ñѽáΓ∞,  ¿ »«½πτáεΓ
  5869.         ¿¡Σ«α¼áµ¿ε « »α¿¡ΓÑαÑ,  Γá¬πε ¬á¬ αẼÑα ßΓαá¡¿µδ.  ä½∩ »«ß佬¿
  5870.         π»αáó½∩εΘÑ⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿  ñαá⌐óÑαπ  πßΓα«⌐ßΓóá »α¿¬½áñ¡á∩
  5871.         »α«úαἼᠼ«ªÑΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε Escape.
  5872.  
  5873.              ìá»α¿¼Ñα, τΓ«íδ ß««íΘ¿Γ∞ ñαá⌐óÑαπ »α¿¡ΓÑαá, τΓ« ¡Ñ«íσ«ñ¿¼«
  5874.         ¡áτáΓ∞ »ÑτáΓ∞,   ¡πª¡«   ß   »«¼«Θ∞ε   Σπ¡¬µ¿¿  Escape  »«ß½áΓ∞
  5875.         π»αáó½∩εΘπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞   STARTDOC.   æ½ÑñπεΘ¿⌐   »α¿¼Ñα
  5876.         »«ßδ½áÑΓ π»αáó½∩εΘπε   »«ß½Ññ«óáΓѽ∞¡«ßΓ∞   STARTDOC  ¬«¡ΓѬßΓπ
  5877.         »α¿¡ΓÑαá, «»αÑñѽ∩Ѽ«¼π »áαá¼ÑΓα«¼ hPrinterDC.  ¥Γá π»αáó½∩εΘá∩
  5878.         »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ºá»π߬áÑΓ ºá»α«ß ¡á óδó«ñ ß ¿¼Ñ¡Ñ¼ "My Print
  5879.         Request".
  5880.  
  5881.              Escape(hPrinterDC, STARTDOC, 0, (LPSTR)"My Print Request",
  5882.                     0L);
  5883.  
  5884.              Åα¿ óδó«ñÑ ¡á »ÑτáΓ∞ óδ ß½ÑñπÑΓÑ ΓѼ ªÑ «ß¡«ó¡δ¼ »αáó¿½á¼,
  5885.         τΓ« ¿ »α¿ «ßπΘÑßΓó½Ñ¡¿¿ ñαπú«ú« óδó«ñá  ß  ¿ß»«½∞º«ó᡿Ѽ  GDI.
  5886.         àß½¿ óδ  »ÑτáΓáÑΓÑ  ΓѬßΓ  ¿½¿  »α¿¼¿Γ¿óδ Γ¿»á »α∩¼«πú«½∞¡¿¬«ó,
  5887.         ñπú, «¬απª¡«ßΓÑ⌐,  óδ  ¼«ªÑΓÑ  »«ßδ½áΓ∞  ¿σ   »α∩¼«   ¬«¡ΓѬßΓπ
  5888.         πßΓα«⌐ßΓóá »ÑτáΓ¿.  éδ  ¼«ªÑΓÑ ΓᬪѠ»«ßδ½áΓ∞ ΓѬßΓ ¿ »α¿¼¿Γ¿óδ
  5889.         ¬«¡ΓѬßΓπ πßΓα«⌐ßΓóá »á¼∩Γ¿.  ¥Γ« »«ºó«½∩ÑΓ  ß«ºñáóáΓ∞  ß½«ª¡«Ñ
  5890.         ¿º«íαáªÑ¡¿Ñ ¿ ºáΓѼ ¡á»ÑτáΓáΓ∞ Ñú«.
  5891.                         12.2  Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « ΓѬπΘѼ »α¿¡ΓÑαÑ.         
  5892.  
  5893.              ä½∩ ß«ºñá¡¿∩   ¬«¡ΓѬßΓá   πßΓα«⌐ßΓóá   »ÑτáΓ¿  ¡Ñ«íσ«ñ¿¼á
  5894.         ¿¡Σ«α¼áµ¿∩ « ¡Ñ¼,  Γá¬á∩ ¬á¬ Ñú« Γ¿»  ¿  »«αΓ,  ¬  ¬«Γ«α«¼π  «¡
  5895.         »«ñ¬½ετÑ¡.   Åα«úαἼᠠßαÑñδ  Windows  ControlPanel  ñ«íáó½∩ÑΓ
  5896.         ¿¡Σ«α¼áµ¿ε «  ΓѬπΘѼ  »α¿¡ΓÑαÑ  ¬  »«½ε  "device="  ó  αáºñѽÑ
  5897.         [windows]  Σá⌐½á  win.ini.  Åਪ½áñ¡á∩ »α«úαἼᠼ«ªÑΓ »«½πτ¿Γ∞
  5898.         φΓπ ¿¡Σ«α¼áµ¿ε ß »«¼«Θ∞ε Σπ¡¬µ¿¿  GetProfileString.  ê¡Σ«α¼áµ¿∩
  5899.         ºáΓѼ  ¼«ªÑΓ  íδΓ∞ ¿ß»«½∞º«óá¡á ó Σπ¡¬µ¿¿ CreateDC ñ½∩ ß«ºñá¡¿∩
  5900.         ¬«¡ΓѬßΓá  πßΓα«⌐ßΓóá  »ÑτáΓ¿  ñ½∩  ¬«¡¬αÑΓ¡«ú«   »α¿¡ΓÑαá   ¡á
  5901.         ¬«¡¬αÑΓ¡«¼ »«αΓ𠬫¼»∞εΓÑαá.
  5902.  
  5903.              ê¡Σ«α¼áµ¿∩ «  »α¿¡ΓÑαÑ  ó  Σá⌐½Ñ  win.ini  ß«ßΓ«¿Γ ¿º ΓαÑσ
  5904.         »«½Ñ⌐:
  5905.  
  5906.              - Æ¿» ΓѬπΘÑú« »α¿¡ΓÑαá (¡á»α¿¼Ñα, "EPSON").
  5907.  
  5908.  
  5909.        Windows 3.0/pg/2#3                                       = 112 =
  5910.  
  5911.              - ê¼∩  ñαá⌐óÑαá  ΓѬπΘÑú«   »α¿¡ΓÑαá   (¡á»α¿¼Ñα,   "EPSON
  5912.                FX-80").
  5913.  
  5914.              - Å«αΓ, ¬ ¬«Γ«α«¼π »«ñ¬½ετÑ¡ »α¿¡ΓÑα (¡á»α¿¼Ñα, LPT1:).
  5915.  
  5916.              é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ   »α¿¼ÑαÑ   »«¬áºá¡«,   ¬á¬   »«½πτ¿Γ∞
  5917.         ¿¡Σ«α¼áµ¿ε « »α¿¡ΓÑαÑ ¿ αáºñѽ¿Γ∞ »«½∩ ¡á «Γñѽ∞¡δÑ ßΓ᫬¿:
  5918.  
  5919.              char pPrintInfo[80];
  5920.              PSTR lpTemp;
  5921.              PSTR lpPrintType;
  5922.              PSTR lpPrintDriver;
  5923.              PSTR lpPrintPort;
  5924.                  .
  5925.                  .
  5926.                  .
  5927.         (1)  GetProfileString("windows",
  5928.                               "device",
  5929.                               pPrintInfo,
  5930.                               (LPSTR) NULL, 80);
  5931.              lpTemp = lpPrintType = lpPrintInfo;
  5932.              lpPrintDriver = lpPrintPort = 0;
  5933.         (2)  while (*lpTemp) {
  5934.         (3)      if (*lpTemp == ',') {
  5935.                      *lpTemp++ = 0;
  5936.         (4)          while (*lpTemp == ' ')
  5937.                          lpTemp++;
  5938.                      if (!lpPrintDriver)
  5939.                          lpPrintDriver = lpTemp;
  5940.                      else {
  5941.                          lpPrintPort = lpTemp;
  5942.                          break;
  5943.                      }
  5944.                  }
  5945.                  else
  5946.                     lpTemp==AnsiNext(lpText);
  5947.              }
  5948.         (5)  hPr = CreateDC(lpPrintDriver, lpPrintType, lpPrintPort,
  5949.                             (LPSTR) NULL);
  5950.                  .
  5951.                  .
  5952.                  .
  5953.              }
  5954.  
  5955.              é φΓ«¼ »α¿¼ÑαÑ:
  5956.  
  5957.         1)   öπ¡¬µ¿∩ GetProfileString  »«½πτáÑΓ ß«ñÑন¼«Ñ »«½∩ device=
  5958.              ¿º αáºñѽá [windows] Σá⌐½á win.ini. çáΓѼ Σπ¡¬µ¿∩ ¬«»¿απÑΓ
  5959.              ßΓ᫬π ó ¼áßß¿ó lpPrintInfo.
  5960.  
  5961.         2)   Ä»ÑαáΓ«α while  ¿ß»«½∞ºπÑΓß∩  ñ½∩ αáºñѽѡ¿∩ ßΓ᫬¿ ¡á Γα¿
  5962.              «Γñѽ∞¡δσ »«½∩:  Γ¿» »α¿¡ΓÑαá,  ¿¼∩ ñαá⌐óÑαá »ÑτáΓ¿ ¿ »«αΓ
  5963.              »α¿¡ΓÑαá.
  5964.  
  5965.        Windows 3.0/pg/2#3                                       = 113 =
  5966.  
  5967.  
  5968.         3)   Å«½∩ αáºñѽ∩εΓß∩  ºá»∩Γ묨  (¿ß»«½∞ºπÑΓß∩  «»ÑαáΓ«α if ñ½∩
  5969.              »α«óÑન ¡á  ºá»∩ΓδÑ  ¿  ºá¼Ñ¡π  ¿σ  ¡π½∩¼¿,  ºáóÑαΦáεΘ¿¼¿
  5970.              »«½Ñ).
  5971.  
  5972.         4)   äαπú«⌐ «»ÑαáΓ«α,   while,  »α«»π߬áÑΓ  óßÑ  ó»ÑαÑñ¿ßΓ«∩Θ¿Ñ
  5973.              »α«íѽδ ó ß½ÑñπεΘѼ »«½Ñ.
  5974.  
  5975.              èáªñδ⌐ π¬áºáΓѽ∞ - pPrintType, pPrintDriver ¿ pPrintPort -
  5976.              »«½πτáÑΓ áñαÑß ¡áτá½á ß««ΓóÑΓßΓóπεΘÑú« »«½∩.
  5977.  
  5978.         5)   ¥Γ¿ π¬áºáΓѽ¿  ºáΓѼ  ¿ß»«½∞ºπεΓß∩  ó Σπ¡¬µ¿¿ CreateDC ñ½∩
  5979.              ß«ºñá¡¿∩ ¬«¡ΓѬßΓá  πßΓα«⌐ßΓóá  »ÑτáΓ¿  ñ½∩  óδíαá¡¡«ú«  ó
  5980.              ñá¡¡δ⌐ ¼«¼Ñ¡Γ »α¿¡ΓÑαá.
  5981.                                        12.3  ÅÑτáΓ∞ ßΓ᫬¿ ΓѬßΓá.             
  5982.  
  5983.              ä½∩ Γ«ú«,  τΓ«íδ «Γ»ÑτáΓáΓ∞ «ñ¡π ßΓ᫬π ΓѬßΓá, ¡Ñ«íσ«ñ¿¼«
  5984.         óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
  5985.  
  5986.              1. æ«ºñáΓ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ñ½∩ »α¿¡ΓÑαá.
  5987.  
  5988.              2. æñѽáΓ∞ ºá»α«ß ¡á »ÑτáΓ∞.
  5989.  
  5990.              3. ìá»ÑτáΓáΓ∞ ßΓ᫬π.
  5991.  
  5992.              4. ìáτáΓ∞ ¡«óπε ßΓαá¡¿µπ.
  5993.  
  5994.              5. çáóÑαΦ¿Γ∞ ºá»α«ß ¡á »ÑτáΓ∞.
  5995.  
  5996.              6. ôñ὿Γ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá.
  5997.  
  5998.              é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  »«¬áºá¡«,   ¬á¬   «Γ»ÑτáΓáΓ∞
  5999.         Ññ¿¡ßΓóÑ¡¡πε  ßΓ᫬π  ΓѬßΓá  ¡á  »ÑτáΓáεΘѼ  πßΓα«⌐ßΓóÑ  Epson
  6000.         FX-80, ¬«Γ«αδ⌐ »α¿ß«Ññ¿¡Ñ¡ ¬ »«αΓπ »α¿¡ΓÑαá lpt1:
  6001.  
  6002.         (1)  hPr = CreateDC("EPSON",
  6003.                             "EPSON FX-80",
  6004.                             "LPT1:",
  6005.                             (LPSTR) NULL);
  6006.  
  6007.              if (hPr != NULL) {
  6008.         (2)      Escape(hPr, STARTDOC, 4, (LPSTR) "Test", 0L);
  6009.         (3)      TextOut(hPr, 10, 10, "àñ¿¡ßΓóÑ¡¡á∩ ßΓ᫬á ΓѬßΓá.", 22);
  6010.         (4)      Escape(hPr, NEWFRAME, 0, 0L, 0L);
  6011.         (5)      Escape(hPr, ENDDOC, 0, 0L, 0L);
  6012.         (6)      DeleteDC(hPr);
  6013.              }
  6014.  
  6015.              é ñá¡¡«¼ »α¿¼ÑαÑ:
  6016.  
  6017.  
  6018.         1)   öπ¡¬µ¿∩ CreateDC ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ñ½∩  »α¿¡ΓÑαá
  6019.  
  6020.        Windows 3.0/pg/2#3                                       = 114 =
  6021.  
  6022.              ¿ ó«ºóαáΘáÑΓ   Ñú«   ñÑß¬α¿»Γ«α.  é  ñá¡¡«¼  »α¿¼ÑαÑ  φΓ«Γ
  6023.              ñÑß¬α¿»Γ«α ß«σαá¡∩ÑΓß∩  ó  »ÑαѼѡ¡«⌐  hPr.   Åα¿   ó맮óÑ
  6024.              Σπ¡¬µ¿¿ CreateDC  »α«úαἼᠠñ«½ª¡á  «»αÑñѽ¿Γ∞ »ÑαóδÑ Γα¿
  6025.              »áαá¼ÑΓαá, τÑΓóÑαΓδ⌐ ñ«½ªÑ¡ íδΓ∞ αáóÑ¡ 0. é ñá¡¡«¼ »α¿¼ÑαÑ
  6026.              »α«úαἼᠫ»αÑñѽ¿½á ß½ÑñπεΘ¿Ñ »áαá¼ÑΓαδ:
  6027.  
  6028.              - ÅÑαóδ⌐   »áαá¼ÑΓα  «»αÑñѽ∩ÑΓ  ¿¼∩  ñαá⌐óÑαá  πßΓα«⌐ßΓóá
  6029.              "EPSON".
  6030.  
  6031.              - éΓ«α«⌐  »áαá¼ÑΓα  «»αÑñѽ∩ÑΓ  ¿¼∩  ñαá⌐óÑαá   πßΓα«⌐ßΓóá
  6032.                "EPSON FX-80".
  6033.  
  6034.              - ÆαÑΓ¿⌐ »áαá¼ÑΓα «»αÑñѽ∩ÑΓ »«αΓ »α¿¡ΓÑαá "LPT1:".
  6035.  
  6036.              - Å«ß½Ññ¡¿⌐  »áαá¼ÑΓα «»αÑñѽ∩ÑΓ,  ¬á¬ »α¿¡ΓÑα ñ«½ªÑ¡ íδΓ∞
  6037.                ¿¡¿µ¿á½¿º¿α«óá¡; NULL  ß»Ñµ¿Σ¿µ¿απÑΓ  ¿¡¿µ¿á½¿ºáµ¿ε   »«
  6038.                π¼«½τá¡¿ε. (é  ú½áóÑ 17 "Åáαá¼ÑΓαδ »α¿¡ΓÑαá" «»¿ßá¡« ¬á¬
  6039.                πßΓá¡«ó¿Γ∞ ñαπú¿Ñ »áαá¼ÑΓαδ.)
  6040.  
  6041.         2)   Åáαá¼ÑΓα STARTDOC,  ¿ß»«½∞ºπѼδ⌐ ó Σπ¡¬µ¿¿ Escape,  ñѽáÑΓ
  6042.              ºá»α«ß  ¡á  »ÑτáΓ∞.  ê¼∩  "Test"  ¿ß»«½∞ºπÑΓß∩  »α«úαá¼¼«⌐
  6043.              íπΣÑα¿ºáµ¿¿ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ ºá»α«ßá. äαπú¿Ñ »áαá¼ÑΓαδ ¡Ñ
  6044.              ¿ß»«½∞ºπεΓß∩, ΓᬠτΓ« «¡¿ πßΓá¡áó½¿óáεΓß∩ ó ¡π½∞.
  6045.  
  6046.         3)   öπ¡¬µ¿∩ TextOut  ¬«»¿απÑΓ ßΓ᫬π ΓѬßΓá ¡á »ÑτáΓ∞.  æΓ᫬á
  6047.              íπñÑΓ αẼÑΘáΓ∞ß∩,  ¡áτ¿¡á∩ ß ¬««αñ¿¡áΓ (10, 10) ¡á íπ¼áúÑ
  6048.              »ÑτáΓáεΘÑú« πßΓα«⌐ßΓóá (¬««αñ¿¡áΓδ »α¿¡ΓÑαá óßÑúñá íÑαπΓß∩
  6049.              «Γ¡«ß¿Γѽ∞¡«  óÑασ¡Ñú«  ½Ñó«ú«   πú½á   íπ¼áú¿).   àñ¿¡¿µδ
  6050.              ¿º¼ÑαÑ¡¿∩ »« π¼«½τá¡¿ε - »¿¬ßѽ¿ »α¿¡ΓÑαá.
  6051.  
  6052.         4)   Åáαá¼ÑΓα NEWFRAME  ºá¬á¡τ¿óáÑΓ  ßΓαá¡¿µπ  ¿  ß¿ú¡á½¿º¿απÑΓ
  6053.              »ÑτáΓáεΘѼπ πßΓα«⌐ßΓóπ »α«ñó¿¡πΓ∞ß∩ ¬ ß½ÑñπεΘÑ⌐ ßΓαá¡¿µÑ.
  6054.  
  6055.         5)   Åáαá¼ÑΓα ENDDOC  ß¿ú¡á½¿º¿απÑΓ  «  ºáóÑαΦÑ¡¿¿  ºá»α«ßá  ¡á
  6056.              »ÑτáΓ∞.
  6057.  
  6058.         6)   öπ¡¬µ¿∩ DeleteDC πñá½∩ÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »ÑτáΓ¿.
  6059.  
  6060.              Åα¿¼Ñτá¡¿Ñ: ìѽ∞º∩   «ª¿ñáΓ∞,   τΓ«  ßΓα«¬á  ΓѬßΓá  íπñÑΓ
  6061.         «Γ»ÑτáΓá¡á  ¡Ñ¼Ññ½Ñ¡¡«.  Åα«úαἼᠠíπΣÑα¿ºáµ¿¿   ß«íÑαÑΓ   óßε
  6062.         óδó«ñ¿¼πε  ¡á  »α¿¡ΓÑα  ¿¡Σ«α¼áµ¿ε »ÑαÑñ ÑÑ »«ß佬«⌐ ¡á »ÑτáΓ∞,
  6063.         ΓᬠτΓ« Σá¬Γ¿τÑ߬¿ »ÑτáΓ∞ ¡Ñ ¡áτ¡ÑΓß∩ ñ«  «íαáí«Γ¬¿  »«ß½Ññ¡Ñú«
  6064.         ENDDOC.
  6065.                                     12.4  ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ.              
  6066.  
  6067.              ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ á¡á½«ú¿τ¡á  »ÑτáΓ¿  ßΓ᫬¿  ΓѬßΓá.
  6068.         ä½∩ óδó«ñá  ¡á  »ÑτáΓ∞  αáßΓα«ó«⌐  ¬áαΓδ  ¡Ñ«íσ«ñ¿¼«  óδ»«½¡¿Γ∞
  6069.         ß½ÑñπεΘÑÑ:
  6070.  
  6071.              1. æ«ºñáΓ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬«Γ«αδ⌐ ß«ó¼ÑßΓ¿¼ ß
  6072.                 αáßΓα«ó«⌐ ¬áαΓ«⌐.
  6073.  
  6074.  
  6075.        Windows 3.0/pg/2#3                                       = 115 =
  6076.  
  6077.              2. çáúαπº¿Γ∞ αáßΓα«óπε ¬áαΓπ  ¿  óδíαáΓ∞  ÑÑ  ó  ¬«¡ΓѬßΓÑ
  6078.                 πßΓα«⌐ßΓóá »á¼∩Γ¿.
  6079.  
  6080.              3. çá»πßΓ¿Γ∞ ºá»α«ß ¡á »ÑτáΓ∞.
  6081.  
  6082.              4. êß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  BitBlt ñ½∩ ¬«»¿α«óá¡¿∩ αáßΓα«ó«⌐
  6083.                 ¬áαΓδ ¿º ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡á »ÑτáΓ∞.
  6084.  
  6085.              5. çáóÑαΦ¿Γ∞ ºá»α«ß ¡á »ÑτáΓ∞.
  6086.  
  6087.              6. ôñ὿Γ∞ αáßΓα«óπε ¬áαΓπ ¿º óδí«α¬¿ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá
  6088.                 »á¼∩Γ¿ ¿ πñ὿Γ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá.
  6089.  
  6090.              é »α¿óÑñÑ¡¡«¼   ¡¿ªÑ   »α¿¼ÑαÑ  »«¬áºá¡«,  ¬á¬  «Γ»ÑτáΓáΓ∞
  6091.         αáßΓα«óπε ¬áαΓπ ß ¿¼Ñ¡Ñ¼ "dog",  ¬«Γ«αá∩ íδ½á ñ«íáó½Ñ¡á ¬ Σá⌐½π
  6092.         αÑßπαß«ó:
  6093.  
  6094.              HDC hDC;
  6095.              HDC hMemoryDC;
  6096.              HDC hPr;
  6097.              BITMAP Bitmap;
  6098.                   .
  6099.                   .
  6100.                   .
  6101.         (1)  hDC = GetDC(hWnd);
  6102.              hMemoryDC = CreateCompatibleDC(hDC);
  6103.              ReleaseDC(hWnd, hDC);
  6104.  
  6105.         (2)  hBitmap = LoadBitmap(hInstance, "dog");
  6106.         (3)  GetObject(hBitmap, (LPBITMAP) &Bitmap);
  6107.         (4)  hOldBitmap = SelectObject(hMemoryDC, hBitmap);
  6108.  
  6109.         (5)  hPr = CreateDC("EPSON",
  6110.                             "EPSON FX-80",
  6111.                             "LPT1:",
  6112.                             (LPSTR) NULL);
  6113.  
  6114.              if (hPr != NULL) {
  6115.                  Escape(hPr, STARTDOC, 4, (LPSTR) "Dog", 0L);
  6116.         (6)      BitBlt(hPr, 10, 30,
  6117.                      Bitmap.bmWidth,
  6118.                      Bitmap.bmHeigt,
  6119.                      hMemDC, 0, 0, SRCCOPY);
  6120.         (7)      Escape(hPr, NEWFRAME, 0, 0L, 0L);
  6121.                  Escape(hPr, ENDDOC, 0, 0L, 0L);
  6122.                  DeleteDC(hPr);
  6123.              }
  6124.  
  6125.         (8)  SelectObject(hMemoryDC, hOldBitmap);
  6126.              DeleteDC(hMemoryDC);
  6127.              DeleteObject(hBitmap);
  6128.  
  6129.         1)   é ñá¡¡«¼  »α¿¼ÑαÑ   Σπ¡¬µ¿∩   CreateCompatibleDC   ß«ºñáÑΓ
  6130.  
  6131.        Windows 3.0/pg/2#3                                       = 116 =
  6132.  
  6133.              ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬«Γ«αδ⌐ ß«ó¼ÑßΓ¿¼ ß ¬«¡ΓѬßΓ«¼
  6134.              «Γ«íαáªÑ¡¿∩  ΓѬπΘÑú«  «¬¡á.  öπ¡¬µ¿¿  GetDC  ¿  ReleaseDC
  6135.              ß½πªáΓ ñ½∩ »«½πτÑ¡¿∩ ¿ «ßó«í«ªñÑ¡¿∩ ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.
  6136.  
  6137.         2)   öπ¡¬µ¿∩ LoadBitmap  ºáúαπªáÑΓ  αáßΓα«óπε  ¬áαΓπ  ¿º  Σá⌐½á
  6138.              αÑßπαß«ó.
  6139.  
  6140.         3)   öπ¡¬µ¿∩ GetObject ¡áσ«ñ¿Γ ¿¡Σ«α¼áµ¿ε  «  αáßΓα«ó«⌐  ¬áαΓÑ,
  6141.              Γá¬πε,  ¡á»α¿¼Ñα,  ¬á¬  ÑÑ  óδß«Γá ¿ Φ¿α¿¡á.  ¥Γ¿ º¡áτÑ¡¿∩
  6142.              ¿ß»«½∞ºπεΓß∩ »«ºªÑ ó Σπ¡¬µ¿¿ BitBlt.
  6143.  
  6144.         4)   öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ αáßΓα«óπε ¬áαΓπ ó  ¬«¡ΓѬßΓÑ
  6145.              πßΓα«⌐ßΓóá »á¼∩Γ¿.
  6146.  
  6147.         5)   Ä»ÑαáΓ«αδ ºá»α«ßá  ¡á »ÑτáΓ∞ ¿ñÑ¡Γ¿τ¡δ Γᬫóδ¼ »α¿ ºá»α«ßÑ
  6148.              ¡á »ÑτáΓ∞ «ñ¡«⌐ ßΓ᫬¿ ΓѬßΓá.
  6149.  
  6150.         6)   ä½∩ óδó«ñá αáßΓα«ó«⌐ ¬áαΓδ ¡á »α¿¡ΓÑα ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩
  6151.              BitBlt.   öπ¡¬µ¿∩   BitBlt  ¬«»¿απÑΓ  αáßΓα«óπε  ¬áαΓπ  ¿º
  6152.              ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡á »ÑτáΓ∞,  »«¼ÑΘá∩  αáßΓα«óπε
  6153.              ¬áαΓπ,  ¡áτ¿¡á∩  ß  ¬««αñ¿¡áΓδ  (10,  30).  öπ¡¬µ¿∩ BitBlt
  6154.              ¿ß»«½∞ºπÑΓß∩ ó¼ÑßΓ« Σπ¡¬µ¿¿ TextOut ó »αÑñδñπΘѼ »α¿¼ÑαÑ.
  6155.  
  6156.         7)   Ä»ÑαáΓ«αδ, »«ßδ½áεΘ¿Ñ    π»αáó½∩εΘ¿Ñ    »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
  6157.              NEWFRAME ¿  ENDDOC,  ¿ñÑ¡Γ¿τ¡δ  ¿ß»«½∞ºπÑ¼δ¼  ó »αÑñδñπΘѼ
  6158.              »α¿¼ÑαÑ.
  6159.  
  6160.         8)   Å«ß½Ñ ºáóÑαΦÑ¡¿∩  ºá»α«ßá ¡á »ÑτáΓ∞ Σπ¡¬µ¿∩ SelectObject ¿
  6161.              DeleteDC ¿ß»«½∞ºπεΓß∩  ñ½∩  πñá½Ñ¡¿∩  αáßΓα«ó«⌐  ¬áαΓδ  ¿º
  6162.              óδí«α¬¿ ¿ πñá½Ñ¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »á¼∩Γ¿.  Å«ß¬«½∞¬π
  6163.              αáßΓα«óá∩ ¬áαΓá  í«½∞ΦÑ  ¡Ñ  ¡πª¡á,  Σπ¡¬µ¿∩  DeleteObject
  6164.              πñá½∩ÑΓ ÑÑ ¿º »á¼∩Γ¿.
  6165.                               12.5  Äíαáí«Γ¬á «Φ¿í«¬ ó« óαѼ∩ »ÑτáΓ¿.          
  6166.  
  6167.              ò«Γ∩ GDI  ¿  »α«úαἼᠠ íπΣÑα¿ºáµ¿¿   »δΓáεΓß∩   ß««íΘ¿Γ∞
  6168.         »«½∞º«óáΓÑ½ε  «  óßÑσ  «Φ¿í¬áσ  »ÑτáΓ¿,  ¡Ñ«íσ«ñ¿¼« »«ñú«Γ«ó¿Γ∞
  6169.         »α¿¬½áñ¡πε »α«úαá¼¼π  ñ½∩  »α¿Ñ¼á  ß««íΘÑ¡¿⌐   «   »ÑαÑ»«½¡Ñ¡¿¿
  6170.         ñ¿ß¬«ó«⌐  ¿½¿  «»ÑαáΓ¿ó¡«⌐  »á¼∩Γ¿.  è«úñá »α«¿ßσ«ñ¿Γ «Φ¿í¬á ó«
  6171.         óαѼ∩ «íαáí«Γ¬¿ «Γñѽ∞¡«⌐ π»αáó½∩εΘÑ⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, Γᬫ⌐
  6172.         ¬á¬ STARTDOC ¿½¿ NEWFRAME,  Σπ¡¬µ¿∩ Escape ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ,
  6173.         ¼Ñ¡∞ΦÑÑ ¡π½∩. ÄΦ¿í¬¿ óδσ«ñᠺᠻαÑñѽδ ñ¿ß¬«ó«⌐ ¿½¿ «»ÑαáΓ¿ó¡«⌐
  6174.         »á¼∩Γ¿ «íδτ¡«     »α«¿ßσ«ñ∩Γ     »α¿     αáí«ΓÑ     π»αáó½∩εΘÑ⌐
  6175.         »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ NEWFRAME.   é   φΓ«¼   ß½πτáÑ   ó«ºóαáΘáѼ«Ñ
  6176.         º¡áτÑ¡¿Ñ ó¬½ετáÑΓ í¿Γ SP_NOTREPORTED.  àß½¿ í¿Γ «τ¿ΘÑ¡,  º¡áτ¿Γ
  6177.         GDI πªÑ πóÑñ«¼¿½« »«½∞º«óáΓѽ∩.  àß½¿ í¿Γ πßΓá¡«ó½Ñ¡, »α«úαá¼¼á
  6178.         ñ«½ª¡á  πóÑñ«¼¿Γ∞ »«½∞º«óáΓѽ∩.  Äíδτ¡« í¿Γ πßΓá¡áó½¿óáÑΓß∩ »α¿
  6179.         «íΘÑ⌐  «Φ¿í¬Ñ  óδσ«ñá  ºá  »αÑñÑ½δ  »α«ßΓαá¡ßΓóá  ñ¿ß¬«ó«⌐  ¿½¿
  6180.         «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿.
  6181.  
  6182.              é »α¿óÑñÑ¡¡«¼   ¡¿ªÑ   »α¿¼ÑαÑ   »«¬áºá¡«,   ¬á¬   ß½ÑñπÑΓ
  6183.         «íαáíáΓδóáΓ∞  ΓÑ  «Φ¿í¬¿  ó«  óαѼ∩  »ÑτáΓ¿,   «   ¬«Γ«αδσ   ¡Ñ
  6184.         ß««íΘáÑΓß∩:
  6185.  
  6186.        Windows 3.0/pg/2#3                                       = 117 =
  6187.  
  6188.  
  6189.              int status;
  6190.                 .
  6191.                 .
  6192.                 .
  6193.              status = Escape(hPrDC, NEWFRAME, 0, 0L, 0L);
  6194.  
  6195.         (1)  if (status < 0) {                      /* «Φ¿í¬á, « ¬«Γ«α«⌐
  6196.                                                        ¡Ñ ß««íΘáÑΓß∩?  */
  6197.                      if (status) { /* ñá              */
  6198.         (2)              switch (status) {
  6199.                              case SP_OUTOFDISK:
  6200.                                  /* ¿¡Σ«α¼¿α«óáΓ∞ »«½∞º«óáΓѽ∩ «
  6201.                                     ó«º¡¿¬ΦÑ⌐ ß¿Γπᵿ¿ ¿ óδ»«½¡¿Γ∞
  6202.                                     ¡Ñ«íσ«ñ¿¼δÑ ñÑ⌐ßΓó¿∩ */
  6203.                                  break;
  6204.                              case SP_OUTOFMEMORY:
  6205.                                  /* ¿¡Σ«α¼¿α«óáΓ∞ »«½∞º«óáΓѽ∩ «
  6206.                                     ó«º¡¿¬ΦÑ⌐ ß¿Γπᵿ¿ ¿ óδ»«½¡¿Γ∞
  6207.                                     ¡Ñ«íσ«ñ¿¼δÑ ñÑ⌐ßΓó¿∩ */
  6208.                                  break;
  6209.                              default:
  6210.                                  /* ¿¡Σ«α¼¿α«óáΓ∞ »«½∞º«óáΓѽ∩ «
  6211.                                     ó«º¡¿¬ΦÑ⌐ ß¿Γπᵿ¿ ¿ óδ»«½¡¿Γ∞
  6212.                                     ¡Ñ«íσ«ñ¿¼δÑ ñÑ⌐ßΓó¿∩ */
  6213.                                  break;
  6214.                          }
  6215.                      }
  6216.         (3)          else /* ß««íΘáÑΓß∩, τΓ« ¡Ñíσ«ñ¿¼« ñá½∞¡Ñ⌐ΦÑÑ ñÑ⌐ßΓ-
  6217.                              ó¿Ñ                                       */
  6218.                          switch (status | SP_NOTREPORTED) {
  6219.                              case SP_OUTOFDISK:
  6220.                                  /* óδ»«½¡¿Γ∞ ¡Ñ«íσ«ñ¿¼πε «íαáí«Γ¬π */
  6221.                                  break;
  6222.                              case SP_OUTOFMEMORY:
  6223.                                  /* óδ»«½¡¿Γ∞ ¡Ñ«íσ«ñ¿¼πε «íαáí«Γ¬π */
  6224.                                  break;
  6225.                          }
  6226.              }
  6227.  
  6228.              é φΓ«¼ »α¿¼ÑαÑ:
  6229.  
  6230.         1)   ÅÑαóδ⌐ «»ÑαáΓ«α if »α«óÑα∩ÑΓ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ, ¼Ñ¡∞ΦÑ
  6231.              ½¿  «¡«  0  ¿ πßΓá¡«ó½Ñ¡ ½¿ í¿Γ SP_NOTREPORTED.  (àß½¿ í¿Γ
  6232.              SP_NOTREPORTED  πßΓá¡«ó½Ñ¡,   Γ«   »«½∞º«óáΓѽ∞   ¡Ñ   íδ½
  6233.              »α«¿¡Σ«α¼¿α«óá¡  «í  «Φ¿í¬Ñ.  àß½¿  í¿Γ  SP_NOTREPORTED ¡Ñ
  6234.              πßΓá¡«ó½Ñ¡, Γ« »«½∞º«óáΓѽ∞ »«½πτ¿½ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.)
  6235.  
  6236.         2)   é ñá¡¡«¼  »α¿¼ÑαÑ   «»ÑαáΓ«α   switch   ¿ß»«½∞ºπÑΓß∩   ñ½∩
  6237.              óδ»«½¡Ñ¡¿∩ ß»Ñµ¿á½∞¡δσ  ñÑ⌐ßΓó¿⌐  ¡á «Φ¿í¬¿ SP_OUTOFDISK ¿
  6238.              SPOUTOFMEMORY. ä½∩  óßÑσ  «ßΓá½∞¡δσ  ¡Ñß««íΘá∩Ѽδσ  «Φ¿í«¬
  6239.              óδ»«½¡∩ÑΓß∩ «íδτ¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
  6240.  
  6241.  
  6242.        Windows 3.0/pg/2#3                                       = 118 =
  6243.  
  6244.         3)   àß½¿ í¿Γ   SP_NOREPORTED   αáóÑ¡   0,   Γ«   Windows   πªÑ
  6245.              »α«¿¡Σ«α¼¿α«óá½á »«½∞º«óáΓѽ∩  « ó«º¡¿¬ΦÑ⌐ «Φ¿í¬Ñ.  é φΓ«¼
  6246.              ß½πτáÑ  »α¿¬½áñ¡á∩  »α«úαἼᠠ ¼«ªÑΓ   »α«ßΓ«   óδ»«½¡¿Γ∞
  6247.              ¡Ñ«íσ«ñ¿¼πε «íαáí«Γ¬π «Φ¿í¬¿.
  6248.  
  6249.              é í«½∞Φ¿¡ßΓóÑ  ß½πτáÑó  »αáó¿½∞¡δ¼ «ΓóÑΓ«¼ ¡á ¡Ñß««íΘáѼπε
  6250.         «Φ¿í¬π íπñÑΓ ¿¡ñ¿µ¿α«óá¡¿Ñ »á¡Ñ½¿ ß««íΘÑ¡¿⌐,  »«∩ß¡∩εΘÑ⌐  ß¼δß½
  6251.         «Φ¿í¬¿,  ¿  ºáóÑαΦÑ¡¿Ñ  ºá»α«ßá  ¡á »ÑτáΓ∞.  àß½¿ «í «Φ¿í¬Ñ πªÑ
  6252.         ß««íΘὫß∞, ¼«ª¡« ºáóÑαΦ¿Γ∞ ºá»α«ß, á ºáΓѼ »«óΓ«α¡« óδñáΓ∞ Ñú«
  6253.         »«ß½Ñ   «ΓóÑñÑ¡¿∩   ñ«»«½¡¿Γѽ∞¡«ú«   ¼ÑßΓá   ¡á  ñ¿ß¬«ó«⌐  ¿½¿
  6254.         «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿.
  6255.                                       12.6  ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿.            
  6256.  
  6257.              Åਪ½áñ¡á∩ »α«úαá¼¼á óßÑúñá ñ«½ª¡á ñáΓ∞ »«½∞º«óáΓÑ½ε  Φá¡ß
  6258.         «Γ¼Ñ¡¿Γ∞ ñ½¿Γѽ∞¡πε «»Ñαáµ¿ε »ÑτáΓ¿.  ä½∩ φΓ«ú« »α«úαἼᠼ«ªÑΓ
  6259.         ß«ºñáΓ∞ ¡Ñ¼«ñá½∞¡πε  »á¡Ñ½∞  ñ¿á½«úá  Abort,  ¬«úñá  ¡áτ¿¡áÑΓß∩
  6260.         «»Ñαᵿ∩  »ÑτáΓ¿.  Åα«úαἼᠠΓᬪѠ ñ«½ª¡á  «»αÑñѽ¿Γ∞ Σπ¡¬µ¿ε
  6261.         »αÑαδóá¡¿∩, ¬«Γ«αá∩ íπñÑΓ «íαáíáΓδóáΓ∞ ß««íΘÑ¡¿∩ ñ½∩ »α¿¬½áñ¡«⌐
  6262.         »α«úαá¼¼δ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ »ÑτáΓ¿.
  6263.  
  6264.              ä½∩ ß«ºñá¡¿∩ »á¡Ñ½¿ ñ¿á½«úá, ¬«Γ«αá∩ »«ºó«½¿Γ »«½∞º«óáΓѽε
  6265.         »αÑαóáΓ∞ «»Ñαáµ¿ε »ÑτáΓ¿, ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
  6266.  
  6267.              1. ä«íáó∞ΓÑ «»αÑñѽѡ¿Ñ Φáí½«¡á »á¡Ñ½¿ ñ¿á½«úá Abort  ¬
  6268.                 Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
  6269.  
  6270.              2. é   ΓѬßΓÑ   »α¿¬½áñ¡«⌐   »α«úαá¼¼δ   ß«ºñá⌐ΓÑ  Σπ¡¬µ¿ε
  6271.                 π»αáó«½Ñ¡¿∩ »á¡Ñ½∞ε ñ¿á½«úá AbortDlg.
  6272.  
  6273.              3. é ΓѬßΓÑ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ß«ºñá⌐ΓÑ  Σπ¡¬µ¿ε  Abort
  6274.                 ñ½∩ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »á¡Ñ½¿ ñ¿á½«úá Abort.
  6275.  
  6276.              4. î«ñ¿Σ¿µ¿απ⌐ΓÑ »α«µÑñπαπ »ÑτáΓ¿ Γᬿ¼ «íαẫ¼, τΓ«íδ «¡á
  6277.                 óδó«ñ¿½á »á¡Ñ½∞   ñ¿á½«úá   AbortDlg   ¿   «íαáíáΓδóá½á
  6278.                 ß««íΘÑ¡¿∩.
  6279.  
  6280.              é ß½ÑñπεΘ¿σ αáºñѽáσ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
  6281.                                                                                
  6282.                      12.6.1  Ä»αÑñѽѡ¿Ñ »á¡Ñ½¿ ñ¿á½«úá.
  6283.  
  6284.              é Σá⌐½  «»¿ßá¡¿∩  αÑßπαß«ó  »α¿¬½áñ¡«⌐  »α«úαá¼¼δ ñ«íáó∞ΓÑ
  6285.         Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá AbortDlg. ìá»α¿¼Ñα:
  6286.  
  6287.         AbortDlg DIALOG 20, 20, 90, 64
  6288.         STYLE WS_NODALFRAME | WS_SYSMENU | WS_CAPTION
  6289.         CAPTION "Print File"
  6290.         BEGIN
  6291.            DefPushButton "Cancel"    IDCANCEL      29, 44, 32, 14,
  6292.                                      WS_GROUP
  6293.            Ctext "Sending",          -1,           0,  8, 90,  8
  6294.            Ctext "text",             ID_FILENAME   0, 18, 90,  8
  6295.            Ctext "to printer spooler", -1,         0, 28, 90,  8
  6296.         END
  6297.  
  6298.        Windows 3.0/pg/2#3                                       = 119 =
  6299.  
  6300.                           12.6.2  Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿á½«úá.          
  6301.  
  6302.              é ΓѬßΓ   óáΦÑ⌐   »α«úαá¼¼δ  ñ«íáó∞ΓÑ  Σπ¡¬µ¿ε  Abort  ñ½∩
  6303.         «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »á¡Ñ½¿  ñ¿á½«úá  AbortDlg.  öπ¡¬µ¿∩  »á¡Ñ½¿
  6304.         ñ¿á½«úá  Abort  ñ«½ª¡á  «íαáíáΓδóáΓ∞  ß««íΘÑ¡¿∩ WM_INITDIALOG ¿
  6305.         WM_COMMAND.  ä½∩  Γ«ú«,  τΓ«íδ  ñáΓ∞  ó«º¼«ª¡«ßΓ∞  »«½∞º«óáΓѽε
  6306.         óδíαáΓ∞   ¬½áó¿Φπ   ÄΓ¼Ñ¡¿Γ∞,   Σπ¡¬µ¿∩  ºáσóáΓδóáÑΓ  óó«ñ  »α¿
  6307.         ¿¡¿µ¿á½¿ºáµ¿¿  »á¡Ñ½¿  ñ¿á½«úá.  çáΓѼ   «¡á   ¿ú¡«α¿απÑΓ   óßÑ
  6308.         ß««íΘÑ¡¿∩ ñ« ΓÑσ »«α,  »«¬á ¡Ñ óßΓαÑΓ¿Γß∩ ß««íΘÑ¡¿Ñ WM_COMMAND.
  6309.         éó«ñ ¬«¼á¡ñδ ºáßΓáó½∩ÑΓ Σπ¡¬µ¿ε  αáºαπΦ¿Γ∞  «¬¡«  ¿  πßΓá¡«ó¿Γ∞
  6310.         Σ½áú  ßíα«ßá  ó  º¡áτÑ¡¿Ñ  TRUE.  é  »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ
  6311.         »«¬áºá¡δ «»ÑαáΓ«αδ, ΓαÑíπѼδÑ ñ½∩ Σπ¡¬µ¿¿ ñ¿á½«úá:
  6312.  
  6313.              BOOL bAbort = FALSE;
  6314.                 .
  6315.                 .
  6316.                 .
  6317.              int FAR PASCAL AbortDlg(hWnd, msg, wParam, lParam)
  6318.              HWND hWnd;
  6319.              unsigned msg;
  6320.              WORD wParam;
  6321.              LONG lParam;
  6322.              {
  6323.              /* «Γ߽Ѫ¿óá¡¿Ñ ¼∩ú¬«⌐ ¬½áó¿Φ¿ Cancel ¿ ¬½áó¿Φ
  6324.                 ESCAPE, RETURN ¿ SPACE BAR                     */
  6325.                  if (msg == WM_COMMAND) {
  6326.              /* »«½∞º«óáΓѽ∞ »αÑαóá½ «»Ñαáµ¿ε                  */
  6327.                      bAbort = TRUE;
  6328.              /* αáºαπΦÑ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá Abort                */
  6329.                      DestroyWindow(hWnd);
  6330.                      return (TRUE);
  6331.                  }
  6332.  
  6333.                  else if (msg == WM_INITDIALOG) {
  6334.              /* ¡Ñ«íσ«ñ¿¼ ºáσóáΓ óó«ñá ñ½∩ ¿¡Σ«α¼áµ¿¿, óó«ñ¿¼«⌐
  6335.                 »«½∞º«óáΓѽѼ                                  */
  6336.                      SetFocus(hWnd);
  6337.                      return (TRUE);
  6338.                  }
  6339.                  return (FALSE);
  6340.              }
  6341.                                  12.6.3  öπ¡¬µ¿∩ »αÑαδóá¡¿∩ »ÑτáΓ¿.            
  6342.  
  6343.              é ΓѬßΓÑ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ «»αÑñѽ¿ΓÑ Σπ¡¬µ¿ε «íαáí«Γ¬¿
  6344.         ß««íΘÑ¡¿⌐ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá Abort.
  6345.  
  6346.              öπ¡¬µ¿∩ »αÑαδóá¡¿∩    »«½πτáÑΓ    ß««íΘÑ¡¿∩   ¿º   «τÑαÑñ¿
  6347.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ «íαáíáΓδóáÑΓ  ¿σ,  Ñß½¿  «¡¿  ¡á»αáó½Ñ¡δ
  6348.         »á¡Ñ½¿ ñ¿á½«úá Abort.  öπ¡¬µ¿∩ »α«ñ«½ªáÑΓ µ¿¬½ ñ« ΓÑσ »«α, »«¬á
  6349.         «¡á ¡Ñ »«½πτ¿Γ ß««íΘÑ¡¿Ñ WM_DESTROY, ¿½¿ ñ« ºáóÑαΦÑ¡¿∩ «»Ñαᵿ¿
  6350.  
  6351.        Windows 3.0/pg/2#3                                       = 120 =
  6352.  
  6353.         »ÑτáΓ¿.
  6354.  
  6355.              ìÑ«íσ«ñ¿¼«, τΓ«íδ    »α«úαá¼¼á,   óδ»«½¡∩εΘá∩   ñ½¿Γѽ∞¡δÑ
  6356.         «»Ñαᵿ¿  »ÑτáΓ¿,  »ÑαÑñá½á  Σπ¡¬µ¿ε  »αÑαδóá¡¿∩  ó   GDI   ñ½∩
  6357.         π»αáó½Ñ¡¿∩ ¡Ñ«íδτ¡δ¼¿   ß¿Γπᵿ∩¼¿,   »«∩ó½∩εΘ¿¼¿ß∩   ó«  óαѼ∩
  6358.         «»Ñαᵿ⌐ »ÑτáΓ¿.  Äíδτ¡«  ó«º¡¿¬áÑΓ  ß¿Γπᵿ∩,  ¬«úñá  «»Ñαᵿ∩
  6359.         »ÑτáΓ¿  ºá»«½¡∩ÑΓ  ñ«ßΓπ»¡«Ñ ñ¿ß¬«ó«Ñ »α«ßΓαá¡ßΓó« »αѪñÑ,  τѼ
  6360.         »α«úαἼᠠíπΣÑα¿ºáµ¿¿  ¼«ªÑΓ  ß¬«»¿α«óáΓ∞  ñá¡¡δÑ  ¡á  »ÑτáΓ∞.
  6361.         Å«ß¬«½∞¬π  »α«úαá¼¼á íπΣÑα¿ºáµ¿¿ ¼«ªÑΓ »α«ñ«½ªáΓ∞ »ÑτáΓáΓ∞ ñáªÑ
  6362.         ó  Γ«¼  ß½πτáÑ,  ¬«úñá  ñ¿ß¬«ó«Ñ  »α«ßΓαá¡ßΓó«  ºá»«½¡Ñ¡«,  GDI
  6363.         óδºδóáÑΓ Σπ¡¬µ¿ε  »αÑαδóá¡¿∩ ñ½∩ »α«óÑન,  σ«τÑΓ ½¿ »α¿¬½áñ¡á∩
  6364.         »α«úαá¼¼á «Γ¼Ñ¡¿Γ∞ «»Ñαáµ¿ε »ÑτáΓ¿  ¿½¿  »α«ßΓ«  «ª¿ñáÑΓ,  »«¬á
  6365.         «ßó«í«ñ¿Γß∩ ¼ÑßΓ« ¡á ñ¿ß¬Ñ.
  6366.  
  6367.              ä½∩ «»αÑñѽѡ¿∩  Σπ¡¬µ¿¿  »αÑαδóá¡¿∩  »ÑτáΓ¿   ¿ß»«½∞ºπ⌐ΓÑ
  6368.         Σπ¡¬µ¿ε   MakeProcInstance   ñ½∩   ß«ºñá¡¿∩  áñαÑßá  φ¬ºÑ¼»½∩αá
  6369.         »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿:
  6370.  
  6371.              lpAbortProc=MakeProcInstance(AbortProc, hInst);
  6372.  
  6373.              çáΓѼ ó맮ó¿ΓÑ  Σπ¡¬µ¿ε  Escape,  »ÑαÑñáó   Ñ⌐   »áαá¼ÑΓαδ
  6374.         SETABORTPROC ¿ áñαÑß Σπ¡¬µ¿¿ Abort:
  6375.  
  6376.              Escape (hDC, SETABORTPROC, 0, lpAbortProc, 0L)
  6377.  
  6378.              çáΓѼ  GDI  íπñÑΓ  óδºδóáΓ∞ Σπ¡¬µ¿ε »αÑαδóá¡¿∩ ó« óαѼ∩
  6379.         íπΣÑα¿ºáµ¿¿. öπ¡¬µ¿∩ ñ«½ª¡á ¿¼ÑΓ∞ ß½ÑñπεΘÑÑ «»¿ßá¡¿Ñ:
  6380.  
  6381.              int FAR PASCAL AbortProc(hPr, Code)
  6382.         (1)  HDC hPr;
  6383.         (2)  int Code;
  6384.  
  6385.              úñÑ:
  6386.  
  6387.         1)   hPr - φΓ« ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »ÑτáΓ¿.
  6388.  
  6389.         2)   Code «»αÑñѽ∩ÑΓ »α¿α«ñπ ó맮óá. Ä¡ ¼«ªÑΓ »α¿¡¿¼áΓ∞ «ñ¡« ¿º
  6390.              ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
  6391.  
  6392.              ç¡áτÑ¡¿Ñ        ÄÑ»¿ßá¡¿Ñ
  6393.              ──────────────────────────────────────────────────────────
  6394.              SP_OUTOFDISK   Åα«úαἼᠠíπΣÑα¿ºáµ¿¿  ¿ßτÑα»á½á  óÑß∞
  6395.                             ºá»áß ñ¿ß¬«ó«ú« »α«ßΓαá¡ßΓóá  ó«  óαѼ∩
  6396.                             íπΣÑα¿ºáµ¿¿  Σá⌐½á ñá¡¡δσ. Ä»Ñαᵿ∩ »Ñ-
  6397.                             τáΓ¿ íπñÑΓ »α«ñ«½ªÑ¡á, Ñß½¿ »α«úαá¼¼á
  6398.                             ñ«ªñÑΓß∩ «ßó«í«ªñÑ¡¿∩ »α«ßΓαá¡ßΓóá ¡á
  6399.                             ñ¿ß¬Ñ.
  6400.  
  6401.              0              Åα«úαá¼¼á íπΣÑα¿ºáµ¿¿ »α«ñ«½ªáÑΓß∩  íѺ
  6402.                             «Φ¿í¬¿.
  6403.              ──────────────────────────────────────────────────────────
  6404.  
  6405.              èá¬ Γ«½∞¬«   Σπ¡¬µ¿∩   »αÑαδóá¡¿∩   óδºóá¡á,   «¡á   ¼«ªÑΓ
  6406.  
  6407.        Windows 3.0/pg/2#3                                       = 121 =
  6408.  
  6409.         ó«ºóαáΓ¿Γ∞   TRUE   ñ½∩   ¡Ñ¼Ññ½Ñ¡¡«ú«   »α«ñ«½ªÑ¡¿∩   «»Ñαᵿ¿
  6410.         íπΣÑα¿ºáµ¿¿ ¿½¿ FALSE ñ½∩ «Γ¼Ñ¡δ «»Ñαᵿ¿  »ÑτáΓ¿.  ü«½∞Φ¿¡ßΓó«
  6411.         Σπ¡¬µ¿⌐  »αÑαδóá¡¿∩  óδºδóáεΓ Σπ¡¬µ¿ε PeekMessage ñ½∩ óαѼѡ¡«⌐
  6412.         »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩,  á ºáΓѼ ó«ºóαáΘáεΓ TRUE  ñ½∩  »α«ñ«½ªÑ¡¿∩
  6413.         «»Ñαᵿ¿   »ÑτáΓ¿.   ÅÑαÑñáτá  π»αáó½Ñ¡¿∩  «íδτ¡«  »αÑñßΓáó½∩ÑΓ
  6414.         »α«úαἼѠ íπΣÑα¿ºáµ¿¿  ñ«ßΓáΓ«τ¡«  óαѼѡ¿  ñ½∩   «ßó«í«ªñÑ¡¿∩
  6415.         ¡Ñ¬«Γ«α«ú« »α«ßΓαá¡ßΓóá ¡á ñ¿ß¬Ñ.
  6416.  
  6417.              àß½¿ Σπ¡¬µ¿∩  »αÑαδóá¡¿∩ ó«ºóαáΓ¿Γ FALSE,  «»Ñαᵿ∩ »ÑτáΓ¿
  6418.         «Γ¼Ñ¡∩ÑΓß∩, ¿ »α¿ ß½ÑñπεΘѼ ó맮óÑ Σπ¡¬µ¿¿ Escape ¿º »α¿¬½áñ¡«⌐
  6419.         »α«úαá¼¼δ  íπñÑΓ ó«ºóαáΘÑ¡« º¡áτÑ¡¿Ñ «Φ¿í¬¿.
  6420.  
  6421.              é᪡«. àß½¿ »α«úαá¼¼á óßΓαÑτáÑΓ «Φ¿í¬π »ÑτáΓ¿ ¿½¿ «»Ñαᵿε
  6422.         »«  »αÑαδóá¡¿ε  »ÑτáΓ¿,  «¡á  ¡Ñ  ñ«½ª¡á   »δΓáΓ∞ß∩   ºáóÑαΦ¿Γ∞
  6423.         «»Ñαᵿε,  ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε  Escape  ß  π¬áºá¡¿Ñ¼  ENDDOC ¿½¿
  6424.         ABORTDOC.  GDI áóΓ«¼áΓ¿τÑ߬¿ ºáóÑαΦáÑΓ «»Ñαáµ¿ε »ÑαÑñ ó«ºóαáΓ«¼
  6425.         º¡áτÑ¡¿∩ «Φ¿í¬¿.
  6426.  
  6427.              ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα¡δ⌐ ó¿ñ Σπ¡¬µ¿¿ »αÑαδóá¡¿∩ »ÑτáΓ¿:
  6428.  
  6429.              int FAR PASCAL AbortProc(hPr, Code)
  6430.              HDC hPr;  /*ñ½∩ ¼¡«ªÑßΓóá ¬«¡ΓѬßΓ«ó «Γ«íαáªÑ¡¿∩ »α¿¡ΓÑαá*/
  6431.              int Code; /*ñ½∩ ß«ßΓ«∩¡¿∩ »ÑτáΓ¿  */
  6432.              {
  6433.                  MSG msg;
  6434.              /* «íαáí«Γ¬á ß««íΘÑ¡¿⌐, »αÑñ¡áº¡áτÑ¡¡δσ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá
  6435.                 »αÑαδóá¡¿∩  */
  6436.                  while (PeekMessage((LPMSG) &msg, NULL, NULL, NULL,
  6437.                                     PM_REMOVE))
  6438.                      if (!IsDialogMessage(hAbortDlgWnd, (LPMSG) &msg)) {
  6439.                          TranslateMessage((LPMSG) &msg);
  6440.                          DispatchMessage((LPMSG) &msg);
  6441.                      }
  6442.                   /* bAbort - TRUE, Ñß½¿ »«½∞º«óáΓѽ∞ »αÑαóá½ «»Ñαᵿε */
  6443.                      return (!Abort);
  6444.              }
  6445.                        12.6.4  éδ»«½¡Ñ¡¿Ñ »αÑαδóáѼδσ «»Ñαᵿ⌐ »ÑτáΓ¿.         
  6446.  
  6447.              ä½∩ Γ«ú«,  τΓ«íδ ñáΓ∞ »«½∞º«óáΓÑ½ε  ó«º¼«ª¡«ßΓ∞  »αÑαδóáΓ∞
  6448.         «»Ñαáµ¿ε »ÑτáΓ¿,  óáΦá »α«úαἼᠻÑαÑñ ºá»π߬«¼ «»Ñαᵿ¿ »ÑτáΓ¿
  6449.         ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ñÑ⌐ßΓó¿∩:
  6450.  
  6451.              1. Ä»αÑñѽ¿Γ∞   Σπ¡¬µ¿ε   »αÑαδóá¡¿∩,   ¬á¬   »«¬áºá¡«   ó
  6452.                 »αÑñΦÑßΓóπεΘѼ αáºñѽÑ.
  6453.  
  6454.              2. æ   »«¼«Θ∞ε  Σπ¡¬µ¿¿  MakeProcInstance  »«½πτ¿Γ∞  áñαÑß
  6455.                 φ¬ºÑ¼»½∩αá »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿ »αÑαδóá¡¿∩.
  6456.  
  6457.              3. æ  »«¼«Θ∞ε  Σπ¡¬µ¿¿  EnableWindow  ¡Ñ«íσ«ñ¿¼«   ßñѽáΓ∞
  6458.                 ¡Ññ«ßΓπ»¡δ¼ α«ñ¿Γѽ∞߬«Ñ «¬¡«.
  6459.  
  6460.              4. çá»πßΓ¿ΓÑ «íδτ¡πε  «»Ñαáµ¿ε  »ÑτáΓ¿,  ¡«  ¬«¡Γα«½¿απ⌐ΓÑ
  6461.  
  6462.        Windows 3.0/pg/2#3                                       = 122 =
  6463.  
  6464.                 ó«ºóαáΘáѼ«Ñ  Σπ¡¬µ¿Ñ⌐  Escape  º¡áτÑ¡¿Ñ  »«ß½Ñ ¬áªñ«ú«
  6465.                 ó맮óá   NEWFRAME.   àß½¿   º¡áτÑ¡¿Ñ    ¼Ñ¡∞ΦÑ    ¡π½∩,
  6466.                 »«½∞º«óáΓѽ∞ «Γ¼Ñ¡¿½ «»Ñαáµ¿ε ¿½¿ »α«¿º«Φ½á «Φ¿í¬á.
  6467.  
  6468.              5. êß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε DestroyWindow ñ½∩ αáºαπΦÑ¡¿∩ »á¡Ñ½¿
  6469.                 ñ¿á½«úá Abort,  Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«. (Windows αáºαπΦáÑΓ
  6470.                 »á¡Ñ½∞   áóΓ«¼áΓ¿τÑ߬¿,   Ñß½¿   »«½∞º«óáΓѽ∞   «Γ¼Ñ¡¿½
  6471.                 «»Ñαáµ¿ε »ÑτáΓ¿.)
  6472.  
  6473.              6. æ   »«¼«Θ∞ε  Σπ¡¬µ¿¿  EnableWindow  ¡Ñ«íσ«ñ¿¼«  ßñѽáΓ∞
  6474.                 ñ«ßΓπ»¡δ¼ α«ñ¿Γѽ∞߬«Ñ «¬¡«.
  6475.  
  6476.              æ¼«Γα¿ΓÑ »α¿¼Ñα »α«úαá¼¼δ PrntFile,  ¬«Γ«αá∩  ¿½½εßΓα¿απÑΓ
  6477.         ¬á¬ »α¿¬½áñ¡á∩ »α«úαἼᠼ«ªÑΓ óδ»«½¡∩Γ∞ φΓ¿ ñÑ⌐ßΓó¿∩.
  6478.                                                                                
  6479.              12.6.5  ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿ ß »«¼«Θ∞ε ABORTDOC.
  6480.  
  6481.              î«ª¡« ¿ß»«½∞º«óáΓ∞  »áαá¼ÑΓα  ABORTDOC ñ½∩ «Γ¼Ñ¡δ «»Ñαᵿ¿
  6482.         »ÑτáΓ¿,  ñáªÑ Ñß½¿ «ΓßπΓßΓóπÑΓ Σπ¡¬µ¿∩  »αÑαδóá¡¿∩  ¿½¿  »á¡Ñ½∞
  6483.         ñ¿á½«úá  Abort.  é  »α¿¬½áñ¡δσ  »α«úαá¼¼áσ,  ¬«Γ«αδÑ  ¡Ñ  ¿¼ÑεΓ
  6484.         Σπ¡¬µ¿ε »αÑαδóá¡¿∩,  »áαá¼ÑΓα ABORTDOC ¼«ªÑΓ  íδΓ∞  ¿ß»«½∞º«óá¡
  6485.         Γ«½∞¬«  »ÑαÑñ »Ñαóδ¼ óδº«ó«¼ π»αáó½∩εΘÑ⌐ Σπ¡¬µ¿¿ ß NEWFRAME ¿½¿
  6486.         NEXTBAND.
  6487.                                           12.7  ÅÑτáΓ∞ »«αµ¿∩¼¿.               
  6488.  
  6489.              Éáºí¿ó¬á ¡á »«αµ¿¿ - Γá¬á∩  ΓÑσ¡¿¬á  »ÑτáΓ¿,  »α¿  ¬«Γ«α«⌐
  6490.         »ÑτáΓáѼδ⌐ «íαẠαáºí¿óáÑΓß∩ ¡á ¡Ñ߬«½∞¬« »«αµ¿⌐ (¿½¿ óδαѺ«¬),
  6491.         ¿ ¬áªñá∩ »«αµ¿∩ »«ßδ½áÑΓß∩ ¡á »ÑτáΓ∞  ßἫßΓ«∩Γѽ∞¡«.  Éáºí¿ó¬á
  6492.         ¡á   »«αµ¿¿  ñáÑΓ  ó«º¼«ª¡«ßΓ∞  »α¿¬½áñ¡«⌐  »α«úαἼѠ »ÑτáΓáΓ∞
  6493.         ß½«ª¡δÑ úαáΣ¿τÑ߬¿Ñ  «íαáºδ  íѺ  »Ñαó«¡áτá½∞¡«ú«  Σ«α¼¿α«óá¡¿∩
  6494.         »«½¡«ú«  «íαáºá  ó  »á¼∩Γ¿.  ¥Γ«  ¼«ªÑΓ  π¼Ñ¡∞Φ¿Γ∞ ΓαÑí«óá¡¿∩ ¬
  6495.         »á¼∩Γ¿ ñ½∩ »ÑτáΓ¿ ¿ π½πτΦ¿Γ∞ Σπ¡¬µ¿«¡¿α«óá¡¿Ñ ß¿ßΓѼδ ó«  óαѼ∩
  6496.         óδ»«½¡Ñ¡¿∩  «»Ñαᵿ¿ »ÑτáΓ¿.  Äñ¡á¬«,  αáºí¿ó¬á ¡á »«αµ¿¿ ¼«ªÑΓ
  6497.         ¿ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬« ñ½∩ »α¿¡ΓÑα«ó, ¿¼ÑεΘ¿σ φΓπ ó«º¼«ª¡«ßΓ∞.
  6498.  
  6499.              ä½∩ »ÑτáΓ¿ ¿º«íαáªÑ¡¿∩ ß αáºí¿ó¬«⌐  ¡á  »«αµ¿¿  ¡Ñ«íσ«ñ¿¼«
  6500.         óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
  6501.  
  6502.              1. êß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  CreateDC ñ½∩ »«½πτÑ¡¿∩ ¬«¡ΓѬßΓá
  6503.                 πßΓα«⌐ßΓóá »ÑτáΓ¿.
  6504.  
  6505.              2. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε GetDeviceCaps ñ½∩  »α«óÑન  Γ«ú«,
  6506.                 τΓ« »α¿¡ΓÑα »«ºó«½∩ÑΓ αáºí¿ó¬π ¡á »«αµ¿¿:
  6507.  
  6508.              if(GetDeviceCaps(hPrinterDC, RASTERCAPS) & RC_BANDING);
  6509.  
  6510.              3. êß»«½∞º«óáΓ∞  Σπ¡¬µ¿ε  Escape ß »áαá¼ÑΓα«¼ NEXTBAND ñ½∩
  6511.                 »«½πτÑ¡¿∩ ¬««αñ¿¡áΓ »«αµ¿¿:
  6512.  
  6513.                 Escape(hPrinterDC,NEXTBAND,0,(LPSTR)NULL,(LPRECT)&rcRect);
  6514.  
  6515.                 öπ¡¬µ¿∩ ºá¡«ß¿Γ ó ßΓαπ¬Γπαπ rcRect  ¬««αñ¿¡áΓδ  ΓѬπΘÑ⌐
  6516.  
  6517.        Windows 3.0/pg/2#3                                       = 123 =
  6518.  
  6519.                 »«αµ¿¿. è««αñ¿¡áΓδ ºáñáεΓß∩ ó Ññ¿¡¿µáσ πßΓα«⌐ßΓóá ¿ óßÑ
  6520.                 »«ß½ÑñπεΘ¿Ñ ó맮óδ GDI «ΓßѬáεΓß∩ ñ«  αẼÑα«ó  ñá¡¡«ú«
  6521.                 »α∩¼«πú«½∞¡¿¬á.
  6522.  
  6523.              4. Åα«óÑα¿Γ∞  ßΓαπ¬Γπαπ  rcRect  (»πßΓ  ½¿ »α∩¼«πú«½∞¡¿¬).
  6524.                 ÅπßΓ«⌐ »α∩¼«πú«½∞¡¿¬ «Γ¼ÑτáÑΓ ¬«¡Ñµ  «»Ñαᵿ¿  αáºí¿ó¬¿
  6525.                 ¡á »«αµ¿¿. àß½¿ «¡ »πßΓ, ºá¬«¡τ¿Γ∞ «»Ñαáµ¿ε »« αáºí¿ó¬Ñ
  6526.                 ¡á »«αµ¿¿.
  6527.  
  6528.              5. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε DPtoLP  ñ½∩  »αÑ«íαẫóá¡¿∩  Γ«τѬ
  6529.                 rcRect ¿º Ññ¿¡¿µ πßΓα«⌐ßΓóá ó ½«ú¿τÑ߬¿Ñ Ññ¿¡¿µδ:
  6530.  
  6531.                 DPtoLP (hPr, (LPRECT) & rcRect, 2);
  6532.  
  6533.              6. êß»«½∞º«óáΓ∞  Σπ¡¬µ¿¿ óδó«ñá GDI ¿½¿ ñαπú¿Ñ Σπ¡¬µ¿¿ ñ½∩
  6534.                 α¿ß«óá¡¿∩ ó¡πΓα¿   »«αµ¿¿.   ä½∩    φ¬«¡«¼¿¿    óαѼѡ¿
  6535.                 »α¿¬½áñ¡á∩  »α«úαá¼¼á ñ«½ª¡á óδ»«½¡¿Γ∞ Γ«½∞¬« ΓÑ ó맮óδ
  6536.                 GDI, ¬«Γ«αδÑ ó½¿∩εΓ ¡á ΓѬπΘπε »«αµ¿ε. àß½¿ ÅÅ ¡Ñ σ«τÑΓ
  6537.                 φ¬«¡«¼¿Γ∞ óαѼ∩, GDI íπñÑΓ «ΓßѬáΓ∞ óÑß∞ óδó«ñ, ¬«Γ«αδ⌐
  6538.                 ¡Ñ óßΓαÑτáÑΓß∩ ó ñá¡¡«⌐ »«αµ¿¿,  ΓᬠτΓ«  ¡Ñ  ΓαÑíπÑΓß∩
  6539.                 ß»Ñµ¿á½∞¡δσ ñÑ⌐ßΓó¿⌐.
  6540.  
  6541.              7. Å«óΓ«α¿Γ∞ Φáú¿ ß 4 »« 6.
  6542.  
  6543.              Å«ß½Ñ «¬«¡τá¡¿∩  «»Ñαᵿ¿  αáºí¿ó¬¿  ¡á »«αµ¿¿ ¿ß»«½∞ºπ⌐ΓÑ
  6544.         Σπ¡¬µ¿ε DeleteDC ñ½∩ πñá½Ñ¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »ÑτáΓ¿.
  6545.  
  6546.              é »α¿óÑñÑ¡¡«¼  ¡¿ªÑ  »α¿¼ÑαÑ  »«¬áºá¡«,  ¬á¬  »ÑτáΓáΓ∞   ß
  6547.         »«¼«Θ∞ε αáºí¿ó¬¿ ¡á »«αµ¿¿:
  6548.  
  6549.         hPr = CreateDC("EPSON",
  6550.                        "EPSON FX-80",
  6551.                        "LPT1:",
  6552.                        (LPSTR) NULL);
  6553.  
  6554.         if (hPr != NULL) {
  6555.             if (GetDeviceCaps(hPr, RASTERCAPS) & RC_BANDING) {
  6556.                 Escape(hPr, STARTDOC, 4, (LPSTR) "Dog", (LPSTR)NULL);
  6557.                 Escape(hPr, NEXTBAND, 0, (LPSTR)NULL, (LPSTR) &rcRect);
  6558.                 while (!IsRectEmpty(&rcRect)) {
  6559.                     DPtoLP(hPr, (LPRECT) &rcRect, 2);
  6560.                    /* »«¼ÑßΓ¿ΓÑ ºñÑß∞ ßó«ε Σπ¡¬µ¿ε óδó«ñá. ä½∩ φ¬«-
  6561.                       ¡«¼¿¿ óαѼѡ¿ ¿ß»«½∞ºπ⌐ΓÑ rcRect ñ½∩ «»αÑñÑ-
  6562.                       ½Ñ¡¿∩, ¬á¬¿Ñ Σπ¡¬µ¿¿ ñ«½ª¡δ íδΓ∞ óδºóá¡δ ñ½∩
  6563.                       φΓ«⌐ »«αµ¿¿ */
  6564.                     Escape(hPr, NEXTBAND, 0, (LPSTR)NULL, (LPRECT) &rcRect);
  6565.                 }
  6566.                 Escape(hPr, NEWFRAME, 0, (LPSTR)NULL, (LPSTR)NULL);
  6567.                 Escape(hPr, ENDDOC, 0, (LPSTR)NULL, (LPSTR)NULL);
  6568.             }
  6569.             DeleteDC(hPr);
  6570.         }
  6571.  
  6572.  
  6573.        Windows 3.0/pg/2#3                                       = 124 =
  6574.  
  6575.                           12.8  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ PrntFile.          
  6576.  
  6577.              é ñá¡¡«¼ αáºñѽѠ«»¿ßá¡«,  ¬á¬ ¼«ª¡« ñ«íáó¿Γ∞  ó«º¼«ª¡«ßΓ∞
  6578.         »ÑτáΓ¿ ¬ »α«úαἼѠEditFile, «»¿ßá¡¡«⌐ ó ú½áóÑ 10 "éó«ñ ¿ óδó«ñ
  6579.         ó Σá⌐½",  ß¬«»¿α«óáó  ΓѬπΘ¿⌐  ΓѬßΓ  ¿º  αÑñá¬Γ¿απѼ«ú«  í½«¬á
  6580.         π»αáó½Ñ¡¿∩  ¿  «Γ»ÑτáΓáó  Ñú«  ß »«¼«Θ∞ε ß»«ß«í«ó,  «»¿ßá¡¡δσ ó
  6581.         ñá¡¡«⌐ ú½áóÑ.  ä½∩ Γ«ú«,  τΓ«íδ ñ«íáó¿Γ∞ »ÑτáΓ∞,  ß¬«»¿απ⌐ΓÑ  ¿
  6582.         »ÑαÑ¿¼Ñ¡π⌐ΓÑ   »α«úαá¼¼π   EditFile   ó   PrntFile,   á   ºáΓѼ
  6583.         ¼«ñ¿Σ¿µ¿απ⌐ΓÑ φΓπ »α«úαá¼¼π ß½ÑñπεΘ¿¼ «íαẫ¼:
  6584.  
  6585.              1. ä«íáó∞ΓÑ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá AbortDlg ó Σá⌐½ «»¿ßá¡¿∩
  6586.                 αÑßπαß«ó.
  6587.  
  6588.              2. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ, ¡Ñ«íσ«ñ¿¼δÑ »α¿ »ÑτáΓ¿.
  6589.  
  6590.              3. ä«íáó∞ΓÑ  ó Σαáú¼Ñ¡Γ WM_COMMAND «»ÑαáΓ«αδ ñ½∩ «íαáí«Γ¬¿
  6591.                 IDM_PRINT.
  6592.  
  6593.              4. æ«ºñá⌐ΓÑ Σπ¡¬µ¿ε ñ¿á½«úá AbortDlg ¿ Σπ¡¬µ¿ε  »αÑαδóá¡¿∩
  6594.                 AbortProc.
  6595.  
  6596.              5. ä«íáó∞ΓÑ Σπ¡¬µ¿ε GetPrinterDC.
  6597.  
  6598.              6. ¥¬ß»«αΓ¿απ⌐ΓÑ Σπ¡¬µ¿ε AbortDlg ¿ AbortProc.
  6599.  
  6600.              7. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π.
  6601.  
  6602.              ¥Γ«Γ »α¿¼Ñα   »«¬áºδóáÑΓ,   ¬á¬   αáß»ÑτáΓáΓ∞   ß«ñÑন¼«Ñ
  6603.         αÑñá¬Γ¿απѼ«ú« í½«¬á   π»αáó½Ñ¡¿∩,   ¿   ó¬½ετáÑΓ    «»ÑαáΓ«αδ,
  6604.         ¡Ñ«íσ«ñ¿¼δÑ  ñ½∩  »«ññÑ᪬¿ Σπ¡¬µ¿¿ »αÑαδóá¡¿∩ ¿ Σπ¡¬µ¿¿ »á¡Ñ½¿
  6605.         ñ¿á½«úá Abort.
  6606.  
  6607.              Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
  6608.         ó  ß½ÑñπεΘ¿σ  αáºñѽáσ,  ó«º¼«ª¡«  óá¼  íπñÑΓ  πñ«í¡ÑÑ   »α«ßΓ«
  6609.         »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
  6610.                                                                                
  6611.                 12.8.1  ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá  AbortDlg.
  6612.  
  6613.              ä½∩ »«ññÑ᪬¿  »ÑτáΓ¿  ¡Ñ«íσ«ñ¿¼á  ¡«óá∩  »á¡Ñ½∞  ñ¿á½«úá.
  6614.         Åá¡Ñ½∞  ñ¿á½«úá AbortDlg ñáÑΓ ó«º¼«ª¡«ßΓ∞ »«½∞º«óáΓÑ½ε «Γ¼Ñ¡¿Γ∞
  6615.         «»Ñαáµ¿ε »ÑτáΓ¿,  óδíαáó  ¬½áó¿Φπ  Cancel.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿⌐
  6616.         «»ÑαáΓ«α DIALOG ¬ Σá⌐½π αÑßπαß«ó:
  6617.  
  6618.         AbortDlg DIALOG 20, 20, 90, 64
  6619.         STYLE WS_NODALFRAME | WS_SYSMENU | WS_CAPTION
  6620.         CAPTION "Print File"
  6621.         BEGIN
  6622.            DefPushButton "Cancel"    IDCANCEL      29, 44, 32, 14,
  6623.                                      WS_GROUP
  6624.            Ctext "Sending",          -1,           0,  8, 90,  8
  6625.            Ctext "text",             ID_FILENAME   0, 18, 90,  8
  6626.            Ctext "to printer spooler", -1,         0, 28, 90,  8
  6627.         END
  6628.  
  6629.        Windows 3.0/pg/2#3                                       = 125 =
  6630.  
  6631.                             12.8.2  ä«íáó½Ñ¡¿Ñ »ÑαѼѡ¡δσ ñ½∩ »ÑτáΓ¿.          
  6632.  
  6633.              ä½∩ »«ññÑ᪬¿ »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞ ¡«óδÑ »ÑαѼѡ¡δÑ.
  6634.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩ ó ¡áτὫ Σá⌐½á αÑßπαß«ó:
  6635.  
  6636.         HDC hPr;               /* ñÑß¬α¿»Γ«α èÄ »α¿¡ΓÑαá          */
  6637.         int LineSpace;         /* αáßßΓ«∩¡¿Ñ ¼Ñªñπ ßΓα«¬á¼¿       */
  6638.         int LinesPerPage;      /* τ¿ß½« ßΓ᫬ ¡á ßΓαá¡¿µÑ         */
  6639.         int CurrentLine;       /* ΓѬπΘá∩ ßΓα«¬á                  */
  6640.         int LineLenght;        /* ñ½¿¡á ßΓ᫬¿                    */
  6641.         DWORD dwLines;         /* τ¿ß½« »ÑτáΓáѼδσ ßΓ᫬          */
  6642.         DWORD dwIndex;         /* ¿¡ñѬߠ»ÑτáΓáѼ«⌐ ßΓ᫬¿        */
  6643.         char pLine[128];       /* íπΣÑα ñ½∩ σαá¡Ñ¡¿∩ ßΓ᫬ »ÑαÑñ
  6644.                                   »ÑτáΓ∞ε                         */
  6645.         TEXTMETRIC TextMetric; /* ¿¡Σ«α¼áµ¿∩ « αẼÑαÑ ß¿¼ó«½á    */
  6646.         POINT PhysPageSize;    /* ¿¡Σ«α¼áµ¿∩ « ßΓαá¡¿µÑ           */
  6647.         BOOL bAbort;           /* FALSE, Ñß½¿ »«½∞º«óáΓѽ∞ «Γ¼Ñ¡¿½
  6648.                                   «»Ñαáµ¿ε »ÑτáΓ¿                 */
  6649.         HWND hAbortDlgWnd;
  6650.         FARPROC lpAbortDlg, lpAbortProc;
  6651.  
  6652.              ÅÑαѼѡ¡á∩ hPr   -  φΓ«  ñÑß¬α¿»Γ«α  ¬«¡ΓѬßΓá  πßΓα«⌐ßΓóá
  6653.         »ÑτáΓ¿. Ä¡á »«½πτáÑΓ º¡áτÑ¡¿Ñ,  ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿¿  CreateDC.
  6654.         ÅÑαѼѡ¡δÑ  LineSpace ¿ LinesPerPage ß«ñÑαªáΓ,  ß««ΓóÑΓßΓóÑ¡¡«,
  6655.         ¿¡ΓÑαóá½ ¼Ñªñπ ßΓα«¬á¼¿  ¿  τ¿ß½«  ßΓ᫬,  ¬«Γ«α«Ñ  ¼«ªÑΓ  íδΓ∞
  6656.         ¡á»ÑτáΓá¡«  ¡á ßΓαá¡¿µÑ.  ÅÑαѼѡ¡á∩ CurrentLine - φΓ« ßτÑΓτ¿¬,
  6657.         σαá¡∩Θ¿⌐ ¡«¼Ñα  ßΓ᫬¿  ¡á  ΓѬπΘÑ⌐  ßΓαá¡¿µÑ.  æΓ᫬¿   ΓѬßΓá
  6658.         »ÑτáΓáεΓß∩ »« «ñ¡«⌐.  ÅÑαѼѡ¡á∩ dwLines ß«ñÑαª¿Γ τ¿ß½« ßΓ᫬ ó
  6659.         αÑñá¬Γ¿απѼ«¼ í½«¬Ñ π»αáó½Ñ¡¿∩.  æΓαπ¬Γπαá TextMetric  »«½πτáÑΓ
  6660.         ¿¡Σ«α¼áµ¿ε « Φα¿ΣΓÑ,  ¿ß»«½∞ºπѼ«¼ ñ½∩ »ÑτáΓ¿. é ñá¡¡«¼ »α¿¼ÑαÑ
  6661.         ¿ß»«½∞ºπεΓß∩ Γ«½∞¬«  »«½∩  tmHeight  ¿  tmExternalLeading  φΓ«⌐
  6662.         ßΓαπ¬Γπαδ.  æΓαπ¬Γπαá PhysPageSize »«½πτáÑΓ Σ¿º¿τÑ߬¿Ñ Φ¿α¿¡π ¿
  6663.         óδß«Γπ íπ¼áú¿, ¿ß»«½∞ºπѼ«⌐ »α¿ »ÑτáΓ¿. éδß«Γá ¿ß»«½∞ºπÑΓß∩ ñ½∩
  6664.         «»αÑñѽѡ¿∩  τ¿ß½á  ßΓ᫬,  ¬«Γ«αδÑ  ¼«úπΓ  íδΓ∞  «Γ»ÑτáΓá¡δ ¡á
  6665.         ßΓαá¡¿µÑ.
  6666.                              12.8.3  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_PRINT.           
  6667.  
  6668.              ä½∩ óδ»«½¡Ñ¡¿∩   «»Ñαᵿ¿   »ÑτáΓ¿   ¡Ñ«íσ«ñ¿¼«   ñ«íáó¿Γ∞
  6669.         Σαáú¼Ñ¡Γ IDM_PRINT  ¬  «íαáí«Γ¬Ñ  WM_COMMAND ó «ß¡«ó¡«⌐ Σπ¡¬µ¿¿
  6670.         «¬¡á. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  6671.  
  6672.           case IDM_PRINT:
  6673.             hPr = GetPrinterDC();
  6674.             if (!hPr) {
  6675.                sprintf(str, "ìѽ∞º∩ αáß»ÑτáΓáΓ∞ &s.", FileName);
  6676.                MessageBox(hWnd, str, NULL, MB_OK | MB_ICONHAND);
  6677.                break;
  6678.             }
  6679.             lpAbortDlg = MakeProcInstance(AbortDlg, hInst);
  6680.             lpAbortProc = MakeProcInstance(AbortProc, hInst);
  6681.             Escape(hPr, SETABORTPROC, NULL,
  6682.  
  6683.        Windows 3.0/pg/2#3                                       = 126 =
  6684.  
  6685.                  (LPSTR) (long) lpAbortProc, (LPSTR) NULL);
  6686.             if (Escape(hPr, STARTDOC,  15,  "ÆÑ¬ßΓ PrntFile",
  6687.                      (LPSTR) NULL < 0) {
  6688.                 MessageBox(hWnd, "ìÑ󫺼«ª¡« ¡áτáΓ∞ »ÑτáΓ∞",
  6689.                     NULL, MB_OK | MB_ICONHAND);
  6690.                 FreeProcInstance(AbortDlg);
  6691.                 FreeProcInstance(AbortProc);
  6692.                 DeleteDC(hPr);
  6693.                 return (NULL);
  6694.             }
  6695.  
  6696.             bAbort = FALSE;           /* ßíα«ß¿Γ∞ Σ½áú »αÑαδóá¡¿∩ */
  6697.             hAbortDlgWnd = CreateDialog(hInst, "AbortDlg", hWnd,
  6698.                                  lpAbortDlg);
  6699.             ShowWindow(hAbortDlgWnd,SW_NORMAL);
  6700.             UpdateWindow(hAbortDlgWnd);
  6701.             EnableWindow(hWnd, FALSE);
  6702.             GetTextMetrics(hPr, &TextMetrics);
  6703.             LineSpace = TextMetric.tmHeight
  6704.               + TextMetric.tmExternalLeading;
  6705.             Escape(hPr, GETPHYSPAGESIZE, NULL, (LPSTR) NULL,
  6706.                  (LPSTR) &PhysPageSize);
  6707.             LinesPerPage = PhysPageSize.y / LineSpace;
  6708.             dwLines = SendMessage(hEditWnd, EM_GETLINECOUNT, 0, 0L);
  6709.             CurrentLine = 1;
  6710.             for (dwindex = IOStatus = 0; dwIndex < dwLines;
  6711.                                          dwIndex++) {
  6712.                 pLine[0] = 128;     /* ¼á¬ß¿¼á½∞¡δ⌐ αẼÑα íπΣÑαá */
  6713.                 pLine[1] = 0;
  6714.                 LineLength = SendMessage(hEditWnd, EM_GETLINE,
  6715.                     (WORD) dwIndex, (LONG) ((LPSTR) pLine));
  6716.                 TextOut(hPr, 0, CurrentLine*LineSpace,
  6717.                     (LPSTR) pLine, LineLength);
  6718.                 if (++CurrentLine > LinesPerPage) {
  6719.                     Escape(hPr,NEWFRAME,0,0L,0L);
  6720.                     CurrentLine = 1;
  6721.                     IOStatus = Escape(hPr, NEWFRAME, 0, 0L, 0L);
  6722.                     if (IOStatus < 0) || bAbort)
  6723.                         break;
  6724.                 }
  6725.             }
  6726.  
  6727.             if (IOStatus >= 0 && !bAbort) {
  6728.                 Escape(hPr, NEWFRAME, 0, 0L, 0L);
  6729.                 Escape(hPr, ENDDOC, 0, 0L, 0L);
  6730.             }
  6731.             EnableWindow(hWnd, TRUE);
  6732.             DestroyWindow(hAbortDlgWnd);
  6733.             FreeProcInstance(AbortDlg);
  6734.             FreeProcInstance(AbortProc);
  6735.             DeleteDC(hPr);
  6736.             break;
  6737.  
  6738.  
  6739.        Windows 3.0/pg/2#3                                       = 127 =
  6740.  
  6741.              ï«¬á½∞¡« «»αÑñѽѡ¡á∩  Σπ¡¬µ¿∩ GetPrinterDC »α«óÑα∩ÑΓ Σá⌐½
  6742.         win.ini ¡á ¡á½¿τ¿Ñ ñá¡¡δσ « ΓѬπΘѼ »α¿¡ΓÑαÑ ¿ ß«ºñáÑΓ ¬«¡ΓѬßΓ
  6743.         πßΓα«⌐ßΓóá  »ÑτáΓ¿.  àß½¿ ΓѬπΘÑú« »α¿¡ΓÑαá ¡Ñ ßπΘÑßΓóπÑΓ,  ¿½¿
  6744.         ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ¡Ñ ¼«ªÑΓ íδΓ∞  ß«ºñá¡,  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ
  6745.         NULL  ¿  «íαáí«Γ¬á  ºá¬á¡τ¿óáÑΓß∩  ß óδñáτÑ⌐ »αÑñπ»αѪñÑ¡¿∩.  é
  6746.         »α«Γ¿ó¡«¼  ß½πτáÑ  Σπ¡¬µ¿∩  MakeProcInstance   ß«ºñáÑΓ   áñαÑßá
  6747.         φ¬ºÑ¼»½∩αá  »α«µÑñπαδ  ñ½∩  Σπ¡¬µ¿¿  ñ¿á½«úá AbortDlg ¿ Σπ¡¬µ¿¿
  6748.         AbortProc. Åáαá¼ÑΓα  SETABORTPROC,   ¿ß»«½∞ºπѼδ⌐   ó   Σπ¡¬µ¿¿
  6749.         Escape,  πßΓá¡áó½¿óáÑΓ  Σπ¡¬µ¿ε  »αÑαδóá¡¿∩.  Åáαá¼ÑΓα STARTDOC
  6750.         «º¡áτáÑΓ ¡áτὫ  «»Ñαᵿ¿  »ÑτáΓ¿  ¿  πßΓá¡áó½¿óáÑΓ  »ÑτáΓáѼδ⌐
  6751.         ºáú«½«ó«¬ («Γ«íαáªáÑΓß∩  ó  »α«úαἼѠ PrintManager).  àß½¿ »α¿
  6752.         φΓ«¼ »α«¿ßσ«ñ¿Γ «Φ¿í¬á,  Σπ¡¬µ¿∩  FreeProcInstance  «ßó«í«ªñáÑΓ
  6753.         φ¬ºÑ¼»½∩αδ  »α«µÑñπα  AbortDlg ¿ AbortProc,  á Σπ¡¬µ¿∩ DeleteDC
  6754.         πñá½∩ÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »ÑαÑñ «¬«¡τ᡿Ѽ «íαáí«Γ¬¿.
  6755.  
  6756.              öπ¡¬µ¿∩ CreateDialog ß«ºñáÑΓ »á¡Ñ½∞  ñ¿á½«úá  AbortDlg,  á
  6757.         Σπ¡¬µ¿∩  Enable  Window  ñѽáÑΓ ¡Ññ«ßΓπ»¡δ¼ «ß¡«ó¡«Ñ «¬¡«.  ¥Γ«
  6758.         πñÑনóáÑΓ »«½∞º«óáΓѽ∩ «Γ »«»δΓ«¬ αáí«ΓáΓ∞ ó «ß¡«ó¡«¼ «¬¡Ñ  ó«
  6759.         óαѼ∩ »ÑτáΓ¿.  Äñ¡á¬«, «¡ ¼«ªÑΓ »α«ñ«½ªáΓ∞ αáí«ΓáΓ∞ ß ¡Ñ¬«Γ«α«⌐
  6760.         ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐.
  6761.  
  6762.              Å«ß¬«½∞¬π αÑñá¬Γ¿απѼδ⌐ í½«¬  π»αáó½Ñ¡¿∩  ¼«ªÑΓ  ß«ñÑαªáΓ∞
  6763.         í«½ÑÑ  «ñ¡«⌐ ßΓ᫬¿,  ó᪡« «íÑß»Ñτ¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿⌐ ¿¡ΓÑαóá½
  6764.         ¼Ñªñπ ßΓα«¬á¼¿,  τΓ«íδ «ñ¡á  ßΓα«¬á  ¡Ñ  ¡á»«½ºá½á  ¡á  ñαπúπε.
  6765.         öπ¡¬µ¿∩ GetTextMetrics  »«½πτáÑΓ  ¿¡Σ«α¼áµ¿ε  «  ΓѬπΘѼ Φα¿ΣΓÑ
  6766.         Γá¬πε,  ¡á»α¿¼Ñα,  ¬á¬ óδß«Γá ¿ ó¡ÑΦ¡¿⌐ αáºαδó,  ¬«Γ«αá∩  ¼«ªÑΓ
  6767.         íδΓ∞  ¿ß»«½∞º«óá¡á  ñ½∩  óδτ¿ß½Ñ¡¿∩ »αáó¿½∞¡«ú« ¿¡ΓÑαóá½á ¼Ñªñπ
  6768.         ßΓα«¬á¼¿.  éδß«Γá - φΓ«  ¼á¬ß¿¼á½∞¡á∩  óδß«Γá  ß¿¼ó«½á  Φα¿ΣΓá.
  6769.         é¡ÑΦ¡¿⌐  αáºαδó  -  φΓ«  αѬ«¼Ñ¡ñπѼδ⌐ »α«¼ÑªπΓ«¬,  ñ«»«½¡∩εΘ¿⌐
  6770.         óδß«Γπ  ¿  ß½πªáΘ¿⌐  ñ½∩  αáºñѽѡ¿∩  ßΓ᫬   ΓѬßΓá,   ¬«Γ«αδÑ
  6771.         ¿ß»«½∞ºπεΓ   ñá¡¡δ⌐   Φα¿ΣΓ.   îѪßΓα«τ¡δ⌐  ¿¡ΓÑαóá½,  óѽ¿τ¿¡π
  6772.         ¬«Γ«α«ú« ß«ñÑαª¿Γ  »ÑαѼѡ¡á∩  LineSpace,  -  φΓ«  ßπ¼¼á  »«½Ñ⌐
  6773.         óδß«Γδ    ¿    ó¡ÑΦ¡Ñú«    αáºαδóá    (TextMetric.tmHeight    ¿
  6774.         TextMetric.tmExternalLeading).
  6775.  
  6776.              Å«ß¬«½∞¬π αÑñá¬Γ¿απѼδ⌐ í½«¬  π»αáó½Ñ¡¿∩  ¼«ªÑΓ  ß«ñÑαªáΓ∞
  6777.         í«½∞ΦÑ   ßΓ᫬,   τѼ   ó¼ÑΘáÑΓß∩   ¡á  «ñ¡«⌐  ßΓαá¡¿µÑ,  ó᪡«
  6778.         «»αÑñѽ¿Γ∞,  ß¬«½∞¬« ßΓ᫬ ¼«ªÑΓ αẼÑΘáΓ∞ß∩ ¡á ßΓαá¡¿µÑ. è«úñá
  6779.         φΓ«  ¬«½¿τÑßΓó«  ßΓ᫬  íπñÑΓ ¡á»ÑτáΓá¡«,  »α«¿º«⌐ñÑΓ »ÑαÑσ«ñ ¬
  6780.         ß½ÑñπεΘÑ⌐   ßΓαá¡¿µÑ.   ô»αáó½∩εΘá∩   Σπ¡¬µ¿∩   ß    »áαá¼ÑΓα«¼
  6781.         GETPHYSPAGESIZE »«½πτáÑΓ Σ¿º¿τÑ߬¿Ñ αẼÑαδ ßΓαá¡¿µδ ¿ ¬«»¿απÑΓ
  6782.         ¿σ  ó  ßΓαπ¬Γπαπ  PhysPageSize,  ß«ñÑαªáΘπε  Φ¿α¿¡π  ¿   óδß«Γπ
  6783.         ßΓαá¡¿µδ.  ù¿ß½«  ßΓ᫬  ¡á  ßΓαá¡¿µÑ,  »α¿ßó«Ñ¡¡«Ñ  »ÑαѼѡ¡«⌐
  6784.         LinesPerPage, -  φΓ«  τáßΓ¡«Ñ  «Γ  ñѽѡ¿∩  Σ¿º¿τÑ߬«⌐   óδß«Γδ
  6785.         ßΓαá¡¿µδ PhysPageSize.y ¡á ¼ÑªßΓα«τ¡δ⌐ ¿¡ΓÑαóá½ LineSpace.
  6786.  
  6787.              öπ¡¬µ¿∩ TextOut  ¼«ªÑΓ  »ÑτáΓáΓ∞  ºá «ñ¡« «íαáΘÑ¡¿Ñ Γ«½∞¬«
  6788.         «ñ¡π ßΓ᫬π,  ΓᬠτΓ« ñ½∩ »ÑτáΓ¿  ¡Ñ߬«½∞¬¿σ  ßΓ᫬  ¡Ñ«íσ«ñ¿¼«
  6789.         «αúá¡¿º«óáΓ∞ µ¿¬½ ß «»ÑαáΓ«α«¼ for.  æ««íΘÑ¡¿Ñ EM_GETLINECOUNT,
  6790.         »«ß½á¡¡«Ñ αÑñá¬Γ¿απѼ«¼π í½«¬π  π»αáó½Ñ¡¿∩  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  6791.         SendMessage,   ó«ºóαáΘáÑΓ  τ¿ß½«  ßΓ᫬,  ¬«Γ«α«Ñ  ñ«½ª¡«  íδΓ∞
  6792.         «Γ»ÑτáΓá¡«,  ¿ «»αÑñѽ∩ÑΓ τ¿ß½« »α«σ«ªñÑ¡¿⌐ µ¿¬½á.  Åα¿  ¬áªñ«¼
  6793.         óδ»«½¡Ñ¡¿¿   µ¿¬½á  ß««íΘÑ¡¿Ñ  EM_GETLINE  ¬«»¿απÑΓ  ß«ñÑαªá¡¿Ñ
  6794.  
  6795.        Windows 3.0/pg/2#3                                       = 128 =
  6796.  
  6797.         ßΓ᫬¿  ¿º  αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩  ó  íπΣÑα  pLine.
  6798.         æτÑΓτ¿¬  µ¿¬½á  index  ¿ß»«½∞ºπÑΓß∩ ß ß««íΘÑ¡¿Ñ¼ EM_GETLINE ñ½∩
  6799.         «»αÑñѽѡ¿∩ ßΓ᫬¿,   ¬«Γ«αá∩   ñ«½ª¡á   íδΓ∞    »«½πτѡᠠ  ¿º
  6800.         αÑñá¬Γ¿απѼ«ú«  í½«¬á  π»αáó½Ñ¡¿∩.  æ««íΘÑ¡¿Ñ  EM_GETLINE ΓᬪÑ
  6801.         ºáßΓáó½∩ÑΓ Σπ¡¬µ¿ε  SendMessage  óÑα¡πΓ∞  ñ½¿¡π  ßΓ᫬¿.  ä½¿¡á
  6802.         »α¿ßóá¿óáÑΓß∩ »ÑαѼѡ¡«⌐ LineLength.
  6803.  
  6804.              Å«ß½Ñ Γ«ú«, ¬á¬ ßΓ᫬á ß¬«»¿α«óá¡á ¿º αÑñá¬Γ¿απѼ«ú« í½«¬á
  6805.         π»αáó½Ñ¡¿∩,  «¡á  »ÑτáΓáÑΓß∩   ß   »«¼«Θ∞ε   Σπ¡¬µ¿¿   TextOut.
  6806.         Åα«¿ºóÑñÑ¡¿Ñ  »ÑαѼѡ¡δσ  CurrentLine  ¿ LineSpacing «»αÑñѽ∩ÑΓ
  6807.         ¬««αñ¿¡áΓπ  ßΓ᫬¿  ¡á  ßΓαá¡¿µÑ  »«  «ß¿   π.   è««αñ¿¡áΓá   ò
  6808.         πßΓá¡áó½¿óáÑΓß∩ ó ¡π½∞. Å«ß½Ñ óδó«ñá ßΓ᫬¿ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐
  6809.         CurrentLine πóѽ¿τ¿óáÑΓß∩  ¡á  1.  àß½¿  óѽ¿τ¿¡á   CurrentLine
  6810.         ßΓá¡«ó¿Γß∩ í«½∞ΦÑ LinesPerPage,  ¡Ñ«íσ«ñ¿¼« »ÑαÑ⌐Γ¿ ¬ ß½ÑñπεΘÑ⌐
  6811.         ßΓαá¡¿µÑ.  ÆÑ¬ßΓ, «Γ»ÑτáΓá¡¡δ⌐ ºá Σ¿º¿τÑ߬«⌐ úαá¡¿µÑ⌐ ßΓαá¡¿µδ,
  6812.         «íαѺáÑΓß∩.     ÇóΓ«¼áΓ¿τÑ߬«Ñ    »α«ñó¿ªÑ¡¿Ñ    ßΓαá¡¿µδ    ¡Ñ
  6813.         »«ññÑনóáÑΓß∩,  ΓᬠτΓ« ó᪡« σαá¡¿Γ∞ τ¿ß½« «Γ»ÑτáΓá¡¡δσ ßΓ᫬
  6814.         ¡á  ßΓαá¡¿µÑ  ¿  ¿ß»«½∞º«óáΓ∞  π»αáó½∩εΘπε Σπ¡¬µ¿ε ß »áαá¼ÑΓα«¼
  6815.         NEWFRAME  ñ½∩  »α«ñó¿ªÑ¡¿∩  ¬   ¡«ó«⌐   ßΓαá¡¿µÑ,   ¬«úñá   φΓ«
  6816.         ¡Ñ«íσ«ñ¿¼«. àß½¿ ó« óαѼ∩ »ÑτáΓ¿ »α«¿º«⌐ñÑΓ «Φ¿í¬á, π»αáó½∩εΘá∩
  6817.         Σπ¡¬µ¿∩  ß  »áαá¼ÑΓα«¼  NEWFRAME  ó«ºóαáΓ¿Γ  ¡«¼Ñα   «Φ¿í¬¿   ¿
  6818.         «íαáí«Γ¬á ºá¬«¡τ¿Γß∩.
  6819.  
  6820.              Å«ß½Ñ Γ«ú«,  ¬á¬  ßΓ᫬¿  αÑñá¬Γ¿απѼ«ú«  í½«¬á π»αáó½Ñ¡¿∩
  6821.         «Γ»ÑτáΓá¡δ,  π»αáó½∩εΘá∩ Σπ¡¬µ¿∩ ß NEWFRAME »α«ñó¿¡ÑΓ »«ß½Ññ¡εε
  6822.         ßΓαá¡¿µπ,  á  π»αáó½∩εΘá∩  Σπ¡¬µ¿∩  ß π¬áºá¡¿Ñ¼ ENDDOC ºáóÑαΦ¿Γ
  6823.         ºá»α«ß ¡á »ÑτáΓ∞.  öπ¡¬µ¿∩ DeleteDC πñá½¿Γ ¬«¡ΓѬßΓ  πßΓα«⌐ßΓóá
  6824.         »ÑτáΓ¿,  »«ß¬«½∞¬π «¡ í«½∞ΦÑ ¡Ñ ¡πªÑ¡,  á Σπ¡¬µ¿∩ DestroyWindow
  6825.         αáºαπΦ¿Γ »á¡Ñ½∞ ñ¿á½«úá AbortDlg.
  6826.                         12.8.4  æ«ºñá¡¿Ñ Σπ¡¬µ¿⌐ AbortDlg ¿ AbortProc.         
  6827.  
  6828.              ä½∩ »«ññÑ᪬¿ »α«µÑßßá »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼«  ß«ºñáΓ∞  Σπ¡¬µ¿¿
  6829.         AbortDlg  ¿  AbortProc.  öπ¡¬µ¿∩  ñ¿á½«úá AbortDlg «íÑß»Ñτ¿óáÑΓ
  6830.         »«ññÑ᪬π »á¡Ñ½¿ ñ¿á½«úá AbortDlg,  ¬«Γ«αá∩  »«∩ó½∩ÑΓß∩,  ¬«úñá
  6831.         ¡áτ¿¡áÑΓß∩ »ÑτáΓ∞. Åá¡Ñ½∞ ñ¿á½«úá ñáÑΓ ó«º¼«ª¡«ßΓ∞ »«½∞º«óáΓѽε
  6832.         «Γ¼Ñ¡¿Γ∞  «»Ñαáµ¿ε  »ÑτáΓ¿,  Ñß½¿   φΓ«   ¡Ñ«íσ«ñ¿¼«.   öπ¡¬µ¿∩
  6833.         AbortProc  «íαáíáΓδóáÑΓ  ß««íΘÑ¡¿∩,  »αÑñ¡áº¡áτÑ¡¡δÑ ñ½∩ »á¡Ñ½¿
  6834.         ñ¿á½«úá   AbortDlg,   ¿   ºáóÑαΦáÑΓ   «»Ñαáµ¿ε   »ÑτáΓ¿,   Ñß½¿
  6835.         »«½∞º«óáΓѽ∞ ºá»α«ß¿½ ÑÑ «Γ¼Ñ¡π.
  6836.  
  6837.              öπ¡¬µ¿∩ ñ¿á½«úá  AbortDlg πßΓá¡áó½¿óáÑΓ ºáσóáΓ óó«ñá ¿ ¿¼∩
  6838.         »ÑτáΓáѼ«ú« Σá⌐½á.  Ä¡á ΓᬪѠπßΓá¡áó½¿óáÑΓ »ÑαѼѡ¡πε bAbort ó
  6839.         º¡áτÑ¡¿Ñ TRUE,   Ñß½¿  »«½∞º«óáΓѽ∞  óδí¿αáÑΓ  ¬½áó¿Φπ  Cancel.
  6840.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
  6841.  
  6842.              int FAR PASCAL AbortDlg(hDlg, msg, wParam, lParam)
  6843.              HWND hDlg;
  6844.              unsigned msg;
  6845.              WORD wParam;
  6846.              LONG lParam;
  6847.              {
  6848.                  switch (msg) {
  6849.  
  6850.        Windows 3.0/pg/2#3                                       = 129 =
  6851.  
  6852.                     case WM_COMMAND:
  6853.                         return (bAbort = TRUE);
  6854.  
  6855.                     case WM_INITDIALOG:
  6856.                         SetFocus(GetDlgItem(hDlg, IDCANCEL));
  6857.                         SetDlgItemText(hDlg, ID_FILENAME, FileName);
  6858.                         return (TRUE);
  6859.                  }
  6860.                  return (FALSE);
  6861.              }
  6862.  
  6863.              öπ¡¬µ¿∩ AbortProc »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ  ß««íΘÑ¡¿⌐  ó  «τÑαÑñ¿
  6864.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ  ¿  ¡á»αáó½∩ÑΓ ¿σ Σπ¡¬µ¿¿ ñ¿á½«úá AbortDlg
  6865.         ¿½¿ ñαπú¿¼  «¬¡á¼  »α«úαá¼¼δ.  àß½¿  «ñ¡«  ¿º  φΓ¿σ   ß««íΘÑ¡¿⌐
  6866.         π¬áºδóáÑΓ Σπ¡¬µ¿¿ ñ¿á½«úá AbortDlg πßΓá¡«ó¿Γ∞ »ÑαѼѡ¡πε bAbort
  6867.         ó TRUE,  Σπ¡¬µ¿∩ AbortProc ó«ºóαáΘáÑΓ φΓ«  º¡áτÑ¡¿Ñ,  ºáßΓáó½∩∩
  6868.         Windows «ßΓá¡«ó¿Γ∞ Σπ¡¬µ¿ε »ÑτáΓ¿. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ
  6869.         ¬ ¿ßσ«ñ¡«¼π æ¿-Σá⌐½π:
  6870.  
  6871.         int FAR PASCAL AbortProc(hPr, Code)
  6872.         HDC hPr;                        /* ñ½∩ ¼¡«ªÑßΓóá èÄ »α¿¡ΓÑαá */
  6873.         int Code;                       /* ñ½∩ ß«ßΓ«∩¡¿∩ »ÑτáΓ¿ */
  6874.         {
  6875.             MSG msg;
  6876.  
  6877.             while (!bAbort && PeekMessage(&msg, NULL, NULL, NULL,
  6878.                                           TRUE))
  6879.                 if (!IsDialogMessage(hAbortDlgWnd, &msg)) {
  6880.                     TranslateMessage(&msg);
  6881.                     DispatchMessage(&msg);
  6882.                 }
  6883.             return (!bAbort);
  6884.         }
  6885.                             12.8.5  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ GetPrinterDC.           
  6886.  
  6887.              ä½∩ »«ññÑ᪬¿  «»Ñαᵿ¿  »ÑτáΓ¿  ¡Ñ«íσ«ñ¿¼«  ñ«íáó¿Γ∞  φΓπ
  6888.         Σπ¡¬µ¿ε ¬  ¿ßσ«ñ¡«¼π  æ-Σá⌐½π.  öπ¡¬µ¿∩  GetPrinterDC  »«½πτáÑΓ
  6889.         ß«ñÑন¼«Ñ »«½∩  "device"  ¿º  αáºñѽá [windows] Σá⌐½á win.ini,
  6890.         αáºñѽ∩ÑΓ  φΓ«  ß«ñÑন¼«Ñ  ¡á  «Γñѽ∞¡δÑ  ¬«¼»«¡Ñ¡Γδ  ¿  ºáΓѼ
  6891.         ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »ÑτáΓ¿,  ¿ß»«½∞ºπ∩ ¿¼∩ πßΓα«⌐ßΓóá ¿
  6892.         Γ¿» »α¿¡ΓÑαá,  ºáñá¡¡δ⌐ ó ß«ñÑন¼«¼ »«½∩.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿Ñ
  6893.         «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
  6894.  
  6895.              HANDLE GetPrinterDC()
  6896.              {
  6897.                  char pPrintInfo[80];
  6898.                  LPSTR lpTemp;
  6899.                  LPSTR lpPrintType;
  6900.                  LPSTR lpPrintDriver;
  6901.                  LPSTR lpPrintPort;
  6902.  
  6903.                  if (!GetProfileString("windows", "device",
  6904.  
  6905.        Windows 3.0/pg/2#3                                       = 130 =
  6906.  
  6907.                          (LPSTR) "", pPrintInfo, 80))
  6908.                      return (NULL);
  6909.                  lpTemp = lpPrintType = lpPrintInfo;
  6910.                  lpPrintDriver = lpPrintPort = 0;
  6911.                  while (*lpTemp) {
  6912.                      if (*lpTemp == ',') {
  6913.                          *lpTemp++ = 0;
  6914.                          while (*lpTemp == ' ')
  6915.                              lpTemp = AnsiNext(lpTemp);
  6916.                          if (!lpPrintDriver)
  6917.                              lpPrintDriver = lpTemp;
  6918.                          else {
  6919.                              lpPrintPort = lpTemp;
  6920.                              break;
  6921.                          }
  6922.                      }
  6923.                      else
  6924.                         lpTemp = AnsiNext(lpTemp);
  6925.                  }
  6926.                  return (CreateDC(lpPrintDriver, lpPrintType,
  6927.  
  6928.                             lpPrintPort, (LPSTR) NULL));
  6929.              }
  6930.  
  6931.              ä½∩ αáºñѽѡ¿∩  »«½∩  "device" ¡á Γα¿ ¬«¼»«¡Ñ¡Γδ,  Σπ¡¬µ¿∩
  6932.         AnsiNext óδí¿αáÑΓ ¿º ¡Ñú« »« «ñ¡«¼π ß¿¼ó«½π ºá «íαáΘÑ¡¿Ñ.
  6933.                                                                                
  6934.             12.8.6  ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ AbortDlg ¿ AbortProc.
  6935.  
  6936.              ìÑ«íσ«ñ¿¼« ó  Σá⌐½Ñ  «»αÑñѽѡ¿∩  ¼«ñπ½∩  óáΦÑ⌐  »α«úαá¼¼δ
  6937.         «»¿ßáΓ∞ Σπ¡¬µ¿¿  AbortDlg  ¿ AbortProc ¬á¬ φ¬ß»«αΓ¿απѼδÑ.  ä½∩
  6938.         φΓ«ú« ñ«íáó∞ΓÑ ó Σá⌐½ «»αÑñѽѡ¿∩  ¼«ñπ½∩  ß½ÑñπεΘ¿Ñ  ßΓ᫬¿  ó
  6939.         αáºñѽ EXPORTS:
  6940.  
  6941.              AbortDlg      @5;  éδºδóáÑΓß∩, ¬«úñá »«½∞º«óáΓѽ∞ »αÑαδ-
  6942.                              ;  óáÑΓ «»Ñαáµ¿ε »ÑτáΓ¿.
  6943.              AbortProc     @6;  ÄíαáíáΓδóáÑΓ ß««íΘÑ¡¿∩, »αÑñ¡áº¡áτÑ¡¡δÑ
  6944.                              ;  ñ½∩ »á¡Ñ½¿ ñ¿á½«úá Abort.
  6945.                                                                                
  6946.                       12.6.7  è«¼»¿½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
  6947.  
  6948.              é Σá⌐½Ñ    make    ¡Ñ   ΓαÑíπÑΓß∩   »α«ó«ñ¿Γ∞   ¿º¼Ñ¡Ñ¡¿⌐.
  6949.         ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ  »α¿¬½áñ¡πε  »α«úαá¼¼π,  ºá»πßΓ¿ΓÑ
  6950.         Windows ¿ »α«úαá¼¼π PrntFile,  óδ  πó¿ñ¿ΓÑ,  τΓ«  ¬  ¼Ñ¡ε  File
  6951.         ñ«íáó½Ñ¡á ¬«¼á¡ñá  Print.  éδ  ¼«ªÑΓÑ  »ÑτáΓáΓ∞  ß¡áτá½á «Γ¬αδó
  6952.         Σá⌐½ ¿½¿ »α«ßΓ« ¡áíαáΓ∞ ΓѬßΓ  ß  ¬½áó¿áΓπαδ  ¿  ºáΓѼ  óδíαáΓ∞
  6953.         ¬«¼á¡ñπ Print.
  6954.                                               12.9  çᬽετÑ¡¿Ñ.                
  6955.  
  6956.              é ñá¡¡«⌐  ú½áóÑ «»¿ßá¡«,  ¬á¬ «ßπΘÑßΓó½∩Γ∞ óδó«ñ ¡á »ÑτáΓ∞
  6957.         »α¿ αáí«ΓÑ ó ßαÑñÑ Windows.  é ßαÑñÑ Windows óáΦá »α«úαἼᠠ¡Ñ
  6958.         ¿¼ÑÑΓ  ñѽ«  ß  ßἿ¼  »α¿¡ΓÑα«¼.  ÅÑτáΓ∞  «ßπΘÑßΓó½∩ÑΓß∩ »πΓѼ
  6959.  
  6960.        Windows 3.0/pg/2#3                                       = 131 =
  6961.  
  6962.         »«ß佬¿  ¿¡Σ«α¼áµ¿¿  ¬«¡ΓѬßΓπ  πßΓα«⌐ßΓóá  »ÑτáΓ¿.  Åਪ½áñ¡á∩
  6963.         »α«úαἼᠠóºá¿¼«ñÑ⌐ßΓóπÑΓ  ß  »α¿¡ΓÑα«¼  ß »«¼«Θ∞ε π»αáó½∩εΘ¿σ
  6964.         »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐.
  6965.  
  6966.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« »ÑτáΓ¿  óδ  ¡á⌐ñÑΓÑ
  6967.         ó:
  6968.  
  6969.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  6970.         ───────────────────────────────────────────────────────────────
  6971.         è«¡ΓѬßΓ πßΓα«⌐ßΓóá  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 3, "éδó«ñ
  6972.                              ó «¬¡«".
  6973.  
  6974.         ô»αáó½Ñ¡¿Ñ »áαá¼ÑΓ-  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 17, "Åáαá-
  6975.         αἿ »α¿¡ΓÑαá        ¼ÑΓαδ »α¿¡ΓÑαá".
  6976.  
  6977.         êß»«½∞º«óá¡¿Ñ        Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 18,
  6978.         Φα¿ΣΓ«ó              "ÿα¿ΣΓδ".
  6979.  
  6980.         öπ¡¬µ¿¿ αáí«Γδ ß     æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: â½áóá 2,
  6981.         ¬«¡ΓѬßΓἿ          "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó"
  6982.         πßΓα«⌐ßΓó            ¿ ú½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
  6983.  
  6984.  
  6985.  
  6986.        Windows 3.0/pg/2#3                                       = 132 =
  6987.  
  6988.                                        â½áóá 13. æ¿ßΓѼ¡δ⌐ íπΣÑα.              
  6989.        ----------------------------------------------------------------
  6990.              æ¿ßΓѼ¡δ⌐ íπΣÑα »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßαÑñßΓó« «í¼Ñ¡á ñá¡¡δ¼¿
  6991.         ó ßαÑñÑ Windows.  ¥Γ« «íΘá∩ «í½áßΓ∞ ñ½∩  σαá¡Ñ¡¿∩  ñÑß¬α¿»Γ«α«ó
  6992.         ñá¡¡δσ, τÑαѺ  ¬«Γ«απε  »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¼«úπΓ «í¼Ñ¡¿óáΓ∞ß∩
  6993.         Σ«α¼áΓ¿α«óá¡¡δ¼¿ ñá¡¡δ¼¿.  æ¿ßΓѼ¡δ⌐ íπΣÑα  ß«ñÑαª¿Γ  ¡Ñ¬«Γ«α«Ñ
  6994.         τ¿ß½«   Σ«α¼áΓ«ó   ñá¡¡δσ   ¿   ß««ΓóÑΓßΓóπεΘ¿σ   ñÑß¬α¿»Γ«α«ó,
  6995.         »αÑñßΓáó½∩εΘ¿σ   φΓ¿   ñá¡¡δÑ,   ¡«   ó   αẽ¿τ¡δσ   Σ«α¼áΓáσ,
  6996.         »«ññÑনóáѼδσ   »α¿¬½áñ¡«⌐   »α«úαá¼¼«⌐.   ìá»α¿¼Ñα,  ¬απú«óá∩
  6997.         ñ¿áúαἼᠠ¼«ªÑΓ  σαá¡¿Γ∞ß∩  ó  ß¿ßΓѼ¡«¼  íπΣÑαÑ  ¬á¬  ó  ó¿ñÑ
  6998.         ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á, Γᬠ¿ ó ó¿ñÑ αáßΓα«ó«⌐ ¬áαΓδ. Åਪ½áñ¡á∩
  6999.         »α«úαá¼¼á, ó¬½ετáεΘá∩ ¬απú«óπε ñ¿áúαá¼¼π, ñ«½ª¡á «»αÑñѽ¿Γ∞ Γ¿»
  7000.         »αÑñßΓáó½Ñ¡¿∩.    ÄíΘ¿¼    »αá󿽫¼    ∩ó½∩ÑΓß∩   ¿ß»«½∞º«óá¡¿Ñ
  7001.         »αÑñßΓáó½Ñ¡¿∩ ß  í«½∞ΦÑ⌐  ¿¡Σ«α¼áΓ¿ó¡«ßΓ∞ε,   Ñß½¿   »α¿¬½áñ¡á∩
  7002.         »α«úαἼᠻ«ññÑনóáÑΓ Γᬫ⌐ Σ«α¼áΓ.
  7003.  
  7004.              é ñá¡¡«¼  αáºñѽѠ »«∩ß¡∩ÑΓß∩,  ¬á¬ ¿ß»«½∞º«óáΓ∞ ß¿ßΓѼ¡δ⌐
  7005.         íπΣÑα ñ½∩ Γ«ú«, τΓ«íδ:
  7006.  
  7007.              - æ¬«»¿α«óáΓ∞ ΓѬßΓ ó ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7008.  
  7009.              - éßΓáó¿Γ∞ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
  7010.  
  7011.              - æ¬«»¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ ó ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7012.  
  7013.              - éßΓáó¿Γ∞ αáßΓα«óπε ¬áαΓπ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
  7014.  
  7015.              - êß»«½∞º«óáΓ∞ µÑ»«τ¬π ¡áí½εñÑ¡¿∩ ºá ß¿ßΓѼ¡δ¼ íπΣÑα«¼.
  7016.  
  7017.              é ñá¡¡«⌐ ú½áóÑ ΓᬪѠ«»¿ßá¡ »α¿¼Ñα  »α¿¬½áñ¡«⌐  »α«úαá¼¼δ,
  7018.         ClipText, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ «»¿ßá¡¡δσ ó ñá¡¡«⌐
  7019.         ú½áóÑ ¼ÑΓ«ñ«ó.
  7020.                               13.1  êß»«½∞º«óá¡¿Ñ ß¿ßΓѼ¡«ú« íπΣÑαá.           
  7021.  
  7022.              ä½∩ ¬«»¿α«óá¡¿∩  ñá¡¡δσ  ó  ß¿ßΓѼ¡δ⌐   íπΣÑα   ¡Ñ«íσ«ñ¿¼«
  7023.         ßΣ«α¼áΓ¿α«óáΓ∞ óδíαá¡¡δÑ ñá¡¡δÑ,  ¿ß»«½∞ºπ∩ ¿½¿ óßΓα«Ñ¡¡δ⌐, ¿½¿
  7024.         ß«íßΓóÑ¡¡δ⌐ Σ«α¼áΓ. ä½∩ í«½∞Φ¿¡ßΓóá Σ«α¼áΓ«ó ¡Ñ«íσ«ñ¿¼« «ΓóÑßΓ¿
  7025.         ú½«íá½∞¡πε  »á¼∩Γ∞  ¿  ß¬«»¿α«óáΓ∞  ó  ¡ÑÑ ñá¡¡δÑ.  çáΓѼ ¡πª¡«
  7026.         ß¬«»¿α«óáΓ∞ ñÑß¬α¿»Γ«α  »á¼∩Γ¿  ó  ß¿ßΓѼ¡δ⌐  íπΣÑα,  ¿ß»«½∞ºπ∩
  7027.         Σπ¡¬µ¿ε SetClipboardData.
  7028.  
  7029.              é »α¿¬½áñ¡δσ  »α«úαá¼¼áσ  Windows  ¬«»¿α«óá¡¿Ñ  ¿  óßΓáó¬á
  7030.         «ßπΘÑßΓó½∩εΓß∩ ß »«¼«Θ∞ε ¬«¼á¡ñ ¼Ñ¡ε Edit.  î«ª¡« ñ«íáó¿Γ∞ ¼Ñ¡ε
  7031.         Edit ¬ »α«úαἼѠΓá¬, ¬á¬ φΓ« «»¿ßá¡« ó ú½áóÑ 7 "îÑ¡ε".
  7032.  
  7033.              Windows »«ññÑনóáÑΓ ¡Ñ߬«½∞¬« óßΓα«Ñ¡¡δσ Σ«α¼áΓ«ó ñá¡¡δσ,
  7034.         ¿ß»«½∞ºπѼδσ »α¿ «í¼Ñ¡Ñ. Äß¡«ó¡δÑ Σ«α¼áΓδ:
  7035.  
  7036.  
  7037.        Windows 3.0/pg/2#3                                       = 133 =
  7038.  
  7039.  
  7040.         ö«α¼áΓ               æ«ñÑন¼«Ñ
  7041.         ──────────────────────────────────────────────────────────────
  7042.         CF_TEXT              Ä¬á¡τ¿óáεΘ¿⌐ß∩ ¡π½Ñ¼ ΓѬßΓ.
  7043.  
  7044.         CF_OEMTEXT           Ä¬á¡τ¿óáεΘ¿⌐ß∩ ¡π½Ñ¼ ΓѬßΓ ó ¡áí«αÑ ß¿¼-
  7045.                              ó«½«ó OEM.
  7046.  
  7047.         CF_METAFILEPICT      æΓαπ¬Γπαá ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á.
  7048.  
  7049.         CF_BITMAP            Ç»»áαáΓ¡«-ºáó¿ß¿¼á∩ αáßΓα«óá∩ ¬áαΓá.
  7050.  
  7051.         CF_DIB               Ç»»áαáΓ¡«-¡Ñºáó¿ß¿¼á∩ αáßΓα«óá∩ ¬áαΓá.
  7052.  
  7053.         CF_SYLK              æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ «í¼Ñ¡á ñá¡¡δ¼¿ SYLK.
  7054.  
  7055.         CF_DIF               æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ «í¼Ñ¡á ñá¡¡δ¼¿ DIF.
  7056.  
  7057.         CF_TIFF              æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ «í¼Ñ¡á ñá¡¡δ¼¿ TIFF.
  7058.         ──────────────────────────────────────────────────────────────
  7059.  
  7060.              è«úñá ñá¡¡δÑ óßΓáó½∩εΓß∩ ¿º ß¿ßΓѼ¡«ú«  íπΣÑαá  ß  »«¼«Θ∞ε
  7061.         Σπ¡¬µ¿¿ GetClipboardData,   ¡πª¡«  ß»Ñµ¿Σ¿µ¿α«óáΓ∞  ñ«íáó½∩Ѽδ⌐
  7062.         Σ«α¼áΓ.  æ¿ßΓѼ¡δ⌐ íπΣÑα  »αÑñ«ßΓáó½∩ÑΓ  ñá¡¡δÑ  Γ«½∞¬«  ó  Γ«¼
  7063.         ß½πτáÑ, Ñß½¿ «¡¿ í뫨 ß¬«»¿α«óá¡δ ó φΓ«¼ Σ«α¼áΓÑ.
  7064.  
  7065.              Windows »«ññÑনóáÑΓ  ñóá  Σ«α¼áΓá  ñ½∩ ΓѬßΓá - CF_TEXT ¿
  7066.         CF_OEMTEXT.  ö«α¼áΓ CF_TEXT ¿ß»«½∞ºπÑΓß∩ »« π¼«½τá¡¿ε.  Windows
  7067.         ¿ß»«½∞ºπÑΓ Σ«α¼áΓ CF_OEMTEXT ñ½∩ ΓѬßΓá ¿º »α¿¬½áñ¡δσ »α«úαá¼¼,
  7068.         ¡Ñ »αÑñ¡áº¡áτÑ¡¡δσ  ñ½∩  Windows.  àß½¿  óδ  óδºδóáÑΓÑ  Σπ¡¬µ¿ε
  7069.         GetClipboardData  ñ½∩  »«½πτÑ¡¿∩  ñá¡¡δσ ó «ñ¡«¼ Σ«α¼áΓÑ,  ó Γ«
  7070.         óαѼ∩ ¬á¬ ñ«ßΓπ»Ñ¡ Γ«½∞¬« ñαπú«⌐ ΓѬßΓ«óδ⌐ Σ«α¼áΓ,  Γ«  Windows
  7071.         áóΓ«¼áΓ¿τÑ߬¿ »αÑ«íαáºπÑΓ  ΓѬßΓ  ó  Σ«α¼áΓ,  ¡Ñ«íσ«ñ¿¼δ⌐ óáΦÑ⌐
  7072.         »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
  7073.  
  7074.              çá¼Ñτá¡¿Ñ: ÄíΩѬΓδ ñá¡¡δσ  ß¿ßΓѼ¡«ú«  íπΣÑαá  ¼«úπΓ  íδΓ∞
  7075.         ½εí«ú« αẼÑαá.  éáΦá  »α«úαἼᠠ߻«ß«í¡á αáí«ΓáΓ∞ ß «íΩѬΓἿ
  7076.         αẼÑα«¼ í«½∞ΦÑ 64è. ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñπ αáí«Γδ
  7077.         ß í«½∞Φ¿¼¿ «íΩѬΓἿ óδ ¡á⌐ñÑΓÑ ó ú½áóÑ 16,  "àΘÑ «í π»αáó½Ñ¡¿¿
  7078.         »á¼∩Γ∞ε".
  7079.                          13.1.1  è«»¿α«óá¡¿Ñ ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα.         
  7080.  
  7081.              é ß¿ßΓѼ¡δ⌐  íπΣÑα  ¼«ª¡«  ß¬«»¿α«óáΓ∞  ¡Ñí«½∞Φπε   ßΓ᫬π
  7082.         ΓѬßΓá. ä½∩ φΓ«ú« ¡Ñ«íσ«ñ¿¼«:
  7083.  
  7084.              1. æ¬«»¿α«óáΓ∞ ßΓ᫬π ó ú½«íá½∞¡πε »á¼∩Γ∞.
  7085.  
  7086.              2. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7087.  
  7088.              3. Äτ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7089.  
  7090.              4. Å«¼ÑßΓ¿Γ∞   ó  ß¿ßΓѼ¡δ⌐  íπΣÑα  ñÑß¬α¿»Γ«α  ú½«íá½∞¡«⌐
  7091.  
  7092.        Windows 3.0/pg/2#3                                       = 134 =
  7093.  
  7094.                 »á¼∩Γ¿.
  7095.  
  7096.              5. çá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7097.  
  7098.              è«»¿α«óá¡¿Ñ ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα »α«¿ßσ«ñ¿Γ ó «ΓóÑΓ ¡á
  7099.         óδí«α  ¬«¼á¡ñδ  Copy  ¿º  ¼Ñ¡ε  Edit.  ä½∩  «íαáí«Γ¬¿ óδíαá¡¡«⌐
  7100.         ¬«¼á¡ñδ  ¿  ¬«»¿α«óá¡¿∩  ßΓ᫬¿  ΓѬßΓá   ó   ß¿ßΓѼ¡δ⌐   íπΣÑα
  7101.         ¡Ñ«íσ«ñ¿¼«   ñ«íáó¿Γ∞   Σαáú¼Ñ¡Γ  WM_COMMAND  ¬  Σπ¡¬µ¿¿  «¬¡á.
  7102.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
  7103.  
  7104.           case WM_COMMAND:
  7105.             switch (wParam) {
  7106.             case IDM_COPY:
  7107.                 if(!(hData = GlobalAlloc(GMEM_MOVEABLE,
  7108.                     GlobalSize(hText)))) {
  7109.                     }
  7110.                 if(!(lpData = GlobalLock(hData))) {
  7111.                     GlobalFree(hData);
  7112.                      OutOfMemory();
  7113.                      return(TRUE);
  7114.                     }
  7115.                 if(!(lpszText = GlobalLock(hText))) {
  7116.                      OutOfMemory();
  7117.                      return(TRUE);
  7118.                     }
  7119.                 lstrcpy(lpData,lpszText);
  7120.                 GlobalUnlock(hData);
  7121.                 GlobalUnlock(hText);
  7122.  
  7123.              /*  «τ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα ¿ πßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α
  7124.                  ¡á ¡«óπε ßΓ᫬π */
  7125.  
  7126.                 if (OpenClipboard(hWnd)) {
  7127.                     EmptyClipboard();
  7128.                     SetClipboardData(CF_TEXT, hData);
  7129.                     CloseClipboard();
  7130.                 }
  7131.                 hData = 0;
  7132.                 break;
  7133.             }
  7134.  
  7135.              öπ¡¬µ¿∩ GlobalAlloc  «Γó«ñ¿Γ  ¡Ñ«íσ«ñ¿¼δ⌐  ñ½∩  αẼÑΘÑ¡¿∩
  7136.         ßΓ᫬¿   «íΩѼ   »á¼∩Γ¿.   ö½áú   GMEM_MOVEABLE   ß»Ñµ¿Σ¿µ¿απÑΓ
  7137.         »ÑαѼÑΘáѼπε »á¼∩Γ∞.  æ¿ßΓѼ¡δ⌐ íπΣÑα  ¼«ªÑΓ  ¿ß»«½∞º«óáΓ∞  ¿½¿
  7138.         Σ¿¬ß¿α«óá¡¡πε  ¿½¿  »ÑαѼÑΘáѼπε  »á¼∩Γ∞,  ¡«  ¡Ñ  ß½ÑñπÑΓ  Ñ¼π
  7139.         ºáñáóáΓ∞ ßíαáßδóáѼπε »á¼∩Γ∞. ìá¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡« ¿ß»«½∞º«óá¡¿Ñ
  7140.         »ÑαѼÑΘáѼ«⌐  »á¼∩Γ¿.
  7141.  
  7142.              Åα¿¼Ñτá¡¿Ñ: æ½ÑñπÑΓ  óßÑúñá  ¬«¡Γα«½¿α«óáΓ∞   ó«ºóαáΘáѼ«Ñ
  7143.         º¡áτÑ¡¿Ñ »α¿   óδñѽѡ¿¿  ¿½¿  í½«¬¿α«óá¡¿¿  »á¼∩Γ¿.  ç¡áτÑ¡¿Ñ,
  7144.         αáó¡«Ñ 0, ú«ó«α¿Γ « Γ«¼, τΓ« ¡Ñ σóáΓáÑΓ »á¼∩Γ¿.
  7145.  
  7146.              àß½¿ ¿ß»«½∞ºπÑΓß∩  »ÑαѼÑΘáѼá∩  »á¼∩Γ∞,   ÑÑ   ¡Ñ«íσ«ñ¿¼«
  7147.  
  7148.        Windows 3.0/pg/2#3                                       = 135 =
  7149.  
  7150.         ºáí½«¬¿α«óáΓ∞  ñ½∩  ¡áσ«ªñÑ¡¿∩  áñαÑßá  »á¼∩Γ¿.  é¼ÑßΓ« Σπ¡¬µ¿¿
  7151.         ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ strcpy ¿ß»«½∞ºπÑΓß∩ ½«¬á½∞¡« «»αÑñѽѡ¡á∩
  7152.         Σπ¡¬µ¿∩ lstrcpy,   »«ß¬«½∞¬π   »Ñαóá∩   ¡Ñ  ¼«ªÑΓ  αáí«ΓáΓ∞  ß«
  7153.         ß¼ÑΦá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ (string - ¬«α«Γ¬¿⌐ π¬áºáΓѽ∞, á lpData -
  7154.         ñ½¿¡¡δ⌐  π¬áºáΓѽ∞).  ä½∩  ß¿ßΓѼ¡«ú« íπΣÑαá ¡Ñ«íσ«ñ¿¼«,  τΓ«íδ
  7155.         ßΓα«¬á «¬á¡τ¿óá½áß∞ ¡π½Ñóδ¼ ß¿¼ó«½«¼.  ìᬫ¡Ñµ,  »á¼∩Γ∞  ñ«½ª¡á
  7156.         íδΓ∞   αáºí½«¬¿α«óá¡á   »ÑαÑñ  ¬«»¿α«ó᡿Ѽ  ÑÑ  ß«ñÑন¼«ú«  ó
  7157.         ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7158.  
  7159.              èáªñδ⌐ αẠ»α¿ ¬«»¿α«óá¡¿¿ ßΓ᫬¿ ó ß¿ßΓѼ¡δ⌐ íπΣÑα  íπñÑΓ
  7160.         «Γó«ñ¿Γ∞ß∩ ¡«óδ⌐ í½«¬ ú½«íá½∞¡«⌐ »á¼∩Γ¿.  Åα¿τ¿¡á ºá¬½ετáÑΓß∩ ó
  7161.         Γ«¼, τΓ« Ñß½¿ «ñ¡áªñδ ñÑß¬α¿»Γ«α ñá¡¡δσ íδ½ »ÑαÑñá¡ ó ß¿ßΓѼ¡δ⌐
  7162.         íπΣÑα,  «¡  ßΓá¡«ó¿Γß∩  Ñú« ß«íßΓóÑ¡¡«ßΓ∞ε.  ¥Γ« «º¡áτáÑΓ,  τΓ«
  7163.         ¡Ñ½∞º∩ í«½∞ΦÑ  ¿ß»«½∞º«óáΓ∞  ñÑß¬α¿»Γ«α  (¬α«¼Ñ  »α«ß¼«Γαá  Ñú«
  7164.         ß«ñÑন¼«ú«),  ¿  ¡Ñ ß½ÑñπÑΓ »δΓáΓ∞ß∩ «ßó«í«ñ¿Γ∞ ñÑß¬α¿»Γ«α ¿½¿
  7165.         ¿º¼Ñ¡¿Γ∞ Ñú« ß«ñÑন¼«Ñ.
  7166.  
  7167.              ä½∩ ¬«»¿α«óá¡¿∩ ñÑß¬α¿»Γ«αá ú½«íá½∞¡«⌐ »á¼∩Γ¿ ó  ß¿ßΓѼ¡δ⌐
  7168.         íπΣÑα ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ñÑ⌐ßΓó¿∩:
  7169.  
  7170.              1. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7171.  
  7172.              2. Äτ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7173.  
  7174.              3. ôßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ.
  7175.  
  7176.              4. çá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7177.  
  7178.              Åα¿óÑñÑ¡¡δÑ ¡¿ªÑ «»ÑαáΓ«αδ óδ»«½¡∩εΓ φΓ¿ Φáú¿:
  7179.  
  7180.         (1)  if (OpenClipboard(hWnd)) {
  7181.         (2)      EmptyClipboard();
  7182.         (3)      SetClipboardData(CF_TEXT, hData);
  7183.                  CloseClipboard();
  7184.              }
  7185.         (4)  hData = NULL;
  7186.  
  7187.         1)   öπ¡¬µ¿∩ OpenClipboard  «Γ¬αδóáÑΓ   ß¿ßΓѼ¡δ⌐   íπΣÑα   ñ½∩
  7188.              π¬áºá¡¡«ú« «¬¡á.  àß½¿  ñαπú«Ñ  «¬¡« πªÑ «Γ¬α佫 ß¿ßΓѼ¡δ⌐
  7189.              íπΣÑα, Γ« φΓá Σπ¡¬µ¿∩ ¼«ªÑΓ ºá¬«¡τ¿Γß∩ ¡Ñπñáτ¡«.
  7190.  
  7191.         2)   öπ¡¬µ¿∩ EmptyClipboard «τ¿ΘáÑΓ  ßπΘÑßΓóπεΘ¿Ñ  ó  ß¿ßΓѼ¡«¼
  7192.              íπΣÑαÑ  ñÑß¬α¿»Γ«αδ  ¿ ñѽáÑΓ ó½áñѽ∞µÑ¼ ß¿ßΓѼ¡«ú« íπΣÑαá
  7193.              «¬¡«,  ¬«Γ«α«Ñ Ñú« «Γ¬α佫.  Åਪ½áñ¡á∩  »α«úαἼᠠñ«½ª¡á
  7194.              «τ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα »ÑαÑñ ¬«»¿α«ó᡿Ѽ ó ¡Ñú« ñá¡¡δσ.
  7195.  
  7196.         3)   öπ¡¬µ¿∩ SetClipboardData   ¬«»¿απÑΓ  ñÑß¬α¿»Γ«α  »á¼∩Γ¿  ó
  7197.              ß¿ßΓѼ¡δ⌐ íπΣÑα ¿ ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ  Σ«α¼áΓ  ñá¡¡δσ  CF_TEXT.
  7198.              çáΓѼ   ß¿ßΓѼ¡δ⌐  íπΣÑα  ºá¬αδóáÑΓß∩  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  7199.              CloseClipboard.
  7200.  
  7201.         4)   Å«ß¬«½∞¬π ß¿ßΓѼ¡δ⌐  íπΣÑα  ΓÑ»Ñα∞   ∩ó½∩ÑΓß∩   ó½áñѽ∞µÑ¼
  7202.              ú½«íá½∞¡«⌐ »á¼∩Γ¿,    ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«⌐   hData,   πñ«í¡«
  7203.  
  7204.        Windows 3.0/pg/2#3                                       = 136 =
  7205.  
  7206.              πßΓá¡«ó¿Γ∞ φΓπ »á¼∩Γ∞ ó ¡π½∞  ñ½∩  »αÑñ«ΓóαáΘÑ¡¿∩  »«»δΓ«¬
  7207.              «ßó«í«ñ¿Γ∞ ¿½¿ ¿º¼Ñ¡¿Γ∞ ÑÑ.
  7208.                          13.1.2  éßΓáó¬á ΓѬßΓá ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.          
  7209.  
  7210.              î«ª¡« óßΓáó¿Γ∞   ΓѬßΓ  ¿º  ß¿ßΓѼ¡«ú«  íπΣÑαá  ó  «í½áßΓ∞
  7211.         »«½∞º«óáΓѽ∩;  Γ.Ñ.  ¼«ª¡«  »«½πτ¿Γ∞   ñÑß¬α¿»Γ«α   ΓѬßΓá   ¿º
  7212.         ß¿ßΓѼ¡«ú«  íπΣÑαá  ¿  ¿¡ñ¿µ¿α«óáΓ∞ Ñú« ó «í½áßΓ¿ »«½∞º«óáΓѽ∩,
  7213.         ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε TextOut. ìÑ«íσ«ñ¿¼« ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
  7214.  
  7215.              1. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7216.  
  7217.              2. Å«½πτ¿Γ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ,  ßó∩ºá¡¡δ⌐ ß CF_TEXT ¿½¿  ß
  7218.                 CF_OEMTEXT.
  7219.  
  7220.              3. çá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
  7221.  
  7222.              ¥Γá «»Ñαᵿ∩   αáºαÑΦÑ¡á  Γ«½∞¬«  ó  Γ«¼  ß½πτáÑ,  Ñß½¿  ó
  7223.         ß¿ßΓѼ¡«¼ íπΣÑαÑ ßπΘÑßΓóπÑΓ ΓѬßΓ.  àß½¿ ΓѬßΓá ¡Ñ  ßπΘÑßΓóπÑΓ,
  7224.         Γ«  ñ½∩  »αÑñ«ΓóαáΘÑ¡¿∩  »«»δΓ«¬  Ñú«  óßΓáó¿Γ∞ ¼«ª¡« »α«óÑα¿Γ∞
  7225.         ß¿ßΓѼ¡δ⌐  íπΣÑα  »ÑαÑñ  ΓѼ,  ¬á¬  Windows   ¿¡ñ¿µ¿απÑΓ   ¼Ñ¡ε
  7226.         Edit, «íαáí«Γáó  ß««íΘÑ¡¿Ñ  WM_INITMENU.  àß½¿  ß¿ßΓѼ¡δ⌐ íπΣÑα
  7227.         »πßΓ, ¼«ª¡«  ßñѽáΓ∞  ¡Ññ«ßΓπ»¡«⌐  ¬«¼á¡ñπ  Paste;  Ñß½¿  ΓѬßΓ
  7228.         ¿¼ÑÑΓß∩,   ¼«ª¡«   ßñѽáΓ∞  ÑÑ  ñ«ßΓπ»¡«⌐.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿Ñ
  7229.         «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  7230.  
  7231.              case WM_INITMENU:
  7232.         (1)      if (wParam == GetMenu(hWnd)) {
  7233.                     if(OpenClipboard(hWnd)) {
  7234.         (2)            if(IsClipboardFormatAvailable(CF_TEXT) |
  7235.                           IsClipboardFormatAvailable(CF_OEMTEXT))
  7236.         (3)            EnableMenuItem(wParam, ID_PASTE, MF_ENABLED);
  7237.                      else
  7238.                        EnableMenuItem(wParam, ID_PASTE, MF_GRAYED);
  7239.                      CloseClipboard();
  7240.                      return(TRUE);
  7241.                  }
  7242.                  else
  7243.                      return(FALSE);
  7244.              }
  7245.  
  7246.         1)   Å«ß¬«½∞¬π ¼¡«ú¿Ñ »α¿¬½áñ¡δÑ  »α«úαá¼¼δ  ¿¼ÑεΓ  »«  ¬αá⌐¡Ñ⌐
  7247.              ¼ÑαÑ   ñóá  ¼Ñ¡ε  (ó¬½ετá∩  ß¿ßΓѼ¡«Ñ  ¼Ñ¡ε),  ó᪡«  íδΓ∞
  7248.              πóÑαÑ¡¡δ¼,  τΓ« ß««íΘÑ¡¿Ñ «Γ¡«ß¿Γß∩ ¬ ¼Ñ¡ε Edit. ¥Γ« ¼«ª¡«
  7249.              ßñѽáΓ∞,  ¿ß»«½∞º«óáó  Σπ¡¬µ¿ε  GetMenu ¿ ßαáó¡¿ó wParam ß
  7250.              ñÑß¬α¿»Γ«α«¼, ¬«Γ«αδ⌐ ó«ºóαáΘáÑΓ φΓá Σπ¡¬µ¿∩.
  7251.  
  7252.         2)   äóá ó맮óá  Σπ¡¬µ¿¿  IsClipboardFormatAvailable  »α«óÑα∩εΓ
  7253.              ñ«ßΓπ»¡«ßΓ∞ Σ«α¼áΓ«ó CF_TEXT ¿ CF_OEMTEXT.
  7254.  
  7255.         3)   öπ¡¬µ¿∩ EnableMenuItem ñѽáÑΓ  ñ«ßΓπ»¡«⌐  ¿½¿  ¡Ññ«ßΓπ»¡«⌐
  7256.              ¬«¼á¡ñπ  Paste,  «ß¡«óδóá∩ß∞  ¡á  Γ«¼,  ¡á⌐ñÑ¡  ½¿  Σ«α¼áΓ
  7257.              CF_TEXT.
  7258.  
  7259.        Windows 3.0/pg/2#3                                       = 137 =
  7260.  
  7261.  
  7262.              î«ª¡« óßΓáó¿Γ∞  ñá¡¡δÑ   ¿º   ß¿ßΓѼ¡«ú«   íπΣÑαá,   ¬«úñá
  7263.         »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ Paste ¿º ¼Ñ¡ε Edit. ä½∩ «íαáí«Γ¬¿
  7264.         ¬«¼á¡ñδ ¼Ñ¡ε ¿ »«½πτÑ¡¿∩ ΓѬßΓá ¿º ß¿ßΓѼ¡«ú« íπΣÑαá ¡Ñ«íσ«ñ¿¼«
  7265.         ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ  IDM_PASTE  ¬  Σαáú¼Ñ¡Γπ WM_COMMAND ó Σπ¡¬µ¿¿
  7266.         «¬¡á.  ä«íáó∞ΓÑ  ß½ÑñπεΘ¿Ñ  «»ÑαáΓ«αδ  ßαáºπ  »«ß½Ñ   Σαáú¼Ñ¡Γá
  7267.         IDM_COPY:
  7268.  
  7269.              case IDM_PASTE:
  7270.         (1)      if (OpenClipboard(hWnd)) {
  7271.                      /* óº∩Γ∞ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá */
  7272.         (2)          hClipData = GetClipboardData(CF_TEXT);
  7273.                      CloseClipboard();
  7274.                      break;
  7275.                  }
  7276.         (3)      if(!(lpClipData = GlobalLock(hClipData))) {
  7277.                      OutOfMemory();
  7278.                      CloseClipboard();
  7279.                      break;
  7280.                  }
  7281.         (4)      hDC = GetDC(hWnd);
  7282.                  TextOut(hDC, 10, 10, lpClipData);
  7283.                  GlobalUnlock(hClipData);
  7284.                  ReleaseDC(hWnd, hDC);
  7285.                  CloseClipboard();
  7286.              }
  7287.              break;
  7288.  
  7289.              é φΓ«¼ »α¿¼ÑαÑ:
  7290.  
  7291.         1)   öπ¡¬µ¿∩ OpenClipboard   «Γ¬αδóáÑΓ   ß¿ßΓѼ¡δ⌐   íπΣÑα  ñ½∩
  7292.              π¬áºá¡¡«ú« «¬¡á, Ñß½¿ «¡ ÑΘÑ ¡Ñ «Γ¬αδΓ.
  7293.  
  7294.         2)   öπ¡¬µ¿∩ GetClipboardData ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ñá¡¡δσ  ñ½∩
  7295.              ΓѬßΓá  ¿½¿ ¡π½∞,  Ñß½¿ Γᬿσ ñá¡¡δσ ¡ÑΓ.  ¥Γ«Γ ñÑß¬α¿»Γ«α
  7296.              ß½ÑñπÑΓ »α«óÑα∩Γ∞ »ÑαÑñ ¿ß»«½∞º«ó᡿Ѽ.
  7297.  
  7298.         3)   öπ¡¬µ¿∩ GetClipboardData ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α  ú½«íá½∞¡«⌐
  7299.              »á¼∩Γ¿. Å«ß¬«½∞¬π    ¿ß»«½∞ºπÑΓß∩   Σ«α¼áΓ   CF_TEXT,   Γ«
  7300.              »αÑñ»«½áúáÑΓß∩,    τΓ«    ú½«íá½∞¡á∩    »á¼∩Γ∞    ß«ñÑনΓ
  7301.              «¬á¡τ¿óáεΘπεß∩   ¡π½Ñ¼   ANSI-ßΓ᫬π.  ¥Γ«  «º¡áτáÑΓ,  τΓ«
  7302.              ú½«íá½∞¡á∩  »á¼∩Γ∞  ¼«ªÑΓ  íδΓ∞  ºáí½«¬¿α«óá¡á  ß  »«¼«Θ∞ε
  7303.              Σπ¡¬µ¿¿ GlobalLock, á ß«ñÑন¼«Ñ ¼«ªÑΓ íδΓ∞ ¿¡ñ¿µ¿α«óá¡« ó
  7304.              «í½áßΓ¿ »«½∞º«óáΓѽ∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ TextOut.
  7305.  
  7306.         4)   ä½∩ Γ«ú«,  τΓ«íδ ¿¼ÑΓ∞ ó«º¼«ª¡«ßΓ∞ ó¿ñÑΓ∞,  τΓ«  »α«úαá¼¼á
  7307.              ß¬«»¿α«óá½á ß«ñÑন¼«Ñ ß¿ßΓѼ¡«ú« íπΣÑαá,  Σπ¡¬µ¿∩ TextOut
  7308.              ºá»¿ßδóáÑΓ, ¡áτ¿¡á∩ ß Γ«τ¬¿ ß ¬««αñ¿¡áΓἿ (10,10) «í½áßΓ¿
  7309.              »«½∞º«óáΓѽ∩.  ä½∩ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬µ¿¿ TextOut ¡Ñ«íσ«ñ¿¼
  7310.              ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩ ¿,  ß½Ññ«óáΓѽ∞¡«, ¡πª¡« ¿ß»«½∞º«óáΓ∞
  7311.              GetDC.    Å«ß¬«½∞¬π    ¡Ñ«íσ«ñ¿¼«    «ßó«í«ñ¿Γ∞   ¬«¡ΓѬßΓ
  7312.              «Γ«íαáªÑ¡¿∩  ßαáºπ  »«ß½Ñ  Ñú«  ¿ß»«½∞º«óá¡¿∩,   ΓαÑíπÑΓß∩
  7313.              Σπ¡¬µ¿∩ ReleaseDC.
  7314.  
  7315.        Windows 3.0/pg/2#3                                       = 138 =
  7316.  
  7317.  
  7318.              äá¡¡δ⌐ ß»«ß«í  ¿¡ñ¿µ¿α«óá¡¿∩ ΓѬßΓá ó «í½áßΓ¿ »«½∞º«óáΓѽ∩
  7319.         »α¿¼Ñ¡Ñ¡ Γ«½∞¬« ñ½∩ ¿½½εßΓαᵿ¿.  Å«ß¬«½∞¬π  ß«ñÑন¼«Ñ  ßΓ᫬¿
  7320.         »α¿¬½áñ¡«⌐  »α«úαá¼¼«⌐  ¡Ñ  ß«σαá¡∩ÑΓß∩,  ¡Ñ ßπΘÑßΓóπÑΓ ß»«ß«íá
  7321.         »ÑαÑα¿ß«óáΓ∞ ΓѬßΓ,  Ñß½¿ íπñÑΓ ßΓÑαΓ Σ«¡ «í½áßΓ¿ »«½∞º«óáΓѽ∩,
  7322.         ¬á¬ φΓ«  »α«¿ßσ«ñ¿Γ  ó«  óαѼ∩  «íαáí«Γ¬¿  ß««íΘÑ¡¿∩  WM_PAINT.
  7323.         (Åα¿¼Ñα »α«úαá¼¼δ ClipText,  «»¿ßá¡¡¡δ⌐ ñá½ÑÑ ó  ñá¡¡«⌐  ú½áóÑ,
  7324.         ñѼ«¡ßΓα¿απÑΓ, ¬á¬  ¼«ª¡«  ß«σαá¡¿Γ∞  ΓѬßΓ,  ß  ΓѼ,  τΓ«íδ  ó
  7325.         ñá½∞¡Ñ⌐ΦѼ ¼«ª¡« í佫 «ßπΘÑßΓó½∩Γ∞ »ÑαÑα¿ß«ó¬π «¬¡á.)
  7326.  
  7327.              ìѽ∞º∩ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ¿½¿ πñ὿Γ∞  ñá¡¡δÑ,  »«½πτÑ¡¡δÑ  ¿º
  7328.         ß¿ßΓѼ¡«ú«  íπΣÑαá.  î«ª¡«  »α«óÑα¿Γ∞ ¿σ ¿½¿ ßñѽáΓ∞ ¬«»¿ε,  ¡«
  7329.         ¡Ñ½∞º∩   ¿σ   ¿º¼Ñ¡¿Γ∞.   ä½∩   »α«óÑન   ñá¡¡δσ    ¡Ñ«íσ«ñ¿¼«
  7330.         ºáí½«¬¿α«óáΓ∞  ñÑß¬α¿»Γ«α,  ¬á¬  ó ¡áΦѼ »α¿¼ÑαÑ,  ¡« «ßΓáó½∩Γ∞
  7331.         ñÑß¬α¿»Γ«α ñá¡¡δσ  ºáí½«¬¿α«óá¡¡δ¼  ¡Ñ½∞º∩.  Éáºí½«¬¿απ⌐ΓÑ  Ñú«
  7332.         ßαáºπ »«ß½Ñ ¿ß»«½∞º«óá¡¿∩.
  7333.  
  7334.              äÑß¬α¿»Γ«αδ ñá¡¡δσ,          ó«ºóαáΘáѼδÑ         Σπ¡¬µ¿Ñ⌐
  7335.         GetClipboardData, »αÑñ¡áº¡áτÑ¡δ    Γ«½∞¬«    ñ½∩     óαѼѡ¡«ú«
  7336.         ¿ß»«½∞º«óá¡¿∩.  äÑß¬α¿»Γ«αδ »α¿¡áñ½ÑªáΓ ß¿ßΓѼ¡«¼π íπΣÑαπ, á ¡Ñ
  7337.         »α«úαá¼¼Ñ, ºá»α«ß¿óΦÑ⌐ ñá¡¡δÑ.  æ««ΓóÑΓßΓóÑ¡¡«,  ñÑß¬α¿»Γ«αδ ¡Ñ
  7338.         ñ«½ª¡δ  «ßó«í«ªñáΓ∞ß∩  ¿ ñ«½ª¡δ íδΓ∞ αáºí½«¬¿α«óá¡δ ßαáºπ »«ß½Ñ
  7339.         ¿ß»«½∞º«óá¡¿∩. Åਪ½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á ß¬«»¿α«óáΓ∞  ñá¡¡δÑ,
  7340.         ßó∩ºá¡¡δÑ ß ñÑß¬α¿»Γ«α«¼, á ºáΓѼ «ßó«í«ñ¿Γ∞ Ñú« íѺ ¿º¼Ñ¡Ñ¡¿⌐.
  7341.  
  7342.              öπ¡¬µ¿∩ CloseClipboard   ºá¬αδóáÑΓ   ß¿ßΓѼ¡δ⌐  íπΣÑα;  óδ
  7343.         ñ«½ª¡δ ºá¬αδΓ∞   ß¿ßΓѼ¡δ⌐   íπΣÑα   ßαáºπ   ªÑ    »«ß½Ñ    Ñú«
  7344.         ¿ß»«½∞º«óá¡¿∩, Γ.¬. ¡Ñ«íσ«ñ¿¼« ñáΓ∞ ó«º¼«ª¡«ßΓ∞ ó«ß»«½∞º«óáΓ∞ß∩
  7345.         ß¿ßΓѼ¡δ¼ íπΣÑα«¼ ñαπú¿¼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼.  ÅÑαÑñ ΓѼ, ¬á¬
  7346.         ºá¬αδΓ∞ ß¿ßΓѼ¡δ⌐   íπΣÑα,  ¡Ñ«íσ«ñ¿¼«  αáºí½«¬¿α«óáΓ∞  ñá¡¡δÑ,
  7347.         »«½πτÑ¡¡δÑ Σπ¡¬µ¿Ñ⌐ GetClipboardData.
  7348.                    13.1.3  éßΓáó¬á αáßΓα«óδσ ¬áαΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.        
  7349.  
  7350.              êº ß¿ßΓѼ¡«ú« íπΣÑαá ¼«ª¡« óßΓáó¿Γ∞ ó «í½áßΓ∞ »«½∞º«óáΓѽ∩
  7351.         ¡Ñ  Γ«½∞¬«  ΓѬßΓ.  ÉáßΓα«óπε  ¬áαΓπ  ΓᬪѠ ¼«ª¡«  »«½πτ¿Γ∞ ¿º
  7352.         ß¿ßΓѼ¡«ú« íπΣÑαá ¿ ¿¡ñ¿µ¿α«óáΓ∞ ÑÑ ó «í½áßΓ¿ »«½∞º«óáΓѽ∩. ä½∩
  7353.         »«½πτÑ¡¿∩    ¿   ¿¡ñ¿µ¿α«óá¡¿∩   αáßΓα«ó«⌐   ¬áαΓδ   ¡Ñ«íσ«ñ¿¼«
  7354.         ¿ß»«½∞º«óáΓ∞ Γ«Γ ªÑ  ß»«ß«í,  τΓ«  ¿  »α¿  óßΓáó¬Ñ  ΓѬßΓá,  ¡«
  7355.         »α¿¼Ñ¡¿Γѽ∞¡«   ¬  αáßΓα«óδ¼  ¬áαΓá¼  ¡πª¡«  ßñѽáΓ∞  ¡Ñí«½∞Φ¿Ñ
  7356.         ¿º¼Ñ¡Ñ¡¿∩.
  7357.  
  7358.              æ¡áτá½á ¡Ñ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σαáú¼Ñ¡Γ  WM_INITMENU  ó
  7359.         Σπ¡¬µ¿¿  «¬¡á,  τΓ«íδ  «¡  αáß»«º¡áóá½  Σ«α¼áΓ CF_BITMAP ó¼ÑßΓ«
  7360.         CF_TEXT.  Å«ß½Ñ  Ñú«  ¿º¼Ñ¡Ñ¡¿∩  Σαáú¼Ñ¡Γ   WM_INITMENU   íπñÑΓ
  7361.         óδú½∩ñÑΓ∞ Γá¬:
  7362.  
  7363.              case WM_INITMENU:
  7364.                  if (wParam == GetMenu(hWnd)) {
  7365.                     if(OpenClipboard(hWnd)) {
  7366.                        if(IsClipboardFormatAvailable(CF_BITMAP))
  7367.                           EnableMenuItem(wParam, ID_PASTE, MF_ENABLED);
  7368.                         else
  7369.  
  7370.        Windows 3.0/pg/2#3                                       = 139 =
  7371.  
  7372.                           EnableMenuItem(wParam, ID_PASTE, MF_GRAYED);
  7373.                         CloseClipboard();
  7374.                         return(TRUE);
  7375.                  }
  7376.                  else
  7377.                      return(FALSE);
  7378.              }
  7379.  
  7380.              Å«½πτ¿Γ∞ αáßΓα«óπε ¬áαΓπ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá ΓᬪѠ½Ñú¬«,
  7381.         ¬á¬ ¿ ΓѬßΓ,  ¡« ¿¡ñ¿µ¿α«óá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ ΓαÑíπÑΓ  í«½∞ΦÑ⌐
  7382.         αáí«Γδ. é «íΘѼ, ¡Ñ«íσ«ñ¿¼« ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
  7383.  
  7384.              1. Å«½πτ¿Γ∞   ñÑß¬α¿»Γ«α   ñá¡¡δσ   αáßΓα«ó«⌐   ¬áαΓδ   ¿º
  7385.                 ß¿ßΓѼ¡«ú« íπΣÑαá.  äÑß¬α¿»Γ«αδ ñá¡¡δσ αáßΓα«ó«⌐  ¬áαΓδ
  7386.                 ¿º  ß¿ßΓѼ¡«ú« íπΣÑαá - φΓ« ñÑß¬α¿»Γ«αδ αáßΓα«ó«⌐ ¬áαΓδ
  7387.                 GDI (ß«ºñá¡¡δÑ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐,  ¡á»α¿¼Ñα,  Γᬿσ ¬á¬
  7388.                 CreateBitmap).
  7389.  
  7390.              2. æ«ºñáΓ∞  ß«ó¼ÑßΓ¿¼δ⌐  ¬«¡ΓѬßΓ  «Γ«íαáªÑ¡¿∩ ¿ óδíαáΓ∞ ó
  7391.                 ¡Ñ¼ ñÑß¬α¿»Γ«α ñá¡¡δσ.
  7392.  
  7393.              3. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε BitBlt ñ½∩  ¬«»¿α«óá¡¿∩  αáßΓα«ó«⌐
  7394.                 ¬áαΓδ ó «í½áßΓ∞ »«½∞º«óáΓѽ∩.
  7395.  
  7396.              4. Äßó«í«ñ¿Γ∞   ñÑß¬α¿»Γ«α   αáßΓα«ó«⌐  ¬áαΓδ  ¿º  ΓѬπΘÑ⌐
  7397.                 óδí«α¬¿.
  7398.  
  7399.              Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿∩ Σαáú¼Ñ¡Γ IDM_PASTE ñ«½ªÑ¡  óδú½∩ñÑΓ∞  Γá¬:
  7400.  
  7401.              case IDM_PASTE:
  7402.                  if (OpenClipboard(hWnd)) {
  7403.  
  7404.                      /* óº∩Γ∞ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá */
  7405.  
  7406.                      hClipData = GetClipboardData(CF_BITMAP);
  7407.                      CloseClipboard();
  7408.                      break;
  7409.                  }
  7410.                  if(!(lpClipData = GlobalLock(hClipData))) {
  7411.                      OutOfMemory();
  7412.                      CloseClipboard();
  7413.                      break;
  7414.                  }
  7415.                 hDC = GetDC(hWnd);
  7416.         (1)     hMemoryDC = CreateCompatibleDC(hDC);
  7417.                 if (hMemoryDC != NULL) {
  7418.         (2)         GetObject(hClipData, sizeof(BITMAP),
  7419.                         (LPSTR) &PasteBitmap);
  7420.         (3)         hOldBitmap = SelectObject(hMemoryDC, hClipData);
  7421.                     if (hOldBitmap != NULL)
  7422.                         BitBlt(hDC, 10, 10,
  7423.                             PasteBitmap.bmWidth,
  7424.                             PasteBitmap.bmHeight,
  7425.  
  7426.        Windows 3.0/pg/2#3                                       = 140 =
  7427.  
  7428.                             hMemoryDC, 0, 0, SRCCOPY);
  7429.                         SelectObject(hMemoryDC, hOldBitmap);
  7430.                     }
  7431.         (4)         DeleteDC(hMemoryDC);
  7432.                 }
  7433.                 ReleaseDC(hWnd, hDC);
  7434.                 GlobalUnlock(hClipData);
  7435.                 CloseClipboard();
  7436.                 GlobalUnlock(hText);
  7437.              }
  7438.              break;
  7439.  
  7440.              é ñá¡¡«¼ »α¿¼ÑαÑ:
  7441.  
  7442.         1)   öπ¡¬µ¿∩ CreateCompatableDC ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá
  7443.              «Γ«íαáªÑ¡¿∩ ó »á¼∩Γ¿,  ¬«Γ«αδ⌐ ß«ó¼ÑßΓ¿¼ ß ñ¿ß»½ÑѼ óáΦÑú«
  7444.              ¬«¼»∞εΓÑαá. ¥Γ« «º¡áτáÑΓ, τΓ« αáßΓα«óδÑ ¬áαΓδ, óδíαá¡¡δÑ ó
  7445.              ñá¡¡«¼  ¬«¡ΓѬßΓÑ  «Γ«íαáªÑ¡¿∩,  ¼«úπΓ  íδΓ∞   ß¬«»¿α«óá¡δ
  7446.              ¡Ñ»«ßαÑñßΓóÑ¡¡«   ó  «í½áßΓ∞  »«½∞º«óáΓѽ∩.  àß½¿  Σπ¡¬µ¿∩
  7447.              CreateCompatibleDC  ºá¬á¡τ¿óáÑΓß∩   ¡Ñπñáτ¡«   (ó«ºóαáΘáÑΓ
  7448.              NULL), αáßΓα«óá∩ ¬áαΓá ¡Ñ ¼«ªÑΓ íδΓ∞ ¿¡ñ¿µ¿α«óá¡á.
  7449.  
  7450.         2)   öπ¡¬µ¿∩ GetObject  ó«ºóαáΘáÑΓ  Φ¿α¿¡π  ¿  óδß«Γπ αáßΓα«ó«⌐
  7451.              ¬áαΓδ,  á ΓᬪѠ «»¿ßá¡¿Ñ  Σ«α¼áΓá  αáßΓα«ó«⌐  ¬áαΓδ.  Ä¡á
  7452.              ¬«»¿απÑΓ  φΓπ  ¿¡Σ«α¼áµ¿ε ó ßΓαπ¬Γπαπ PasteBitmap,  αẼÑα
  7453.              ¬«Γ«α«⌐ «»αÑñѽ∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐  sizeof.  é  ñá¡¡«¼  »α¿¼ÑαÑ
  7454.              ¿ß»«½∞ºπεΓß∩ Γ«½∞¬« Φ¿α¿¡á ¿ óδß«Γá  ¿  Γ«½∞¬«  ó  Σπ¡¬µ¿¿
  7455.              BitBlt.
  7456.  
  7457.         3)   öπ¡¬µ¿∩ SelectObject   óδí¿αáÑΓ    αáßΓα«óπε    ¬áαΓπ    ó
  7458.              ß«ó¼ÑßΓ¿¼«¼ ¬«¡ΓѬßΓÑ «Γ«íαáªÑ¡¿∩.  àß½¿ «¡á ºá¬á¡τ¿óáÑΓß∩
  7459.              ¡Ñπñáτ¡« (ó«ºóαáΘáÑΓ NULL),  αáßΓα«óá∩ ¬áαΓá ¡Ñ ¼«ªÑΓ íδΓ∞
  7460.              ¿¡ñ¿µ¿α«óá¡á.   öπ¡¬µ¿∩   SelectObject  ¼«ªÑΓ  ºá¬«¡τ¿Γ∞ß∩
  7461.              ¡Ñπñáτ¡«,  Ñß½¿ αáßΓα«óá∩ ¬áαΓá ¿¼ÑÑΓ Σ«α¼áΓ, «Γ½¿τáεΘ¿⌐ß∩
  7462.              «Γ   ß«ó¼ÑßΓ¿¼«ú«   ¬«¡ΓѬßΓá   «Γ«íαáªÑ¡¿∩.   ¥Γ«   ¼«ªÑΓ
  7463.              ß½πτ¿Γ∞ß∩, ¡á»α¿¼Ñα, Ñß½¿ αáßΓα«óá∩ ¬áαΓá íδ½á ß«ºñá¡á ñ½∩
  7464.              ¿¡ñ¿¬áµ¿¿ ¡á ñαπú«¼ ¬«¼»∞εΓÑαÑ.
  7465.  
  7466.         4)   öπ¡¬µ¿∩ DeleteDC πñá½∩ÑΓ ß«ó¼ÑßΓ¿¼δ⌐ ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩.
  7467.              ÅÑαÑñ  πñá½Ñ¡¿Ñ¼ Ñú« »Ñαó«¡áτá½∞¡á∩ αáßΓα«óá∩ ¬áαΓá ñ«½ª¡á
  7468.              íδΓ∞ ó«ßßΓá¡«ó½Ñ¡á ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject.
  7469.                                                                                
  7470.                   13.1.4  ê¡ßΓαπ¼Ñ¡Γá½∞¡á∩ »α«úαá¼¼á Clipboard.
  7471.  
  7472.              ê¡ßΓαπ¼Ñ¡Γá½∞¡á∩ »α«úαá¼¼á Clipboard  -  clipbrd.exe  ñáÑΓ
  7473.         »«½∞º«óáΓÑ½ε  ß»«ß«í  »α«ß¼«ΓαÑΓ∞ ß«ñÑন¼«Ñ ß¿ßΓѼ¡«ú« íπΣÑαá;
  7474.         »« φΓ«⌐  »α¿τ¿¡Ñ  «¡á  ΓᬪѠ ¡áºδóáÑΓß∩  "Åα«úαἼᠠ»α«ß¼«Γαá
  7475.         ß¿ßΓѼ¡«ú«  íπΣÑαá".  Ä¡á »ÑαÑτ¿ß½∩ÑΓ ¿¼Ñ¡á óßÑσ Σ«α¼áΓ«ó,  ñ½∩
  7476.         ¬«Γ«αδσ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ ßπΘÑßΓóπÑΓ ñÑß¬α¿»Γ«α (¿½¿ NULL),  ¿
  7477.         ¿¡ñ¿µ¿απÑΓ   ß«ñÑন¼«Ñ  ß¿ßΓѼ¡«ú«  íπΣÑαá  ó  «ñ¡«¼  ¿º  φΓ¿σ
  7478.         Σ«α¼áΓ«ó.
  7479.  
  7480.              Åα«úαἼᠻα«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá  ¼«ªÑΓ  ¿¡ñ¿µ¿α«óáΓ∞
  7481.  
  7482.        Windows 3.0/pg/2#3                                       = 141 =
  7483.  
  7484.         óßÑ  ßΓá¡ñáαΓ¡δÑ  Σ«α¼áΓδ  ñá¡¡δσ.  àß½¿ ßπΘÑßΓóπεΓ ñÑß¬α¿»Γ«αδ
  7485.         í«½ÑÑ, τѼ ñ½∩ «ñ¡«ú« ßΓá¡ñáαΓ¡«ú«  Σ«α¼áΓá  ñá¡¡δσ,  »α«úαá¼¼á
  7486.         ¿¡ñ¿µ¿απÑΓ  Γ«½∞¬«  «ñ¿¡  Σ«α¼áΓ,  óδí¿αá∩ ¿º »α¿óÑñÑ¡¡«ú« ¡¿ªÑ
  7487.         ß»¿ß¬á    ó    »«α∩ñ¬Ñ    π¼Ñ¡∞ΦÑ¡¿∩    »α¿«α¿ΓÑΓá:    CF_TEXT,
  7488.         CF_OEMTEXT, CF_METAFILEPICT, CF_BITMAP, CF_SYLK ¿ CF_DIF.
  7489.  
  7490.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε  « Σ«α¼áΓáσ ß¿ßΓѼ¡«ú« íπΣÑαá óδ
  7491.         ¼«ªÑΓÑ »«½πτ¿Γ∞ ó æ»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ, Γ«¼ 1.
  7492.                                                                                
  7493.          13.2 êß»«½∞º«óá¡¿Ñ  ß»Ñµ¿á½∞¡δσ  ó«º¼«ª¡«ßΓÑ⌐   ß¿ßΓѼ¡«ú«
  7494.                                     íπΣÑαá.
  7495.  
  7496.              æ¿ßΓѼ¡δ⌐ íπΣÑα «íÑß»Ñτ¿óáÑΓ α∩ñ ß»Ñµ¿á½∞¡δσ ó«º¼«ª¡«ßΓÑ⌐,
  7497.  
  7498.         ¬«Γ«αδÑ »«ºó«½∩εΓ  π¼Ñ¡∞Φ¿Γ∞  ¡Ñ«íσ«ñ¿¼«Ñ  ¬«½¿τÑßó«  αáí«Γδ  ¿
  7499.         ßñѽáΓ∞ αáí«Γπ í«½ÑÑ πñ«í¡«⌐. ¥Γ« ß½ÑñπεΘ¿Ñ ó«º¼«ª¡«ßΓ¿:
  7500.  
  7501.              - æ¿ßΓѼ¡δ⌐  íπΣÑα  ñáÑΓ ó«º¼«ª¡«ßΓ∞ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼
  7502.                «Γ½«ª¿Γ∞ Σ«α¼áΓ¿α«óá¡¿Ñ ñá¡¡δσ, »ÑαÑñáóáѼδσ ó ß¿ßΓѼ¡δ⌐
  7503.                íπΣÑα,  ñ« ΓÑσ »«α, »«¬á φΓ¿ ñá¡¡δÑ ¡Ñ »«ΓαÑíπεΓß∩. àß½¿
  7504.                ¿ß»«½∞ºπÑΓß∩ ß½«ª¡δ⌐ Σ«α¼áΓ ñá¡¡δσ  ¿  ñαπú¿Ñ  »α«úαá¼¼δ
  7505.                ó«º¼«ª¡« ¡Ñ íπñπΓ Ñú« ¿ß»«½∞º«óáΓ∞, »α¿¬½áñ¡á∩ »α«úαá¼¼á
  7506.                ¼«ªÑΓ ß«σαá¡¿Γ∞ óαѼ∩,  ¡Ñ Σ«α¼áΓ¿απ∩ φΓ¿ ñá¡¡δÑ ñ«  ΓÑσ
  7507.                »«α, »«¬á ó ¡¿σ ¡Ñ ó«º¡¿¬¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞.
  7508.  
  7509.               - Å«ºó«½∩ÑΓ    α¿ß«óáΓ∞   ó¡πΓα¿   «í½áßΓ¿   »«½∞º«óáΓѽ∩
  7510.                 »α«úαá¼¼δ  Clipboard.  É¿ß«óá¡¿Ñ   ó   «¬¡Ñ   »α«úαá¼¼δ
  7511.                 Clipboard ñáÑΓ ó«º¼«ª¡«ßΓ∞ ¿¡ñ¿µ¿α«óáΓ∞ Σ«α¼áΓδ ñá¡¡δσ,
  7512.                 ¬«Γ«αδÑ  φΓá  »α«úαἼᠠ¡Ñ  º¡áÑΓ  ¬á¬  «Γ«íαáªáΓ∞.
  7513.  
  7514.              é »«ß½ÑñπεΘ¿σ »«ñαáºñѽáσ φΓ¿ ßó«⌐ßΓóá  «»¿ßδóáεΓß∩  í«½ÑÑ
  7515.         »«ñα«í¡«.
  7516.                             13.2.1  ÅαÑñßΓáó½Ñ¡¿Ñ ñá¡¡δσ »« ºá»α«ßπ.           
  7517.  
  7518.              àß½¿ »α¿¬½áñ¡á∩   »α«úαἼᠠ ¿ß»«½∞ºπÑΓ   ¼¡«ú«  Σ«α¼áΓ«ó
  7519.         ñá¡¡δσ, «¡á  ¼«ªÑΓ  ßíÑαÑτ∞  óαѼ∩  Σ«α¼áΓ¿α«óá¡¿∩,   »ÑαÑñáóá∩
  7520.         ¡π½ÑóδÑ  ñÑß¬α¿»Γ«αδ  ñá¡¡δσ  Σπ¡¬µ¿¿  SetClipboardData  ó¼ÑßΓ«
  7521.         Γ«ú«,   τΓ«íδ   úÑ¡Ñα¿α«óáΓ∞   óßÑ   ñÑß¬α¿»Γ«αδ   ñá¡¡δσ   »α¿
  7522.         ¿ß»«½∞º«óá¡¿¿ ¬«¼á¡ñ   Cut   ¿   Copy.   Åਪ½áñ¡á∩   »α«úαá¼¼á
  7523.         Σá¬Γ¿τÑ߬¿ ¡Ñ ñ«½ª¡á úÑ¡Ñα¿α«óáΓ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ ñ« ΓÑσ »«α,
  7524.         »«¬á ñαπúá∩ »α¿¬½áñ¡á∩ »α«úαἼᠡѠºá»α«ß¿Γ ñÑß¬α¿»Γ«α, óδºóáó
  7525.         Σπ¡¬µ¿ε GetClipboardData.
  7526.  
  7527.              è«úñá óδºóá¡á  Σπ¡¬µ¿∩  GetClipboardData  ß  ºá»α«ß«¼   ¡á
  7528.         Σ«α¼áΓ,  ñ½∩ ¬«Γ«α«ú« íδ½ πßΓá¡«ó½Ñ¡ ¡π½Ñó«⌐ ñÑß¬α¿»Γ«α ñá¡¡δσ,
  7529.         ó½áñѽ∞µπ    ß¿ßΓѼ¡«ú«     íπΣÑαá     »«ßδ½áÑΓß∩     ß««íΘÑ¡¿Ñ
  7530.         WM_RENDERFORMAT. è«úñá   »α¿¬½áñ¡á∩   »α«úαἼᠠ »«½πτáÑΓ  φΓ«
  7531.         ß««íΘÑ¡¿Ñ, «¡á ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘÑÑ:
  7532.  
  7533.              1. ÄΓΣ«α¼áΓ¿α«óáΓ∞  ñá¡¡δÑ,   ¬«Γ«αδÑ   í뫨   ß¬«»¿α«óá¡δ
  7534.                 »«ß½Ññ¡¿¼¿ ó ß¿ßΓѼ¡δ⌐ íπΣÑα (º¡áτÑ¡¿Ñ wParam ß««íΘÑ¡¿∩
  7535.                 WM_RENDERFORMAT ß»Ñµ¿Σ¿µ¿απÑΓ ºá»α«ΦÑ¡¡δ⌐ Σ«α¼áΓ).
  7536.  
  7537.        Windows 3.0/pg/2#3                                       = 142 =
  7538.  
  7539.  
  7540.              2. ÄΓóÑßΓ¿ í½«¬ ú½«íá½∞¡«⌐ »á¼∩Γ¿  ¿  ß¬«»¿α«óáΓ∞  ó  ¡Ñú«
  7541.                 ßΣ«α¼áΓ¿α«óá¡¡δÑ ñá¡¡δÑ.
  7542.  
  7543.              3. ÅÑαÑñáΓ∞ ñÑß¬α¿»Γ«α ú½«íá½∞¡«⌐ »á¼∩Γ¿ ¿ ¡«¼Ñα Σ«α¼áΓá ó
  7544.                 ß¿ßΓѼ¡δ⌐ íπΣÑα, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SetClipboardData.
  7545.  
  7546.              ä½∩ óδ»«½¡Ñ¡¿∩ π¬áºá¡¡δσ Φáú«ó »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á
  7547.         σαá¡¿Γ∞ ºá»¿ß∞  «  »«ß½Ññ¡¿σ ñá¡¡δσ,  ß¬«»¿α«óá¡¡δσ ó ß¿ßΓѼ¡δ⌐
  7548.         íπΣÑα. Åα«úαἼᠼ«ªÑΓ ¿ºíáó¿Γ∞ß∩ «Γ φΓ«⌐ ¿¡Σ«α¼áµ¿¿, ¬«úñá «¡á
  7549.         »«½πτáÑΓ   ß««íΘÑ¡¿Ñ  WM_DESTROYCLIPBOARD,  ¬«Γ«α«Ñ  »«ßδ½áÑΓß∩
  7550.         ó½áñѽ∞µπ ß¿ßΓѼ¡«ú« íπΣÑαá ¬áªñδ⌐ αáº,  ¬«úñá «¡  «τ¿ΘáÑΓß∩  ß
  7551.         »«¼«Θ∞ε ó맮óá Σπ¡¬µ¿¿ EmptyClipboard.
  7552.                                                                                
  7553.           13.2.2  ÅαÑñßΓáó½Ñ¡¿Ñ Σ«α¼áΓ«ó »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ αáí«Γδ.
  7554.  
  7555.              Åα¿ αáºαπΦÑ¡¿¿   »α¿¬½áñ¡«⌐  »α«úαá¼¼δ  αáºαπΦáεΓß∩  ΓᬪÑ
  7556.         ßóÑñÑ¡¿∩ « »αÑñßΓáó½Ñ¡¿¿ ñá¡¡δσ »α¿ ¿σ ¬«»¿α«óá¡¿¿ ó  ß¿ßΓѼ¡δ⌐
  7557.         íπΣÑα. æ««ΓóÑΓßΓóÑ¡¡«,  ¬«úñá αáºαπΦáÑΓß∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á,
  7558.         ó½áñÑεΘá∩ ß¿ßΓÑ¼δ¼ íπΣÑα«¼,  »«ßδ½áÑΓß∩  ß»Ñµ¿á½∞¡«Ñ  ß««íΘÑ¡¿Ñ
  7559.         WM_RENDERALLFORMATS. Åα¿  »«½πτÑ¡¿¿  φΓ«ú«  ß««íΘÑ¡¿∩ »α«úαá¼¼á
  7560.         ñ«½ª¡á ß½Ññ«óáΓ∞ Φáúá¼, «»¿ßá¡¡δ¼ ó »αÑñδñπΘѼ αáºñѽÑ.
  7561.                             13.2.3  ÉÑú¿ßΓαᵿ∩ ß«íßΓóÑ¡¡δσ Σ«α¼áΓ«ó.          
  7562.  
  7563.              èα«¼Ñ Γ«ú«,  »α«úαἼᠠ¼«ªÑΓ   ß«ºñáΓ∞   ¿   ¿ß»«½∞º«óáΓ∞
  7564.         ß«íßΓóÑ¡¡δÑ    Σ«α¼áΓδ    ¿½¿   ñáªÑ   ¡«óδÑ   Σ«α¼áΓδ   «íΘÑú«
  7565.         ¿ß»«½∞º«óá¡¿∩.  ä½∩ ß«ºñá¡¿∩  ¿  ¿ß»«½∞º«óá¡¿∩  ¡«óδσ  Σ«α¼áΓ«ó
  7566.         «í¼Ñ¡á ñá¡¡δ¼¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘÑÑ:
  7567.  
  7568.              1. éδºóáΓ∞ Σπ¡¬µ¿ε RegisterClipboardFormat ñ½∩ αÑú¿ßΓαᵿ¿
  7569.                 ¿¼Ñ¡¿ ¡«ó«ú« Σ«α¼áΓá.
  7570.  
  7571.              2. êß»«½∞º«óáΓ∞ º¡áτÑ¡¿Ñ,  ó«ºóαáΘÑ¡¡«Ñ φΓ«⌐ Σπ¡¬µ¿Ñ⌐, ¬á¬
  7572.                 ¬«ñ ¡«ó«ú« Σ«α¼áΓá »α¿ ó맮óÑ Σπ¡¬µ¿¿ SetClipboardData.
  7573.  
  7574.              ÉÑú¿ßΓαᵿ∩ ¿¼Ñ¡¿  Σ«α¼áΓá  ñáÑΓ  πóÑαÑ¡¡«ßΓ∞  ó Γ«¼,  τΓ«
  7575.         »α«úαἼᠿ߻«½∞ºπÑΓ π¡¿¬á½∞¡δ⌐ ¡«¼Ñα Σ«α¼áΓá.  èα«¼Ñ Γ«ú«,  «¡
  7576.         »«ºó«½∩ÑΓ »α«úαἼѠ  Clipboard   ¿¡ñ¿µ¿α«óáΓ∞  »αáó¿½∞¡«Ñ  ¿¼∩
  7577.         ñá¡¡δσ,  σαá¡∩Θ¿σß∩  ó  ß¿ßΓѼ¡«¼  íπΣÑαÑ.  ü«½ÑÑ  »«ñα«í¡«  «í
  7578.         ¿¡ñ¿¬áµ¿¿ ß«íßΓóÑ¡¡δσ    Γ¿»«ó   ñá¡¡δσ   ß¼.   αáºñѽ   13.2.4
  7579.         "ô»αáó½Ñ¡¿Ñ «Γ«íαáªÑ¡¿Ñ¼ ñá¡¡δσ ó Clipboard".
  7580.  
  7581.              àß½¿ ¡Ñ߬«½∞¬« »α«úαá¼¼ ºáαÑú¿ßΓα¿α«ó὿ Σ«α¼áΓδ ß «ñ¡¿¼ ¿
  7582.         ΓѼ ªÑ ¿¼Ñ¡Ñ¼,  óßÑ «¡¿ »«½πτáΓ «ñ¿¡ ¿ Γ«Γ ªÑ ¬«ñ Σ«α¼áΓá.  ¥Γ«
  7583.         ñáÑΓ ó«º¼«ª¡«ßΓ∞  »α¿¬½áñ¡δ¼  »α«úαἼἠ ß«ºñáΓ∞   ß«íßΓóÑ¡¡δÑ
  7584.         «íΘ¿Ñ Γ¿»δ    ñá¡¡δσ.   ìá»α¿¼Ñα,   Ñß½¿   ¡Ñ߬«½∞¬«   »α«úαá¼¼
  7585.         ºáαÑú¿ßΓα¿α«ó὿ Σ«α¼áΓ ß ¿¼Ñ¡Ñ¼ WORKSHEET, óßÑ «¡¿ íπñπΓ ¿¼ÑΓ∞
  7586.         «ñ¿¡ ¿ Γ«Γ ªÑ ¡«¼Ñα Σ«α¼áΓá »α¿ ó맮óÑ Σπ¡¬µ¿⌐ SetClipboardData
  7587.         ¿ GetClipboardData ¿  «íΘ¿⌐  íếߠ ñ½∩  »ÑαÑñáτ¿  ñá¡¡δσ  Γ¿»á
  7588.         WORKSHEET ¼Ñªñπ ¡¿¼¿.
  7589.  
  7590.  
  7591.        Windows 3.0/pg/2#3                                       = 143 =
  7592.  
  7593.                     13.2.4  ô»αáó½Ñ¡¿Ñ  «Γ«íαáªÑ¡¿Ñ¼  ñá¡¡δσ Clipboard.        
  7594.  
  7595.              æπΘÑßΓóπεΓ ñóÑ  »α¿τ¿¡δ,  »«  ¬«Γ«αδ¼ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ
  7596.         ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ π»αáó½∩Γ∞ óδó«ñ«¼ ¿¡Σ«α¼áµ¿¿ ó Clipboard:
  7597.  
  7598.              - Åਪ½áñ¡á∩  »α«úαἼᠠ¼«ªÑΓ  ¿¼ÑΓ∞   ß«íßΓóÑ¡¡δÑ   Γ¿»δ
  7599.                ñá¡¡δσ, ¬«Γ«αδÑ   Γαπñ¡«   ¿½¿  ¡Ñ󫺼«ª¡«  ¿¡ñ¿µ¿α«óáΓ∞
  7600.                αáºπ¼¡δ¼ ß»«ß«í«¼.
  7601.  
  7602.              - Åα«úαἼᠼ«ªÑΓ ¿¼ÑΓ∞ ß«íßΓóÑ¡¡δÑ Γ¿»δ  ñá¡¡δσ,  ¬«Γ«αδÑ
  7603.                ΓαÑíπεΓ ß»Ñµ¿á½∞¡δσ º¡á¡¿⌐ ñ½∩ ¿σ «Γ«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ.
  7604.  
  7605.            êß»«½∞º«óá¡¿Ñ  Σ«α¼áΓá «Γ«íαáªÑ¡¿∩ ñ½∩ ß«íßΓóÑ¡¡δσ ñá¡¡δσ.
  7606.  
  7607.              î«ª¡« ¿ß»«½∞º«óáΓ∞  "Σ«α¼áΓ «Γ«íαáªÑ¡¿∩" ñ½∩ »αÑñßΓáó½Ñ¡¿∩
  7608.         ß«íßΓóÑ¡¡«ú« Σ«α¼áΓá ñá¡¡δσ,  ¬«Γ«αδ⌐ ó »α«Γ¿ó¡«¼ ß½πτáÑ Γαπñ¡«
  7609.         ¿½¿  ¡Ñ󫺼«ª¡«  ¿¡ñ¿µ¿α«óáΓ∞.  äá¡¡δÑ,  ßó∩ºá¡¡δÑ  ß  Σ«α¼áΓ«¼
  7610.         «Γ«íαáªÑ¡¿∩, -  φΓ«  ΓѬßΓ,  αáßΓα«óá∩  ¬áαΓá  ¿½¿  ¿º«íαáªÑ¡¿∩
  7611.         ¼ÑΓáΣá⌐½á,  ¬«Γ«αδÑ »α«úαἼᠻα«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá ¼«ªÑΓ
  7612.         ¿¡ñ¿µ¿α«óáΓ∞ ¬á¬ ºá¼Ñ¡¿Γѽ¿ ß««ΓóÑΓßΓóπεΘ¿σ ß«íßΓóÑ¡¡δσ ñá¡¡δσ.
  7613.         ä½∩  ¿ß»«½∞º«óá¡¿∩ Σ«α¼áΓá «Γ«íαáªÑ¡¿∩ ¡Ñ«íσ«ñ¿¼« ß¬«»¿α«óáΓ∞ ó
  7614.         ß¿ßΓѼ¡δ⌐ íπΣÑα ¬á¬ ß«íßΓóÑ¡¡δÑ,  Γᬠ ¿  ¿¡ñ¿µ¿απѼδÑ  ñá¡¡δÑ.
  7615.         è«úñá »α«úαἼᠻα«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá óδí¿αáÑΓ Σ«α¼áΓ ñ½∩
  7616.         ¿¡ñ¿µ¿α«óá¡¿∩,   «¡á   óδí¿αáÑΓ   Σ«α¼áΓ   «Γ«íαáªÑ¡¿∩   ó¼ÑßΓ«
  7617.         ß«íßΓóÑ¡δσ ñá¡¡δσ.
  7618.  
  7619.              æπΘÑßΓóπεΓ Γα¿     Σ«α¼áΓá     «Γ«íαáªÑ¡¿∩:    CF_DSPTEXT,
  7620.         CF_DSPBITMAP ¿ CF_DSPMETAFILEPICT.  äá¡¡δÑ,  ßó∩ºá¡¡δÑ ß  φΓ¿¼¿
  7621.         Σ«α¼áΓἿ,   ¿ñÑ¡Γ¿τ¡δ   Σ«α¼áΓá¼  ΓѬßΓá,  αáßΓα«ó«⌐  ¬áαΓδ  ¿
  7622.         ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á.  Å«ß¬«½∞¬π  π¬áºá¡¡δÑ  Σ«α¼áΓδ  ∩ó½∩εΓß∩
  7623.         ΓᬪѠßΓá¡ñáαΓ¡δ¼¿  Σ«α¼áΓἿ,  »α«úαἼᠠ»α«ß¼«Γαá ß¿ßΓѼ¡«ú«
  7624.         íπΣÑαá ¼«ªÑΓ ¿¡ñ¿µ¿α«óáΓ∞ ¿σ íѺ »«¼«Θ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
  7625.  
  7626.              Å«ß½ÑñπεΘÑÑ «»¿ßá¡¿Ñ    »αÑñ»«½áúáÑΓ,    τΓ«    »α¿¬½áñ¡á∩
  7627.         »α«úαá¼¼á ß½ÑñπÑΓ Φáúá¼, «»¿ßá¡¡δ¼ ó »π¡¬ΓÑ 13.1.1 "è«»¿α«óá¡¿Ñ
  7628.         ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα" ñ½∩  πßΓᡫ󬿠 ó½áñѽ∞µá  ß¿ßΓѼ¡«ú«
  7629.         íπΣÑαá ¿ ñÑß¬α¿»Γ«α«ó ñá¡¡δσ.
  7630.  
  7631.              ä½∩ Σ«αß¿α«óá¡¿∩  «Γ«íαáªÑ¡¿∩  ¡á φ¬αá¡Ñ ß«íßΓóÑ¡¡δσ Γ¿»«ó
  7632.         ñá¡¡δσ ó ßΓá¡ñáαΓ¡«¼ Σ«α¼áΓÑ ñá¡¡δσ »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á
  7633.         óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
  7634.  
  7635.              1. ÄΓ¬αδΓ∞  ß¿ßΓѼ¡δ⌐ íπΣÑα ñ½∩ ¿º¼Ñ¡Ñ¡¿⌐,  óδºóáó Σπ¡¬µ¿ε
  7636.                 OpenClipboard.
  7637.  
  7638.              2. æ«ºñáΓ∞ ú½«íá½∞¡δ⌐ ñÑß¬α¿»Γ«α,  ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ΓѬßΓ,
  7639.                 αáßΓα«óπε ¬áαΓπ  ¿½¿  ¿º«íαáªÑ¡¿Ñ ¼ÑΓáΣá⌐½á,  «»αÑñѽ¿ó
  7640.                 ¿¡Σ«α¼áµ¿ε, ¬«Γ«αá∩ ñ«½ª¡á íδΓ∞ «Γ«íαáªÑ¡á ó  »α«úαá¼¼Ñ
  7641.                 »α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá.
  7642.  
  7643.              3. ôßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α ß¿ßΓѼ¡«ú« íπΣÑαá, óδºóáó Σπ¡¬µ¿ε
  7644.                 SetClipboardData. ÅÑαÑñá¡¡δ⌐ ¬«ñ  Σ«α¼áΓá  ñ«½ªÑ¡  íδΓ∞
  7645.                 CF_DSPTEXT  ñ½∩ ñÑß¬α¿»Γ«αá ΓѬßΓá,  CF_DSPBITMAP - ñ½∩
  7646.                 ñÑß¬α¿»Γ«αá αáßΓα«ó«⌐ ¬áαΓδ ¿ CF_DSPMETAFILEPICT -  ñ½∩
  7647.  
  7648.        Windows 3.0/pg/2#3                                       = 144 =
  7649.  
  7650.                 ñÑß¬α¿»Γ«αá ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á.
  7651.  
  7652.              4. æ««íΘ¿Γ∞,  τΓ« ¿º¼Ñ¡Ñ¡¿∩ ó ß¿ßΓѼ¡δ⌐ íπΣÑα πªÑ ó¡ÑßÑ¡δ,
  7653.                 óδºóáó Σπ¡¬µ¿ε CloseClipboard.
  7654.  
  7655.           Å«½¡«Ñ π»αáó½Ñ¡¿Ñ  ¿¡ñ¿µ¿α«ó᡿Ѽ  ó  »α«úαἼѠ »α«ß¼«Γαá
  7656.                               ß¿ßΓѼ¡«ú« íπΣÑαá.
  7657.  
  7658.              Åਪ½áñ¡á∩ »α«úαἼᠠ   ¼«ªÑΓ     »«½¡«ßΓ∞ε     π»αáó½∩Γ∞
  7659.         «Γ«íαáªÑ¡¿Ñ¼ ¿  »α«¬απΓ¬«⌐  ¿¡Σ«α¼áµ¿¿  ó  »α«úαἼѠ »α«ß¼«Γαá
  7660.         ß¿ßΓѼ¡«ú« íπΣÑαá.  Æá¬«Ñ π»αáó½Ñ¡¿Ñ »«½Ñº¡«,  ¬«úñá »α¿¬½áñ¡á∩
  7661.         »α«úαἼᠿ¼ÑÑΓ ß½«ª¡δÑ ß«íßΓóÑ¡¡δÑ Γ¿»δ ñá¡¡δσ, ¬«Γ«αδÑ Γ«½∞¬«
  7662.         «¡á º¡áÑΓ,  ¬á¬  ¿¡ñ¿µ¿α«óáΓ∞.  Microsoft  Write ¿ß»«½∞ºπÑΓ φΓ«
  7663.         ßó«⌐ßΓó« ñ½∩ «Γ«íαáªÑ¡¿∩ ßΣ«α¼áΓ¿α«óá¡¡«ú« ΓѬßΓá.
  7664.  
  7665.              Å«ß½ÑñπεΘÑÑ «»¿ßá¡¿Ñ    »αÑñ»«½áúáÑΓ,    τΓ«    »α¿¬½áñ¡á∩
  7666.         »α«úαá¼¼á ß½ÑñπÑΓ Φáúá¼, «»¿ßá¡¡δ¼ ó »π¡¬ΓÑ 13.1.1 "è«»¿α«óá¡¿Ñ
  7667.         ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα" ñ½∩  πßΓᡫ󬿠 ó½áñѽ∞µá  ß¿ßΓѼ¡«ú«
  7668.         íπΣÑαá ¿ ñÑß¬α¿»Γ«α«ó ñá¡¡δσ.
  7669.  
  7670.              ä½∩ π»αáó½Ñ¡¿∩   ¿¡ñ¿µ¿α«ó᡿Ѽ   ¿¡Σ«α¼áµ¿¿  ó  »α«úαá¼¼Ñ
  7671.         »α«ß¼«Γαá ß¿ßΓѼ¡«ú«   íπΣÑαá   »α¿¬½áñ¡á∩   »α«úαἼᠠ ñ«½ª¡á
  7672.         óδ»«½¡¿Γ∞  ß½ÑñπεΘ¿Ñ Φáú¿:
  7673.  
  7674.              1. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα ñ½∩ ¿º¼Ñ¡Ñ¡¿⌐, óδºóáó Σπ¡¬-
  7675.                 µ¿ε OpenClipboard.
  7676.  
  7677.              2. éδºóáΓ∞ Σπ¡¬µ¿ε SetClipboardData,  ¿ß»«½∞ºπ∩ ó ¬áτÑßΓóÑ
  7678.                 Σ«α¼áΓá ñá¡¡δσ CF_OWNERDISPLAY ß ¡π½Ñóδ¼ ñÑß¬α¿»Γ«α«¼.
  7679.  
  7680.              3. æ««íΘ¿Γ∞,  τΓ«  óδ»«½¡Ñ¡«  ¿º¼Ñ¡Ñ¡¿Ñ ß¿ßΓѼ¡«ú« íπΣÑαá,
  7681.                 óδºóáó Σπ¡¬µ¿ε CloseClipboard.
  7682.  
  7683.              çáΓѼ ó½áñѽѵ   ß¿ßΓѼ¡«ú«    íπΣÑαá    íπñÑΓ    »«½πτáΓ∞
  7684.         ß»Ñµ¿á½∞¡δÑ ß««íΘÑ¡¿∩,  ßó∩ºá¡¡δÑ ß ¿¡ñ¿µ¿α«ó᡿Ѽ ¿¡Σ«α¼áµ¿¿ ó
  7685.         »α«úαἼѠ»α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá. ¥Γ« ß½ÑñπεΘ¿Ñ ß««íΘÑ¡¿∩:
  7686.  
  7687.         æ««íΘÑ¡¿Ñ              äÑ⌐ßΓó¿Ñ
  7688.         ───────────────────────────────────────────────────────────────
  7689.         WM_PAINTCLIPBOARD      ìáα¿ß«óáΓ∞ π¬áºá¡¡πε τáßΓ∞ «¬¡á.
  7690.  
  7691.         WM_SIZECLIPBOARD       æ««íΘ¿Γ∞  «í ¿º¼Ñ¡Ñ¡¿¿ αẼÑαá «¬¡á.
  7692.  
  7693.         WM_VSCROLLCLIPBOARD    Å᫬απΓ¿Γ∞ «¬¡« ó óÑαΓ¿¬á½∞¡«¼ ¡á»αáó-
  7694.                                ½Ñ¡¿¿.
  7695.  
  7696.         WM_HSCROLLCLIPBOARD    Å᫬απΓ¿Γ∞  «¬¡«  ó ú«α¿º«¡Γá½∞¡«¼
  7697.                                ¡á»αáó½Ñ¡¿¿.
  7698.  
  7699.         WM_ASKCBFORMATNAME     çáñáΓ∞ ¿¼∩ ¿¡ñ¿µ¿απѼ«ú« Σ«α¼áΓá
  7700.         ───────────────────────────────────────────────────────────────
  7701.  
  7702.              Å«½¡«Ñ «»¿ßá¡¿Ñ  φΓ¿σ  ß««íΘÑ¡¿⌐  ¼«ª¡« ¡á⌐Γ¿ ó æ»αáó«τ¡«¼
  7703.  
  7704.        Windows 3.0/pg/2#3                                       = 145 =
  7705.  
  7706.         απ¬«ó«ñßΓóÑ, Γ«¼ 1.
  7707.  
  7708.             êß»«½∞º«óá¡¿Ñ µÑ»«τ¬¿ ¡áí½εñÑ¡¿∩ ºá ß¿ßΓѼ¡δ¼ íπΣÑα«¼.
  7709.  
  7710.              êß»«½∞º«óá¡¿Ñ φΓ«⌐ µÑ»«τ¬¿  ¿  «¬«¡  »α«ß¼«Γαá  ß¿ßΓѼ¡«ú«
  7711.         íπΣÑαá  «íÑß»Ñτ¿óáεΓ  ß»«ß«í πóÑñ«¼½Ñ¡¿∩ »α¿¬½áñ¡δσ »α«úαá¼¼ «í
  7712.         ¿º¼Ñ¡Ñ¡¿∩σ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ.  ôóÑñ«¼½Ñ¡¿Ñ  ó  ó¿ñÑ  ß««íΘÑ¡¿∩
  7713.         WM_DRAWCLIPBOARD  »ÑαÑñáÑΓß∩  ó¡¿º »« µÑ»«τ¬Ñ ¡áí½εñÑ¡¿∩ ¬áªñδ⌐
  7714.         αáº,  ¬«úñá óδºδóáÑΓß∩ Σπ¡¬µ¿∩ CloseClipboard. Å«½πτáΓѽ∞ φΓ«ú«
  7715.         ß««íΘÑ¡¿∩   ñ«½ªÑ¡   «»αÑñѽ¿Γ∞   »α¿α«ñπ   ¿º¼Ñ¡Ñ¡¿⌐   (»πßΓ«,
  7716.         πßΓá¡«ó½Ñ¡   ¿   Γ.ñ.)   óδºóáó    Σπ¡¬µ¿¿    GetClipboardData,
  7717.         EnumClipboardFormats ¿ ñαπú¿Ñ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿.
  7718.  
  7719.              ïεí«Ñ «¬¡«,   ¬«Γ«α«Ñ  «íÑß»Ñτ¿½«  ßÑíÑ  ßó∩º∞  ó  µÑ»«τ¬Ñ
  7720.         ¡áí½εñÑ¡¿∩, ñ«½ª¡« íδΓ∞ ú«Γ«ó« ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
  7721.  
  7722.              1. ôñ὿Γ∞ ßÑí∩ ¿º µÑ»«τ¬¿ »ÑαÑñ αáºαπΦÑ¡¿Ñ¼.
  7723.  
  7724.              2. ÅÑαÑñáΓ∞ ß««íΘÑ¡¿∩ WM_DRAWCLIPBOARD ß½ÑñπεΘÑ⌐  ßó∩º¿  ó
  7725.                 µÑ»«τ¬Ñ.
  7726.  
  7727.              Åα«úαá¼¼á ñ½∩ φΓ¿σ ñÑ⌐ßΓó¿⌐ óδú½∩ñ¿Γ Γá¬:
  7728.  
  7729.              case WM_DESTROY:
  7730.                  ChangeClipboardChain(hWnd, my_save_next);
  7731.  
  7732.             /* «ßΓá½∞¡δÑ «»ÑαáΓ«αδ ñ½∩ «íαáí«Γ¬¿ WM_DESTROY       */
  7733.  
  7734.                  break;
  7735.  
  7736.              case WM_DRAWCLIPBOARD:
  7737.                  if (my_save_next != NULL)
  7738.                      SendMessage(my_save_next, WM_DRAWCLIPBOARD,
  7739.                                  wParam, lParam);
  7740.  
  7741.             /* «ßΓá½∞¡δÑ «»ÑαáΓ«αδ ñ½∩ «íαáí«Γ¬¿ WM_DRAWCLIPBOARD */
  7742.  
  7743.                  break;
  7744.  
  7745.              æΓ᫬á my_save_next - φΓ« º¡áτÑ¡¿Ñ,  ó«ºóαáΘÑ¡¡«Ñ Σπ¡¬µ¿Ñ⌐
  7746.         SetClipboardViewer.  ¥Γ¿ ñÑ⌐ßΓó¿∩ ¡áñ  µÑ»«τ¬«⌐  ¡áí½εñÑ¡¿∩  ºá
  7747.         ß¿ßΓѼ¡δ¼  íπΣÑα«¼  ñ«½ª¡δ  íδΓ∞  »Ñαó묨 ΦáúἿ,  óδ»«½¡∩Ñ¼δ¼¿
  7748.         óÑΓó∩¼¿  «»ÑαáΓ«αá  switch,  ¬«Γ«αδÑ   «íαáíáΓδóáεΓ   ß««íΘÑ¡¿∩
  7749.         WM_DESTROY ¿ WM_DRAWCLIPBOARD.
  7750.                           13.3. Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ClipText.          
  7751.  
  7752.              ¥Γ«Γ »α¿¼Ñα ¿½½εßΓα¿απÑΓ ¬á¬ ¬«»¿α«óáΓ∞ ¿ óßΓáó½∩Γ∞ ñá¡¡δÑ
  7753.         ß »«¼«Θ∞ε ß¿ßΓѼ¡«ú« íπΣÑαá.  ä½∩ ß«ºñá¡¿∩  »α«úαá¼¼δ  ClipText
  7754.         ß¬«»¿απ⌐ΓÑ  ¿  »ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿ßσ«ñ¡δÑ Σá⌐½δ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
  7755.         EditMenu, á ºáΓѼ ßñѽá⌐ΓÑ ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
  7756.  
  7757.              1. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ.
  7758.  
  7759.        Windows 3.0/pg/2#3                                       = 146 =
  7760.  
  7761.  
  7762.              2. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σπ¡¬µ¿ε ¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá.
  7763.  
  7764.              3. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_INITMENU.
  7765.  
  7766.              4. î«ñ¿Σ¿µ¿απ⌐ΓÑ   Σαáú¼Ñ¡Γ   WM_COMMAND   ñ½∩   «íαáí«Γ¬¿
  7767.                 IDM_CUT, IDM_COPY ¿ IDM_PASTE.
  7768.  
  7769.              5. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_PAINT.
  7770.  
  7771.              6. ä«íáó∞ΓÑ Σπ¡¬µ¿ε OutOfMemory.
  7772.  
  7773.              7. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
  7774.  
  7775.              é φΓ«¼   »α¿¼ÑαÑ   ¿ß»«½∞ºπÑΓß∩   ú½«íá½∞¡á∩   »á¼∩Γ∞  ñ½∩
  7776.         ºá»«¼¿¡á¡¿∩ ¬«»¿απѼ«ú« ΓѬßΓá.  ü«½ÑÑ »«ñα«í¡πε  ¿¡Σ«α¼áµ¿ε  «
  7777.         ú½«íá½∞¡«⌐ »á¼∩Γ¿ ß¼«Γα¿ΓÑ ó ú½áóÑ 15, "ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε".
  7778.  
  7779.              Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
  7780.         ó  ß½ÑñπεΘ¿σ  αáºñѽáσ,  ó«º¼«ª¡«  óá¼  íπñÑΓ  πñ«í¡ÑÑ   »α«ßΓ«
  7781.         »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
  7782.                                                                                
  7783.                     13.3.1  ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.
  7784.  
  7785.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞  ¡Ñ߬«½∞¬« ¡«óδσ ú½«íá½∞¡δσ »ÑαѼѡ¡δσ
  7786.         ñ½∩ σαá¡Ñ¡¿∩ ñÑß¬α¿»Γ«α«ó, ¿ß»«½∞ºπѼδσ ó «»Ñαᵿ∩󠬫»¿α«óá¡¿∩
  7787.         ¿ óßΓáó¬¿,  á ΓᬪѠñ½∩ σαá¡Ñ¡¿∩ áñαÑß«ó ßΓ᫬ ΓѬßΓá. ä«íáó∞ΓÑ
  7788.         ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó ¡áτὫ ¿ßσ«ñ¡«ú« æ-Σá⌐½á:
  7789.  
  7790.         HANDLE hText = NULL;
  7791.         char szInitialClientAreaText[] = "This Program demonstrates..."
  7792.         HANDLE hData, hClipData; /* ñÑß¬α¿»Γ«αδ ñ½∩ óδαѺ᡿∩ ñá¡¡δσ  */
  7793.         LPSTR lpData, lpClipData; /* π¬áºáΓѽ¿ ¡á óδαѺáѼδÑ ñá¡¡δÑ */
  7794.  
  7795.              ìÑ«íσ«ñ¿¼« ΓᬪѠ  ñ«íáó¿Γ∞  »ÑαѼѡ¡δÑ  ñ½∩  α¿ß«óá¡¿∩  ¿
  7796.         ¼á¡¿»π½∩µ¿¿ ß ß¿ßΓѼ¡δ¼ íπΣÑα«¼.  ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ »ÑαѼѡ¡δÑ
  7797.         ó ¡áτὫ Σπ¡¬µ¿¿ «ß¡«ó¡«ú« «¬¡á MainWndProc:
  7798.  
  7799.            HDC hDC;
  7800.            PAINTSTRUCT ps;
  7801.            RECT rectClient;
  7802.            LPSTR lpszText;
  7803.                                                                                
  7804.            13.3.2  î«ñ¿Σ¿¬áµ¿∩ »α«úαá¼¼δ ¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá.
  7805.  
  7806.              Åα¿ ºá»π߬Ѡ φ¬ºÑ¼»½∩αá  »α«úαá¼¼δ  ClipText,  «¡á  ñ«½ª¡á
  7807.         óδñѽ¿Γ∞ «í½áßΓ∞  ó ú½«íá½∞¡«⌐ »á¼∩Γ¿ ¿ ºá»«½¡¿Γ∞ ÑÑ ñá¡¡δ¼¿ ¿º
  7808.         ßΓ᫬¿. ä«íáó∞ΓÑ ó Σπ¡¬µ¿ε ¿¡¿µ¿á½¿ºáµ¿¿  φ¬ºÑ¼»½∩αá  ß½ÑñπεΘ¿Ñ
  7809.         «»ÑαáΓ«αδ:
  7810.  
  7811.            if (!(hText = GlobalAlloc(GMEM_MOVEABLE,
  7812.                            (DWORD)sizeof(szInitialClientAreaText)))) {
  7813.                OutOfMemory();
  7814.  
  7815.        Windows 3.0/pg/2#3                                       = 147 =
  7816.  
  7817.                return (FALSE);
  7818.            }
  7819.  
  7820.            if (!(lpszText = GlobalLock(hText))) {
  7821.                OutOfMemory();
  7822.                return (FALSE);
  7823.            }
  7824.  
  7825.            lstrcpy(lpszText, szInitialClientAreaText);
  7826.            GlobalUnlock(hText);
  7827.                             13.3.3  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_INITMENU.          
  7828.  
  7829.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞  Σαáú¼Ñ¡Γ WM_INITMENU ¬ Σπ¡¬µ¿¿ «¬¡á ß
  7830.         µÑ½∞ε »«ñú«Γ«ó¬¿ ¼Ñ¡ε Edit ¬ óßΓáó¬Ñ.  é««íΘÑ  ú«ó«α∩,  ¬«¼á¡ñá
  7831.         Paste  ¡Ñ  ñ«½ª¡á  íδΓ∞  ñ«ßΓπ»¡á ñ« ΓÑσ »«α,  »«¬á ó ß¿ßΓѼ¡«¼
  7832.         íπΣÑαÑ  ¡Ñ  ßπΘÑßΓóπÑΓ  óδíαá¡¡δ⌐  ΓѬßΓ,  »«ñ½ÑªáΘ¿⌐  óßΓáó¬Ñ.
  7833.         ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  7834.  
  7835.                case WM_INITMENU:
  7836.                    if (wParam == GetMenu(hWnd)) {
  7837.                        if (OpenClipboard(hWnd)) {
  7838.                            if (IsClipboardFormatAvailable(CF_TEXT)
  7839.                                || IsClipboardFormatAvailable(CF_OEMTEXT))
  7840.                                EnableMenuItem(wParam, IDM_PASTE, MF_ENABLED);
  7841.                            else
  7842.                                EnableMenuItem(wParam, IDM_PASTE, MF_GRAYED);
  7843.                            CloseClipboard();
  7844.                            return (TRUE);
  7845.                        }
  7846.                        else             /* æ¿ßΓѼ¡δ⌐ íπΣÑα ¡Ññ«ßΓπ»Ñ¡ */
  7847.                            return (FALSE);
  7848.  
  7849.                    }
  7850.  
  7851.              ¥Γ¿ «»ÑαáΓ«αδ  «íαáíáΓδóáεΓ ß««íΘÑ¡¿Ñ WM_INITMENU Γ«½∞¬« ó
  7852.         Γ«¼ ß½πτáÑ,  Ñß½¿ π¬áºá¡¡«Ñ ¼Ñ¡ε  -  φΓ«  ¼Ñ¡ε-ßΓ᫬á.  öπ¡¬µ¿∩
  7853.         IsClipboardFormatAvailable «»αÑñѽ∩ÑΓ,    ÑßΓ∞   ½¿   ΓѬßΓ   ó
  7854.         ß¿ßΓѼ¡«¼ íπΣÑαÑ.  àß½¿  ÑßΓ∞,  Σπ¡¬µ¿∩  EnableMenuItem  ñѽáÑΓ
  7855.         ¬«¼á¡ñπ ñ«ßΓπ»¡«⌐. é »α«Γ¿ó¡«¼ ß½πτáÑ ¬«¼á¡ñá Paste ¡Ññ«ßΓπ»¡á.
  7856.                          13.3.4  î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.             
  7857.  
  7858.              ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞  Σαáú¼Ñ¡Γδ  IDM_CUT,  IDM_COPY ¿
  7859.         IDM_PASTE ó Σαáú¼Ñ¡ΓÑ  WM_COMMAND  ñ½∩  «íαáí«Γ¬¿  ¬«¼á¡ñ  ¼Ñ¡ε
  7860.         Edit. Å«  IDM_COPY ¿ IDM_CUT ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ í½«¬ ú½«íá½∞¡«⌐
  7861.         »á¼∩Γ¿,  ºá»«½¡¿Γ∞ Ñú« ΓѬßΓ«¼ ¿ ß¬«»¿α«óáΓ∞ ñÑß¬α¿»Γ«α í½«¬á ó
  7862.         ß¿ßΓѼ¡δ⌐ íπΣÑα,  á  ó  IDM_CUT  ¡Ñ«íσ«ñ¿¼« πñ὿Γ∞ ¿¼ÑεΘ¿⌐ß∩ ó
  7863.         »α¿¬½áñ¡«⌐ »α«úαἼѠΓѬßΓ.  öαáú¼Ñ¡Γ IDM_PASTE ñ«½ªÑ¡ »«½πτ¿Γ∞
  7864.         ¿º  ß¿ßΓѼ¡«ú«  íπΣÑαá  ñÑß¬α¿»Γ«α  ¿  ºá»¿ßáΓ∞ ΓѬßΓ ó «í½áßΓ∞
  7865.         »«½∞º«óáΓѽ∩.
  7866.  
  7867.              çá¼Ñ¡¿ΓÑ ßπΘÑßΓóπεΘ¿⌐   «»ÑαáΓ«α    IDM_COPY    ß½ÑñπεΘ¿¼¿
  7868.  
  7869.        Windows 3.0/pg/2#3                                       = 148 =
  7870.  
  7871.         «»ÑαáΓ«αἿ:
  7872.  
  7873.         case IDM_CUT:
  7874.         case IDM_COPY:
  7875.  
  7876.          if (hText != NULL) {
  7877.  
  7878.              /* éδñѽ¿Γ∞ »á¼∩Γ∞ ¿ ß¬«»¿α«óáΓ∞ ó ¡ÑÑ ßΓ᫬π. */
  7879.  
  7880.              if (!(hData
  7881.                   = GlobalAlloc(GMEM_MOVEABLE, GlobalSize (hText)))) {
  7882.                  OutOfMemory();
  7883.                  return (TRUE);
  7884.              }
  7885.              if (!(lpData = GlobalLock(hData))) {
  7886.                  OutOfMemory();
  7887.                  return (TRUE);
  7888.              }
  7889.              if (!(lpszText = GlobalLock (hText))) {
  7890.                  OutOfMemory();
  7891.                  return (TRUE);
  7892.              }
  7893.              lstrcpy(lpData, lpszText);
  7894.              GlobalUnlock(hData);
  7895.              GlobalUnlock (hText);
  7896.  
  7897.              /* Äτ¿ßΓ¿Γ∞ ΓѬπΘÑÑ ß«ñÑন¼«Ñ ß¿ßΓѼ¡«ú« íπΣÑαá ¿
  7898.               * πßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ ¡á ¡«óπε ßΓ᫬π. */
  7899.  
  7900.              if (OpenClipboard(hWnd)) {
  7901.                  EmptyClipboard();
  7902.                  SetClipboardData(CF_TEXT, hData);
  7903.                  CloseClipboard();
  7904.              }
  7905.              hData = NULL;
  7906.  
  7907.              if (wParam == IDM_CUT) {
  7908.                  GlobalFree (hText);
  7909.                  hText = NULL;
  7910.                  EnableMenuItem(GetMenu (hWnd), IDM_CUT, MF_GRAYED);
  7911.                  EnableMenuItem(GetMenu(hWnd), IDM_COPY, MF_GRAYED);
  7912.                  InvalidateRect (hWnd, NULL, TRUE);
  7913.                  UpdateWindow (hWnd);
  7914.              }
  7915.          }
  7916.  
  7917.          return (TRUE);
  7918.  
  7919.              öπ¡¬µ¿∩ GlobalAlloc   «Γó«ñ¿Γ   í½«¬   ú½«íá½∞¡«⌐  »á¼∩Γ¿,
  7920.         ¿ß»«½∞ºπѼδ⌐ ñ½∩ ºá»«¼¿¡á¡¿∩  ßΓ᫬¿  ΓѬßΓá.  öπ¡¬µ¿∩  lstrcpy
  7921.         ¬«»¿απÑΓ ßΓα«¬π ¿º «í½áßΓ¿ »«½∞º«óáΓѽ∩ «¬¡á ó í½«¬ »«ß½Ñ Γ«ú«,
  7922.         ¬á¬ ñÑß¬α¿»Γ«α íδ½ ºáí½«¬¿α«óá¡ Σπ¡¬µ¿Ñ⌐ GlobalLock. äÑß¬α¿»Γ«α
  7923.         ñ«½ªÑ¡  íδΓ∞  αáºí½«¬¿α«óá¡  »ÑαÑñ Ñú« ¬«»¿α«ó᡿Ѽ ó ß¿ßΓѼ¡δ⌐
  7924.  
  7925.        Windows 3.0/pg/2#3                                       = 149 =
  7926.  
  7927.         íπΣÑα.  öπ¡¬µ¿∩ EmptyClipboard ¿ß»«½∞ºπÑΓß∩ ñ½∩ πñá½Ñ¡¿∩  ½εíδσ
  7928.         ßπΘÑßΓóπεΘ¿σ ñá¡¡δσ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
  7929.  
  7930.              çá¼Ñ¡¿ΓÑ «»ÑαáΓ«α IDM_PASTE ß½ÑñπεΘ¿¼¿ «»ÑαáΓ«αἿ:
  7931.  
  7932.  
  7933.         case IDM_PASTE:
  7934.          if (OpenClipboard(hWnd)) {
  7935.  
  7936.              /* get text from the clipboard */
  7937.  
  7938.              if (!(hClipData = GetClipboardData(CF_TEXT))) {
  7939.                  CloseClipboard();
  7940.                  break;
  7941.              }
  7942.              if (hText != NULL) {
  7943.                  GlobalFree(hText);
  7944.              }
  7945.              if (!(hText = GlobalAlloc(GMEM_MOVEABLE
  7946.                                          , GlobalSize(hClipData)))) {
  7947.                  OutOfMemory();
  7948.                  CloseClipboard();
  7949.                  break;
  7950.              }
  7951.              if (!(lpClipData = GlobalLock(hClipData))) {
  7952.                  OutOfMemory();
  7953.                  CloseClipboard();
  7954.                  break;
  7955.              }
  7956.              if (!(lpszText = GlobalLock(hText))) {
  7957.                  OutOfMemory();
  7958.                  CloseClipboard();
  7959.                  break;
  7960.              }
  7961.              lstrcpy(lpszText, lpClipData);
  7962.              GlobalUnlock(hClipData);
  7963.              CloseClipboard();
  7964.              GlobalUnlock(hText);
  7965.              EnableMenuItem(GetMenu(hWnd), IDM_CUT, MF_ENABLED);
  7966.              EnableMenuItem(GetMenu(hWnd), IDM_COPY, MF_ENABLED);
  7967.  
  7968.              /* ¬«»¿α«óá¡¿Ñ ΓѬßΓá ó «¬¡« »α¿¬½áñ¡«⌐ »α«úαá¼¼δ */
  7969.  
  7970.              InvalidateRect(hWnd, NULL, TRUE);
  7971.              UpdateWindow(hWnd);
  7972.              return (TRUE);
  7973.          }
  7974.          else
  7975.              return (FALSE);
  7976.          }
  7977.          break;
  7978.  
  7979.              öπ¡¬µ¿∩ GetClipboardData   ó«ºóαáΘáÑΓ   ñÑß¬α¿»Γ«α   í½«¬á
  7980.  
  7981.        Windows 3.0/pg/2#3                                       = 150 =
  7982.  
  7983.         ú½«íá½∞¡«⌐    »á¼∩Γ¿.   öπ¡¬µ¿∩   GlobalLock   í½«¬¿απÑΓ   φΓ«Γ
  7984.         ñÑß¬α¿»Γ«α,  ó«ºóαáΘá∩  áñαÑß  í½«¬á,  ¬«Γ«αδ⌐  ¿ß»«½∞ºπÑΓß∩  ó
  7985.         Σπ¡¬µ¿¿ TextOut ñ½∩ ºá»¿ß¿ ΓѬßΓá.
  7986.                                                                                
  7987.                    13.3.5  ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_PAINT.
  7988.  
  7989.              öαáú¼Ñ¡Γ WM_PAINT  ¡Ñ«íσ«ñ¿¼ ñ½∩ óδó«ñá ΓѬπΘÑú« ΓѬßΓá ¡á
  7990.         φ¬αá¡ »α¿  ¿º¼Ñ¡Ñ¡¿∩σ  ß«ßΓ«∩¡¿∩   «¬¡á.   ä«íáó∞ΓÑ   ß½ÑñπεΘ¿Ñ
  7991.         «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
  7992.  
  7993.         case WM_PAINT:
  7994.             hDC = BeginPaint (hWnd, &ps);
  7995.             if (hText != NULL) {
  7996.                 if (!(lpszText = GlobalLock (hText))) {
  7997.                     OutOfMemory();
  7998.                 } else {
  7999.                     GetClientRect (hWnd, &rectClient);
  8000.                     DrawText (hDC, lpszText, -1, &rectClient
  8001.                                 ,DT_EXTERNALLEADING | DT_NOPREFIX |
  8002.                                  DT_WORDBREAK);
  8003.                     GlobalUnlock (hText);
  8004.                 }
  8005.             }
  8006.             EndPaint (hWnd, &ps);
  8007.             break;
  8008.                                                                                
  8009.                    13.3.6  ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ OutOfMemory.
  8010.  
  8011.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞   Σπ¡¬µ¿ε,  ¬«Γ«αá∩  íπñÑΓ  «Γ«íαáªáΓ∞
  8012.         »á¡Ñ½∞ ß««íΘÑ¡¿∩,  ¬«úñá »α¿¬½áñ¡«⌐ »α«úαἼѠ¡Ñ íπñÑΓ  σóáΓáΓ∞
  8013.         »á¼∩Γ¿. ä«íáó∞ΓÑ  ß½ÑñπεΘπε  Σπ¡¬µ¿ε  ó Σá⌐½ ß ¿ßσ«ñ¡δ¼ ΓѬßΓ«¼
  8014.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ:
  8015.  
  8016.              void OutOfMemory(void)
  8017.              {
  8018.                  MessageBox(
  8019.                      GetFocus(),
  8020.                      "Out of Memory",
  8021.                      NULL,
  8022.                      MB_ICONHAND | MB_SYSTEMMODAL);
  8023.                  return;
  8024.              }
  8025.  
  8026.              é« ó¬½ετáѼδ⌐ Σá⌐á½ ñ«íáó∞ΓÑ ÑÑ »αÑñóáα¿Γѽ∞¡«Ñ «»¿ßá¡¿Ñ:
  8027.  
  8028.              void OutOfMemory(void);
  8029.                                                                                
  8030.                       13.3.7  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
  8031.  
  8032.              ä½∩ »ÑαÑΓαá¡ß½∩µ¿¿  ¿  »ÑαѬ«¼»«¡«ó¬¿   ÅÅ   ClipText   ¡Ñ
  8033.         ΓαÑíπÑΓß∩  ó¡«ß¿Γ∞  ¬á¬¿σ-½¿í«  ¿º¼Ñ¡Ñ¡¿⌐  ó  Σá⌐½ make.  Å«ß½Ñ
  8034.         Γαá¡ß½∩µ¿¿ ¿ ¬«¼»«¡«ó¬¿ ºá»πßΓ¿ΓÑ Windows,  »α«úαá¼¼π Clipboard
  8035.         ¿ »α«úαá¼¼π  ClipText.  çáΓѼ  óδíÑα¿ΓÑ  ¬«¼á¡ñπ  Copy  ó  ¼Ñ¡ε
  8036.  
  8037.        Windows 3.0/pg/2#3                                       = 151 =
  8038.  
  8039.         Edit. ìá φ¬αá¡Ñ »«∩ó¿Γß∩ ¬áαΓ¿¡¬á, »αÑñßΓáó½Ñ¡¡á∩ ¡á α¿ß.13.1.
  8040.  
  8041.              É¿ßπ¡«¬ 13.1  éßΓáó¬á ΓѬßΓá ó ClipText ¿º Clipboard.
  8042.              1. ÆÑ¬ßΓ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ (Clipboard).
  8043.              2. ÆÑ¬ßΓ, óßΓáó½Ñ¡¡δ⌐ ó ClipText ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
  8044.                                               13.4  çᬽετÑ¡¿Ñ.                
  8045.  
  8046.              é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«,  ¬á¬ ¿ß»«½∞º«óáΓ∞ ß¿ßΓѼ¡δ⌐  íπΣÑα
  8047.         ñ½∩  «í¼Ñ¡á  ñá¡¡δ¼¿  ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.  æ¿ßΓѼ¡δ⌐
  8048.         íπΣÑα - φΓ« «í½áßΓ∞  »á¼∩Γ¿,  ó  ¬«Γ«α«⌐  »α¿¬½áñ¡á∩  »α«úαá¼¼á
  8049.         ¼«ªÑΓ ß«σαá¡¿Γ∞ ñÑß¬α¿»Γ«αδ ñá¡¡δσ, ñαπúá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á
  8050.         ¼«ªÑΓ ºáΓѼ »«½πτ¿Γ∞ ñá¡¡δÑ,  ßó∩ºá¡¡δÑ  ß  φΓ¿¼  ñÑß¬α¿»Γ«α«¼.
  8051.         Åਪ½áñ¡á∩   »α«úαἼᠠ ¼«ªÑΓ   »«¼ÑßΓ¿Γ∞  ó  ß¿ßΓѼ¡δ⌐  íπΣÑα
  8052.         αẽ¿τ¡ΣÑ ñá¡¡δÑ «ñ¡«óαѼѡ¡«, »α¿ πß½«ó¿¿, Ñß½¿ «¡¿ ¿ß»«½∞ºπεΓ
  8053.         αạδÑ Σ«α¼áΓδ.  ¥Γ« «íÑß»Ñτ¿óáÑΓ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ« ñá¡¡δÑ
  8054.         íπñπΓ  »«ññÑনóáΓ∞ß∩   αẽ¿τ¡δ¼¿   »α¿¬½áñ¡δ¼¿   »α«úαἼἿ.
  8055.         Åα«ßΓ«Ñ  ¿ß»«½∞º«óá¡¿Ñ  ß¿ßΓѼ¡«ú« íπΣÑαá ß«ßΓ«¿Γ ó ¬«»¿α«óá¡¿¿
  8056.         ΓѬßΓá ¿½¿ αáßΓα«óδσ ¬áαΓ ó ¿  ¿º  »α¿¬½áñ¡δσ  »α«úαá¼¼.  ü«½ÑÑ
  8057.         ß½«ª¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ó¬½ετáÑΓ π»αáó½Ñ¡¿Ñ «Γ«íαáªÑ¡¿Ñ¼ ñá¡¡δσ ¿
  8058.         αÑú¿ßΓαᵿε ß«íßΓóÑ¡¡δσ Σ«α¼áΓ«ó ñá¡¡δσ.
  8059.  
  8060.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡«  ß¿ßΓѼ¡«ú«  íπΣÑαá
  8061.         óδ ¡á⌐ñÑΓÑ ó:
  8062.  
  8063.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  8064.         ───────────────────────────────────────────────────────────────
  8065.         è«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 3, "éδó«ñ ó
  8066.                              «¬¡«".
  8067.  
  8068.         Éáí«Γá ß αáßΓα«ó묨  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 11, "ÉáßΓ-
  8069.         ¬áαΓἿ              α«óδÑ ¬áαΓδ".
  8070.  
  8071.         ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε   Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 15, "ô»αáó-
  8072.                              ½Ñ¡¿Ñ »á¼∩Γ∞ε", ¿ ú½áóá 16, "àΘÑ «í π»αáó-
  8073.                              ½Ñ¡¿¿ »á¼∩Γ∞ε".
  8074.  
  8075.         Äí¼Ñ¡ ñá¡¡δ¼¿ ß ¿ß-  Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 22, "ä¿¡á-
  8076.         »«½∞º«ó᡿Ѽ »α«Γ«-  ¼¿τÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿".
  8077.         ¬«½á Windows DDE
  8078.         ó¼ÑßΓ« ß¿ßΓѼ¡«ú«
  8079.         íπΣÑαá
  8080.  
  8081.         öπ¡¬µ¿¿ π»αáó½Ñ¡¿∩   æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 1,
  8082.         ß¿ßΓѼ¡δ¼ íπΣÑα«¼    "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá ß πßΓα«⌐ßΓó«¼ π»αáó-
  8083.                              ½Ñ¡¿∩ «¬¡á¼¿".
  8084.  
  8085.         ö«α¼áΓδ ß¿ßΓѼ¡«ú«   æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 4,
  8086.         íπΣÑαá               "滿߫¬ Σπ¡¬µ¿⌐".
  8087.  
  8088.         ö«α¼áΓδ Σá⌐½«ó ß¿ß-  æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 9,
  8089.         ΓѼ¡«ú« íπΣÑαá       "ö«α¼áΓδ Σá⌐½«ó".
  8090.  
  8091.  
  8092.        Windows 3.0/pg/2#3                                       = 152 =
  8093.  
  8094.                                    ùÇæÆ£ 3. üÄïàà æïÄåì¢à ÉÇçäàï¢.             
  8095.        ----------------------------------------------------------------
  8096.              Microsoft Windows  »αÑñ«ßΓáó½∩ÑΓ  ¼¡«ú« ßαÑñßΓóá,  ¬«Γ«αδÑ
  8097.         »«ºó«½∩εΓ »¿ßáΓ∞  ¬αáß¿óδÑ  ¿  πñ«í¡δÑ  »α¿¬½áñ¡δÑ   »α«úαá¼¼δ.
  8098.         Äñ¡á¬«, «Γ½¿τ¿Ñ   ¼Ñªñπ   σ«α«ΦÑ⌐   »α¿¬½áñ¡«⌐   »α«úαá¼¼«⌐   ¿
  8099.         »αѬαáß¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ß«ßΓ«¿Γ  ó  Γ«¼,  τΓ«  σ«α«Φá∩
  8100.         »α¿¬½áñ¡á∩ »α«úαἼᠠ»α«ßΓ« αáí«ΓáÑΓ,  á »αѬαáß¡á∩ »α¿¬½áñ¡á∩
  8101.         »α«úαá¼¼á αáí«ΓáÑΓ íδßΓα« ¿  φΣΣÑ¬Γ¿ó¡«,  ¿¼ÑÑΓ  ñ«»«½¡¿Γѽ∞¡δÑ
  8102.         ó«º¼«ªÑ¡«ßΓ¿ ¿¡ΓÑαΣÑ⌐ßá  ß  »«½∞º«óáΓѽѼ,  ΓᬿѠ¬á¬ µóÑΓ¡δÑ ¿
  8103.         ¬αáß¿óδÑ Φα¿ΣΓδ,  ¿ »αÑñ«ßΓáó½∩ÑΓ »«½∞º«óáΓÑ½ε ¼«Θ¡δÑ ¿  ú¿í¬¿Ñ
  8104.         ßαÑñßΓóá ñ½∩ αÑΦÑ¡¿∩ ß½«ª¡δσ ¿½¿ í«½∞Φ¿σ ºáñáτ.
  8105.  
  8106.              â½áóδ ¿º  óΓ«α«⌐  τáßΓ¿  ñáεΓ  óá¼ σ«α«Φπε íáºπ,  τΓ«íδ óδ
  8107.         ¼«ú½¿ ¡áτáΓ∞ αáºαáíáΓδóáΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ »α«úαá¼¼δ.  Äñ¡á¬«,
  8108.         Ñß½¿ óδ   πªÑ  »α«úαá¼¼¿α«ó὿  ó  Windows,  Γ«  óδ,  ó«º¼«ª¡«,
  8109.         ºáσ«Γ¿ΓÑ  αáßΦ¿α¿Γ∞  ¿½¿  π½πτΦ¿Γ∞  ßó«¿  »α«úαá¼¼δ,  ¡á»α¿¼Ñα,
  8110.         ñ«í¿Γ∞ß∩    í«½ÑÑ   φΣΣÑ¬Γ¿ó¡«ú«   ¿ß»«½∞º«óá¡¿∩   »á¼∩Γ¿   ¿½¿
  8111.         »αÑñ«ßΓáó¿Γ∞ í«½ÑÑ ¼«Θ¡δÑ ßαÑñßΓóá ñ½∩ »ÑτáΓ¿.
  8112.  
  8113.              é ΓαÑΓ∞Ñ⌐ τáßΓ¿ ¼δ αáß߬áªÑ¼  «  ¡Ñ¬«Γ«αδσ  í«½ÑÑ  ß½«ª¡δσ
  8114.         ó«»α«ßáσ »α«úαá¼¼¿α«óá¡¿∩ ó ßαÑñÑ Windows. îδ »αÑñ»«½áúáѼ, τΓ«
  8115.         óδ »α«τ½¿ τáßΓ¿ 1 ¿ 2 ñá¡¡«ú« απ¬«ó«ñßΓóá ¿ º¡á¬«¼δ  ß«  ßαÑñ«⌐
  8116.         Windows. é  ¬áªñ«⌐  ú½áóÑ  ºáΓαáú¿óáÑΓß∩  «ñ¡á ΓѼá.  Å«ß¬«½∞¬π
  8117.         »α¿¼Ñαδ »α«úαá¼¼ ¿º ú½áó ΓαÑΓ∞Ñ⌐ τáßΓ¿ í«½ÑÑ  ß½«ª¡δÑ,  τѼ  ó«
  8118.         óΓ«α«⌐,  Γ«  ó  ú½áóáσ  τáßΓ¿  3  ¡Ñ  »α¿ó«ñ∩Γß∩  »«½¡δÑ ΓѬßΓδ
  8119.         »α«úαá¼¼.  ÆÑ¬ßΓδ óßÑσ »α«úαá¼¼ óδ ¡á⌐ñÑΓÑ ¡á ñ¿ß¬Ñ "SDK Sample
  8120.         Source Disk", ¬«Γ«αδ⌐ »«ßΓáó½∩ÑΓß∩ ó¼ÑßΓÑ ß SDK.
  8121.  
  8122.  
  8123.  
  8124.        Windows 3.0/pg/2#3                                       = 153 =
  8125.  
  8126.                                 â½áóá 14. ƒºδ¬ æ ¿ ∩ºδ¬ ÇßßѼí½Ñαá.            
  8127.        ----------------------------------------------------------------
  8128.              é »Ñαó«⌐   ¿  óΓ«α«⌐  τáßΓ∩σ  óó«ñ∩Γß∩  Σπ¡¬µ¿¿  Microsoft
  8129.         Windows, ¬«Γ«αδÑ  óδ  ¿ß»«½∞ºπÑΓÑ  ó  »α«úαá¼¼áσ   ¡á   æ   ¿½¿
  8130.         áßßѼí½ÑαÑ, »α¿  ß«ºñá¡¿¿  »α¿¬½áñ¡δσ  »α«úαá¼¼ ñ½∩ Windows.  é
  8131.         φΓ¿σ τáßΓ∩σ «ß¡«ó¡«Ñ ó¡¿¼á¡¿Ñ  πñѽ∩½«ß∞  φ½Ñ¼Ñ¡Γá¼  »α¿¬½áñ¡δσ
  8132.         »α«úαá¼¼, ¬«Γ«αδÑ «Γ¡«ß∩Γß∩ ¬ Windows.
  8133.  
  8134.              Äñ¡á¬« ºáóÑαΦÑ¡¡δÑ   »α«úαá¼¼δ   ñ½∩   Windows  ¡Ñ  óßÑúñá
  8135.         ¿ß»«½∞ºπεΓ Γ«½∞¬« Σπ¡¬µ¿¿ Windows. é¼ÑßΓ« φΓ«ú« óáΦá »α«úαá¼¼á,
  8136.         ó«º¼«ª¡«, ¿ß»«½∞ºπÑΓ  Σπ¡¬µ¿¿  ßΓá¡ñáαΓ¡δσ  í¿í½¿«ΓѬ  æ ¿ óáΦ¿
  8137.         ß«íßΓóÑ¡¡δÑ Σπ¡¬µ¿¿,  ¬«Γ«αδÑ ó ßó«ε «τÑαÑñ∞ óδºδóáεΓß∩ Windows
  8138.         ¿½¿  ñαπú¿¼¿ ¼«ñπ½∩¼¿ óáΦÑ⌐ »α«úαá¼¼δ.  Äñ¡á¬« ó᪡«,  τΓ«íδ óδ
  8139.         º¡á½¿ ¬á¬ ó¬½ετáΓ∞ φΓ¿ »α«µÑñπαδ ó óáΦπ »α«úαá¼¼π.
  8140.  
  8141.              é ñá¡¡«⌐ ú½áóÑ «íßπªñáεΓß∩ ß½ÑñπεΘ¿Ñ ó«»α«ßδ:
  8142.  
  8143.              - éδí«α ¼«ñѽ¿ »á¼∩Γ¿.
  8144.  
  8145.              - êß»«½∞º«óá¡¿Ñ NULL.
  8146.  
  8147.              - êß»«½∞º«óá¡¿Ñ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ DOS.
  8148.  
  8149.              - ìỿßá¡¿Ñ φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐.
  8150.  
  8151.              - êß»«½∞º«óá¡¿Ñ ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ.
  8152.  
  8153.              - ìỿßá¡¿Ñ »α«úαá¼¼ ¡á áßßѼí½ÑαÑ.
  8154.                                        14.1  éδí«α ¼«ñѽ¿ »á¼∩Γ¿.              
  8155.  
  8156.              èᬠ¿ «íδτ¡δÑ »α«úαá¼¼δ DOS,  »α«úαá¼¼δ  ó  ßαÑñÑ  Windows
  8157.         ¼«úπΓ ß«ñÑαªáΓ∞  «ñ¿¡  ¿½¿  ¡Ñ߬«½∞¬« ßÑú¼Ñ¡Γ«ó ¬«ñá ¿ «ñ¿¡ ¿½¿
  8158.         ¡Ñ߬«½∞¬« ßÑú¼Ñ¡Γ«ó ñá¡¡δσ,  ó ºáó¿ß¿¼«ßΓ¿ «Γ ¿ß»«½∞ºπѼ«⌐  »α¿
  8159.         ¬«¼»¿½∩µ¿¿ ¼«ñѽ¿   »á¼∩Γ¿.  é  ú½áóÑ  16  "àΘÑ  «í  π»αáó½Ñ¡¿¿
  8160.         »á¼∩Γ∞ε" «íßπªñáεΓß∩ ñ«ßΓπ»¡δÑ »áαá¼ÑΓαδ ¼«ñѽÑ⌐ »á¼∩Γ¿.
  8161.  
  8162.              éδí¿αáѼá∩ óἿ  ¼«ñѽ∞  »á¼∩Γ¿  ó½¿∩ÑΓ  ¡á  φΣΣÑ¬Γ¿ó¡«ßΓ∞
  8163.         αáí«Γδ »α«úαá¼¼δ ó ßαÑñÑ Windows.  é í«½∞Φ¿¡ßΓóÑ ß½πτáÑó ½πτΦÑ⌐
  8164.         ∩ó½∩ÑΓß∩  ß¼ÑΦá¡¡á∩.  Åα¿  ¿ß»«½∞º«óá¡¿¿  ß¼ÑΦá¡¡«⌐  ¼«ñѽ¿  óδ
  8165.         ¬«¼»¿½¿απÑΓÑ  ¼«ñπ½¿  ß  ¿ß»«½∞ºπÑ¼δ¼¿  »«  π¼«½τá¡¿ε ¼á½«⌐ ¿½¿
  8166.         ßαÑñ¡Ñ⌐ ¼«ñѽ∩¼¿ »á¼∩Γ¿ ¿ ¿¼Ñ¡á¼¿ ßÑú¼Ñ¡Γ«ó. çáΓѼ óδ ß »«¼«Θ∞ε
  8167.         ∩ó¡δσ ó맮ó«ó  FAR  (󠼫ñπ½∩σ ß ¼á½«⌐ ¼«ñѽ∞ε »á¼∩Γ¿) ¿½¿ NEAR
  8168.         (󠼫ñπ½∩σ ß« ßαÑñ¡Ñ⌐ ¼«ñѽ∞ε »á¼∩Γ¿) ¿º¼Ñ¡∩ÑΓÑ  φΓ¿  »áαá¼ÑΓαδ
  8169.         »α¿ ó맮óÑ Σπ¡¬µ¿⌐ ¿º ñαπú¿σ ßÑú¼Ñ¡Γ«ó.
  8170.  
  8171.              ÅαÑ¿¼πΘÑßΓóá ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿:
  8172.  
  8173.              - ü½¿ª¡¿Ñ   ó맮óδ  π¼Ñ¡∞ΦáεΓ  «íΩѼ  ¬«ñá,  úÑ¡Ñα¿απѼ«ú«
  8174.                ¬«¼»¿½∩Γ«α«¼, ¿ Γᬫ⌐ ó맮ó Σπ¡¬µ¿¿ óδ»«½¡∩ÑΓß∩ íδßΓαÑÑ.
  8175.  
  8176.              - è«¼»¿½¿α«óá¡¿Ñ ¼«ñπ½Ñ⌐ ß  ¡áºóá¡¡δ¼¿  ¿¼Ñ¡á¼¿  ßÑú¼Ñ¡Γ«ó
  8177.                αáºñѽ∩ÑΓ ßÑú¼Ñ¡Γδ  ¡á  ¡Ñí«½∞Φ¿Ñ τáßΓ¿,  ¬«Γ«αδÑ ñѽáεΓ
  8178.  
  8179.        Windows 3.0/pg/2#3                                       = 154 =
  8180.  
  8181.                »α«ΘÑ  ñ½∩  Windows  »α«µÑßß  »ÑαѼÑΘÑ¡¿∩  ßÑú¼Ñ¡Γ«ó   ó
  8182.                »á¼∩Γ¿.
  8183.  
  8184.              ä½∩ ß«ºñá¡¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,  ¿ß»«½∞ºπεΘÑ⌐ ß¼ÑΦá¡¡πε
  8185.         ¼«ñѽ∞ (ß ¼á½«⌐ ¼«ñѽ∞ε »« π¼«½τá¡¿ε), óδ»«½¡¿ΓÑ ß½ÑñπεΘÑÑ:
  8186.  
  8187.              1. æ«ºñá⌐ΓÑ »α«Γ«Γ¿»δ ñ½∩ óßÑσ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ óδºδóáεΓß∩
  8188.                 ¿º ó¡Ñ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá, ó ¬«Γ«α«¼ «¡á «»αÑñѽѡá. ä½∩
  8189.                 πñ«íßΓóá φΓ¿ «»¿ßá¡¿∩  ¼«ª¡«  »«¼ÑßΓ¿Γ∞  ó«  ó¬½ετáѼδ⌐
  8190.                 Σá⌐½. éδ ñ«½ª¡δ «»¿ßáΓ∞ ¬á¬ ñá½∞¡¿Ñ (¿ß»«½∞ºπ∩ ¬½ετÑó«Ñ
  8191.                 ß½«ó« FAR) óßÑ ó맮óδ Σπ¡¬µ¿⌐,  ¬«Γ«αδÑ ß«óÑαΦáεΓß∩  ¿º
  8192.                 ñαπú¿σ   ßÑú¼Ñ¡Γ«ó.   ì¿ªÑ   »α¿ó«ñ¿Γß∩  »α¿¼Ñα  Γᬫú«
  8193.                 «»¿ßá¡¿∩:
  8194.  
  8195.                 int FAR MyCalculation(int,int);
  8196.  
  8197.              2. ÄΓ¬«¼»¿½¿απ⌐ΓÑ ¼«ñπ½¿ ¡á æ ß ¬½ετѼ  -AS  ñ½∩  ß«ºñá¡¿∩
  8198.                 »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
  8199.  
  8200.              3. ÄΓ¬«¼»¿½¿απ⌐ΓÑ  ¼«ñπ½¿  ¡á  æ ß ¬½ετѼ -NT ñ½∩ π¬áºá¡¿∩
  8201.                 ¿¼Ñ¡ ßÑú¼Ñ¡Γ«ó.
  8202.  
  8203.              è½ετ¿ ¬«¼»¿½∩Γ«αá ¿ ¼¡«ú«Ñ ñαπú«Ñ «»¿ßá¡δ ó "Tools".
  8204.  
  8205.              æ«ºñá¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó ß¼ÑΦá¡¡«⌐  ¼«ñѽ¿  »á¼∩Γ¿,
  8206.         ¿ß»«½∞ºπ∩ ßαÑñ¡εε     ¼«ñѽ∞     »«    π¼«½τá¡¿ε,    á¡á½«ú¿τ¡«
  8207.         óδΦÑ«»¿ßá¡¡«¼π ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«,  τΓ« óδ ñ«½ª¡δ ∩ó¡« «»¿ßáΓ∞
  8208.         ¬á¬ NEAR   Σπ¡¬µ¿¿,   ¬«Γ«αδÑ  óδºδóáεΓß∩  Γ«½∞¬«  ó¡πΓα¿  Γ«ú«
  8209.         ßÑú¼Ñ¡Γá, ó  ¬«Γ«α«¼  «¡¿  «»αÑñѽ∩εΓß∩.  è«¼»¿½¿α«óáΓ∞   ΓᬿÑ
  8210.         ¼«ñπ½¿ ¡áñ«  ß  »«¼«Θ∞ε  ¬½ετá -AM ñ½∩ πßΓᡫ󬿠ßαÑñ¡Ñ⌐ ¼«ñѽ¿
  8211.         »á¼∩Γ¿ »« π¼«½τá¡¿ε.
  8212.                                         14.2  êß»«½∞º«óá¡¿Ñ NULL.              
  8213.  
  8214.              æ¿¼ó«½¿τÑ߬á∩ ¬«¡ßΓá¡Γá  NULL  »«  αạ«¼π  «»αÑñѽѡᠠ ó
  8215.         Windows ¿  ó  Microsoft  C  Compiller  óÑαß¿¿  6.0.  é  Windows
  8216.         ¬«¡ßΓá¡Γá NULL «»αÑñѽѡá ó Σá⌐½Ñ windows.h ß½ÑñπεΘ¿⌐ «íαẫ¼:
  8217.  
  8218.              #define NULL 0
  8219.  
  8220.              æ ñαπú«⌐ ßΓ«α«¡δ,  ó« ó¬½ετáѼδσ Σá⌐½áσ  í¿í½¿«ΓѬ  æ  6.0
  8221.         (Γᬫ¼ ¬á¬ STDDEF.H) ¬«¡ßΓá¡Γá «»αÑñѽ∩ÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
  8222.  
  8223.              #ifndef NULL
  8224.              #define NULL ((void *)0)
  8225.              #endif
  8226.  
  8227.              ä½∩ ¿ß¬½ετÑ¡¿∩  ß««íΘÑ¡¿⌐  ¬«¼»¿½∩Γ«αá  ½πτΦÑ ¿ß»«½∞º«óáΓ∞
  8228.         NULL Γ«½∞¬« ñ½∩ π¬áºáΓѽÑ⌐, Γᬿσ ¬á¬ »áαá¼ÑΓαδ Σπ¡¬µ¿⌐ Windows
  8229.         ß Γ¿»«¼  LPSTR.  éδ ¡Ñ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ NULL ñ½∩ »ÑαѼѡ¡δσ,
  8230.         ¬«Γ«αδÑ «íΩ∩ó½Ñ¡δ  ß  «ß¡«ó¡δ¼  Γ¿»«¼,  Γᬿ¼  ¬á¬  int,  WORD,
  8231.         HANDLE, ¿ Γ.». HANDLE «»αÑñѽѡ ó WINDOWS.H ¬á¬ WORD.
  8232.  
  8233.  
  8234.        Windows 3.0/pg/2#3                                       = 155 =
  8235.  
  8236.              éδ ¼«ªÑΓÑ  ¿ß¬½ετ¿Γ∞ óδñáτπ ß««íΘÑ¡¿⌐,  »«ßΓáó¿ó ñ¿αÑ¬Γ¿óπ
  8237.         ó¬½ετÑ¡¿∩ Windows.H »ÑαÑñ ó¬½ετÑ¡¿Ñ¼ óßÑσ «ßΓá½∞¡δσ  ó¬½ετáѼδσ
  8238.         Σá⌐½«ó, ¬«Γ«αδÑ «»αÑñѽ∩εΓ NULL, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
  8239.  
  8240.              #include <windows.h>
  8241.              #include <stddef.h>
  8242.  
  8243.              Å«ß¬«½∞¬π ó¬½ετáѼδÑ Σá⌐½δ ó ßΓá¡ñáαΓ¡δσ í¿í½¿«ΓѬáσ æ  ¡Ñ
  8244.         «»αÑñѽ∩εΓ NULL, Ñß½¿ «¡ πªÑ «»αÑñѽѡ, »αÑ»α«µÑßß«α ¡Ñ ¿º¼Ñ¡¿Γ
  8245.         ¡áτá½∞¡«ú« «»αÑñѽѡ¿∩ ó WINDOWS.H.
  8246.                14.3 êß»«½∞º«óá¡¿Ñ   áαúπ¼Ñ¡Γ«ó   ¬«¼á¡ñ¡«⌐    ßΓ᫬¿    ¿      
  8247.                              »ÑαѼѡ¡δσ ßαÑñδ DOS.
  8248.  
  8249.              é »α¿¬½áñ¡«⌐  »α«úαἼѠ¼«ª¡« »«½πτ¿Γ∞ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐
  8250.         ßΓ᫬¿, ¬«Γ«αδÑ  í뫨  ¿ß»«½∞º«óá¡δ  »α¿   ºá»π߬Ѡ  »α¿¬½áñ¡«⌐
  8251.         »α«úαá¼¼δ ΓᬠªÑ, ¬á¬ ¿ »ÑαѼѡ¡δÑ ßαÑñδ DOS.
  8252.  
  8253.              Åα¿ ºá»π߬Ѡ»α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó ßαÑñÑ Windows ßΓáαΓ«óá∩
  8254.         »α«µÑñπαá  Windows  ¬«»¿απÑΓ  áαúπ¼Ñ¡Γδ  ¬«¼á¡ñ¡«⌐   ßΓ᫬¿   ó
  8255.         »ÑαѼѡ¡δÑ  _argc  ¿ _argv.  èᬠ¿ ß««ΓóÑΓßΓóπεΘ¿Ñ »ÑαѼѡ¡δÑ ó
  8256.         ßΓá¡ñáαΓ¡δσ »α«úαá¼¼áσ æ,  φΓ¿  »ÑαѼѡ¡δÑ  »αÑñßΓáó½∩εΓ  ß«í«⌐
  8257.         τ¿ß½« áαúπ¼Ñ¡Γ«ó ¿ ¼áßß¿ó ßΓ᫬, ß«ñÑαªáΘ¿⌐ ßἿ φΓ¿ áαúπ¼Ñ¡Γδ.
  8258.         èα«¼Ñ φΓ«ú«,  »ÑαѼѡ¡á∩ environ »«½πτáÑΓ π¬áºáΓѽ∞  ¡á  ¼áßß¿ó
  8259.         ßΓ᫬,  ß«ñÑαªáΘ¿σ  º¡áτÑ¡¿∩  »ÑαѼѡ¡δσ  ßαÑñδ DOS,  ¡á ¼«¼Ñ¡Γ
  8260.         ºá»πß¬á »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
  8261.  
  8262.              ùΓ«íδ ó«ß»«½∞º«óáΓ∞ß∩ φΓ¿¼¿ »ÑαѼѡ¡δ¼¿ óδ ñ«½ª¡δ «íΩ∩ó¿Γ∞
  8263.         ¿σ ¬á¬  ó¡ÑΦ¡¿Ñ  ñ½∩  óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,  ¬á¬ »«¬áºá¡«
  8264.         ¡¿ªÑ:
  8265.  
  8266.              extern int      _argc;
  8267.              extern char *   _argv[];
  8268.              extern char *   _environ[];
  8269.  
  8270.              àß½¿ σ«Γ¿ΓÑ,  Γ« ¼«ª¡« »α«óÑα¿Γ∞  »áαá¼ÑΓα  lpCommandLine,
  8271.         »ÑαÑñáóáѼδ⌐ ó Σπ¡¬µ¿ε WinMain Windows.
  8272.  
  8273.              àß½¿ ó   »α¿¬½áñ¡«⌐   »α«úαἼѠ  ¡Ñ  ΓαÑíπÑΓß∩  ñ«ßΓπ»  ¬
  8274.         áαúπ¼Ñ¡Γá¼ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ ¿½¿  ¬  »ÑαѼѡ¡δ¼  ßαÑñδ  DOS,  óδ
  8275.         ¼«ªÑΓÑ π¼Ñ¡∞Φ¿Γ∞   «íΩѼ  »á¼∩Γ¿  "¬πτ¿"  ¿  «íΩѼ  ¬«ñá  óáΦÑ⌐
  8276.         »α«úαá¼¼δ ¿ß¬½ετ¿ó  ¿º  ¡ÑÑ  ¬«ñ  ¿¡¿µ¿á½¿ºáµ¿¿.  ¥Γ«Γ  »α«µÑßß
  8277.         «»¿ßá¡ ó αáºñѽѠ14.5.10, "ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ".
  8278.  
  8279.              ä¿¡á¼¿τÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿ (DLL) ¡Ñ ¿¼ÑεΓ ñ«ßΓπ»á
  8280.         ¬ »áαá¼ÑΓαá¼ _argc, _argv ¿ environ. é¼ÑßΓ« φΓ«ú« ñ½∩ »«½πτÑ¡¿∩
  8281.         áαúπ¼Ñ¡Γ«ó   ¬«¼á¡ñ¡«⌐  ßΓ᫬¿  «¡¿  ¼«úπΓ  »α«óÑα¿Γ∞  »áαá¼ÑΓα
  8282.         lpCommandLine,  »ÑαÑñáóáѼδ⌐ Windows Σπ¡¬µ¿¿ LibEntry. æ¼«Γα¿ΓÑ
  8283.         ú½áóπ 20, "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
  8284.  
  8285.              Å«ß¬«½∞¬π ñ¿¡á¼¿τÑ߬¿  »«ñ¬½ετáѼδÑ  í¿í½¿«ΓѬ¿  ¡Ñ  ¿¼ÑεΓ
  8286.         ñ«ßΓπ»á ¬  »ÑαѼѡ¡«⌐  -environ,  Γ«  ñ½∩  »«½πτÑ¡¿∩   º¡áτÑ¡¿⌐
  8287.         »ÑαѼѡ¡δσ ßαÑñδ    DOS   «¡¿   ñ«½ª¡δ   ¿ß»«½∞º«óáΓ∞   Σπ¡¬µ¿ε
  8288.         GetDOSEnvironment.
  8289.  
  8290.        Windows 3.0/pg/2#3                                       = 156 =
  8291.  
  8292.                              14.4  ìỿßá¡¿Ñ φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐.           
  8293.  
  8294.              èᬠ»αá󿽫,  Σπ¡¬µ¿¿,  ¬«Γ«αδÑ  óδ  «»αÑñѽ∩ÑΓÑ  ó  óáΦÑ⌐
  8295.         »α«úαá¼¼Ñ, ¡Ñ ΓαÑíπεΓ ß»Ñµ¿á½∞¡«⌐ «íαáí«Γ¬¿. Äñ¡á¬« ¿¼ÑÑΓß∩ ñóá
  8296.         ¿ß¬½ετÑ¡¿∩ ¿º φΓ«ú« »αáó¿½á:
  8297.  
  8298.              - öπ¡¬µ¿¿ ó DLL, ¬«Γ«αδÑ óδºδóáεΓß∩ ¿º ó¡Ñ í¿í½¿«ΓѬ¿.
  8299.  
  8300.              - öπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá.
  8301.  
  8302.              ê¡Σ«α¼áµ¿ε «  Σπ¡¬µ¿∩σ  DLL  óδ  ¡á⌐ñÑΓÑ   ó   ú½áóÑ   20,
  8303.         "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
  8304.  
  8305.              öπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú«   ó맮óá   -   φΓ«   Σπ¡¬µ¿¿   óáΦÑ⌐
  8306.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,  ¬«Γ«αδÑ óδºδóáεΓß∩ ¡Ñ ¿º »α«úαá¼¼δ, á ¿º
  8307.         Windows. ì¿ªÑ    »α¿óÑñÑ¡   ß»¿ß«¬   «ß¡«ó¡δσ   Γ¿»«ó   Σπ¡¬µ¿⌐
  8308.         ¼¡«ú«¬αáΓ¡«ú« ó맮óá:
  8309.  
  8310.              - öπ¡¬µ¿∩  WinMain.  ¥Γ«  Γ«τ¬á  óσ«ñá  óáΦÑ⌐   »α¿¬½áñ¡«⌐
  8311.                »α«úαá¼¼δ.
  8312.  
  8313.              - öπ¡¬µ¿¿   «¬«¡   »α¿¬½áñ¡«⌐   »α«úαá¼¼δ.   ¥Γ¿   Σπ¡¬µ¿¿
  8314.                «íαáíáΓδóáεΓ ß««íΘÑ¡¿∩, »«ßδ½áѼδÑ «¬¡π.
  8315.  
  8316.              - öπ¡¬µ¿¿ ñ¿á½«úá.  ¥Γ¿  Σπ¡¬µ¿¿  «íαáíáΓδóáεΓ  ß««íΘÑ¡¿∩,
  8317.                »«ßδ½áѼδÑ »á¡Ñ½¿ ñ¿á½«úá.
  8318.  
  8319.              - öπ¡¬µ¿¿    »ÑαÑτ¿ß½Ñ¡¿∩.    ¥Γ¿   Σπ¡¬µ¿¿   «íαáíáΓδóáεΓ
  8320.                αѺπ½∞ΓáΓδ Σπ¡¬µ¿⌐ »ÑαÑτ¿ß½Ñ¡¿∩ Windows.
  8321.  
  8322.              - öπ¡¬µ¿¿ πóÑñ«¼½Ñ¡¿∩ «í «ßó«í«ªñÑ¡¿¿ »á¼∩Γ¿.  ¥Γ¿ Σπ¡¬µ¿¿
  8323.                óδºδóáεΓß∩ Windows   ñ½∩  πóÑñ«¼½Ñ¡¿∩  óáΦÑ⌐  »α¿¬½áñ¡«⌐
  8324.                »α«úαá¼¼δ, τΓ« ¡Ñ«íσ«ñ¿¼« ßíα«ß¿Γ∞ í½«¬ »á¼∩Γ¿.
  8325.  
  8326.              - öπ¡¬µ¿¿  ½«óπΦѬ  (Σ¿½∞Γαδ).  ¥Γ¿  Σπ¡¬µ¿¿  «íαáíáΓδóáεΓ
  8327.         ß««íΘÑ¡¿∩, »«ßδ½áѼδÑ   «¬¡á¼¿  ñαπú¿¼  »α¿¬½áñ¡δ¼  »α«úαá¼¼á¼.
  8328.         ü«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐ ½«óπΦѬ ñ«½ª¡δ αáß»«½áúáΓ∞ß∩ ó í¿íñΓ«ΓѬáσ.
  8329.                         14.4.1  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá.         
  8330.  
  8331.              ä½∩ óßÑσ Σπ¡¬µ¿⌐ ¼¡«ú«¬αáΓ¡«ú« ó맮óá óδ ñ«½ª¡δ  ß½Ññ«óáΓ∞
  8332.         ß½ÑñπεΘ¿¼ Φáúá¼:
  8333.  
  8334.              1. Ä»αÑñѽ¿Γ∞   Σπ¡¬µ¿ε  ¼¡«ú«¬αáΓ¡«ú«  ó맮óá  ß  »«¼«Θ∞ε
  8335.                 ¬½ετÑó«ú« ß½«óá  PASCAL.  ¥Γ«  »α¿óÑñÑΓ  ¬  Γ«¼π,   τΓ«
  8336.                 »áαá¼ÑΓαδ Σπ¡¬µ¿¿   íπñπΓ  »«¼ÑΘáΓ∞ß∩  ó  ßΓѬ  "ß»αáóá
  8337.                 ¡á½Ñó«", á ¡Ñ ¬á¬ ó ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿∩σ æ.
  8338.  
  8339.              2. Ä»αÑñѽ¿Γ∞    Σπ¡¬µ¿ε    ¼¡«ú«¬αáΓ¡«ú«     ó맮óá     ß
  8340.                 ¿ß»«½∞º«áó᡿Ѽ ¬½ετÑó«ú«   ß½«óá  FAR.  ¥Γ«  »«ºó«½∩ÑΓ
  8341.                 «ßπΘÑßΓó½∩Γ∞ ó맮ó Σπ¡¬µ¿¿ ¿º ó¡Ñ ßÑú¼Ñ¡Γá,  ó  ¬«Γ«α«¼
  8342.  
  8343.        Windows 3.0/pg/2#3                                       = 157 =
  8344.  
  8345.                 «¡á «»αÑñѽѡá.  ¥Γ«  »αá󿽫  ¡Ñ  »α¿¼Ñ¡∩ÑΓß∩ Γ«½∞¬« ¬
  8346.                 Σπ¡¬µ¿¿ WinMain.
  8347.  
  8348.              3. ÄΓ¬«¼»¿½¿απ⌐ΓÑ ¼«ñπ½¿, ß«ñÑαªáΘ¿Ñ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú«
  8349.                 ó맮óá  ß  ¬½ετѼ  -Gw  (¡Ñ  »πΓá⌐ΓÑ ß -GW).  ¥Γ«Γ ¬½ετ
  8350.                 π¬áºδóáÑΓ  ¬«¼»¿½∩Γ«απ,  τΓ«  ¡Ñ«íσ«ñ¿¼«   ñ«íáó¿Γ∞   ¬
  8351.                 Σπ¡¬µ¿¿  ¬«ñ "»α«½«úá" ¿ "φ»¿½«úá",  ¬«Γ«αδÑ ºáßΓáó½∩εΓ
  8352.                 ¿ß»«½∞º«óáΓ∞  »αáó¿½∞¡δ⌐  ßÑú¼Ñ¡Γ  ñá¡¡δσ  »α¿   ó맮óÑ
  8353.                 Σπ¡¬µ¿¿.
  8354.  
  8355.              4. ÅÑαÑτ¿ß½¿ΓÑ  Σπ¡¬µ¿¿  ¼¡«ú«¬αáΓ¡«ú«  ó맮óá ó «»ÑαáΓ«αÑ
  8356.                 EXPORTS Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ (.DEF).  ¥Γ«  »«ºó«½¿Γ
  8357.                 «»αÑñѽ¿Γ∞  º¡áτÑ¡¿Ñ  ¿  áΓα¿íπΓδ Σπ¡¬µ¿⌐ ¼¡«ú«¬αáΓ¡«ú«
  8358.                 ó맮óá.
  8359.  
  8360.              ä½∩ óßÑσ Σπ¡¬µ¿⌐ ¼¡«ú«¬αáΓ¡«ú« ó맮óá,  ¿ß¬½ετá∩  WinMain,
  8361.         óáΦá »α«úαἼᠠ»ÑαÑñáÑΓ  Windows  áñαÑß  φ¬ºÑ¼»½∩αá  »α«µÑñπαδ
  8362.         Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá,  ¬«úñá Windows  óδºδóáÑΓ  Σπ¡¬µ¿ε
  8363.         ¼¡«ú«¬αáΓ¡«ú« ó맮óá.   ìá»α¿¼Ñα,   ¬«úñá  óδ  ß«ºñáÑΓÑ  »á¡Ñ½∞
  8364.         ñ¿á½«úá, «ñ¡¿¼ ¿º »áαá¼ÑΓα«ó Σπ¡¬µ¿¿, ß«ºñáεΘÑ⌐ »á¡Ñ½∞ ñ¿á½«úá,
  8365.         ∩ó½∩ÑΓß∩ áñαÑß φ¬ºÑ¼»½∩αá »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿,  ¬«Γ«αá∩ íπñÑΓ
  8366.         «íαáíáΓδóáΓ∞ ß««íΘÑ¡¿∩, »«ßδ½áѼδÑ »á¡Ñ½∞ε ñ¿á½«úá.
  8367.  
  8368.              ä½∩ ß«ºñá¡¿∩  áñαÑßá  φ¬ºÑ¼»½∩αá  »α«µÑñπαδ   ¿ß»«½∞ºπÑΓß∩
  8369.         Σπ¡¬µ¿∩ MakeProcInstance.    ¥Γá   Σπ¡¬µ¿∩   ó«ºóαáΘáÑΓ   áñαÑß
  8370.         φ¬ºÑ¼»½∩αá »α«µÑñπαδ, ¬«Γ«αδ⌐ π¬áºδóáÑΓ ¡á ¬«ñ »α«½«úá, ¬«Γ«αδ⌐
  8371.         óδ»«½¡∩ÑΓß∩ »ÑαÑñ óδº«ó«¼ ßἫ⌐ Σπ¡¬µ¿¿. ¥Γ«Γ »α«½«ú »«ñ¬½ετáÑΓ
  8372.         ßÑú¼Ñ¡Γ ñá¡¡δσ  φ¬ºÑ¼»½∩αá  »α¿¬½áñ¡«⌐  »α«úαá¼¼δ   ¬   Σπ¡¬µ¿¿
  8373.         ¼¡«ú«¬αáΓ¡«ú« ó맮óá.  Æá¬¿¼  «íαẫ¼,  »α¿  ó맮óÑ Σπ¡¬µ¿¿ «¡á
  8374.         »«½πτáÑΓ ñ«ßΓπ»  ¬  »ÑαѼѡ¡δ¼   ¿   ñá¡¡δ¼   ßÑú¼Ñ¡Γá   ñá¡¡δσ
  8375.         φ¬ºÑ¼»½∩αá »α«µÑñπαδ.  éá¼  ¡Ñ ¡πª¡« ß«ºñáóáΓ∞ áñαÑß φ¬ºÑ¼»½∩αá
  8376.         »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿ WinMain ¿½¿ ñ½∩ ½εí«⌐ Σπ¡¬µ¿¿  «¬¡á,  τÑ⌐
  8377.         ¬½áßß   óáΦá   »α«úαá¼¼   ºáαÑú¿ßΓα¿α«óá½á  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  8378.         RegisterClass.
  8379.  
  8380.              Å«ß½Ñ Γ«ú«,  ¬á¬ Σπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú«  ó맮óá  í«½∞ΦÑ  ¡Ñ
  8381.         ¡πª¡á (φΓ«  »α«¿ßσ«ñ¿Γ,  ¬«úñá  óδ  º¡áÑΓÑ,  τΓ«  «¡á  ¡Ñ íπñÑΓ
  8382.         óδºóá¡á), óδ ¼«ªÑΓÑ «Γ¬½ετ¿Γ∞  Σπ¡¬µ¿ε  «Γ  ßÑú¼Ñ¡Γá  ñá¡¡δσ  ß
  8383.         »«¼«Θ∞ε Σπ¡¬µ¿¿ FreeProcInstance.
  8384.                                   14.4.2  æ«ºñá¡¿Ñ Σπ¡¬µ¿¿ WinMain.            
  8385.  
  8386.              èáªñá∩ »α¿¬½áñ¡á∩  »α«úαἼᠠWindows ñ«½ª¡á ¿¼ÑΓ∞ Σπ¡¬µ¿ε
  8387.         WinMain.  èᬠ¿ Σπ¡¬µ¿∩ main ó ßΓá¡ñáαΓ¡«¼ æ,  Σπ¡¬µ¿∩  WinMain
  8388.         óδ»«½¡∩ÑΓ α«½∞ Γ«τ¬¿ óσ«ñá ó »α«úαá¼¼π.  Ä¡á ß«ñÑαª¿Γ «»ÑαáΓ«αδ
  8389.         ¿ ó맮óδ Σπ¡¬µ¿⌐ Windows,  ¬«Γ«αδÑ ß«ºñáεΓ «¬¡á ¿  ßτ¿ΓδóáεΓ  ¿
  8390.         «íαáíáΓδóáεΓ ß««íΘÑ¡¿∩ óó«ñá, »αÑñ¡áº¡áτÑ¡¡δÑ ñá¡¡«⌐ »α¿¬½áñ¡«⌐
  8391.         »α«úαá¼¼Ñ. ÄíΩ∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ óδú½∩ñ¿Γ ß½ÑñπεΘ¿¼ «íαẫ¼:
  8392.  
  8393.              int PASCAL WinMain(hInst,hPrevInst,lpCmdLine,nCmdShow);
  8394.              HANDLE hInst;
  8395.              HANDLE hPrevInst;
  8396.              LPSTR  lpCmdLine;
  8397.  
  8398.        Windows 3.0/pg/2#3                                       = 158 =
  8399.  
  8400.              int    nCmdShow;
  8401.              {
  8402.                 .
  8403.                 .
  8404.                 .
  8405.              }
  8406.  
  8407.              èᬠ¿  óßÑ  Σπ¡¬µ¿¿  Windows,  Σπ¡¬µ¿∩ WinMain «íΩ∩ó½Ñ¡á ß
  8408.         ¬½ετÑóδ¼ ß½«ó«¼ PASCAL.  é αѺπ½∞ΓáΓÑ,  óáΦÑ «íΩ∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿
  8409.         WinMain ñ«½ª¡«   ß«ñÑαªáΓ∞   τÑΓδαÑ   »áαá¼ÑΓαá,  ñáªÑ  Ñß½¿  ó
  8410.         »α«úαἼѠ«¡¿ ¡Ñ ¿ß»«½∞ºπεΓß∩.
  8411.  
  8412.              ò«Γ∩ Windows óδºδóáÑΓ Σπ¡¬µ¿ε  WinMain  ¡á»α∩¼πε,  «¡á  ¡Ñ
  8413.         ñ«½ª¡δ íδΓ∞  «íΩ∩ó½Ñ¡á  ¬á¬  FAR ¿½¿ ¬á¬ φ¬ß»«αΓ¿απѼá∩ ó Σá⌐½Ñ
  8414.         «»¿ßá¡¿∩ ¼«ñπ½∩,  »«ß¬«½∞¬π «¡á óδºδóáÑΓß∩ ¿º ßΓáαΓ«ó«ú«  ¬«ñá,
  8415.         ¬«Γ«αδ⌐ ñ«íáó½∩ÑΓß∩  ¬«¼»¿½∩Γ«α«¼  ¬  ßÑú¼Ñ¡Γπ ñá¡¡δσ.  WinMain
  8416.         ¡Ñ∩ó¡« «íΩ∩ó½∩ÑΓß∩ NEAR ¿½¿ FAR ó ºáó¿ß¿¼«ßΓ¿  «Γ  ¿ß»«½∞ºπѼ«⌐
  8417.         »α¿ ¬«¼»¿½∩µ¿¿ ¼«ñπ½∩, ß«ñÑαªáΘÑú« WinMain, ¼«ñѽ¿ »á¼∩Γ¿.
  8418.                                                                                
  8419.              14.5  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ.
  8420.  
  8421.              SDK ß«ñÑαª¿Γ    ß»Ñµ¿á½∞¡δÑ   óÑαß¿¿   Σπ¡¬µ¿⌐   í¿í½¿«ΓѬ
  8422.         ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ   æ,   ¬«Γ«αδÑ   «Γ½¿τáεΓß∩   «Γ   Σπ¡¬µ¿⌐,
  8423.         »«ßΓáó½∩Ѽδσ ß  ¬«¼»¿½∩Γ«α«¼  æ.  é  ß½ÑñπεΘ¿σ αáºñѽáσ «»¿ßá¡δ
  8424.         αẽ¿τ¡δÑ «Γ½¿τ¿∩ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ó Windows  ¿  ó
  8425.         ¬«¼»¿½∩Γ«αÑ æ.
  8426.                                  14.5.1  êß»«½∞º«óá¡¿Ñ í¿í½¿«ΓѬ æ.            
  8427.  
  8428.              éδ ¼«ªÑΓÑ »«½∞º«óáΓ∞ß∩ í¿í½¿«ΓѬἿ Σπ¡¬µ¿⌐,  »«ßΓáó½∩Ѽδσ
  8429.         ß Microsoftt C Compiller óÑαß¿¿ 5.1 ¿ óδΦÑ.  æ»Ñµ¿á½∞¡δÑ óÑαß¿¿
  8430.         φΓ¿σ í¿í½¿«ΓѬ  áñá»Γ¿α«óá¡δ  ¬  ßαÑñÑ  Windows.  è«ñ »α«½«úá ¿
  8431.         φ»¿½«úá Windows  ñ«íáó½∩ÑΓß∩  ¬«  óßѼ   Σπ¡¬µ¿∩¼   ¿ß»«½¡∩εΘÑ⌐
  8432.         ß¿ßΓÑ¼δ æ,  ¬«Γ«αδ¼ φΓ« ΓαÑíπÑΓß∩.  ¥Γ« »αÑñ«ΓóαáΘáÑΓ »α«í½Ñ¼δ,
  8433.         ¬«Γ«αδÑ ¼«úπΓ ó«º¡¿¬¡πΓ∞ »α¿ »ÑαѼÑΘÑ¡¿¿  ¬«ñ«óδσ  ßÑú¼Ñ¡Γ«ó  ó
  8434.         »á¼∩Γ¿, ó  ß¿Γπᵿ¿,  ¬«úñá ÑÑ ¡Ñ σóáΓáÑΓ.  î¡«ú¿Ñ Σπ¡¬µ¿¿ í뫨
  8435.         »ÑαÑ»¿ßá¡δ, τΓ«íδ ¿ß¬½ετ¿Γ∞ »αÑñ»«½«ªÑ¡¿Ñ, τΓ« DS αáóÑ¡ SS, τΓ«
  8436.         ¡Ñ óÑα¡« ñ½∩ Windows DLL.  ÄíßπªñÑ¡¿Ñ Γ«ú«, ¬á¬ óδºδóáΓ∞ ¿º DLL
  8437.         Σπ¡¬µ¿¿, ¬«Γ«αδÑ »«ñαáºπ¼ÑóáεΓ,  τΓ« DS αáóÑ¡ SS,  óδ ¡á⌐ñÑΓÑ ó
  8438.         ú½áóÑ 20, "信ἿτÑÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
  8439.  
  8440.              SDK ß«ñÑαª¿Γ ñóá ¡áí«αá í¿í½¿«ΓѬ. Äñ¿¡ ¡áí«α ¿ß»«½∞ºπÑΓß∩
  8441.         »α¿ ¬«¼»¿½∩µ¿¿ »α¿¬½áñ¡δσ »α«úαá¼¼,  á  ñαπú«⌐  »α¿  ¬«¼»¿½∩µ¿¿
  8442.         Windows DLL.  ¥Γ¿  íáí὿«ΓѬ¿  ß«ñÑαªáΓ  ßΓáαΓ«óδ⌐ ¬«ñ DLL ¿½¿
  8443.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,  Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ  æ,  ó¬½ετá∩
  8444.         Σπ¡¬µ¿¿ ºá¼Ñ¡¿Γѽ¿  ºáó¿ß¿¼«ßΓ¿ «Γ ¼«ñѽ¿ »á¼∩Γ¿.  é αѺπ½∞ΓáΓÑ
  8445.         SDK ΓαÑíπÑΓ Γ«½∞¬« «ñ¡π ¿¼»«αΓ¿απѼπε í¿í½¿«ΓѬπ, LIBW.LIB. ¥Γá
  8446.         í¿í½¿«ΓѬᠡѠºáó¿ß¿Γ «Γ ¼«ñѽ¿ »á¼∩Γ¿.
  8447.  
  8448.              Åα«úαá¼¼á SDK   3.0   Install   «íδτ¡«  »α¿ßóá¿óáÑΓ  ¿¼Ñ¡á
  8449.         í¿í½¿«ΓѬá¼, ß«ñÑαªáΘ¿¼ óÑαß¿¿ ñ½∩ Windows ßΓá¡ñáαΓ¡δσ  Σπ¡¬µ¿⌐
  8450.         æ ó ß««ΓóÑΓßΓó¿¿ ß« ß½ÑñπεΘ¿¼ ß«ú½áóΦÑ¡¿Ñ¼:
  8451.  
  8452.  
  8453.        Windows 3.0/pg/2#3                                       = 159 =
  8454.  
  8455.              { S | M | C | L }{ LIB | DLL } C { A | E }W.LIB
  8456.  
  8457.              üπ¬óδ S,  M,  C  ¿  L  »αÑñßΓáó½∩εΓ  ß««ΓóÑΓßΓóÑ¡¡« ¼á½πε,
  8458.         ßαÑñ¡εε, ¬«¼»á¬Γ¡πε  ¿  í«½∞Φπε  ¼«ñѽ¿  »á¼∩Γ¿.  LIB   ¿   DLL
  8459.         «»αÑñѽ∩εΓ, τΓ«  ñ«½ª¡δ »«ñ¬½ετáΓ∞ß∩ í¿í½¿«ΓѬ¿ ¿½¿ ¼«ñπ½¿ DLL.
  8460.         A ¿ E  «»αÑñѽ∩εΓ  á½∞ΓÑα¡áΓ¿ó¡πε  í¿í½¿«ΓÑ¬π  ¿½¿  í¿í¿½¿«ΓѬπ
  8461.         φ¼π½∩Γ«αá. êß»«½∞ºπ∩  φΓ«  ß«ú½áΦÑ¡¿Ñ  óδ  ñ«½ª¡δ  ∩ó¡« π¬áºáΓ∞
  8462.         óÑαß¿¿ Windows ßΓá¡ñáαΓ¡δσ í¿í½¿«ΓѬ  æ  »α¿  ¬«¼»«¡«ó¬Ñ  óáΦÑ⌐
  8463.         »α«úαá¼¼δ. ì¿ªÑ   »α¿óÑñÑ¡  »α¿¼Ñα  ¬«¼á¡ñ¡«⌐  ßΓ᫬¿  DOS  ñ½∩
  8464.         ¬«¼»«¡«ó¬¿ »α¿¬½áñ¡«⌐   »α«úαá¼¼δ   Windows   ß«   ßΓá¡ñáαΓ¡δ¼¿
  8465.         í¿í½¿«ΓѬἿ æ:
  8466.  
  8467.              LINK GENERIC,,, /NOD SLIBCEW LIBW, GENERIC.DEF
  8468.  
  8469.              è½ετ /NOD  (¡Ñ ¿ß»«½∞º«óáΓ∞ »«¿ß¬ ñ¿αÑ¬Γ«α¿⌐ »« π¼«½τá¡¿ε)
  8470.         αѬ«¼Ñ¡ñπÑΓß∩ ñ½∩ ¿ß¬½ετÑ¡¿∩ Γ«ú«,  τΓ«  ¬«¼»«¡«óΘ¿¬  ¡á⌐ñÑΓ  ¿
  8471.         »«ñ¬½ετ¿Γ í¿í½¿«ΓѬ¿ æ, á ¡Ñ óÑαß¿¿ φΓ¿σ í¿í½¿«ΓѬ ñ½∩ Windows.
  8472.         àß½¿ óδ π¬áªÑΓÑ φëଽετ, Γ« ¡Ñ íπñπΓ ¬«¼»«¡«óáΓ∞ß∩ »α¿¬½áñ¡δÑ
  8473.         »α«úαá¼¼δ, ¬«Γ«αδÑ  ¿ß»«½∞ºπεΓ  Σπ¡¬µ¿¿  æ,  ¡Ñ  »«ññÑনóáѼδÑ
  8474.         í¿í½¿«ΓѬἿ Windows.
  8475.  
  8476.              SDK ΓᬪѠ ß«ñÑαª¿Γ   ß»Ñµ¿á½∞¡δÑ   óÑαß¿¿   ñ½∩   Windows
  8477.         ó¬½ετáѼδσ Σá⌐½«ó.  ¥Γ¿  Σá⌐½δ  »«¼«úπΓ óá¼ «»αÑñѽ¿Γ∞,  τΓ« óδ
  8478.         ß½πτá⌐¡« óδºδóáÑΓÑ ó ßó«Ñ⌐  »α«úαἼѠ Σπ¡¬µ¿¿  æ,  ¬«Γ«αδÑ  ¡Ñ
  8479.         »«ññÑনóáεΓß∩ ó  ßαÑñÑ Windows.  ä½∩ óδ»«½¡Ñ¡¿∩ Γᬫ⌐ »α«óÑન
  8480.         ñ«íáó∞ΓÑ ß½ÑñπεΘπε ñ¿αÑ¬Γ¿óπ ó« ó¬½ετáѼδ⌐ Σá⌐½  óáΦÑú«  ¼«ñπ½∩
  8481.         »ÑαÑñ óßѼ¿ ñ¿αÑ¬Γ¿óἿ ó¬½ετÑ¡¿∩ Σá⌐½á:
  8482.  
  8483.              #define _WINDOWS
  8484.  
  8485.              ìáí«α Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ,  ¬«Γ«αδÑ »«ññÑনóáεΓ
  8486.         óδº«ó ¿º »α¿¬½áñ¡δσ  »α«úαá¼¼  Windows,  ó¬½ετáÑΓ  »«ñ¼¡«ªÑßΓó«
  8487.         Σπ¡¬µ¿⌐,  ¬«Γ«αδÑ »«ññÑনóáεΓ óδº«ó ¿º Windows DLL. é¬½ετáѼδÑ
  8488.         Σá⌐½δ Windows αáß»«º¡áεΓ φΓ«  »«ñ¼¡«ªÑßΓó«.  àß½¿  óδ  ß«ºñáÑΓÑ
  8489.         DLL,   óδ  ñ«½ª¡δ  ó¬½ετ¿Γ∞  «íÑ  ñ¿αÑ¬Γ¿óδ  »ÑαÑñ  ñ¿αÑ¬Γ¿óἿ
  8490.         ó¬½ετÑ¡¿∩ Σá⌐½«ó ºáú«½«ó¬«ó ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ:
  8491.  
  8492.              #define _WINDOWS
  8493.              #define _WINDLL
  8494.                                                                                
  8495.                           14.5.2  éδñѽѡ¿Ñ »á¼∩Γ¿.
  8496.  
  8497.              ò«Γ∩ óÑαß¿¿  ñ½∩  Windows  í¿í½¿«ΓѬ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ
  8498.         »«ññÑনóáεΓ ºá¼Ñ¡¿Γѽ¿ ñ½∩ Σπ¡¬¿µ¿⌐  óδñѽѡ¿∩  »á¼∩Γ¿,  Γᬿσ
  8499.         ¬á¬ malloc ¿ free, ½πτΦÑ óßÑ ªÑ »«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿∩¼¿ Windows.
  8500.         ìá»α¿¼Ñα, Σπ¡¬µ¿∩ malloc »«ºó«½∩ÑΓ óá¼  óδñѽ¿Γ∞  Σ¿¬ß¿α«óá¡¡δ⌐
  8501.         í½«¬ ó  ½«¬á½∞¡«⌐  "¬πτÑ",  á  Σπ¡¬µ¿∩ LocalAlloc »«ºó«½∩ÑΓ óá¼
  8502.         «»αÑñѽ¿Γ∞ »ÑαѼÑΘáѼδ⌐ í½«¬ »á¼∩Γ¿.
  8503.                                       14.5.3  Éáí«Γá ß« ßΓα«¬á¼¿.              
  8504.  
  8505.              ä½∩ αáí«Γδ ß«  ßΓα«¬á¼¿  óδ  ¼«ªÑΓÑ  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿¿
  8506.         ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ.  Äñ¡á¬« ó ¼á½«⌐ ¿ ßαÑñ¡Ñ⌐ ¼«ñѽ∩σ »á¼∩Γ¿
  8507.  
  8508.        Windows 3.0/pg/2#3                                       = 160 =
  8509.  
  8510.         φΓ¿ Σπ¡¬µ¿¿ ¡Ñ ¼«úπΓ αáí«ΓáΓ∞  ß«  ßΓα«¬á¼¿,  «íΩ∩ó½Ñ¡¡δ¼¿  ¬á¬
  8511.         ñá½∞¡¿Ñ   π¬áºáΓѽ¿   ¿½¿   ¼áßß¿óδ,  Γᬿ¼¿  ¬á¬  ß«ºñá¡¡δÑ  ó
  8512.         ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿ ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿  GlobalAlloc.  ìá
  8513.         Σπ¡¬µ¿¿   αáí«Γδ  ß  íπΣÑαἿ  (Γᬿ¼¿  ¬á¬  memcpy  ¿  memset)
  8514.         ¡á¬½áñδóáεΓß∩ ΓÑ ªÑ «úαá¡¿τÑ¡¿∩ »α¿ αáí«ΓѠ󠠼Ὣ⌐  ¿  ßαÑñ¡Ñ⌐
  8515.         ¼«ñѽ¿ »á¼∩Γ¿.
  8516.  
  8517.              Windows »αÑñ«ßΓáó½∩ÑΓ  ñ½∩  αáí«Γδ  ß«  ñá½∞¡¿¼¿  ßΓα«¬á¼¿
  8518.         ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿:
  8519.  
  8520.              - lstrcat
  8521.  
  8522.              - lstrcmp
  8523.  
  8524.              - lstrcmpi
  8525.  
  8526.              - lstrcpy
  8527.  
  8528.              - lstrlen
  8529.  
  8530.              ä½∩ ßαáó¡Ñ¡¿∩ ¿½¿ »α«óÑન  ß¿¼ó«½«ó  ¿º  ¡áí«αá  ß¿¼ó«½«ó
  8531.         ANSI ½πτΦÑ   ¿ß»«½∞º«óáΓ∞   ß½ÑñπεΘ¿Ñ  Σπ¡¬µ¿¿  ó¼ÑßΓ«  Σπ¡¬µ¿⌐
  8532.         ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ:
  8533.  
  8534.              - AnsiLower
  8535.  
  8536.              - AnsiLowerBuff
  8537.  
  8538.              - AnsiNext
  8539.  
  8540.              - AnsiPrev
  8541.  
  8542.              - AnsiUpperBuff
  8543.  
  8544.              - IsCharAlpha
  8545.  
  8546.              - IsCharAlfaNumeric
  8547.  
  8548.              - IsCharLower
  8549.  
  8550.              - IsCharUpper
  8551.  
  8552.              Windows ΓᬪѠ߫ñÑαª¿Γ Σπ¡¬µ¿¿ wsprintf  ¿  wvsprintf  ñ½∩
  8553.         ºá¼Ñ¡δ Σπ¡¬µ¿⌐  æ  sprintf  ¿  vsprintf.  Ä¡¿  ¿¼ÑεΓ  ß½ÑñπεΘ¿Ñ
  8554.         »αÑ¿¼πΘÑßΓóá:
  8555.  
  8556.              - éÑαß¿¿ ñ½∩  Windows  ¿ß»«½∞ºπεΓ  ñá½∞¡¿Ñ  íπΣÑαá  ó¼ÑßΓ«
  8557.                í½¿ª¡¿σ.
  8558.  
  8559.              - éÑαß¿¿ ñ½∩ Windows ¡á¼¡«ú« ¼Ñ¡∞ΦÑ.
  8560.  
  8561.              - éÑαß¿¿  ñ½∩ Windows »«ºó«½∩εΓ óá¼ ¿ß¬½ετ¿Γ∞ ¿º »α«úαá¼¼δ
  8562.         ßΓáαΓ«óδ⌐ ¬«ñ æ,  Ñß½¿ óδ ¡Ñ  ¿ß»«½∞ºπÑΓÑ  Σπ¡¬µ¿¿  ¿ß»«½¡∩εΘÑ⌐
  8563.  
  8564.        Windows 3.0/pg/2#3                                       = 161 =
  8565.  
  8566.         ß¿ßΓÑ¼δ æ. æ¼«Γα¿ΓÑ αáºñѽ 14.5.10, "ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá
  8567.         æ".
  8568.  
  8569.              Äñ¡á¬« óÑαß¿¿ φΓ¿σ Σπ¡¬µ¿⌐  ñ½∩  Windows  »«ññÑনóáεΓ  ¡Ñ
  8570.         »«½¡δ⌐ ¡áí«α   ß»Ñµ¿Σ¿¬áµ¿⌐  Σ«α¼áΓá.  é  τáßΓ¡«ßΓ¿,  Σ«α¼áΓ  ß
  8571.         »½áóáεΘÑ⌐ Γ«τ¬«⌐, π¬áºáΓѽ∩ ¿ ó«ß∞¼Ñα¿τ¡δσ τ¿ßѽ.
  8572.  
  8573.              é᪡«. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ  ó¼ÑßΓ«  sprintf  ¿½¿  vsprintf
  8574.         ß««ΓóÑΓßΓóπεΘ¿Ñ Σπ¡¬µ¿¿  Windows  πíÑñ¿ΓÑß∞,  τΓ«  óßÑ  ßΓ᫬¿,
  8575.         »ÑαÑñáóáѼδÑ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó ¬ ß»Ñµ¿Σ¿¬áΓ«απ Σ«α¼áΓá  %s,
  8576.         í뫨 FAR.
  8577.  
  8578.              char buffer[100];
  8579.              char *str1;  /* í½¿ª¡¿⌐  π¬áºáΓѽ∞  ó  ¼á½«⌐  ¿½¿  ßαÑñ¡Ñ⌐
  8580.                              ¼«ñѽ¿ »á¼∩Γ¿ */
  8581.                 .
  8582.                 .
  8583.                 .
  8584.              sprintf(buffer,"Str1 = %s",str1);     /* ñ«»πßΓ¿¼« */
  8585.              wsprintf(buffer,"Str1 = %s",(LPSTR)str1);  /* ñ«»πßΓ¿¼« */
  8586.              wsprintf(buffer,"Str1 = %s",str1);    /* ¡ÑóÑα¡« */
  8587.                    14.5.4  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ Σá⌐½«ó«ú« óó«ñá/óδó«ñá.       
  8588.  
  8589.              ä½∩ ß«ºñá¡¿∩,  «Γ¬αδΓ¿∩,  »«óΓ«α¡«ú«  «Γ¬αδΓ¿∩  ¿ πñá½Ñ¡¿∩
  8590.         ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε  OpenFile.  öπ¡¬µ¿∩   OpenFile   ó«ºóαáΘáÑΓ
  8591.         ñÑß¬α¿»Γ«α Σá⌐½á  DOS,  ¬«Γ«αδ⌐ óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ß Γᬿ¼¿
  8592.         Σπ¡¬µ¿∩¼¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¬á¬ read, write, lseek ¿ close.
  8593.         àß½¿ óδ  ¬«¼»¿½¿απÑΓÑ ¼«ñπ½∞ ó ¼á½«⌐ ¿½¿ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿,
  8594.         »áαá¼ÑΓα buffer  Σπ¡¬µ¿⌐  read   ¿   write   ∩ó½∩ÑΓß∩   í½¿ª¡¿¼
  8595.         π¬áºáΓѽѼ (char   near   *).  àß½¿  óδ  σ«Γ¿ΓÑ  ßτ¿ΓδóáΓ∞  ¿½¿
  8596.         ºá»¿ßδóáΓ∞ ñá¡¡δÑ ó íπΣÑα,  «íΩ∩ó½Ñ¡¡δ⌐ ó óáΦÑ⌐  »α«úαἼѠ ¬á¬
  8597.         ñá½∞¡¿⌐  π¬áºáΓѽ∞  ¿½¿  ¼áßß¿ó,  ¿ß»«½∞ºπ⌐ΓÑ  Σπ¡¬µ¿¿  Windows
  8598.         _lread ¿ _lwrite.  Ä¡¿ ΓᬪѠ¿ß»«½∞ºπεΓß∩ ñ½∩ ºá»¿ß¿ ¿½¿ τΓÑ¡¿∩
  8599.         ¿º íπΣÑα«ó, ñ¿¡á¼¿τÑ߬¿ óδñѽѡ¡δσ ó ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿.
  8600.         éδ ¼«ªÑΓÑ ΓᬪѠ¿ß»«½∞º«óáΓ∞  íπΣÑਧ«óá¡¡δ⌐  óó«ñ  ¿  óδó«ñ  ó
  8601.         Σá⌐½, Γ.Ñ. Σπ¡¬µ¿¿ fopen, fread ¿ fwrite.
  8602.  
  8603.              éδ ¼«ªÑΓÑ  ΓᬪѠ ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿¿  Windows  _lopen ¿
  8604.         _lcreat ñ½∩ «Γ¬αδΓ¿∩ ¿ ß«ºñá¡¿∩ Σá⌐½«ó.
  8605.  
  8606.              Å«ß¬«½∞¬π Windows - ¼π½∞Γ¿ºáñáτ¡á∩ ßαÑñá, ñαπú¿Ñ »α«úαá¼¼δ
  8607.         ¼«úπΓ  »«»δΓáΓ∞ß∩  »«½πτ¿Γ∞  ñ«ßΓπ»  ¬  Γ«¼π  Σá⌐½π,  ó ¬«Γ«αδ⌐
  8608.         ºá»¿ßδóáÑΓ ¿½¿ ¿º ¬«Γ«α«ú« τ¿ΓáÑΓ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á. éδ
  8609.         ¼«ªÑΓÑ  π»αáó½∩Γ∞  ñ«ßΓπ»«¼  ñαπú¿σ  »α«úαá¼¼ ¬ Σá⌐½π ß »«¼«Θ∞ε
  8610.         í¿Γá  αáºñѽѡ¿∩  ó  »áαá¼ÑΓαÑ  wStyle  »α¿   «Γ¬αδΓ¿¿   Σá⌐½á.
  8611.         ÄßΓáó½∩⌐ΓÑ Σá⌐½δ «Γ¬αδΓ묨 Γ«½∞¬« ¬«úñá óδ »α«¿ºó«ñ¿ΓÑ «»Ñαᵿ¿
  8612.         τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿,  Ñß½¿  óáΦá  »α«úαá¼¼  ¡Ñ  ñ«½ª¡á  π»αáó½∩Γ∞
  8613.         ñ«ßΓπ»«¼ ¬ Σá⌐½π ó ñαπú«Ñ óαѼ∩.
  8614.  
  8615.              Åα¿¼Ñτá¡¿Ñ: àß½¿  DLL  «Γ¬αδóáÑΓ  Σá⌐½,  ñÑß¬α¿»Γ«α  Σá⌐½á
  8616.         »α¿¡áñ½Ñª¿Γ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, ¬«Γ«αá∩ óδºóá½á DLL. àß½¿ DLL
  8617.         «Γ¬αδóáÑΓ ¡Ñ  «ñ¿¡  Σá⌐½  ¿ αáºñѽ∩ÑΓß∩ ¡Ñ߬«½∞¬¿¼¿ »α¿¬½áñ¡δ¼¿
  8618.  
  8619.        Windows 3.0/pg/2#3                                       = 162 =
  8620.  
  8621.         »α«úαἼἿ, Γ«  ó«º¼«ª¡á  ß¿Γπᵿ∩,  ¬«úñá  «ñ¿¡  ¿   Γ«Γ   ªÑ
  8622.         ñÑß¬α¿»Γ«α íπñÑΓ ßó∩ºá¡ DOS ¡Ñ߬«½∞¬« αáº.
  8623.                 14.5.5  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ óó«ñá ¿ óδó«ñá ¡á ¬«¡ß«½∞.       
  8624.  
  8625.              éáΦá »α«úαἼᠠ ñ«½ª¡á   αáºñѽ∩Γ∞  ß¿ßΓѼ¡πε  ¬«¡ß«½∞  ß
  8626.         ñαπú¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.  æ½Ññ«óáΓѽ∞¡«, óÑαß¿¿ Windows
  8627.         í¿í½¿«ΓѬ ¿ß»«½¡∩εΘÑ⌐  ß¿ßΓÑ¼δ  æ  ¡Ñ  ß«ñÑαªáΓ Σπ¡¬µ¿⌐ óó«ñá ¿
  8628.         óδó«ñá ¡á ¬«¡ß«½∞:
  8629.  
  8630.              - cgets
  8631.  
  8632.              - cprintf
  8633.  
  8634.              - cputs
  8635.  
  8636.              - getch
  8637.  
  8638.              - getche
  8639.  
  8640.              - kbhit
  8641.  
  8642.              - putch
  8643.  
  8644.              - ungetc
  8645.  
  8646.              é¼ÑßΓ« φΓ«ú«,  óáΦá  »α«úαἼᠠñ«½ª¡δ  »«½πτáΓ∞  óó«ñ   ß
  8647.         ¬«¡ß«½¿  τÑαѺ ß««íΘÑ¡¿∩ WM_KEYDOWN,  WM_KEYUP ¿ WM_CHAR.  àß½¿
  8648.         ΓαÑíπÑΓß∩ í«½ÑÑ ß½«ª¡á∩ ΓÑσ¡¿¬á,  óδ ¼«ªÑΓÑ ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  8649.         PeekMessage ºáú½∩¡πΓ∞ ó»ÑαÑñ ¡á óó«ñ ¬½áó¿áΓπαδ,  ¿½¿ óδ ¼«ªÑΓÑ
  8650.         πßΓá¡«ó¿Γ∞  Σπ¡¬µ¿ε   ½«óπΦ¬¿   ó   DLL   ß   »«¼«Θ∞ε   Σπ¡¬µ¿¿
  8651.         SetWindowHook.
  8652.                                                                                
  8653.                  14.5.6  êß»«½∞º«óá¡¿Ñ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐.
  8654.  
  8655.              ê¡ΓÑαΣÑ⌐ß úαáΣ¿τÑ߬¿σ     πßΓα«⌐ßΓó     Windows      (GDI)
  8656.         »αÑñ«ßΓáó½∩ÑΓ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ     úαáΣ¿τÑ߬¿Ñ    Σπ¡¬µ¿¿.
  8657.         æ½Ññ«óáΓѽ∞¡«, úαáΣ¿τÑ߬¿Ñ    Σπ¡¬µ¿¿   í¿í½¿«ΓѬ   ¿ß»«½¡∩εΘÑ⌐
  8658.         ß¿ßΓÑ¼δ æ ¡Ñ ó¬½ετáεΓß∩ ó óÑαß¿ε í¿í½¿«ΓѬ Windows.
  8659.                    14.5.7  êß»«½∞º«óá¡¿Ñ óδτ¿ß½Ñ¡¿⌐ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.        
  8660.  
  8661.              àß½¿ ó óáΦÑ⌐ »α«úαἼѠ¿ß»«½∞ºπεΓß∩ »ÑαѼѡ¡δÑ ß »½áóáεΘÑ⌐
  8662.         Γ«τ¬«⌐ óδ ñ«½ª¡δ ¬«¼»«¡«óáΓ∞ óáΦπ »α«úαá¼¼π  ß  ¬½ετἿ:  -FPi,
  8663.         -FPc ¿½¿ FPa.
  8664.  
  8665.              Åਪ½áñ¡δÑ »α«úαá¼¼δ,  ß¬«¼»«¡«óá¡¡δÑ   ß   ¬½ετѼ   -FPi,
  8666.         ¿ß»«½∞ºπεΓ  áα¿Σ¼ÑΓ¿τÑ߬¿⌐  ß«»α«µÑßß«α  80σ87,  Ñß½¿  ó ¼«¼Ñ¡Γ
  8667.         óδ»«½¡Ñ¡¿∩  «¡  πßΓá¡«ó½Ñ¡.  é  »α«Γ¿ó¡«¼  ß½πτáÑ,   »α¿¬½áñ¡á∩
  8668.         »α«úαἼᠿ߻«½∞ºπÑΓ φ¼π½∩Γ«α.
  8669.  
  8670.              Åα«úαá¼¼δ, ß¬«¼»¿½¿α«óá¡¡δÑ ß   ¬½ετѼ   -FPc,   á¡á½«ú¿τ¡δ
  8671.         »α«úαá¼¼á¼, ß¬«¼»¿½¿α«óá¡¡δ¼  ß  ¬½ετѼ  -FPi,  ºá  ¿ß¬½ετÑ¡¿Ñ¼
  8672.  
  8673.        Windows 3.0/pg/2#3                                       = 163 =
  8674.  
  8675.         Γ«ú«,  τΓ«  »α¿  ¡Ñ«íσ«ñ¿¼«ßΓ¿  «¡¿  ¼«úπΓ  íδΓ∞ ß¬«¼»«¡«óá¡δ ß
  8676.         á½∞ΓÑα¡áΓ¿ó¡«⌐ ¼áΓѼáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ«⌐.
  8677.  
  8678.              Åα«úαá¼¼δ, ß¬«¼»¿½¿α«óá¡¡δÑ  ß  ¬½ετѼ  -FPa,   ¿ß»«½∞ºπεΓ
  8679.         á½∞ΓÑα¡áΓ¿ó¡πε   ¼áΓѼáΓ¿τÑ߬πε   í¿í½¿«ΓѬπ,   Ñß½¿  ó  ¼«¼Ñ¡Γ
  8680.         óδ»«½¡Ñ¡¿∩ ß«»α«µÑßß«α ¡Ñ πßΓá¡«ó½Ñ¡.  ¥Γ« ¡á¿í«½ÑÑ ¼á½Ñ¡∞¬á∩ ¿
  8681.         íδßΓαá∩ «»µ¿∩,  ñ«ßΓπ»¡á∩ íѺ ß«»α«µÑßß«αá, «ñ¡á¬« «¡á »α¿¡«ß¿Γ
  8682.         ó ªÑαΓóπ  ß¬«α«ßΓ¿  Γ«τ¡«ßΓ∞   »«   ßαáó¡Ñ¡¿ε   ß   í¿í½¿«ΓѬ«⌐
  8683.         φ¼π½∩Γ«αá.
  8684.  
  8685.              àß½¿ óδ  ¿ß»«½∞ºπÑΓÑ  ¬½ετ¿  -FPi  ¿½¿  -FPc,  óδ   ñ«½ª¡δ
  8686.         »«ñ¬½ετ¿Γ∞ í¿í½¿«ΓѬπ WIN87EM.LIB ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ LINK:
  8687.  
  8688.              LINK SAMPLE,,,SLIBCEW WIN87EM LIBW, SAMPLE.DEF
  8689.  
  8690.              é Windows   3.0  »α«úαἼᠠSETUP  áóΓ«¼áΓ¿τÑ߬¿  »«¼ÑΘáÑΓ
  8691.         WIN87EM.DLL ó ß¿ßΓѼ¡πε ñ¿αÑ¬Γ«α¿ε Windows.
  8692.  
  8693.              éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓα SIGFPE («Φ¿í¬á  óδτ¿ß½Ñ¡¿⌐
  8694.         ß »½áóáεΘÑ⌐   Γ«τ¬«⌐)   Σπ¡¬µ¿¿   ¿ß»«½¡∩εΘÑ⌐   ß¿ßΓÑ¼δ  æ  ñ½∩
  8695.         «Γ߽Ѫ¿óá¡¿∩ «Φ¿í«¬ óδτ¿ß½Ñ¡¿⌐ ß »½áóáεΘÑ⌐  Γ«τ¬«⌐,  Γá¬¿σ  ¬á¬
  8696.         »ÑαÑ»«½¡Ñ¡¿Ñ ¿½¿  ñѽѡ¿Ñ  ¡á  0.  ä½∩  φΓ«ú«  áñαÑß  »α«µÑñπαδ
  8697.         «íαáí«Γ¬¿  «Φ¿í«¬  ¡Ñ«íσ«ñ¿¼«  »«ñú«Γ«ó¿Γ∞  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  8698.         MakeProcInstance.
  8699.  
  8700.              é »α¿¬½áñ¡δσ  »α«úαá¼¼áσ  Windows  ó¼ÑßΓ« Σπ¡¬µ¿⌐ setjmp ¿
  8701.         longjmp óδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ Catch ¿ Throw.
  8702.                                                                                
  8703.                  14.5.8  çá»π߬ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼.
  8704.  
  8705.              ä½∩ ºá»πß¬á »α¿¬½áñ¡δσ »α«úαá¼¼ Windows  ß«ñÑαª¿Γ  Σπ¡¬µ¿¿
  8706.         WinExec ¿  LoadModule.  LoadModule  ºá»π߬áÑΓ Γ«½∞¬« »α¿¬½áñ¡δÑ
  8707.         »α«úαá¼¼δ Windows, á WinExec »«ºó«½∩ÑΓ ºá»π߬áΓ∞ ¬á¬ »α¿¬½áñ¡δÑ
  8708.         »α«úαá¼¼δ Windows,   Γᬠ  ¿   «íδτ¡δÑ   »α«úαá¼¼δ.  éδ  ñ«½ª¡δ
  8709.         ¿ß»«½∞º«óáΓ∞ φΓ¿ Σπ¡¬µ¿¿ ó¼ÑßΓ« Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐  ß¿ßΓÑ¼δ  æ
  8710.         exec ¿ spawn.  èᬠ¿ Σπ¡¬µ¿¿ ßѼÑ⌐ßΓóá spawn Σπ¡¬µ¿¿ LoadModule
  8711.         ¿  WinExec »«ºó«½∩εΓ óáΦÑ⌐ »α«úαἼѠ»α«ñ«½ªáΓ∞ αáí«Γπ ó« óαѼ∩
  8712.         óδ»«½¡Ñ¡¿∩ ºá»πΘÑ¡¡«⌐ ¿¼¿ »α«úαá¼¼δ.
  8713.  
  8714.              WinExec »αÑñ«ßΓáó½∩ÑΓ   »α«ßΓ«⌐   ¿¡ΓÑαΣÑ⌐ß   ñ½∩  ºá»π߬á
  8715.         ñ«τÑα¡Ñú« »α«µÑßßá.  LoadModule í«½ÑÑ ß½«ª¡á, »«ß¬«½∞¬π ΓαÑíπÑΓ
  8716.         «Γ óáΦÑ⌐ »α«úαá¼¼δ í½«¬ »áαá¼ÑΓα«ó,  «ñ¡á¬« »«ºó«½∩ÑΓ π»αáó½∩Γ∞
  8717.         ßαÑñ«⌐, ó ¬«Γ«α«⌐ íπñÑΓ ºá»πΘÑ¡ ñ«τÑα¡¿⌐ »α«µÑßß.
  8718.                                                                                
  8719.           14.5.9  êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿¡ΓÑαΣÑ⌐ßá ß MS-DOS ¿ BIOS.
  8720.  
  8721.              ìÑ ¿ß»«½∞ºπÑ⌐ΓÑ Σπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá ß  BIOS  »α¿  αáí«ΓÑ  ó
  8722.         Windows.
  8723.  
  8724.              éδ ¼«ªÑΓÑ  ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ñ½∩
  8725.         αáí«Γδ ß »αÑαδó᡿Ѽ 21H,  Γᬿ¼¿ ¬á¬ intdos, intdosx ¿ ñαπú¿¼¿
  8726.         Σπ¡µ¿∩¼¿ _dos,  ¡á»α¿¼Ñα,  _dos_getdrive.   éδ   ¼«ªÑΓÑ   ΓᬪÑ
  8727.         ¿ß»«½∞º«óáΓ∞  Σπ¡¬µ¿¿  int86  ¿  int86x  ñ½∩ ó맮óá »αÑαδóá¡¿⌐,
  8728.  
  8729.        Windows 3.0/pg/2#3                                       = 164 =
  8730.  
  8731.         «Γ½¿τ¡δσ «Γ 21H.  Äñ¡á¬« óδ ñ«½ª¡δ  ¿ß»«½∞º«óáΓ∞  »αÑαδóá¡¿∩  ß
  8732.         ¿ß¬½ετ¿Γѽ∞¡«⌐   «ßë᫪¡«ßΓ∞ε   ¿   Γ«½∞¬«  Γ«úñá,  ¬«úñá  «¡¿
  8733.         ¡Ñ«íσ«ñ¿¼δ.
  8734.                               14.5.10  ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ.           
  8735.  
  8736.              Äíδτ¡« »α¿ ¬«¼»«¡«ó¬Ñ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows ¿½¿  DLL
  8737.         ¬«¼»«¡«óΘ¿¬ ñ«íáó½∩ÑΓ  ¬  ¬«ñ«ó«¼π ßÑú¼Ñ¡Γπ _TEXT ßΓáαΓ«óδ⌐ ¬«ñ
  8738.         æ. ä½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows (¡« ¡Ñ ñ½∩ DLL) φëà ¬«ñ  ó
  8739.         ßó«ε  «τÑαÑñ∞  óδñѽ∩ÑΓ  ¼ÑßΓ«  ó áóΓ«¼áΓ¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
  8740.         »α«úαá¼¼δ ñ½∩ »ÑαѼѡ¡δσ óαѼѡ¿ óδ»«½¡Ñ¡¿∩.
  8741.  
  8742.              SDK óÑαß¿¿ 3.0 »«ºó«½∩ÑΓ óá¼ πíαáΓ∞  φëà ¬«ñ  ¿  ñá¡¡δÑ,
  8743.         ΓαÑíπѼδÑ  ñ½∩  í¿í½¿«ΓѬ æ.  éδ ¼«ªÑΓÑ φΓ« ßñѽáΓ∞ ó ß½ÑñπεΘ¿σ
  8744.         ß½πτá∩σ:
  8745.  
  8746.              - éáΦá »α¿¬½áñ¡á∩ »α«úαἼᠿ½¿  DLL  ¡Ñ  ß«ñÑαª¿Γ  ∩ó¡«ú«
  8747.                ó맮óá ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ æ.
  8748.  
  8749.              - é  óáΦÑ⌐  »α«úαἼѠ ¡Ñ ¿ß»«½∞ºπεΓß∩ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐
  8750.                ßΓ᫬¿ _argc ¿ _argv ¿½¿ »ÑαѼѡ¡á∩  _environ.  æ¼«Γα¿ΓÑ
  8751.                αáºñѽ  14.3  "êß»«½∞º«óá¡¿Ñ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
  8752.                DOS", ó ¬«Γ«α«¼ «»¿ßá¡«,  ¬á¬ ¼«ª¡«  »«½πτ¿Γ∞  ¬«¼á¡ñ¡πε
  8753.                ßΓα«¬π ¿ «¬απªÑ¡¿Ñ DOS.  é DLL »ÑαѼѡ¡δÑ _argc, _argv ¿
  8754.                _environ ¡Ñ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩ ¡¿¬á¬¿¼ «íαẫ¼.
  8755.  
  8756.              - é óáΦÑ⌐ »α«úαἼѠ¿½¿  DLL  ¡Ñ  óδºδóáεß∩  ∩ó¡«  Σπ¡¬µ¿¿
  8757.                í¿í½¿«ΓѬ æ,   ΓᬿѠ ¬á¬  »α«óÑα¬á  ßΓѬᠠ¿½¿  ñѽѡ¿Ñ
  8758.                ñ½¿¡¡δσ µÑ½δσ.  Å« π¼«½τá¡¿ε »α«óÑα¬á ßΓѬá ó¬½ετÑ¡á, ¡«
  8759.                óδ  ¼«ªÑΓÑ  ÑÑ «Γ¬½ετ¿Γ∞ ß »«¼«Θ∞ε ¬½ετá -Gs ó ¬«¼á¡ñ¡«⌐
  8760.                ßΓα«¬Ñ ¬«¼»¿½∩Γ«αá.
  8761.  
  8762.           ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú«  ¬«ñá  æ  ¿º   »α¿¬½áñ¡δσ   »α«úαá¼¼
  8763.                                    Windows.
  8764.  
  8765.              ä½∩ Γ«ú«,  τΓ«íδ  ¿ß¬½ετ¿Γ∞  ßΓáαΓ«óδ⌐ ¬«ñ æ ¿º »α¿¬½áñ¡«⌐
  8766.         »α«úαá¼¼δ, ¬«¼»«¡π⌐ΓÑ  »α«úαá¼¼π   ß   í¿í½¿«ΓѬ«⌐   ß   ¿¼Ñ¡Ñ¼
  8767.         xNOCRT.LIB ó¼ÑßΓ«   «íδτ¡δσ   í¿í½¿«ΓѬ   C   xLIBCAW.LIB   ¿½¿
  8768.         xLIBCEW.LIB (ó¼ÑßΓ« x ¡Ñ«íσ«ñ¿¼«  »«ñßΓáó¿Γ∞  ΓαÑíπѼπε  ¼«ñѽ∞
  8769.         »á¼∩Γ¿: S, M, C, L).
  8770.  
  8771.              é ß½ÑñπεΘѼ    »α¿¼ÑαÑ    »α¿óÑñѡᠠ  ¬«¼á¡ñ¡á∩    ßΓ᫬á
  8772.         ¬«¼»«¡«óΘ¿¬á ñ½∩ »α¿¬½áñ¡«⌐  »α«úαá¼¼δ  SAMPLE,  ó  ¬«Γ«α«⌐  ¡Ñ
  8773.         óδ»«½¡∩εΓß∩ ∩ó¡δÑ ¿½¿ ¡Ñ∩ó¡δÑ ó맮óδ ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ æ:
  8774.  
  8775.              link /nod sample,,, snocrt libw sample.def
  8776.  
  8777.              ü¿í½¿«ΓѬá SNOCRT.LIB   ó¬½ετáÑΓ  ßΓáαΓ«óδ⌐  ¬«ñ  Windows,
  8778.         ¬«Γ«αδ⌐ óδºδóáÑΓ Σπ¡¬µ¿ε WinMain.
  8779.  
  8780.              àß½¿ óδ  ¬«¼»«¡πÑΓÑ  »α«úαá¼¼π  ß  í¿í½¿«ΓѬ«⌐  xNOCRT.LIB
  8781.         ó¼ÑßΓ« xLIBCAW   ¿½¿   xLIBCEW,   ¿   ¬«¼»«¡«óΘ¿¬  ß««íΘáÑΓ  «í
  8782.         «í¡áαπªÑ¡¿¿ ¡ÑαáºαÑΦ¿¼δσ   ó¡ÑΦ¡¿σ   ß¿¼ó«½«ó,    ¬«Γ«αδÑ    ¡Ñ
  8783.  
  8784.        Windows 3.0/pg/2#3                                       = 165 =
  8785.  
  8786.         »α¿¡áñ½ÑªáΓ ¬   óáΦÑ⌐   »α«úαá¼¼Ñ,   Γ«,  ó«º¼«ª¡«,  óδ  ¡Ñ∩ó¡«
  8787.         óδºδóáÑΓÑ í¿í½¿«ΓѬ¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ.  é φΓ«¼  ß½πτáÑ  óδ
  8788.         ¼«ªÑΓÑ ¿ß¬½ετ¿Γ∞  ßΓáαΓ«óδ⌐ ¬«ñ æ,  ΓαÑíπѼδ⌐ ñ½∩ ∩ó¡δσ ó맮ó«ó
  8789.         Σπ¡¬µ¿⌐ æ ¿ ¿ß»«½∞º«óá¡¿∩ »ÑαѼѡ¡δσ _argv,  _argc ¿  _environ.
  8790.         ä½∩ φΓ«ú«  »«ñ¬½ετ¿ΓÑ í¿í½¿«ΓѬπ xNOCRT.LIB »ÑαÑñ,  á ¡Ñ ó¼ÑßΓ«
  8791.         í¿í½¿«ΓѬ¿  xLIBCEW.LIB  ¿½¿  xLIBCAW.LIB.   ìÑ«íσ«ñ¿¼«   ΓᬪÑ
  8792.         π¬áºáΓ∞ ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ ¬«¼»«¡«óΘ¿¬á ¬½ετ /NOE.
  8793.  
  8794.              é ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡á ¬«¼á¡ñ¡á∩ ßΓα«¬á ¬«¼»«¡«óΘ¿¬á
  8795.         ñ½∩ »α«úαá¼¼δ SAMPLE,  ¬«Γ«αá∩ ¡Ñ∩ó¡« óδ»«½¡∩ÑΓ ó맮óδ  Σπ¡¬µ¿⌐
  8796.         æ, ¡« ¡Ñ óδ»«½¡∩ÑΓ ∩ó¡δσ ó맮ó«ó:
  8797.  
  8798.              link /nod /noe sample,,, snocrt slibcew libw, sample.def
  8799.  
  8800.                     ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ ¿º Windows DLL.
  8801.  
  8802.              ä½∩ ¿ß¬½ετÑ¡¿∩ ßΓáαΓ«ó«ú« ¬«ñá æ ¿º Windows DLL »«ñ¬½ετ¿ΓÑ
  8803.         ó¼ÑßΓ«  í¿í½¿«ΓѬ¿  xDLLCEW.LIB  ¿½¿  xDLLCAV.LIB   ßΓáΓ¿τÑ߬πε
  8804.         í¿í½¿«ΓѬπ xNOCRT.LIB.
  8805.  
  8806.              é ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡á ¬«¼á¡ñ¡á∩ ßΓα«¬á ¬«¼»«¡«óΘ¿¬á
  8807.         ñ½∩ DLL ß ¿¼Ñ¡Ñ¼ SAMPDLL,  ¬«Γ«αá∩ ¡Ñ óδ»«½¡∩ÑΓ ∩ó¡« ¿½¿ ¡Ñ∩ó¡«
  8808.         ó맮óδ Σπ¡¬µ¿⌐ æ:
  8809.  
  8810.              link /nod sampdll libentry, sampdll.dll,, snocrtd libw,
  8811.              sampdll.def
  8812.  
  8813.              ü¿í½¿«ΓѬá xNOCRTD.LIB  ó¬½ετáÑΓ  ßΓáαΓ«óδ⌐  ¬«ñ  Windows,
  8814.         ¬«Γ«αδ⌐ óδºδóáÑΓ Σπ¡¬µ¿ε LibMain í¿í½¿«ΓѬ¿ DLL.
  8815.  
  8816.              èᬠ¿   ó  ß½πτáÑ  ß  »α¿¬½áñ¡δ¼¿  »α«úαἼἿ,  ó  ß½πτáÑ
  8817.         »α¿ßπΓßΓó¿∩ ó   í¿í½¿«ΓѬѠ  ∩ó¡«ú«   ¿½¿    ¡Ñ∩ó¡«ú«    ó맮óá
  8818.         í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐   æ   ¬«¼»«¡«óΘ¿¬   ß««íΘáÑΓ  «  »«∩ó½Ñ¡¿¿
  8819.         ¡ÑαáºαÑΦ¿¼δσ ßß佫¬,  ¬«Γ«αδÑ ¡Ñ »α¿¡áñ½ÑªáΓ óáΦÑ⌐ DLL.  é φΓ«¼
  8820.         ß½πτáÑ óδ ¼«ªÑΓÑ ¿ß¬½ετ¿Γ∞ ßΓáαΓ«óδ⌐ ¬«ñ æ, ΓαÑíπѼδ⌐ ñ½∩ ∩ó¡δσ
  8821.         ó맮ó«ó í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐,  »«ñ¬½ετ¿ó í¿í½¿«ΓѬπ xNOCRTD.LIB
  8822.         ó¼ÑßΓÑ ß xDLLCAW.LIB ¿½¿ xDLLCEW.LIB. ìá»α¿¼Ñα:
  8823.  
  8824.              link /nod /noe sampdll libentry, sampdll.dll,, snocrt
  8825.                                                sdllcew, sampdll.def
  8826.  
  8827.              ìÑ ºáíπñ∞ΓÑ π¬áºáΓ∞ ¬½ετ /NOE.
  8828.                          14.6  ìỿßá¡¿Ñ »α«úαá¼¼ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá.         
  8829.  
  8830.              Åα«úαá¼¼δ ñ½∩ Windows,  ¡á»¿ßá¡¡δÑ ¡á  áßßѼí½ÑαÑ,  -  φΓ«
  8831.         óδß«¬«ßΓαπ¬Γπα¿α«óá¡¡δÑ »α«úαá¼¼δ,  ¿ß»«½∞ºπεΘ¿Ñ  ß«ú½áΦÑ¡¿∩ »«
  8832.         ó맮óπ óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó,  á ΓᬪѠΣπ¡¬µ¿¿,  Γ¿»δ ñá¡¡δσ ¿
  8833.         ß«ú½áΦÑ¡¿∩  Windows.  ò«Γ∩  óδ  áßßÑ¼í½¿απÑΓÑ  ßó«¿ »α«úαá¼¼δ ß
  8834.         »«¼«Θ∞ε Microsoft Macro Assempler,  óáΦᠵѽ∞  ß«ßΓ«¿Γ  ó  Γ«¼,
  8835.         τΓ«íδ   »«½πτ¿Γ∞   «íΩÑ¬Γ¡δ⌐  Σá⌐½,  á¡á½«ú¿τ¡δ⌐  úÑ¡Ñα¿απѼ«¼π
  8836.         ¬«¼»¿½∩Γ«α«¼  æ.  ì¿ªÑ  »α¿óÑñÑ¡δ  ¡Ñ¬«Γ«αδÑ  ß«óÑΓδ,   ¬«Γ«αδÑ
  8837.         »«¼«úπΓ  óá¼  ó  ñ«ßΓ¿ªÑ¡¿¿  φΓ«⌐  µÑ½¿ ¿ ó ß«ºñá¡¿¿ »α¿¬½áñ¡δσ
  8838.  
  8839.        Windows 3.0/pg/2#3                                       = 166 =
  8840.  
  8841.         »α«úαá¼¼ ß ¿ß»«½∞º«ó᡿Ѽ áßßѼí½Ñαá:
  8842.  
  8843.              1. é¬½ετ¿ΓÑ  ó  ¿ßσ«ñ¡δσ  Σá⌐½  CMACROS.INC.   ¥Γ«Γ   Σá⌐½
  8844.                 ß«ñÑαª¿Γ ¼á¬α«¬«¼á¡ñδ     ∩ºδ¬á     óδß«¬«ú«    πα«ó¡∩,
  8845.                 «»αÑñѽ∩εΘ¿Ñ ßÑú¼Ñ¡Γδ,  »α«úαá¼¼¡δÑ ¼«ñѽ¿, ¿¡ΓÑαΣÑ⌐ß ß
  8846.                 Σπ¡¬µ¿∩¼¿  ¿  Γ¿»δ  ñá¡¡δσ,  ¡Ñ«íσ«ñ¿¼δÑ  ñ½∩  ß«ºñá¡¿∩
  8847.                 »α¿¬½áñ¡δσ  »α«úαá¼¼  ñ½∩  Windows.  ¥Γ¿   ¼á¬α«¬«¼á¡ñδ
  8848.                 «»¿ßá¡δ ó« óΓ«α«¼ Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
  8849.  
  8850.              2. Ä»αÑñѽ¿ΓÑ  ¼«ñѽ∞  »á¼∩Γ¿,  πßΓá¡«ó¿ó ó Ññ¿¡¿µπ «ñ¿¡ ¿º
  8851.                 ¬½ετÑ⌐ memS,  memMm,  memC ¿½¿ memL.  ¥Γ«Γ ¬½ετ  ñ«½ªÑ¡
  8852.                 íδΓ∞   πßΓá¡«ó½Ñ¡   »ÑαÑñ  «»ÑαáΓ«α«¼  ó¬½ετÑ¡¿∩  Σá⌐½á
  8853.                 CMACROS.INC.
  8854.  
  8855.              3. ôßΓá¡«ó¿ΓÑ ¬½ετ ?PLM αáó¡δ¼ 1, τΓ«íδ π¬áºáΓ∞, τΓ« ñ«½ª¡«
  8856.                 ¿ß»«½∞º«óáΓ∞ß∩ ß«ú½áΦÑ¡¿Ñ »« ó맮óπ ∩ºδ¬á Pascal.  ¥Γ«Γ
  8857.                 ¬½ετ ñ«½ªÑ¡ íδΓ∞ πßΓá¡«ó½Ñ¡ »ÑαÑñ «»ÑαáΓ«α«¼  ó¬½ετÑ¡¿∩
  8858.                 Σá⌐½á  CMACROS.INC.  æ«ú½áΦÑ¡¿Ñ  »« ó맮óπ ∩ºδ¬á Pascal
  8859.                 ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ óδºδóáÑΓ Windows.
  8860.  
  8861.              4. ôßΓá¡«ó¿ΓÑ ¬½ετ  ?WIN  αáó¡δ¼  1,  τΓ«íδ  π¬áºáΓ∞,  τΓ«
  8862.                 ¡Ñ«íσ«ñ¿¼« ñ«íáó½∩Γ∞  ¬«ñ  »α«½«úá  ¿  φ»¿½«úá Windows.
  8863.                 ¥Γ«Γ ¬½ετ  ñ«½ªÑ¡  íδΓ∞  πßΓá¡«ó½Ñ¡  »ÑαÑñ   «»ÑαáΓ«α«¼
  8864.                 ó¬½ετÑ¡¿∩ Σá⌐½á CMACROS.INC. ¥Γ«Γ ¬½ετ ΓαÑíπÑΓß∩ Γ«½∞¬«
  8865.                 ñ½∩ Σπ¡¬µ¿⌐    ¼¡«ú«¬αáΓ¡«ú«    ó맮óá     (¿½¿     ñ½∩
  8866.                 φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐ ñ½∩ í¿í½¿«ΓѬ Windows).
  8867.  
  8868.              5. æ«ºñá⌐ΓÑ  Γ«τ¬π  óσ«ñá  ó  óáΦπ »α«úαá¼¼π,  WinMain,  ¿
  8869.                 πíÑñ¿ΓÑß∞, τΓ« «¡á «íΩ∩ó½Ñ¡á  ¬á¬  PUBLIC.  Ä¡á  ñ«½ª¡δ
  8870.                 ¿¼ÑΓ∞ ß½ÑñπεΘ¿⌐ ó¿ñ:
  8871.  
  8872.                 cProc WinMain, <PUBLIC>, <si,di>
  8873.                               parmW hInstance
  8874.                               parmW hPrevInstance
  8875.                               parmD lpCmdLine
  8876.                               parmW nCmdShow
  8877.                 cBegin WinMain
  8878.                               .
  8879.                               .
  8880.                               .
  8881.                 cEnd WinMain
  8882.  
  8883.                 öπ¡¬µ¿∩ WinMain   ñ«½ª¡á   íδΓ∞    «»αÑñѽѡᠠ  ó¡πΓα¿
  8884.                 ßΓá¡ñáαΓ¡«ú« ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá CODE.
  8885.  
  8886.              6. ôíÑñ¿ΓÑß∞,   τΓ«   óáΦ¿  Σπ¡¬µ¿¿  ¼¡«ú«¬αáΓ¡«ú«  ó맮óá
  8887.                 «íΩ∩ó½Ñ¡δ ß½ÑñπεΘ¿¼ «íαẫ¼:
  8888.  
  8889.                 cProc TestWndProc, <FAR,PUBLIC>, <si,di>
  8890.                               parmW hWnd
  8891.                               parmW message
  8892.                               parmW wParam
  8893.                               parmD lParam
  8894.  
  8895.        Windows 3.0/pg/2#3                                       = 167 =
  8896.  
  8897.                 cBegin TestWndProc
  8898.                               .
  8899.                               .
  8900.                               .
  8901.                 cEnd TestWndProc
  8902.  
  8903.                 öπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú«   ó맮óá  ñ«½ª¡δ  «»αÑñѽ∩Γ∞ß∩  ó
  8904.                 ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ.
  8905.  
  8906.              7. æ¬«¼»«¡π⌐ΓÑ óáΦπ »α«úαá¼¼π  ó¼ÑßΓÑ  ß  ß««ΓóÑΓßΓóπεΘ¿¼¿
  8907.                 í¿í½¿«ΓѬἿ Windows ñ½∩ æ ¿ ß í¿í½¿«ΓѬἿ ¿ß»«½¡∩εΘÑ⌐
  8908.                 ß¿ßΓÑ¼δ æ.  ä½∩  »αáó¿½∞¡«⌐  ¬«¼»«¡«ó¬¿  óδ  ñ«½ª¡δ   ó
  8909.                 ¿ßσ«ñ¡δ⌐  Σá⌐½  ñ«íáó¿Γ∞  ó¡ÑΦ¡ÑÑ  «»αÑñѽѡ¿Ñ  ß¿¼ó«½á
  8910.                 __acrtuses.
  8911.  
  8912.              Åα¿¼Ñτá¡¿Ñ: öπ¡¬µ¿¿  Windows  αáºαπΦáεΓ  ß«ñÑন¼«Ñ   óßÑσ
  8913.         αÑú¿ßΓα«ó, ºá ¿ß¬½ετÑ¡¿Ñ¼ DI, SI, BP ¿ DS.
  8914.                          14.6.1  êº¼Ñ¡Ñ¡¿Ñ ß«ßΓ«∩¡¿∩ Σ½áúá »αÑαδóá¡¿∩.         
  8915.  
  8916.              è«úñá Windows  αáí«ΓáÑΓ  ó  αáßΦ¿αÑ¡¡«¼  αѪ¿¼Ñ »α«µÑßß«αá
  8917.         386, Γ«  «¡á  óδ»«½¡∩ÑΓß∩  ¡á  πα«ó¡Ñ  I/O  Privilege  Level  0
  8918.         (IOPL0). ìá  φΓ«¼  πα«ó¡Ñ  ¬«¼á¡ñδ  POPF  ¿  IRET  ¡Ñ  ¿º¼Ñ¡∩εΓ
  8919.         ß«ßΓ«∩¡¿Ñ Σ½áúá  »αÑαδóá¡¿⌐.  (äαπú¿Ñ   Σ½áú¿   ß«σαá¡∩εΓß∩   ¿
  8920.         ó«ßßΓá¡áó½¿óáεΓß∩.) ¥Γ« «º¡áτáÑΓ,  τΓ« »«ß½Ñ ºáóÑαΦÑ¡¿∩ ñá¡¡«ú«
  8921.         »α¿¼Ñαá »αÑαδóá¡¿∩ «ßΓá¡πΓß∩ ºá»αÑΘÑ¡δ:
  8922.  
  8923.              pushf;
  8924.              cli
  8925.              .
  8926.              .
  8927.              .
  8928.              popf;    »αÑαδóá¡¿∩ «ßΓ὿ß∞ ºá»αÑΘÑ¡¡δ¼¿
  8929.  
  8930.              ìá IOPL0  ¿º¼Ñ¡¿Γ∞  ß«ßΓ«∩¡¿Ñ Σ½áúá ¼«ª¡« Γ«½∞¬« ß »«¼«Θ∞ε
  8931.         ¬«¼á¡ñ STI ¿ CLI. ÅÑαÑñ óδσ«ñ«¼ ¿º ¬α¿Γ¿τÑ߬«⌐ τáßΓ¿, ó ¬«Γ«α«⌐
  8932.         óδ ºá»αÑΓ¿½¿  »αÑαδóá¡¿∩,  óδ  ¡Ñ ¼«ªÑΓÑ »«½áúáΓ∞ß∩ ¡á Γ«,  τΓ«
  8933.         ¬«¼á¡ñá POPF ó«ßßΓá¡«ó¿Γ  ß«ßΓ«∩¡¿Ñ  Σ½áúá  »αÑαδóá¡¿⌐.  é¼ÑßΓ«
  8934.         φΓ«ú« óδ  ñ«½ª¡δ ∩ó¡« πßΓá¡«ó¿Γ∞ ß«ßΓ«∩¡¿Ñ Σ½áúá ó ß««ΓóÑΓßΓó¿¿
  8935.         ß ß«σαá¡Ñ¡¡δ¼  »αÑñδñπΘÑ⌐  ¬«¼á¡ñ«⌐  PUSHF   ß«ßΓ«∩¡¿Ñ¼.   ì¿ªÑ
  8936.         »α¿ó«ñ¿Γß∩ »α¿¼Ñα Γ«ú«, ¬á¬ φΓ« ¼«ª¡« ßñѽáΓ∞:
  8937.  
  8938.                         pushf;  ¿½½εßΓα¿απÑΓ ñ«»πßΓ¿¼δ⌐ ¼ÑΓ«ñ
  8939.                         cli
  8940.                         .
  8941.                         .
  8942.                         .
  8943.                         pop ax
  8944.                         test    ah,2
  8945.                         jz      SkipSTI
  8946.                         sti
  8947.              SkipSTI:
  8948.                         .
  8949.  
  8950.        Windows 3.0/pg/2#3                                       = 168 =
  8951.  
  8952.                         .
  8953.                         .
  8954.  
  8955.              àß½¿ óδ πßΓᡫ󿽿 ½«óπΦ¬π ¡á »αÑαδóá¡¿Ñ, ¬«Γ«αá∩ óδºδóáÑΓ
  8956.         ß½ÑñπεΘπε »α«úαá¼¼π «íαáí«Γ¬¿ »αÑαδóá¡¿∩ ó µÑ»«τ¬Ñ, óδ ΓᬪѠ¡Ñ
  8957.         ¼«ªÑΓÑ »«½áúáΓ∞ß∩ ¡á Γ«, τΓ« ¬«¼á¡ñá IRET ó«ßßΓá¡«ó¿Γ ß«ßΓ«∩¡¿Ñ
  8958.         Σ½áúá. ì¿ªÑ »α¿óÑñÑ¡ ¡Ñ»αáó¿½∞¡δ⌐ ¬«ñ:
  8959.  
  8960.              My_SW_Int_Hook;   ¡ÑóÑα¡δ⌐ ¬«ñ
  8961.              sti;
  8962.              .
  8963.              .
  8964.              .
  8965.              pushf ; φ¼π½¿απÑΓ ó맮ó »αÑαδóá¡¿∩
  8966.              cli   ; ¿ cli
  8967.              call  [ß½ÑñπεΘπε »α«úαá¼¼π «íαáí«Γ¬¿ »αÑαδóá¡¿∩]
  8968.                    ; ¬«¼á¡ñá   IRET   ß½ÑñπεΘÑ⌐   »α«úαá¼¼δ   «íαáí«Γ¬¿
  8969.                    ; »αÑαδóá¡¿∩ ¼«ªÑΓ ¡Ñ ó«ßßΓá¡«ó¿Γ∞ Σ½áú »αÑαδóá¡¿⌐, ¿
  8970.                    ; «¡   «ßΓá¡ÑΓß∩   ßíα«ΦÑ¡¡δ¼   (»αÑαδóá¡¿∩    íπñπΓ
  8971.                    ; ºá»αÑΘÑ¡δ).
  8972.              .
  8973.              .
  8974.              .
  8975.              iret
  8976.  
  8977.              ä½∩ ¿ß¬½ετÑ¡¿∩  Γᬫ⌐  ó«º¼«ª¡«ßΓ¿  ¼«ª¡«  »«¼ÑßΓ¿Γ∞   STI
  8978.         ßΓαáºπ ªÑ    »«ß½Ñ   ó맮óá   ß½ÑñπεΘÑ⌐   »α«úαá¼¼δ   «íαáí«Γ¬¿
  8979.         »αÑαδóá¡¿∩, τΓ«íδ αáºαÑΦ¿Γ∞ »αÑαδóá¡¿∩ ó ß½πτáÑ, Ñß½¿ ß½ÑñπεΘá∩
  8980.         ó µÑ»«τ¬Ñ   »α«úαἼᠠ «íαáí«Γ¬¿   »αÑαδóá¡¿⌐   «ßΓáó¿Γ   Σ½áú
  8981.         ßíα«ΦÑ¡¡δ¼. ì¿ªÑ »α¿ó«ñ¿Γß∩ »α¿¼Ñα,  ¿½½εßΓα¿απεΘ¿⌐  »αáó¿½∞¡δ⌐
  8982.         ¼ÑΓ«ñ:
  8983.  
  8984.              My_SW_Int_Hook;   ¡¿ªÑ óÑα¡«
  8985.              sti;
  8986.              .
  8987.              .
  8988.              .
  8989.              pushf ; φ¼π½¿απÑΓ ó맮ó »αÑαδóá¡¿∩
  8990.              cli   ; ¿ cli
  8991.              call  [ß½ÑñπεΘπε »α«úαá¼¼π «íαáí«Γ¬¿ »αÑαδóá¡¿∩]
  8992.              sti   ; αáºαÑΦ¿Γ∞ »αÑαδóá¡¿∩, ñáªÑ Ñß½¿ ß½ÑñπεΘá∩ »α«ú-
  8993.                    ; αá¼á «íαáí«Γ¬¿ »αÑαδóá¡¿∩ «ßΓáó¿½á Ñú« ßíα«ΦÑ¡¡δ¼.
  8994.              .
  8995.              .
  8996.              .
  8997.              iret
  8998.                                                                                
  8999.          14.6.2  èᬠ¡á áßßѼí½ÑαÑ ¡á»¿ßáΓ∞ φ¬ß»«αΓ¿απѼπε Σπ¡¬µ¿ε.
  9000.  
  9001.              è«úñá óδ »¿ΦÑΓÑ ¡á áßßѼí½ÑαÑ φ¬ß»«αΓ¿απѼπε  Σπ¡¬µ¿ε,  ¡Ñ
  9002.         ¡áñ« ¡áτ¿¡áΓ∞ ÑÑ ß:
  9003.  
  9004.              mov ax,xxxx
  9005.  
  9006.        Windows 3.0/pg/2#3                                       = 169 =
  9007.  
  9008.  
  9009.              é ñá¡¡«¼ »α¿¼ÑαÑ xxxx «í«º¡áτáÑΓ ¬«¡ßΓá¡Γπ.
  9010.  
  9011.              ¥Γ«Γ ¬«ñ  ó ¡áτá½Ñ φ¬ß»«αΓ¿απѼ«⌐ Σπ¡¬µ¿¿ ¿ñÑ¡Γ¿τÑ¡ ¡áτá½π
  9012.         ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá  í¿í½¿«ΓѬ¿,  ¬«Γ«αδ⌐  Windows   »«¼ÑΘáÑΓ   ó
  9013.         αáßΦ¿αÑ¡¡πε »á¼∩Γ∞ »α¿ αáí«ΓÑ ó αÑá½∞¡«¼ αѪ¿¼Ñ.  è«úñá Windows
  9014.         »δΓáÑΓß∩ »ÑαѺáúαπº¿Γ∞ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ,  «¡á »«ñαáºπ¼ÑóáÑΓ  τΓ«
  9015.         ¬«¡ßΓá¡Γá ß«ñÑαª¿Γ áñαÑß ßÑú¼Ñ¡Γá ñá¡¡δσ í¿í½¿«ΓѬ¿ ¿ Σ¿¬ß¿απÑΓ
  9016.         φΓ« º¡áτÑ¡¿Ñ  ó  ¬áτÑßΓóÑ   ¡«ó«ú«   áñαÑßá   ßÑú¼Ñ¡Γá   ñá¡¡δσ
  9017.         í¿í½¿«ΓѬ¿.
  9018.  
  9019.              ùΓ«íδ ¿ß¬½ετ¿Γ∞  Γá¬πε  ß¿Γπᵿε,  »α«ßΓ«  »«ßΓáóΓÑ  »ÑαÑñ
  9020.         ¬«¼á¡ñ«⌐ MOV ¬«¼á¡ñπ NOP, ¬á¬ »«¬áºá¡« ¡¿ªÑ:
  9021.  
  9022.              nop
  9023.              mov ax,xxxx
  9024.                                  14.6.3  êß»«½∞º«óá¡¿Ñ αÑú¿ßΓαá ES.            
  9025.  
  9026.              Åα¿ ¿ß»«½∞º«óá¡¿¿   αÑú¿ßΓαá  ES  ó  »α«úαá¼¼áσ  ¡á  ∩ºδ¬Ñ
  9027.         áßßѼí½Ñαá ¡Ñ«íσ«ñ¿¼«   »α«∩ó½∩Γ∞   «ß«íπε   «ßë᫪¡«ßΓ∞.    é
  9028.         ¡Ñ¬«Γ«αδσ πß½«ó¿∩σ,  Ñß½¿  ñá¡¡δ⌐  αÑú¿ßΓα  ß«ñÑαª¿Γ  π¬áºáΓѽ∞
  9029.         ßíα«ΦÑ¡¡δ⌐  «íΩѬΓ,  Γ«  φΓ«  ¼«ªÑΓ óδºóáΓ∞ ¡ÑπßΓαá¡¿¼πε «Φ¿í¬π
  9030.         ºáΘ¿Γδ »á¼∩Γ¿ (general-protection  failure  GP)  »α¿  αáí«ΓÑ  ó
  9031.         ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ ¿½¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ 386 »α«µÑßß«αá. Åα¿
  9032.         ¡Ñ¬«Γ«α«¼ αÑñ¬«¼ ßΓÑτÑ¡¿¿ «íßΓ«∩Γѽ∞ßΓó φΓ«  ¼«ªÑΓ  »α¿óÑßΓ¿  ¬
  9033.         Γ«¼π, τΓ« Windows ó«⌐ñÑΓ ó íÑ߬«¡Ñτ¡δ⌐ µ¿¬½.
  9034.  
  9035.              ÄΦ¿í¬á GP ó«º¡¿¬áÑΓ,  ¬«úñá »α«úαἼᠠóδ¡¿¼áÑΓ  ¿º  ßΓѬá
  9036.         º¡áτÑ¡¿Ñ ó ES ¿ φΓ« º¡áτÑ¡¿Ñ ßßδ½áÑΓß∩ ¡á ßÑú¼Ñ¡Γ,  ¬«Γ«αδ⌐ íδ½
  9037.         ßíα«ΦÑ¡.
  9038.  
  9039.              ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ »α¿¼ÑαÑ ES ßßδ½áÑΓß∩ ¡á  ñ¿¡á¼¿τÑ߬¿
  9040.         óδñѽѡ¡δ⌐ ó  ú½«íá½∞¡«⌐  «í½áßΓ¿  »á¼∩Γ¿ «íΩѬΓ.  Äßó«í«ªñÑ¡¿Ñ
  9041.         «íΩѬΓá, ¬«úñá  Ñú«  ßÑ½Ñ¬Γ«α  óαѼѡ¡«  »«¼ÑΘáÑΓß∩   ó   ßΓѬ,
  9042.        »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« «¡ ßΓá¡«ó¿Γß∩ ¡ÑóÑα¡δ¼:
  9043.  
  9044.              push es
  9045.                .
  9046.                .
  9047.                .
  9048.              cCall GlobalFree <es>
  9049.                .
  9050.                .
  9051.                .
  9052.              pop es
  9053.  
  9054.              éáΦá »α«úαἼᠠ¡Ñ   ñ«½ª¡á   ∩ó¡«   ßíαáßδóáΓ∞   ßÑú¼Ñ¡Γ.
  9055.         æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ, ¬á¬ φΓ« ¼«ªÑΓ íδΓ∞ ßñѽᡫ ¡Ñ∩ó¡«:
  9056.  
  9057.              push es;      ES «»αÑñѽ∩ÑΓ ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ
  9058.                 .
  9059.                 .
  9060.  
  9061.        Windows 3.0/pg/2#3                                       = 170 =
  9062.  
  9063.                 .
  9064.              call far Proc1 ; Proc1 ∩ó¡« ¿½¿ ¡Ñ∩ó¡« ßíαáßδóáÑΓ «íΩѬΓ,
  9065.                             ; «»αÑñѽ∩Ѽδ⌐ ES
  9066.                 .
  9067.                 .
  9068.                 .
  9069.              pop es
  9070.  
  9071.              Windows «íαáíáΓδóáÑΓ    «Φ¿í¬¿    ¬«ñ«ó«ú«    ßÑú¼Ñ¡Γá   ó
  9072.         ßΓá¡ñáαΓ¡«¼ ¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ 386 »α«µÑßß«αá.  Äñ¡á¬«  «¡á
  9073.         ¡Ñ «íαáíáΓδóáÑΓ  «Φ¿í«¬  ßÑú¼Ñ¡Γ«ó ñá¡¡δσ,  »«φΓ«¼π «íá »α¿¼Ñαá
  9074.         »α¿óÑñπΓ ¬ ó«º¡¿¬¡«óÑ¡¿ε «Φ¿í¬¿ GP.
  9075.  
  9076.              æ¿Γπᵿ∩, ¬«Γ«αá∩  ¼«ªÑΓ  »α¿óÑßΓ¿  ¬  Γ«¼π,  τΓ«  Windows
  9077.         ó«⌐ñÑΓ ó  íÑ߬«¡Ñτ¡δ⌐  µ¿¬½,  ó«º¡¿¬áÑΓ,   Ñß½¿   ES   ß«ñÑনΓ
  9078.         π¬áºáΓѽ∞  ¡á  ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ.  é Γᬿσ ß½πτá∩ó óδ ñ«½ª¡δ
  9079.         «τ¿ßΓ¿Γ∞  Ñú«,  »ÑαÑñ   ΓѼ,   ¬á¬   ß«óÑαΦáΓ∞   óδº«ó   «ñ¡«ú«
  9080.         ßíαáßδóáѼ«ú« ßÑú¼Ñ¡Γá ¿º ñαπú«ú«.
  9081.  
  9082.              ì¿ªÑ »«¬áΘá¡«, ¬á¬ φΓ« ßñѽáΓ∞:
  9083.  
  9084.              mov es, _CODESEG1     ; ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ
  9085.                 .
  9086.                 .
  9087.                 .
  9088.              xor ax, ax            ; é ñá¡¡«¼ »α¿¼ÑαÑ ES «τ¿ΘáÑΓß∩ »ÑαÑñ
  9089.              mov es, ax            ; «ßπΘÑßΓó½Ñ¡¿Ñ¼ ó맮óá ßíαáßδóáѼ«ú«
  9090.              call far Proc1        ; ßÑú¼ÑΓá ¿º ßíαáßδóáѼ«ú« ßÑú¼Ñ¡Γá
  9091.  
  9092.              àß½¿ ó Γᬫ⌐ ß¿Γπᵿ¿ óδ  ¡Ñ  «τ¿ßΓ¿ΓÑ  ES,  Γ«  »α«úαá¼¼á
  9093.         π»αáó½Ñ¡¿∩ ßÑú¼Ñ¡ΓἿ   Windows   ó«⌐ñÑΓ  ó  íÑ߬«¡Ñτ¡δ⌐  µ¿¬½,
  9094.         ßíαáßδóá∩ ¿  ºáúαπªá∩  Γα¿  ßíαáßδóáѼδσ  ¬«ñ«óδσ  ßÑú¼Ñ¡Γá,  ó
  9095.         ß½πτáÑ ¡áñ«ßΓáΓ¬á »á¼∩Γ¿.  é« óαѼ∩  φΓ«ú«  »α«µÑßßá  ES  íπñÑΓ
  9096.         »«¼ÑΘáΓ∞ß∩  ¿  óδ¡¿¼áΓ∞ß∩  ¿º  ßΓѬá,  τΓ«  íπñÑΓ  »α¿ó«ñ¿Γ∞  ¬
  9097.         íѺ߼δ߽ѡ¡«⌐ »ÑαѺáúαπº¬Ñ  ßÑú¼Ñ¡Γá  CODESEG1,  ¬«úñá  ¿¼ÑÑΓß∩
  9098.         ¼ÑßΓ« Γ«½∞¬« ñ½∩ ñóπσ ñαπú¿σ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
  9099.                                               14.7  çᬽετÑ¡¿Ñ.                
  9100.  
  9101.              é ñá¡¡«⌐   ú½áóÑ   «íßπªñὫß∞,   ¬á¬   »¿ßáΓ∞  »α¿¬½áñ¡δÑ
  9102.         »α«úαá¼¼δ ñ½∩ Windows ¿ß»«½∞ºπ∩  æ  ¿  ∩ºδ¬  áßßѼí½Ñαá.  Æá¬ªÑ
  9103.         «»¿ßδóáÑΓß∩, ¬á¬   óδí¿αáΓ∞   ¼«ñѽ∞   »á¼∩Γ¿,  ¿ß»«½∞º«óáΓ∞  ó
  9104.         »α«úαἼѠ¬«¡ßΓá¡Γπ NULL ¿ ¬á¬ »«½πτ¿Γ∞ ó  »α«úαἼѠ áαúπ¼Ñ¡Γδ
  9105.         ¬«¼á¡ñ¡«⌐  ßΓ᫬¿  DOS  ¿ º¡áτÑ¡¿∩ »ÑαѼѡ¡δσ ßαÑñδ DOS.  èα«¼Ñ
  9106.         φΓ«ú«, ó  ñá¡¡«⌐  ú½áóÑ  «»¿ßá¡«,  ¬á¬  »¿ßáΓ∞   φ¬ß»«αΓ¿απѼδÑ
  9107.         Σπ¡¬µ¿¿,  ¿  »α¿óÑñÑ¡δ  ß»Ñµ¿á½∞¡δÑ  »αáó¿½á,  ¬«Γ«αδÑ »«¼«úáεΓ
  9108.         »¿ßáΓ∞  »α«úαá¼¼δ  ß  ¿ß»«½∞º«ó᡿Ѽ  »α«úαá¼¼   ¿º   í¿í½¿«ΓѬ
  9109.         ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ »α«úαá¼¼ ¡á áßßѼí½ÑαÑ.
  9110.  
  9111.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« ß«ºñá¡¿∩ »α¿¬½áñ¡δσ
  9112.         »α«úαá¼¼ Windows ¡á æ ¿ áßßѼí½ÑαÑ óδ ¡á⌐ñÑΓÑ ó:
  9113.  
  9114.  
  9115.        Windows 3.0/pg/2#3                                       = 171 =
  9116.  
  9117.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  9118.         ───────────────────────────────────────────────────────────────
  9119.         ô»αá½Ñ¡¿Ñ »á¼∩Γ∞ε    Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 15, "ô»αáó-
  9120.                              ½Ñ¡¿Ñ »á¼∩Γ∞ε", ¿ ú½áóá 16, "àΘÑ «í π»αáó-
  9121.                              ½Ñ¡¿¿ »á¼∩Γ∞ε".
  9122.  
  9123.         æ«ºñá¡¿Ñ ñ¿¡á¼¿τÑ߬¿ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 20, "ä¿¡á-
  9124.         »«ñ¬½ετáѼδσ í¿í½¿«- ¼¿τÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
  9125.         ΓѬ
  9126.  
  9127.         îá¬α«¬«¼á¡ñδ áßßѼí- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 14,
  9128.         ½Ñαá ñ½∩ Windows     "滿߫¬ ¼á¬α«¬«¼á¡ñ áßßѼí½Ñαá", ¿ ú½áóá
  9129.                              13, "Äíº«α ¼á¬α«¬«¼á¡ñ áßßѼí½Ñαá".
  9130.  
  9131.         è«¼»¿½∩µ¿∩ ¿ ¬«¼»«-  "Tools", ú½áóá 1, "諼»¿½∩µ¿∩ »α¿¬½áñ¡δσ
  9132.         ¡«ó¬á »α«úαá¼¼       »α«úαá¼¼: ¬«¼»¿½∩Γ«α æ", ¿ ú½áóá 2, "諼-
  9133.                              »«¡«ó¬á »α¿¬½áñ¡δσ »α«úαá¼¼: ¬«¼»«¡«óΘ¿¬".
  9134.  
  9135.  
  9136.  
  9137.  
  9138.        Windows 3.0/pg/2#3                                       = 172 =
  9139.  
  9140.                                                                                
  9141.                        â½áóá 15.  ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε.
  9142.        ----------------------------------------------------------------
  9143.              éßÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ñ½∩  αáí«Γδ  ñ«½ª¡δ  ¿ß»«½∞º«óáΓ∞
  9144.         »á¼∩Γ∞. Å«ß¬«½∞¬π Microsoft Windows - ¼¡«ú«ºáñáτ¡á∩ ßαÑñá, Γ« ó
  9145.         ¡Ñ⌐   ¡Ñ߬«½∞¬«   »α¿¬½áñ¡δσ   »α«úαá¼¼   ¼«úπΓ    «ñ¡«óαѼѡ¡«
  9146.         ¿ß»«½∞º«óáΓ∞  »á¼∩Γ∞.  Windows  π»αáó½∩ÑΓ ¿ß»«½∞º«ó᡿Ѽ »á¼∩Γ¿
  9147.         ñ½∩ Γ«ú«,  τΓ«íδ ñáΓ∞ ó«º¼«ª¡«ßΓ∞  óßѼ  »α¿¬½áñ¡δ¼  »α«úαá¼¼á¼
  9148.         ¿ß»«½∞º«óáΓ∞   ÑÑ,   á   ΓᬪѠ ñ½∩  Γ«ú«,  τΓ«íδ  ßñѽáΓ∞  φΓ«
  9149.         ¿ß»«½∞º«óá¡¿Ñ ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ¼.
  9150.  
  9151.              é ñá¡¡«⌐  ú½áóÑ  ñáÑΓß∩  ¬«α«Γ¬«Ñ   óóÑñÑ¡¿Ñ   ó   ß¿ßΓѼπ
  9152.         π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows.
  9153.  
  9154.              Åα¿ó«ñ¿Γß∩ ß½ÑñπεΘá∩ ¿¡Σ«α¼áµ¿∩:
  9155.  
  9156.              - êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó ßαÑñÑ Windows.
  9157.  
  9158.              - ¥ΣΣÑ¬Γ¿ó¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ«ó ß ¬«ñ«¼ ¿ ñá¡¡δ¼¿.
  9159.  
  9160.              èα«¼Ñ φΓ«ú«,  ó  ñá¡¡«⌐  ú½áóÑ »α¿ó«ñ¿Γß∩ «»¿ßá¡¿Ñ »α«ßΓ«⌐
  9161.         »α«úαá¼¼δ MEMORY,  ¬«Γ«αá∩  ¿½½εßΓα¿απÑΓ  ¿ß»«½∞º«óá¡¿Ñ  »á¼∩Γ¿
  9162.         Windows.
  9163.                                       15.1  êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿.              
  9164.  
  9165.              æ¿ßΓѼá π»αáó½Ñ¡¿∩   »á¼∩Γ∞ε  Windows  »«ºó«½∩ÑΓ  «Γó«ñ¿Γ∞
  9166.         í½«¬¿ »á¼∩Γ¿ ñ½∩ ¿σ ¿ß»«½∞º«óá¡¿∩ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. ü½«¬¿
  9167.         »á¼∩Γ¿  ¼«ª¡« «Γó«ñ¿Γ∞ ¿º ú½«íá½∞¡«⌐ ¿½¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
  9168.         «í½áßΓ¿ »á¼∩Γ¿.  â½«íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿  -  φΓ«
  9169.         »π½ ßó«í«ñ¡«⌐  »á¼∩Γ¿,  ñ«ßΓπ»¡δ⌐ ñ½∩ óßÑσ »α¿¬½áñ¡δσ »α«úαá¼¼.
  9170.         ï«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩  «í½áßΓ∞  »á¼∩Γ¿  -  φΓ«  »π½  ßó«í«ñ¡«⌐
  9171.         »á¼∩Γ¿, ñ«ßΓπ»¡δ⌐   Γ«½∞¬«   ñá¡¡«⌐  »α«úαá¼¼Ñ.  Windows  ΓᬪÑ
  9172.         π»αáó½∩ÑΓ ßÑú¼Ñ¡ΓἿ ¬«ñá ¿ ßÑú¼Ñ¡ΓἿ ñá¡¡δσ óáΦÑ⌐ »α«úαá¼¼δ.
  9173.  
  9174.              é ¡Ñ¬«Γ«αδσ ß¿ßΓѼáσ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε «ΓóÑñÑ¡¡á∩  »á¼∩Γ∞
  9175.         «ßΓáÑΓß∩ Σ¿¬ß¿α«óá¡¡«⌐ ó «»αÑñѽѡ¡«¼ ¼ÑßΓÑ ñ« ΓÑσ »«α, »«¬á ¡Ñ
  9176.         íπñÑΓ  «ßó«í«ªñÑ¡á.  é  Windows  «Γó«ñ¿¼á∩  »á¼∩Γ∞  ¼«ªÑΓ  íδΓ∞
  9177.         »ÑαѼÑΘáѼ«⌐, ßíαáßδóáѼ«⌐,   á   ΓᬪѠ  Σ¿¬ß¿α«óá¡¡«⌐.   ü½«¬
  9178.         »ÑαѼÑΘáѼ«⌐ »á¼∩Γ¿ ¡Ñ  ¿¼ÑÑΓ  Σ¿¬ß¿α«óá¡¡«ú«  áñαÑßá;  Windows
  9179.         ¼«ªÑΓ  »ÑαѼÑßΓ¿Γ∞  Ñú« ó ½εí«⌐ ¼«¼Ñ¡Γ »« ¡«ó«¼π áñαÑßπ.  ü½«¬¿
  9180.         »ÑαѼÑΘáѼ«⌐ »á¼∩Γ¿ ñáεΓ ó«º¼«ª¡«ßΓ∞ Windows ½πτΦÑ ¿ß»«½∞º«óáΓ∞
  9181.         ßó«í«ñ¡πε  »á¼∩Γ∞.  ìá»α¿¼Ñα,  Ñß½¿  »ÑαѼÑΘáѼδ⌐  í½«¬  »á¼∩Γ¿
  9182.         αáºñѽ∩ÑΓ ñóá ßó«í«ñ¡δσ í½«¬á »á¼∩Γ¿, Windows ¼«ªÑΓ »ÑαÑñó¿¡πΓ∞
  9183.         Ñú« ¡á ¡«ó«Ñ ¼ÑßΓ«, τΓ«íδ «íΩÑñ¿¡¿Γ∞ ñóá ßó«í«ñ¡δσ í½«¬á ó «ñ¿¡
  9184.         ¡Ñ»αÑαδó¡δ⌐. ü½«¬ ßíαáßδóáѼ«⌐ »á¼∩Γ¿  á¡á½«ú¿τÑ¡  »ÑαѼÑΘáѼ«⌐
  9185.         »á¼∩Γ¿  ó Γ«¼,  τΓ« Windows ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ Ñú«.  èα«¼Ñ Γ«ú«,
  9186.         Ñú« ¼«ª¡« »«óΓ«α¡« óδñѽ¿Γ∞ ß ¡π½Ñó«⌐ ñ½¿¡«⌐,  Ñß½¿  ¡Ñ«íσ«ñ¿¼«
  9187.         ¼ÑßΓ« ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá ¡á «ΓóÑñÑ¡¿Ñ »á¼∩Γ¿. Å«óΓ«α¡«Ñ
  9188.         óδñѽѡ¿Ñ í½«¬á  »á¼∩Γ¿  ß  ¡π½Ñó«⌐  ñ½¿¡«⌐  αáºαπΦáÑΓ  ñá¡¡δÑ,
  9189.         ¬«Γ«αδÑ ß«ñÑαª¿Γ  í½«¬,  ¡«  »α¿¬½áñ¡á∩  »α«úαá¼¼á óßÑúñá ¿¼ÑÑΓ
  9190.         ó«º¼«ª¡«ßΓ∞ »«óΓ«α¡«   ºáúαπº¿Γ∞    ßíα«ΦÑ¡¡δÑ    ñá¡¡δÑ    »α¿
  9191.         ¡Ñ«íσ«ñ¿¼«ßΓ¿.
  9192.  
  9193.  
  9194.        Windows 3.0/pg/2#3                                       = 173 =
  9195.  
  9196.              Åα¿ «ΓóÑñÑ¡¿¿   í½«¬á  »á¼∩Γ¿  óδñáÑΓß∩  ñÑß¬α¿»Γ«α  φΓ«ú«
  9197.         í½«¬á,  á  ¡Ñ  π¬áºáΓѽ∞.  äÑß¬α¿»Γ«α   »á¼∩Γ¿   ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ
  9198.         «ΓóÑñÑ¡¡δ⌐ í½«¬.  Ä¡ ¿ß»«½∞ºπÑΓß∩ ñ½∩ »«½πτÑ¡¿∩ ΓѬπΘÑú« áñαÑßá
  9199.         í½«¬á, ¬«úñá ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ ñ«ßΓπ» ¬ »á¼∩Γ¿.
  9200.  
  9201.              ä½∩ ñ«ßΓπ»á  ¬  í½«¬π  »á¼∩Γ¿   ¡Ñ«íσ«ñ¿¼«   ºáí½«¬¿α«óáΓ∞
  9202.         ñÑß¬α¿»Γ«α »á¼∩Γ¿.  Åα¿ φΓ«¼ í½«¬ »á¼∩Γ¿ óαѼѡ¡« Σ¿¬ß¿απÑΓß∩ ¿
  9203.         ó«ºóαáΘáÑΓß∩ π¬áºáΓѽ∞ ¡á Ñú« ¡áτὫ.  Å«¬á  ñÑß¬α¿»Γ«α  »á¼∩Γ¿
  9204.         ºáí½«¬¿α«óá¡,  Windows  ¡Ñ ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ ¿½¿ ßíα«ß¿Γ∞ í½«¬.
  9205.         æ½Ññ«óáΓѽ∞¡«,  »«ß½Ñ «¬«¡τá¡¿∩ ¿ß»«½∞º«óá¡¿∩ í½«¬á  ¡Ñ«íσ«ñ¿¼«
  9206.         ßαáºπ  ªÑ  αáºí½«¬¿α«óáΓ∞  ñÑß¬α¿»Γ«α.  æ«σαá¡Ñ¡¿Ñ  ñÑß¬α¿»Γ«αá
  9207.         »á¼∩Γ¿ ºáí½«¬¿α«óá¡¡δ¼ »α¿ó«ñ¿Γ ¬ »«ΓÑαÑ  φΣΣÑ¬Γ¿ó¡«ßΓ¿  αáí«Γδ
  9208.         ß¿ßΓѼδ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε ¿ ¼«ªÑΓ óδºóáΓ∞ ßí«⌐ »α¿ »«ß½ÑñπεΘ¿σ
  9209.         ºá»α«ßáσ ¡á óδñѽѡ¿Ñ »á¼∩Γ¿.
  9210.  
  9211.              Windows »«ºó«½∩ÑΓ  í«½ÑÑ  ¬«¼»á¬Γ¡«  ¿ß»«½∞º«óáΓ∞  »á¼∩Γ∞.
  9212.         ÄíΩÑñ¿¡∩∩  ßó«í«ñ¡δÑ  πτáßΓ¬¿  »á¼∩Γ¿ ¼Ñªñπ «ΓóÑñÑ¡¡δ¼¿ í½«¬á¼¿
  9213.         Windows  Σ«α¼¿απÑΓ  ¡Ñ»αÑαδó¡δ⌐  í½«¬  ßó«í«ñ¡«⌐   »á¼∩Γ¿,   ¿º
  9214.         ¬«Γ«α«ú« ¼«úπΓ  íδΓ∞ «ΓóÑñÑ¡δ ñ«»«½¡¿Γѽ∞¡δÑ í½«¬¿ »á¼∩Γ¿.  ¥Γ«
  9215.         «íΩÑñ¿¡Ñ¡¿Ñ   ∩ó½∩ÑΓß∩   αѺπ½∞ΓáΓ«¼   »ÑαѼÑΘÑ¡¿∩   ¿    (Ñß½¿
  9216.         ¡Ñ«íσ«ñ¿¼«)  ßíα«ßá  í½«¬«ó  »á¼∩Γ¿.  Windows  ΓᬪѠ »«ºó«½∩ÑΓ
  9217.         ßíα«ß¿Γ∞ «Γñѽ∞¡δÑ í½«¬¿ »á¼∩Γ¿, Ñß½¿ óαѼѡ¡« ó ¡¿σ ¡ÑΓ ¡πªñδ.
  9218.              15.1.1  êß»«½∞º«óá¡¿Ñ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.     
  9219.  
  9220.              â½«íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ ß«ñÑαª¿Γ óßε »á¼∩Γ∞
  9221.         ßαÑñδ.  Åα¿  ºá»π߬Ѡ Windows  «Γó«ñ¿Γ »á¼∩Γ∞,  ¡Ñ«íσ«ñ¿¼πε ñ½∩
  9222.         »α«úαá¼¼ ¿ ñá¡¡δσ, ¿º φΓ«⌐ «í½áßΓ¿. ÄßΓáεΘá∩ß∩ ßó«í«ñ¡á∩ »á¼∩Γ∞
  9223.         ó  ú½«íá½∞¡«⌐  ñ¿¡á¼¿τÑ߬«⌐  «í½áßΓ¿ »á¼∩Γ¿ ñ«ßΓπ»¡á »α¿¬½áñ¡δ¼
  9224.         »α«úαἼἠ¿ í¿í½¿«ΓѬἠWindows.
  9225.  
  9226.              Åਪ½áñ¡δÑ »α«úαá¼¼δ    «íδτ¡«    ¿ß»«½∞ºπεΓ    ú½«íá½∞¡πε
  9227.         ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞   »á¼∩Γ¿   ñ½∩  óδñѽѡ¿∩  í«½∞Φ¿σ  í½«¬«ó
  9228.         (í«½∞ΦÑ ¬¿½«íá⌐Γá).  ò«Γ∩ ó  ú½«íá½∞¡«⌐  «í½áßΓ¿  »á¼∩Γ¿  ¼«ª¡«
  9229.         óδñѽ∩Γ∞ í«½∞ΦÑ »á¼∩Γ¿,  «ñ¡á¬« ÑßΓ∞ «ñ¡« ¡Ñπñ«íßΓó«: »«ß¬«½∞¬π
  9230.         »α«ΘÑ αáí«ΓáΓ∞  ß  ñá¡¡δ¼¿  ó  ½«¬á½∞¡«⌐  ñ¿¡á¼¿τÑ߬«⌐  «í½áßΓ¿
  9231.         »á¼∩Γ¿, τѼ   ß   ú½«íá½∞¡«⌐   »á¼∩Γ∞ε,  Γ«  »α«úαἼѠ πñ«í¡ÑÑ
  9232.         »«½∞º«óáΓ∞ß∩ ½«¬á½∞¡δ¼¿ ñá¡¡δ¼¿.
  9233.  
  9234.              êº ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿  ¼«ª¡«  »«½πτ¿Γ∞
  9235.         í½«¬ »á¼∩Γ¿  ½εí«ú«  αẼÑαá.  Åα«úαἼᠠ«íδτ¡« «Γó«ñ¿Γ »á¼∩Γ∞
  9236.         í«½∞Φ¿¼¿  í½«¬á¼¿.  ¥Γ¿  í½«¬¿  ¼«úπΓ  »αÑóδΦáΓ∞  64  è,   Ñß½¿
  9237.         »α¿¬½áñ¡«⌐ »α«úαἼѠ  ¡Ñ«íσ«ñ¿¼   í«½∞Φ«⌐   ¡Ñ»αÑαδó¡δ⌐  «íΩѼ
  9238.         »á¼∩Γ¿. Windows »αÑñ«ßΓáó½∩ÑΓ ß»Ñµ¿á½∞¡δÑ ßαÑñßΓóá ñ½∩  ñ«ßΓπ»á
  9239.         ¬ ñá¡¡δ¼ ñá½ÑÑ 64K.  êσ ¿ß»«½∞º«óá¡¿Ñ «»¿ßá¡« ó ú½áóÑ 16,  "àΘÑ
  9240.         «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
  9241.  
  9242.              î«ª¡« «ΓóÑßΓ¿ í½«¬ ú½«íá½∞¡«⌐  »á¼∩Γ¿,  ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε
  9243.         GlobalAlloc.   ìÑ«íσ«ñ¿¼«   π¬áºáΓ∞   αẼÑα   ¿   Γ¿»   »á¼∩Γ¿
  9244.         (Σ¿¬ß¿α«óá¡¡á∩,  »ÑαѼÑΘáѼá∩  ¿½¿  ßíαáßδóáѼá∩)   ¿   Σπ¡¬µ¿∩
  9245.         GlobalAlloc  ó«ºóαáΓ¿Γ  ñÑß¬α¿»Γ«α í½«¬á.  ÅÑαÑñ ¿ß»«½∞º«ó᡿Ѽ
  9246.         í½«¬á »á¼∩Γ¿ ¡Ñ«íσ«ñ¿¼« ºáí½«¬¿α«óáΓ∞  Ñú«  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿
  9247.         GlobalLock, ¬«Γ«αá∩  ó«ºóαáΓ¿Γ  »«½¡δ⌐ 32-í¿Γ«óδ⌐ áñαÑß »Ñαó«ú«
  9248.  
  9249.        Windows 3.0/pg/2#3                                       = 174 =
  9250.  
  9251.         íá⌐Γá í½«¬á  »á¼∩Γ¿.  çáΓѼ  ¼«ª¡«  ¿ß»«½∞º«óáΓ∞  φëà ñ½¿¡¡δ⌐
  9252.         π¬áºáΓѽ∞ ñ½∩ ñ«ßΓπ»á ¬ í½«¬π.
  9253.  
  9254.              é »α¿óÑñÑ¡¡«¼  »α¿¼ÑαÑ  Σπ¡¬µ¿∩  GlobalAlloc  «Γó«ñ¿Γ 4096
  9255.         íá⌐Γ »ÑαѼÑΘáѼ«⌐ »á¼∩Γ¿,  á Σπ¡¬µ¿∩ GlobalLock  í½«¬¿απÑΓ  ÑÑ,
  9256.         ΓᬠτΓ« »ÑαóδÑ 256 íá⌐Γ ¼«úπΓ íδΓ∞ πßΓá¡«ó½Ñ¡δ ó º¡áτÑ¡¿Ñ 0xFF:
  9257.  
  9258.              HANDLE hMem;
  9259.              LPSTR lpMem;
  9260.              int i;
  9261.  
  9262.              if ((hMem = GlobalAlloc(GMEM_MOVEABLE, 4096)) != NULL){
  9263.                  if ((lpMem = GlobalLock(hMem)) != (LPSTR) NULL) {
  9264.                      for (i = 0; i < 256; i++)
  9265.                          lpMem[i] = 0xFF;
  9266.                      GlobalUnlock(hMem);
  9267.                  }
  9268.              }
  9269.  
  9270.              é ñá¡¡«¼ »α¿¼ÑαÑ »α«úαá¼¼á αáºí½«¬¿απÑΓ ñÑß¬α¿»Γ«α  »á¼∩Γ¿
  9271.         ßαáºπ   ªÑ   »«ß½Ñ   ÑÑ   ¿ß»«½∞º«óá¡¿∩   »α¿   »«¼«Θ¿  Σπ¡¬µ¿¿
  9272.         GlobalUnlock.  Åα¿ í½«¬¿α«óá¡¿¿ »ÑαѼÑΘáѼ«⌐  ¿½¿  ßíαáßδóáѼ«⌐
  9273.         »á¼∩Γ¿  Windows úáαá¡Γ¿απÑΓ,  τΓ« í½«¬ «ßΓáÑΓß∩ Σ¿¬ß¿α«óá¡¡δ¼ ó
  9274.         »á¼∩Γ¿  ñ«  αáºí½«¬¿α«óá¡¿∩.  ¥Γ«  «º¡áτáÑΓ,  τΓ«  »«¬á  »á¼∩Γ∞
  9275.         ºáí½«¬¿α«óá¡á,  áñαÑß «ßΓáÑΓß∩ ¬«ααÑ¬Γ¡δ¼.  æ½ÑñπÑΓ πτÑßΓ∞, τΓ«
  9276.         »α¿   Γᬫ¼   ß»«ß«íÑ   ¡á½áúáεΓß∩   «úαá¡¿τÑ¡¿∩   ¡á    ½πτΦÑÑ
  9277.         ¿ß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó ß½πτáÑ ñαπú¿σ ºá»α«ß«ó ¡á ÑÑ óδñѽѡ¿Ñ.
  9278.  
  9279.              öπ¡¬µ¿∩ GlobalAlloc ó«ºóαáΘáÑΓ NULL, Ñß½¿ ºá»α«ß ¡á »á¼∩Γ∞
  9280.         ¡Ñ  óδ»«½¡Ñ¡.  ìÑ«íσ«ñ¿¼«  óßÑúñá  ¬«¡Γα«½¿α«óáΓ∞  ó«ºóαáΘáѼ«Ñ
  9281.         º¡áτÑ¡¿Ñ ñ½∩  πóÑαÑ¡¡«ßΓ¿  ó  Γ«¼  τΓ«  ¬«ααÑ¬Γ¡δ⌐   ñÑß¬α¿»Γ«α
  9282.         ßπΘÑßΓóπÑΓ.  Åα¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¼«ª¡« »α«óÑα¿Γ∞,  ß¬«½∞¬« »á¼∩Γ¿
  9283.         «ßΓὫß∞ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿,  ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε
  9284.         GlobalCompact.  ¥Γá  Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ ó ¡á¿í«½∞ΦѼ
  9285.         ¡Ñ»αÑαδó¡«¼ ßó«í«ñ¡«¼ í½«¬Ñ »á¼∩Γ¿.
  9286.  
  9287.              ìÑ«íσ«ñ¿¼« ΓᬪѠ »α«óÑα¿Γ∞  áñαÑß,  ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐
  9288.         GlobalLock.  ¥Γá Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  ¡π½Ñó«⌐  π¬áºáΓѽ∞,  Ñß½¿
  9289.         ñÑß¬α¿»Γ«α  »á¼∩Γ¿  ¡Ñ¬«ααѬΓÑ¡,  ¿½¿  ß«ñÑন¼«Ñ  í½«¬á »á¼∩Γ¿
  9290.         ßíα«ΦÑ¡«.
  9291.  
  9292.              î«ª¡« «ßó«í«ñ¿Γ∞  ¡Ñ¡πª¡πε   í«½∞ΦÑ   ú½«íá½∞¡πε   »á¼∩Γ∞,
  9293.         ¿ß»«½∞º«óáó   Σπ¡¬µ¿ε  GlobalFree.  é««íΘÑ  ú«ó«α∩,  ¡Ñ«íσ«ñ¿¼«
  9294.         «ßó«í«ªñáΓ∞ »á¼∩Γ∞ ßαáºπ ªÑ,  ¬á¬ Γ«½∞¬« «¡á ßΓá¡«ó¿Γß∩  í«½∞ΦÑ
  9295.         ¡Ñ ¡πª¡á,  ß ΓѼ τΓ«íδ ñαπú¿Ñ  »α¿¬½áñ¡δÑ  »α«úαá¼¼δ  ¼«ú½¿  ÑÑ
  9296.         ¿ß»«½∞º«óáΓ∞.  éδ  ñ«½ª¡δ  óßÑúñá «ßó«í«ªñáΓ∞ ú½«íá½∞¡πε »á¼∩Γ∞
  9297.         »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ.
  9298.               15.1.2 êß»«½∞º«óá¡¿Ñ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.      
  9299.  
  9300.              ï«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩  «í½áßΓ∞ ß«ñÑαª¿Γ ßó«í«ñ¡πε »á¼∩Γ∞,
  9301.         ¬«Γ«αá∩ ¼«ªÑΓ   íδΓ∞   «ΓóÑñѡᠠ »α¿¬½áñ¡«⌐   »α«úαá¼¼«⌐   ñ½∩
  9302.         ß«íßΓóÑ¡¡δσ  ¡πªñ.  ï«¬á½∞¡á∩  ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ¡áσ«ñ¿Γß∩ ó
  9303.  
  9304.        Windows 3.0/pg/2#3                                       = 175 =
  9305.  
  9306.         ßÑú¼Ñ¡ΓÑ ñá¡¡δσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿, ß½Ññ«óáΓѽ∞¡«, ñ«ßΓπ»¡á
  9307.         Γ«½∞¬« «»αÑñѽѡ¡«¼π   φ¬ºÑ¼»½∩απ   »α¿¬½áñ¡«⌐   »α«úαá¼¼δ.  êº
  9308.         ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ¼«ª¡« »«½πτáΓ∞ »á¼∩Γ∞ í½«¬á¼¿ ñ«
  9309.         64 è (»á¼∩Γ∞ ¼«ªÑΓ íδΓ∞ »« ºá»α«ßπ Σ¿¬ß¿α«óá¡¡«⌐,  »ÑαѼÑΘáѼ«⌐
  9310.         ¿½¿ ßíαáßδóáѼ«⌐).
  9311.  
  9312.              Åਪ½áñ¡á∩ »α«úαἼᠡѠ »«½πτáÑΓ  ½«¬á½∞¡«⌐  ñ¿¡á¼¿τÑ߬«⌐
  9313.         «í½áßΓ¿ áóΓ«¼áΓ¿τÑ߬¿.  àÑ  ¡Ñ«íσ«ñ¿¼«  «»αÑñѽ¿Γ∞  ñ½∩  ñá¡¡«⌐
  9314.         »α«úαá¼¼δ, ¿ß»«½∞ºπ∩  «»ÑαáΓ«α  HEAPSIZE  ó  Σá⌐½Ñ  «»αÑñѽѡ¿∩
  9315.         ¼«ñπ½∩.  ¥Γ«Γ «»ÑαáΓ«α πßΓá¡áó½¿óáÑΓ  »Ñαó«¡áτá½∞¡δ⌐  αẼÑα  ó
  9316.         íá⌐Γáσ  ½«¬á½∞¡«⌐  ñ¿¡á¼¿τÑ߬«⌐  «í½áßΓ¿.  (Ä»¿ßá¡¿Ñ «»ÑαáΓ«α«ó
  9317.         Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ óδ ¡á⌐ñÑΓÑ ó  æ»αáó«τ¡«¼  απ¬«ó«ñßΓóÑ,
  9318.         Γ«¼  2).  àß½¿ φΓá «í½áßΓ∞ αáß»«½«ªÑ¡á ó Σ¿¬ß¿α«óá¡¡«¼ ßÑú¼Ñ¡ΓÑ
  9319.         ñá¡¡δσ,  ¼«ª¡« «Γó«ñ¿Γ∞ »á¼∩Γ∞ ¡Ñ ßóδΦÑ ºáñá¡¡«ú«  ó  «»ÑαáΓ«αÑ
  9320.         αẼÑαá.  àß½¿  φΓá «í½áßΓ∞ αáß»«½«ªÑ¡á ó »ÑαѼÑΘáѼ«¼ ßÑú¼Ñ¡ΓÑ
  9321.         ñá¡¡δσ,  ¼«ª¡« «Γó«ñ¿Γ∞ »á¼∩Γ∞ ßóÑασ ºá∩ó½Ñ¡¡«ú« αẼÑαá, ¡« ñ«
  9322.         64   è   (»«ß¬«½∞¬π  Windows  áóΓ«¼áΓ¿τÑ߬¿  «Γó«ñ¿Γ  ½«¬á½∞¡«⌐
  9323.         ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ∞ ñ« ΓÑσ »«α,  »«¬á ßÑú¼Ñ¡Γ ñá¡¡δσ ¡Ñ
  9324.         ñ«ßΓ¿ú¡ÑΓ  64  è).  Äñ¡á¬«,  ¡áñ«  »«¼¡¿Γ∞,  τΓ«  ó φΓ«¼ ß½πτáÑ
  9325.         Windows ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ ßÑú¼Ñ¡Γ ñá¡¡δσ,  ¿ ñ½¿¡¡δÑ  π¬áºáΓѽ¿
  9326.         ¡á ½«¬á½∞¡πε »á¼∩Γ∞ ¼«úπΓ ßΓáΓ∞ ¡Ñ»αáó¿½∞¡δ¼¿.
  9327.  
  9328.              îá¬ß¿¼á½∞¡δ⌐ αẼÑα ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿  »á¼∩Γ¿
  9329.         ºáó¿ß¿Γ «Γ   αẼÑαá   ßΓѬᠠ»α«úαá¼¼δ,  á  ΓᬪѠ «Γ  αẼÑαá
  9330.         ßΓáΓ¿τÑ߬¿σ ¿ ú½«íá½∞¡δσ ñá¡¡δσ. ï«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞
  9331.         αáºñѽ∩ÑΓ  ßÑú¼Ñ¡Γ  ñá¡¡δσ  ß« ßΓѬ«¼ ¿ π¬áºá¡¡δ¼¿ ñá¡¡δ¼¿,  ¡«
  9332.         »«ß¬«½∞¬π ßÑú¼Ñ¡Γ ñá¡¡δσ  ¡Ñ  ¼«ªÑΓ  íδΓ∞  í«½∞ΦÑ,  τѼ  64  è,
  9333.         ½«¬á½∞¡á∩  ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ¼«ªÑΓ íδΓ∞ ¡Ñ í«½∞ΦÑ,  τѼ 64 è
  9334.         ¼¿¡πß αẼÑα ßΓѬᠿ αẼÑα ú½«íá½∞¡δσ  ¿  ßΓáΓ¿τÑ߬¿σ  ñá¡¡δσ.
  9335.         ÉẼÑα ßΓѬᠠ »α¿¬½áñ¡«⌐   »α«úαá¼¼δ  «»αÑñѽ∩ÑΓß∩  «»ÑαáΓ«α«¼
  9336.         STACKSIZE, ºáñáóáÑ¼δ¼ ó  Σá⌐½Ñ  «»αÑñѽѡ¿∩  ¼«ñπ½∩.  (Ä»¿ßá¡¿Ñ
  9337.         «»ÑαáΓ«α«ó  Σá⌐½á  «»αÑñѽѡ¿∩  ¼«ñπ½∩  óδ ¡á⌐ñÑΓÑ ó æ»αáó«τ¡«¼
  9338.         απ¬«ó«ñßΓóÑ, Γ«¼ 2).  ÉẼÑα ú½«íá½∞¡δσ  ¿  ßΓáΓ¿τÑ߬¿σ  ñá¡¡δσ
  9339.         ºáó¿ß¿Γ «Γ Γ«ú«,  ß¬«½∞¬« ó »α«úαἼѠ«íΩ∩ó½Ñ¡« ßΓ᫬,  á ΓᬪÑ
  9340.         ú½«íá½∞¡δσ ¿ ßΓáΓ¿τÑ߬¿σ »ÑαѼѡ¡δσ.  Windows «Γó«ñ¿Γ »«ñ  ßΓѬ
  9341.         ¡Ñ ¼Ñ¡∞ΦÑ  5è.  àß½¿ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ π¬áºá¡á ¼Ñ¡∞Φá∩
  9342.         óѽ¿τ¿¡á, Windows óßÑ αáó¡« π¬áªÑΓ 5è.
  9343.  
  9344.              ï«¬á½∞¡πε »á¼∩Γ∞   ¼«ª¡«   «ΓóÑßΓ¿   ß   »«¼«Θ∞ε   Σπ¡¬µ¿¿
  9345.         LocalAlloc.   öπ¡¬µ¿∩   «Γó«ñ¿Γ   í½«¬   »á¼∩Γ¿   ó   ½«¬á½∞¡«⌐
  9346.         ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ¿ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α »á¼∩Γ¿.  ï«¬á½∞¡δ⌐
  9347.         í½«¬  »á¼∩Γ¿  í½«¬¿απÑΓß∩  ß  »«¼«Θ∞ε  Σπ¡¬µ¿¿  LocalLock.  Ä¡á
  9348.         ó«ºóαáΘáÑΓ 16-í¿Γ«ó«Ñ  ß¼ÑΘÑ¡¿Ñ  ¡á »Ñαóδ⌐ íá⌐Γ ó í½«¬Ñ »á¼∩Γ¿.
  9349.         æ¼ÑΘÑ¡¿Ñ íÑαÑΓß∩ «Γ¡«ß¿Γѽ∞¡« ¡áτá½á ßÑú¼Ñ¡Γá ñá¡¡δσ.  é ñá¡¡«¼
  9350.         »α¿¼ÑαÑ Σπ¡¬µ¿∩   LocalAlloc   «Γó«ñ¿Γ  256  íá⌐Γ  »ÑαѼÑΘáѼ«⌐
  9351.         »á¼∩Γ¿,  á Σπ¡¬µ¿∩ LocalLock í½«¬¿απÑΓ Ñú«,  ΓᬠτΓ« »ÑαóδÑ 256
  9352.         íá⌐Γ ¼«úπΓ íδΓ∞ πßΓá¡«ó½Ñ¡δ ó º¡áτÑ¡¿Ñ 0xFF:
  9353.  
  9354.              HANDLE hMem;
  9355.              PSTR pMem;
  9356.              int i;
  9357.              if ((hMem = LocalAlloc(LMEM_MOVEABLE, 256)) != NULL) {
  9358.                  if (pMem = LocalLock(hMem)) != NULL) {
  9359.  
  9360.        Windows 3.0/pg/2#3                                       = 176 =
  9361.  
  9362.                      for ( i = 0; i < 256; i++)
  9363.                          pMem[1] = 0xFF;
  9364.                      LocalUnlock(hMem);
  9365.                  }
  9366.              }
  9367.  
  9368.              é φΓ«¼    »α¿¼ÑαÑ    »α¿¬½áñ¡á∩   »α«úαἼᠠ αáºí½«¬¿απÑΓ
  9369.         ñÑß¬α¿»Γ«α »á¼∩Γ¿,  ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε  LocalUnlock,  ßαáºπ  ªÑ
  9370.         »«ß½Ñ ñ«ßΓπ»á ¬ í½«¬π »á¼∩Γ¿. Åα¿ í½«¬¿α«óá¡¿¿ »ÑαѼÑΘáѼ«⌐ ¿½¿
  9371.         ßíαáßδóáѼ«⌐ »á¼∩Γ¿  Windows  úáαá¡Γ¿απÑΓ,  τΓ«  í½«¬  «ßΓáÑΓß∩
  9372.         Σ¿¬ß¿α«óá¡¡δ¼  ó »á¼∩Γ¿ ñ« αáºí½«¬¿α«óá¡¿∩.  ¥Γ« «º¡áτáÑΓ,  τΓ«
  9373.         »«¬á »á¼∩Γ∞ ºáí½«¬¿α«óá¡á,  áñαÑß «ßΓáÑΓß∩ ¬«ααÑ¬Γ¡δ¼.  æ½ÑñπÑΓ
  9374.         πτÑßΓ∞,  τΓ« »α¿ Γᬫ¼ ß»«ß«íÑ ¡á½áúáεΓß∩ «úαá¡¿τÑ¡¿∩ ¡á ½πτΦÑÑ
  9375.         ¿ß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó ß½πτáÑ ñαπú¿σ ºá»α«ß«ó ¡á ÑÑ  óδñѽѡ¿Ñ.
  9376.         àß½¿  ¡Ñ«íσ«ñ¿¼«  íδΓ∞  πóÑαÑ¡¡δ¼,  τΓ«  ½«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩
  9377.         «í½áßΓ∞  »á¼∩Γ¿  íπñÑΓ  φΣΣÑ¬Γ¿ó¡«  ¿ß»«½∞º«óáΓ∞ß∩,  ¡Ñ   ¡πª¡«
  9378.         ºáíδóáΓ∞ αáºí½«¬¿α«óáΓ∞ »á¼∩Γ∞ »«ß½Ñ ÑÑ ¿ß»«½∞º«óá¡¿∩.
  9379.  
  9380.              öπ¡¬µ¿∩ LocalAlloc ó«ºóαáΘáÑΓ NULL,  Ñß½¿ ºá»α«ß ¡á »á¼∩Γ∞
  9381.         ¡Ñ  óδ»«½¡Ñ¡.  ìÑ«íσ«ñ¿¼«  óßÑúñá  ¬«¡Γα«½¿α«óáΓ∞  ó«ºóαáΘáѼ«Ñ
  9382.         º¡áτÑ¡¿Ñ  ñ½∩  πóÑαÑ¡¡«ßΓ¿  ó  Γ«¼,  τΓ«  ¬«ααÑ¬Γ¡δ⌐ ñÑß¬α¿»Γ«α
  9383.         ßπΘÑßΓóπÑΓ.  Åα¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¼«ª¡« »α«óÑα¿Γ∞,  ß¬«½∞¬« »á¼∩Γ¿
  9384.         «ßΓὫß∞ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐  «í½áßΓ¿,  ¿ß»«½∞ºπ∩  Σπ¡¬µ¿ε
  9385.         LocalCompact. ¥Γá  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  τ¿ß½« íá⌐Γ ó ¡á¿í«½∞ΦѼ
  9386.         ¡Ñ»αÑαδó¡«¼ ßó«í«ñ¡«¼ í½«¬Ñ »á¼∩Γ¿.
  9387.  
  9388.              ìÑ«íσ«ñ¿¼« ΓᬪѠ »α«óÑα¿Γ∞  áñαÑß,  ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐
  9389.         LocalLock.  ¥Γá  Σπ¡¬µ¿∩  ó«ºóαáΘáÑΓ  ¡π½Ñó«⌐  π¬áºáΓѽ∞,  Ñß½¿
  9390.         ñÑß¬α¿»Γ«α   »á¼∩Γ¿  ¡Ññ«»πßΓ¿¼  ¿½¿  ß«ñÑন¼«Ñ  í½«¬á  »á¼∩Γ¿
  9391.         ßíα«ΦÑ¡«.
  9392.                              15.1.3  Éáí«Γá ß« ßíαáßδóáѼ«⌐ »á¼∩Γ∞ε.           
  9393.  
  9394.              ü½«¬ ßíαáßδóáѼ«⌐   »á¼∩Γ¿   ß«ºñáÑΓß∩   ß   «ñ¡«óαѼѡ¡δ¼
  9395.         ¿ß»«½∞º«ó᡿Ѽ    ñóπσ    »áαá¼ÑΓα«ó   -   GMEM_DISCARDABLE   ¿
  9396.         GMEM_MOVEABLE. ¥Γ«Γ í½«¬ íπñÑΓ »ÑαѼÑΘÑ¡ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿
  9397.         ñ½∩ «ßó«í«ªñÑ¡¿∩ ¼ÑßΓá »«ñ ñαπú¿Ñ ºá»α«ßδ »á¼∩Γ¿ ¿½¿,  Ñß½¿ ¡ÑΓ
  9398.         ñ«ßΓáΓ«τ¡«ú« «íΩѼᠻá¼∩Γ¿  ñ½∩  πñ«ó½ÑΓó«αÑ¡¿∩  ºá»α«ßá,  í½«¬
  9399.         »á¼∩Γ¿  íπñÑΓ  ßíα«ΦÑ¡.  é  »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »α«¿ßσ«ñ¿Γ
  9400.         óδñѽѡ¿Ñ ßíαáßδóáѼ«ú« í½«¬á ¿º ú½«íá½∞¡«⌐ »á¼∩Γ¿:
  9401.  
  9402.           hMem=GlobalAlloc(GMEM_MOVEABLE | GMEM_DISCARDABLE, 4096L);
  9403.  
  9404.              Windows ßíαáßδóáÑΓ  í½«¬  »á¼∩Γ¿  »«ßαÑñßΓó«¼   »«óΓ«α¡«ú«
  9405.         óδñѽѡ¿∩ Ñú« ß ¡«óδ¼ αẼÑα«¼ ó ¡π½∞  íá⌐Γ.  æ«ñÑন¼«Ñ  í½«¬á
  9406.         ΓÑα∩ÑΓß∩,  ¡« Ñú« ñÑß¬α¿»Γ«α «ßΓáÑΓß∩ ¬«ααÑ¬Γ¡δ¼. Äñ¡á¬«, ½εíá∩
  9407.         »«»δΓ¬á ºáí½«¬¿α«óáΓ∞ ñÑß¬α¿»Γ«α  ¿  »«½πτ¿Γ∞  ñ«ßΓπ»  ¬  í½«¬π
  9408.         íπñÑΓ ¡Ñπñáτ¡«⌐.
  9409.  
  9410.              Windows «»αÑñѽ∩ÑΓ,  ¬á¬«⌐ ¿º í½«¬«ó  »á¼∩Γ¿  ßíα«ß¿Γ∞,  ß
  9411.         »«¼«Θ∞ε  á½ú«α¿Γ¼á  "»«ß½Ññ¡¿⌐  ¡á¿¼Ñ¡ÑÑ  ¿ß»«½∞ºπѼδ⌐"  (LRU).
  9412.         ü½«¬¿ »á¼∩Γ¿ íπñπΓ ßíαáßδóáΓ∞ß∩  ñ«  ΓÑσ  »«α,  »«¬á  ¡Ñ  íπñÑΓ
  9413.         ñ«ßΓáΓ«τ¡« ¼ÑßΓá   ñ½∩   πñ«ó½ÑΓó«αÑ¡¿∩  ºá»α«ßá  ¡á  óδñѽѡ¿Ñ
  9414.  
  9415.        Windows 3.0/pg/2#3                                       = 177 =
  9416.  
  9417.         »á¼∩Γ¿.  é  «íΘѼ,  Ñß½¿  ó  ΓÑτÑ¡¿Ñ   ¡Ñ¬«Γ«α«ú«   óαѼѡ¿   ¬
  9418.         ßíαáßδóáѼ«¼π   í½«¬π  »á¼∩Γ¿  ¡Ñ  í佫  ñ«ßΓπ»á,  «¡  ∩ó½∩ÑΓß∩
  9419.         ¬á¡ñ¿ñáΓ«¼ ¡á ßíαáßδóá¡¿Ñ.  çáí½«¬¿α«óá¡¡δ⌐ í½«¬ ¡Ñ ¼«ªÑΓ  íδΓ∞
  9420.         ßíα«ΦÑ¡.
  9421.  
  9422.              î«ª¡« ßíαáßδóáΓ∞    ßó«¿    ß«íßΓóÑ¡¡δÑ    í½«¬¿   »á¼∩Γ¿,
  9423.         ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GlobalDiscard.  ¥Γá Σπ¡¬µ¿∩ «ßó«í«ªñáÑΓ í½«¬,
  9424.         ¡« ß«σαá¡∩ÑΓ ñÑß¬α¿»Γ«α  »á¼∩Γ¿.  î«ª¡«  ΓᬪѠ ßíα«ß¿Γ∞  í½«¬¿
  9425.         »á¼∩Γ¿ ñαπú¿σ    »α¿¬½áñ¡δσ    »α«úαá¼¼,    ¿ß»«½∞ºπ∩   Σπ¡¬µ¿ε
  9426.         GlobalCompact. ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ ¿ ßíαáßδóáÑΓ í½«¬¿ »á¼∩Γ¿
  9427.         ñ«  ΓÑσ  »«α,  »«¬á ¡Ñ íπñÑΓ ñ«ßΓπ»Ñ¡ π¬áºá¡¡δ⌐ ¿½¿ ¼á¬ß¿¼á½∞¡«
  9428.         ó«º¼«ª¡δ⌐  «íΩѼ  »á¼∩Γ¿.  Äñ¿¡  ¿º   ß»«ß«í«ó   ßíα«ß¿Γ∞   óßÑ
  9429.         ßíαáßδóáѼδÑ í½«¬¿ »á¼∩Γ¿ - ºáñáΓ∞ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá -1. ¥Γ«
  9430.         ºá»α«ß ¡á óßε »á¼∩Γ∞.  ò«Γ∩ ºá»α«ß ¡Ñ  íπñÑΓ  πñ«ó½ÑΓó«αÑ¡,  «¡
  9431.         «ßó«í«ñ¿Γ  óßε  ßíαáßδóáѼπε  »á¼∩Γ∞  ¿  ßΣ«α¼¿απÑΓ ¼á¬ß¿¼á½∞¡«
  9432.         ó«º¼«ª¡δ⌐ í½«¬ ßó«í«ñ¡«⌐ »á¼∩Γ¿.
  9433.  
  9434.              Å«ß¬«½∞¬π ñÑß¬α¿»Γ«α  ßíαáßδóáѼ«ú«  í½«¬á »á¼∩Γ¿ «ßΓáÑΓß∩
  9435.         ¬«ααÑ¬Γ¡δ¼, ¼«ª¡«   »«½πτ¿Γ∞   ¿¡Σ«α¼áµ¿ε  «  í½«¬Ñ,  ¿ß»«½∞ºπ∩
  9436.         Σπ¡¬µ¿ε GlobalFlags.  ¥Γ« »«½Ñº¡« Γ«úñá,  ¬«úñá ¡áñ« »α«óÑα¿Γ∞,
  9437.         τΓ«   í½«¬   ñÑ⌐ßΓó¿Γѽ∞¡«  íδ½  ßíα«ΦÑ¡.  öπ¡¬µ¿∩  GlobalFlags
  9438.         πßΓá¡áó½¿óáÑΓ ó ó«ºóαáΘáѼ«¼ º¡áτÑ¡¿¿ í¿Γ GMEM_DISCARDED,  Ñß½¿
  9439.         π¬áºá¡¡δ⌐ í½«¬ »á¼∩Γ¿ ßíα«ΦÑ¡. æ½Ññ«óáΓѽ∞¡«, Ñß½¿ íδ½á ßñѽá¡á
  9440.         »«»δΓ¬á  ºáí½«¬¿α«óáΓ∞  ßíαáßδóáѼδ⌐  í½«¬  ¿  «¡á  ºá¬«¡τ¿½áß∞
  9441.         ¡Ñπñáτ¡«, ¼«ª¡«  »α«¬«¡Γα«½¿α«óáΓ∞  ß«ßΓ«∩¡¿Ñ í½«¬á,  ¿ß»«½∞ºπ∩
  9442.         GlobalFlags.
  9443.  
  9444.              èá¬ Γ«½∞¬«  ßíαáßδóáѼδ⌐ í½«¬ íδ½ ßíα«ΦÑ¡,  Ñú« ß«ñÑন¼«Ñ
  9445.         ΓÑα∩ÑΓß∩.  àß½¿  ¡Ñ«íσ«ñ¿¼«  ¿ß»«½∞º«óáΓ∞  í½«¬  ß¡«óá,   ¡πª¡«
  9446.         »«óΓ«α¡«  «ΓóÑßΓ¿  ñ½∩  ¡Ñú«  ¼ÑßΓ«  ß««ΓóÑΓßΓóπεΘÑú« αẼÑαá ¿
  9447.         ºá»«½¡¿Γ∞  ñá¡¡δ¼¿,  ¬«Γ«αδÑ  «¡  ß«ñÑαªá½  »αѪñÑ.   Å«óΓ«α¡«Ñ
  9448.         óδñѽѡ¿Ñ    »á¼∩Γ¿    «ßπΘÑßΓó½∩ÑΓß∩    ß    »«¼«Θ∞ε   Σπ¡¬µ¿¿
  9449.         GlobalReAlloc. é  ñá¡¡«¼ »α¿¼ÑαÑ ¬«¡Γα«½¿απÑΓß∩ ß«ßΓ«∩¡¿Ñ í½«¬á
  9450.         ¿ ºáΓѼ, Ñß½¿ «¡ íδ½ ßíα«ΦÑ¡, ºá»«½¡∩ÑΓß∩ ñá¡¡δ¼¿:
  9451.  
  9452.              lpMem = GlobalLock(hMem);
  9453.              if (lpMem = (LPSTR) NULL) {
  9454.                  if (GlobalFlags(hMem) & GMEM_DISCARDED) {
  9455.                      hMem = GlobalReAlloc(hMem, 4096L,
  9456.                          GMEM_MOVEABLE | GMEM_DISCARDABLE);
  9457.                      lpMem = GlobalLock(hMem);
  9458.  
  9459.                      /* ºá»«½¡Ñ¡¿Ñ ñá¡¡δ¼¿ */
  9460.  
  9461.                      GlobalUnlock(hMem);
  9462.                  }
  9463.              }
  9464.  
  9465.              î«ª¡« ßñѽáΓ∞   ßíαáßδóáѼδ⌐   «íΩÑ¬Γ   ¡ÑßíαáßδóáÑ¼δ¼   ¿
  9466.         ¡á«í«α«Γ, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GlobalReAlloc ¿  Σ½áú  GMEM_MODIFY,
  9467.         ¬á¬ »«¬áºá¡« ó »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ, ó ¬«Γ«α«¼ »ÑαѼÑΘáѼδ⌐
  9468.         í½«¬,  ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡δ⌐  »áαá¼ÑΓα«¼   hMem,   ¿º¼Ñ¡∩ÑΓß∩   ¡á
  9469.         ßíαáßδóáѼδ⌐ í½«¬.
  9470.  
  9471.        Windows 3.0/pg/2#3                                       = 178 =
  9472.  
  9473.  
  9474.            hMem = GlobalReAlloc(hMem, 4096L,
  9475.                              GMEM_MODIFY | GMEM_MOVEABLE);
  9476.  
  9477.              é ß½ÑñπεΘѼ    »α¿¼ÑαÑ    ßíαáßδóáѼδ⌐   í½«¬   ßΓá¡«ó¿Γß∩
  9478.         ¡ÑßíαáßδóáѼδ¼:
  9479.  
  9480.            hMem = GlobalReAlloc(hMem, 0, GMEM_MODIFY);
  9481.                                     15.2  êß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ«ó.             
  9482.  
  9483.              Äñ¡¿¼ ¿º ú½áó¡δσ ßó«⌐ßΓó Windows ∩ó½∩ÑΓß∩ Γ«, τΓ« «¡á ñáÑΓ
  9484.         ó«º¼«ª¡«ßΓ∞ »«½∞º«óáΓÑ½ε «ñ¡«óαѼѡ¡«  αáí«ΓáΓ∞  í«½ÑÑ,  τѼ  ß
  9485.         «ñ¡«⌐  »α¿¬½áñ¡«⌐  »α«úαá¼¼«⌐.  ¥Γ«  ¡á¬½áñδóáÑΓ ñ«»«½¡¿Γѽ∞¡δÑ
  9486.         ΓαÑí«óá¡¿∩ ¡á ¡á»¿ßá¡¿Ñ »α«úαá¼¼, αáí«ΓáεΘ¿σ ó φΓ«⌐ ßαÑñÑ. ò«Γ∩
  9487.         ¼¡«ú¿Ñ  ¬«¼»∞εΓÑαδ  ¿¼ÑεΓ  »«  ¬αá⌐¡Ñ⌐  ¼ÑαÑ 640 è »á¼∩Γ¿,  φΓá
  9488.         »á¼∩Γ∞   ßΓá¡«ó¿Γß∩   «úαá¡¿τÑ¡¡δ¼   αÑßπαß«¼,    ¬á¬    Γ«½∞¬«
  9489.         »«½∞º«óáΓѽ∞ ºáúαπº¿Γ ñ½∩ αáí«Γδ ¡Ñ߬«½∞¬« »α¿¬½áñ¡δσ »α«úαá¼¼.
  9490.         ìÑ«íσ«ñ¿¼«  ß«º¡áΓѽ∞¡«   ¿ß»«½∞º«óáΓ∞   »á¼∩Γ∞   ¿   ßΓáαáΓ∞ß∩
  9491.         ¼¿¡¿¼¿º¿α«óáΓ∞ «íΩѼ,  ºá¡¿¼áѼδ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ó ½εí«⌐
  9492.         ºáñá¡¡δ⌐ ¼«¼Ñ¡Γ.
  9493.  
  9494.              ä½∩ Γ«ú«,  τΓ«íδ  »«¼«τ∞ π»αáó½∩Γ∞ ¿ß»«½∞º«ó᡿Ѽ »á¼∩Γ¿ ó
  9495.         »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, Windows »α¿¼Ñ¡∩ÑΓ ñ½∩ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ¿
  9496.         ßÑú¼Ñ¡Γ«ó   ñá¡¡δσ   Γπ  ªÑ  ß¿ßΓѼπ  π»αáó½Ñ¡¿∩  »á¼∩Γ∞ε,  τΓ«
  9497.         ¿ß»«½∞º«óá¡á ó »α«úαἼѠñ½∩ óδñѽѡ¿∩ í½«¬«ó ú½«íá½∞¡«⌐ »á¼¿Γ¿
  9498.         ¿ ¼á¡¿»π½¿α«óá¡¿∩ ¿¼¿. Åα¿ ºá»π߬Ѡ»α¿¬½áñ¡«⌐ »α«úαá¼¼δ Windows
  9499.         «Γó«ñ¿Γ  ¼ÑßΓ«  »«ñ  ¬«ñ«óδÑ  ßÑú¼Ñ¡Γδ  ¿  ßÑú¼Ñ¡Γδ  ñá¡¡δσ   ó
  9500.         ú½«íá½∞¡«⌐  »á¼∩Γ¿,  á  ºáΓѼ ¬«»¿απÑΓ ßÑú¼Ñ¡Γδ ¿º óδ»«½¡∩Ѽ«ú«
  9501.         Σá⌐½á  ó  »á¼∩Γ∞.  ¥Γ¿  ßÑú¼Ñ¡Γδ  ¼«úπΓ  íδΓ∞   Σ¿¬ß¿α«óá¡¡δ¼¿,
  9502.         »ÑαѼÑΘáÑ¼δ¼¿ ¿  ñáªÑ  ßíαáßδóáÑ¼δ¼¿.  ìÑ«íσ«ñ¿¼« «»αÑñѽ¿Γ∞ ¿σ
  9503.         áΓα¿íπΓδ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩.
  9504.  
  9505.              î«ª¡« π¼Ñ¡∞Φ¿Γ∞ ó½¿∩¡¿Ñ  »α¿¬½áñ¡δσ  »α«úαá¼¼  ¡á  »á¼∩Γ∞,
  9506.         ¿ß»«½∞ºπ∩ »ÑαѼÑΘáѼδÑ  ¬«ñ«óδÑ  ßÑú¼Ñ¡Γδ  ¿  ßÑú¼Ñ¡Γδ  ñá¡¡δσ.
  9507.         êß»«½∞º«óá¡¿Ñ »ÑαѼÑΘáѼδσ   ßÑú¼Ñ¡Γ«ó   »«ºó«½∩ÑΓ  Windows  »«
  9508.         ¬αá⌐¡Ñ⌐ ¼ÑαÑ,  »ÑαѼÑΘáΓ∞ ßÑú¼Ñ¡Γδ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ñ½∩  Γ«ú«,
  9509.         τΓ«íδ  ó«ß»«½∞º«óáΓ∞ß∩ ßó«í«ñ¡«⌐ »á¼∩Γ∞ε,  ¬«úñá «¡á ßΓá¡«ó¿Γß∩
  9510.         ñ«ßΓπ»¡«⌐.
  9511.  
  9512.              î«ª¡« ¼¿¡¿¼¿º¿α«óáΓ∞   ó½¿∩¡¿Ñ   »α¿¬½áñ¡δσ   »α«úαá¼¼  ¡á
  9513.         »á¼∩Γ∞, ¿ß»«½∞ºπ∩  ßíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ.  àß½¿ ¬«ñ«óδ⌐
  9514.         ßÑú¼Ñ¡Γ  -  ßíαáßδóáѼδ⌐,  Γ«   Windows,   »α¿   ¡Ñ«íσ«ñ¿¼«ßΓ¿,
  9515.         ßíαáßδóáÑΓ   Ñú«  ñ½∩  πñ«ó½ÑΓó«αÑ¡¿∩  ºá»α«ß«ó  ¡á  ú½«íá½∞¡πε
  9516.         »á¼∩Γ∞.  é «Γ½¿τ¿Ñ «Γ  «íδτ¡δσ  í½«¬«ó  »á¼∩Γ¿,  ¬«Γ«αδÑ  ¼«ªÑΓ
  9517.         óδñѽ∩Γ∞   ßá¼   »«½∞º«óáΓѽ∞,  ßíαáßδóáѼδÑ  ¬«ñ«óδÑ  ßÑú¼Ñ¡Γδ
  9518.         π»αáó½∩εΓß∩ Windows  ¬«Γ«αá∩  áóΓ«¼áΓ¿τÑ߬¿  »ÑαѺáúαπªáÑΓ  ¿σ,
  9519.         Ñß½¿ »α¿¬½áñ¡á∩ »α«úαἼᠻ«»δΓáÑΓß∩ óδ»«½¡¿Γ∞ ¬«ñ, ¡áσ«ñ∩Θ¿⌐ß∩
  9520.         ó¡πΓα¿ φΓ«ú«  ßÑú¼Ñ¡Γá.  ¥Γ«  «º¡áτáÑΓ,  τΓ«  ¬«ñ«óδÑ  ßÑú¼Ñ¡Γδ
  9521.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¡áσ«ñ∩Γß∩ ó »á¼∩Γ¿ Γ«½∞¬« Γ«úñá, ¬«úñá «¡¿
  9522.         ¡Ñ«íσ«ñ¿¼δ.
  9523.  
  9524.              æíαáßδóá¡¿Ñ ßÑú¼Ñ¡Γá αáºαπΦáÑΓ Ñú« ß«ñÑন¼«Ñ.  Windows ¡Ñ
  9525.  
  9526.        Windows 3.0/pg/2#3                                       = 179 =
  9527.  
  9528.         ß«σαá¡∩ÑΓ ΓѬπΘÑÑ  ß«ñÑন¼«Ñ  ßíαáßδóáѼ«ú«  ßÑú¼Ñ¡Γá.  é¼ÑßΓ«
  9529.         φΓ«ú«  »αÑñ»«½áúáÑΓß∩,  τΓ«  ßÑú¼Ñ¡Γ  ¡Ñ  «Γ½¿τáÑΓß∩  «Γ  Γ«ú«,
  9530.         ¬«Γ«αδ⌐ íδ½ »Ñαó«¡áτá½∞¡« ºáúαπªÑ¡,  ¿,  »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿,  «¡
  9531.         íπñÑΓ ºáúαπªáΓ∞ß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿º óδ»«½¡∩Ѽ«ú« Σá⌐½á.
  9532.                             15.2.1  êß»«½∞º«óá¡¿Ñ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.           
  9533.  
  9534.              è«ñ«óδ⌐ ßÑú¼Ñ¡Γ  -  φΓ« ¡Ñ¬«Γ«α«Ñ ¬«½¿τÑßΓó« íá⌐Γ ¼áΦ¿¡¡δσ
  9535.         ¬«¼á¡ñ. è«ñ«óδ⌐ ßÑú¼Ñ¡Γ ¡Ñ ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ 64 è.
  9536.  
  9537.              é᪡«Ñ ºá¼Ñτá¡¿Ñ:  ìѽ∞º∩ σαá¡¿Γ∞  ºá»¿ßδóáѼδÑ  ñá¡¡δÑ  ó
  9538.         ¬«ñ«ó«¼  ßÑú¼Ñ¡ΓÑ.  Åα¿ »«»δΓ¬Ñ ºá»¿ß¿ ñá¡¡δσ ó ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ
  9539.         ó«º¡¿¬áÑΓ ¡ÑπßΓαá¡¿¼á∩  «Φ¿í¬á ºáΘ¿Γδ »á¼∩Γ¿ »α¿ αáí«ΓÑ Windows
  9540.         ó  ºáΘ¿ΘÑ¡¡«¼  αѪ¿¼Ñ.  Äñ¡á¬«,  Windows  »«ºó«½∩ÑΓ  σαá¡¿Γ∞  ó
  9541.         ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δÑ, »αÑñ¡áº¡áτÑ¡¡δÑ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, φΓ«
  9542.         ¼«ªÑΓ   íδΓ∞   ¡á»α¿¼Ñα   Γáí½¿µá   »ÑαÑσ«ñ«ó.   ä«»«½¡¿Γѽ∞¡πε
  9543.         ¿¡Σ«α¼áµ¿ε  «  αáí«ΓÑ  Windows ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ óδ ¡á⌐ñÑΓÑ ó
  9544.         ú½áóÑ 16, "àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
  9545.  
  9546.              èáªñá∩ ÅÅ  ¿¼ÑÑΓ,  »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ,  «ñ¿¡ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ.
  9547.         ìá»α¿¼Ñα, «»¿ßá¡¡δÑ  ó  »αÑñδñπΘ¿σ  αáºñѽáσ  »α¿¼Ñαδ  »α«úαá¼¼
  9548.         ¿¼ÑεΓ Γ«½∞¬«   «ñ¿¡  ¬«ñ«óδ⌐  ßÑú¼Ñ¡Γ.  Æá¬ªÑ  ¼«ª¡«  ß«ºñáóáΓ∞
  9549.         »α¿¬½áñ¡δÑ »α«úαá¼¼δ,   ¬«Γ«αδÑ   ¿¼ÑεΓ    ¡Ñ߬«½∞¬«    ¬«ñ«óδσ
  9550.         ßÑú¼Ñ¡Γ«ó.  é  ßἫ¼  ñѽÑ,  í«½∞Φ¿¡ßΓó«  »α¿¬½áñ¡δσ  »α«úαá¼¼,
  9551.         αáí«ΓáεΘ¿σ ó ßαÑñÑ Windows,  ¿¼ÑεΓ ¡Ñ߬«½∞¬« ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
  9552.         æÑú¼Ñ¡Γ¿α«óá¡¿Ñ  »«ºó«½∩ÑΓ  π¼Ñ¡∞Φ¿Γ∞  αẼÑα  ½εí«ú« ºáñá¡¡«ú«
  9553.         ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá α«ó¡« ñ«  Γᬫú«  τ¿ß½á  ¿¡ßΓαπ¬µ¿⌐,  ¬«Γ«αδÑ
  9554.         ¡Ñ«íσ«ñ¿¼δ  ñ½∩  óδ»«½¡Ñ¡¿∩ «»αÑñѽѡ¡«⌐ ºáñáτ¿.  àß½¿ »α¿ φΓ«¼
  9555.         ßÑú¼Ñ¡Γδ  ¼«úπΓ  íδΓ∞  ßíαáßδóáÑ¼δ¼¿,  φΓ«  º¡áτ¿Γѽ∞¡«  ß¡¿º¿Γ
  9556.         ΓαÑí«óá¡¿∩ ¬ »á¼∩Γ¿.
  9557.  
  9558.              Åα¿ ¿ß»«½∞º«óá¡¿¿   ßαÑñ¡¿σ  ¿½¿  í«½∞Φ¿σ  ¼«ñѽÑ⌐  »á¼∩Γ¿
  9559.         ß«ºñáεΓß∩ »α¿¬½áñ¡δÑ »α«úαá¼¼δ,  ¿ß»«½∞ºπεΘ¿Ñ ¡Ñ߬«½∞¬« ¬«ñ«óδσ
  9560.         ßÑú¼Ñ¡Γ«ó.  Äíδτ¡« «¡¿ ¿¼ÑεΓ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« ¿ßσ«ñ¡δσ Σá⌐½«ó
  9561.         ñ½∩ ¬áªñ«ú« ßÑú¼Ñ¡Γá. ìÑ«íσ«ñ¿¼« «Γñѽ∞¡« ß¬«¼»¿½¿α«óáΓ∞ ¬áªñδ⌐
  9562.         ¿ßσ«ñ¡δ⌐ Σá⌐½  ¿  ∩ó¡«  ºáñáΓ∞  ¿¼∩  ßÑú¼Ñ¡Γá,  ¬«Γ«α«¼π  íπñÑΓ
  9563.         »α¿¡áñ½ÑªáΓ∞    ß¬«¼»¿½¿α«óá¡¡δ⌐    ¬«ñ.    çáΓѼ    ¡Ñ«íσ«ñ¿¼«
  9564.         ß¬«¼»«¡«óáΓ∞ »α¿¬½áñ¡πε   »α«úαá¼¼π,   »«¿¼Ñ¡«óáó   ßÑú¼Ñ¡Γδ  ¿
  9565.         «»αÑñѽ¿ó ¿σ áΓα¿íπΓδ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩.
  9566.  
  9567.              ä½∩ «»αÑñѽѡ¿∩ áΓα¿íπΓ«ó  ßÑú¼Ñ¡Γá  ¿ß»«½∞ºπ⌐ΓÑ  «»ÑαáΓ«α
  9568.         SEGMENTS ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ
  9569.         »«¬áºá¡δ «»αÑñѽѡ¿∩ ΓαÑσ ßÑú¼Ñ¡Γ«ó:
  9570.  
  9571.              SEGMENTS
  9572.                       PAINT_TEXT MOVEABLE DISCARDABLE
  9573.                       INIT_TEXT MOVEABLE DISCARDABLE
  9574.                       WNDPROC_TEXT MOVEABLE DISCARDABLE
  9575.  
  9576.              î«ª¡« ΓᬪѠ¿ß»«½∞º«óáΓ∞ «»ÑαáΓ«α CODE ó Σá⌐½Ñ «»αÑñѽѡ¿∩
  9577.         ¼«ñπ½∩ ñ½∩ «»αÑñѽѡ¿∩  áΓα¿íπΓ«ó  óßÑσ  ¬«ñ«óδσ  ßÑú¼Ñ¡Γ«ó  »«
  9578.         π¼«½τá¡¿ε. Ä»ÑαáΓ«α  CODE  «»αÑñѽ∩ÑΓ ΓᬪѠáΓα¿íπΓδ ßÑú¼Ñ¡Γ«ó,
  9579.         ¬«Γ«αδÑ ¡Ñ  í뫨  ∩ó¡«  π¬áºá¡δ   ó   «»ÑαáΓ«αÑ   SEGMENTS.   é
  9580.  
  9581.        Windows 3.0/pg/2#3                                       = 180 =
  9582.  
  9583.         »α¿óÑñÑ¡¡«¼   ¡¿ªÑ   »α¿¼ÑαÑ   »«¬áºá¡«,  ¬á¬  ßñѽáΓ∞  óßÑ  ¡Ñ
  9584.         «»αÑñѽѡ¡δÑ ó «»ÑαáΓ«αÑ SEGMENTS ßÑú¼Ñ¡Γδ ßíαáßδóáÑ¼δ¼¿:
  9585.  
  9586.              CODE MOVEABLE DISCARDABLE
  9587.  
  9588.              Åα¿ ¿ß»«½∞º«óá¡¿¿  ó  »α¿¬½áñ¡«⌐  »α«úαἼѠ  ßíαáßδóáѼδσ
  9589.         ¬«ñ«óδσ  ßÑú¼Ñ¡Γ«ó  ¡Ñ«íσ«ñ¿¼« »α¿óÑßΓ¿ ó ß««ΓóÑΓßΓó¿Ñ ßó«⌐ßΓó«
  9590.         ßíαáßδóáѼ«ßΓ¿ ß τáßëë⌐ ñ«ßΓπ»á ¬ ßÑú¼Ñ¡Γπ. ìá»α¿¼Ñα, ¡Ñ½∞º∩,
  9591.         ó¿ñ¿¼«,   ñѽáΓ∞   ßíαáßδóáÑ¼δ¼  ßÑú¼Ñ¡Γ,  ß«ñÑαªáΘ¿⌐  «ß¡«ó¡πε
  9592.         Σπ¡¬µ¿ε «¬¡á,  »«ß¬«½∞¬π «¡á τáßΓ« óδºδóáÑΓß∩  Windows.  Æ.  ¬.
  9593.         ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ ñ«½ªÑ¡,  »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿,  ºáúαπªáΓ∞ß∩ ß
  9594.         ñ¿ß¬á,  φ¬«¡«¼¿∩  »á¼∩Γ¿  «Γ   ßíαáßδóáѼδσ   ßÑú¼Ñ¡Γ«ó   ¼«ªÑΓ
  9595.         »ÑαÑóÑΦ¿óáΓ∞ß∩ »«ΓÑα∩¼¿ «Γ ¼¡«ú«τ¿ß½Ñ¡¡δσ ºáúαπº«¬ ß ñ¿ß¬á.
  9596.  
  9597.              Åα¿¼Ñτá¡¿Ñ: é  í¿í½¿«ΓѬѠóßÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ ñ«½ª¡δ íδΓ∞
  9598.         »ÑαѼÑΘáÑ¼δ¼¿ ¿ ßíαáßδóáÑ¼δ¼¿.  àß½¿ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩
  9599.         í¿í½¿«ΓѬ¿ óδ    π¬áªÑΓÑ,    τΓ«    ßÑú¼Ñ¡Γ   ∩ó½∩ÑΓß∩   Γ«½∞¬«
  9600.         »ÑαѼÑΘáѼδ¼, Windows óßÑ αáó¡« ßñѽáÑΓ Ñú« ßíαáßδóáѼδ¼.
  9601.                                         15.2.2  æÑú¼Ñ¡Γδ ñá¡¡δσ.               
  9602.  
  9603.              èáªñá∩ »α¿¬½áñ¡á∩ »α«úαἼᠿ¼ÑÑΓ  ßÑú¼Ñ¡Γ  DATA.  æÑú¼Ñ¡Γ
  9604.         DATA ß«ñÑαª¿Γ  ßΓѬ  »α«úαá¼¼δ,  ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞
  9605.         »á¼∩Γ¿,  á ΓᬪѠßΓáΓ¿τÑ߬¿Ñ ¿ ú½«íá½∞¡δÑ ñá¡¡δÑ. èᬠ¿ ¬«ñ«óδ⌐
  9606.         ßÑú¼Ñ¡Γ, ßÑú¼Ñ¡Γ DATA ¡Ñ ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ 64 è.
  9607.  
  9608.              æÑú¼Ñ¡Γ DATA   ¼«ªÑΓ   íδΓ∞   Γ«½∞¬«   Σ¿¬ß¿α«óá¡¡δ¼   ¿½¿
  9609.         »ÑαѼÑΘáѼδ¼, ¡«  ¡Ñ  ßíαáßδóáѼδ¼.   àß½¿   ßÑú¼Ñ¡Γ   DATA   -
  9610.         »ÑαѼÑΘáѼδ⌐,   Windows   áóΓ«¼áΓ¿τÑ߬¿  í½«¬¿απÑΓ  Ñú«,  ¬«úñá
  9611.         »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.  é  »α«Γ¿ó¡«¼  ß½πτáÑ
  9612.         »ÑαѼÑΘáѼδ⌐ ßÑú¼Ñ¡Γ DATA ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ß∩,  Ñß½¿ »α¿¬½áñ¡á∩
  9613.         »α«úαἼᠫΓóѽá ú½«íá½∞¡πε »á¼∩Γ∞ ¿½¿ »δΓáÑΓß∩ óδñѽ¿Γ∞ í«½∞ΦÑ
  9614.         »á¼∩Γ¿,  τѼ ¿¼ÑÑΓß∩ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿.  Å« φΓ«⌐
  9615.         »α¿τ¿¡Ñ ó᪡« ¡Ñ ß«σαá¡∩Γ∞  ñ½¿¡¡δÑ  π¬áºáΓѽ¿  ¡á  »ÑαѼѡ¡δÑ,
  9616.         ¡áσ«ñ∩Θ¿Ñß∩ ó ßÑú¼Ñ¡ΓÑ DATA.
  9617.  
  9618.              î«ª¡« «»αÑñѽ¿Γ∞   áΓα¿íπΓδ   ßÑú¼Ñ¡Γá   DATA,   ¿ß»«½∞ºπ∩
  9619.         «»ÑαáΓ«α DATA ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩. ÇΓα¿íπΓδ »« π¼«½τá¡¿ε
  9620.         -   »ÑαѼÑΘáѼδ⌐   ¿  ¼¡«ª¿¼δ⌐.  ÇΓα¿íπΓ  ¼¡«ª¿¼«ßΓ¿  »«íπªñáÑΓ
  9621.         Windows ß«ºñáóáΓ∞ ¬«»¿ε ßÑú¼Ñ¡Γá ñá¡¡δσ ñ½∩ ¬áªñ«ú«  φ¬ºÑ¼»½∩αá
  9622.         »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.  ¥Γ«  «º¡áτáÑΓ,  τΓ«  ß«ñÑন¼«Ñ ßÑú¼Ñ¡Γá
  9623.         DATA π¡¿¬á½∞¡« ñ½∩ ¬áªñ«ú« φ¬ºÑ¼»½∩αá »α«úαá¼¼δ.
  9624.  
  9625.              Åਪ½áñ¡δÑ »α«úαá¼¼δ í«½∞Φ«⌐  ¼«ñѽ¿  »á¼∩Γ¿  ¼«úπΓ  ¿¼ÑΓ∞
  9626.         ¡Ñ߬«½∞¬« ñ«»«½¡¿Γѽ∞¡δσ  ßÑú¼Ñ¡Γ«ó  ñá¡¡δσ,  ¡«  Γ«½∞¬«   «ñ¿¡
  9627.         ßÑú¼Ñ¡Γ DATA.
  9628.  
  9629.              Ä»¿ßá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ óδ ¡á⌐ñÑΓÑ ó  æ»αáó«τ¡«¼
  9630.         απ¬«ó«ñßΓóÑ, Γ«¼ 2.
  9631.                             15.3  Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Memory.          
  9632.  
  9633.              ¥Γ«Γ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½½εßΓα¿απÑΓ, ¬á¬ ß«ºñáΓ∞
  9634.  
  9635.        Windows 3.0/pg/2#3                                       = 181 =
  9636.  
  9637.         »α¿¬½áñ¡πε »α«úαá¼¼π  Windows,  ¿ß»«½∞ºπεΘπε   ßαÑñ¡εε   ¼«ñѽ∞
  9638.         »á¼∩Γ¿, ¿ ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ ßíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ. ä½∩
  9639.         ß«ºñá¡¿∩ »α«úαá¼¼δ Memory ß¬«»¿απ⌐ΓÑ  ¿  »ÑαÑ¿¼Ñ¡π⌐ΓÑ  ¿ßσ«ñ¡δÑ
  9640.         Σá⌐½δ »α«úαá¼¼δ Generic, á ºáΓѼ ó¡Ñß¿ΓÑ ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
  9641.  
  9642.              1. Éáºñѽ¿ΓÑ ¿ßσ«ñ¡δ⌐ æ-Σá⌐½ ¡á τÑαδαÑ «Γñѽ∞¡δσ Σá⌐½á.
  9643.  
  9644.              2. î«ñ¿Σ¿µ¿απ⌐ΓÑ ó¬½ετáѼδ⌐ Σá⌐½.
  9645.  
  9646.              3. ä«íáó∞ΓÑ    «»αÑñѽѡ¿∩   ¡«óδσ   ßÑú¼Ñ¡Γ«ó   ¬   Σá⌐½π
  9647.                 «»αÑñѽѡ¿∩ ¼«ñπ½∩.
  9648.  
  9649.              4. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σá⌐½ make.
  9650.  
  9651.              5. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ß¬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
  9652.  
  9653.              ì¿ªÑ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
  9654.  
  9655.              Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
  9656.         ó  ß½ÑñπεΘ¿σ  αáºñѽáσ,  ó«º¼«ª¡«  óá¼  íπñÑΓ  πñ«í¡ÑÑ   »α«ßΓ«
  9657.         »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
  9658.                                15.3.1  Éáºñѽѡ¿Ñ ¿ßσ«ñ¡«ú« æ-Σá⌐½á.           
  9659.  
  9660.              ìÑ«íσ«ñ¿¼« αáºñѽ¿Γ∞ ¿ßσ«ñ¡δ⌐ æ-Σá⌐½  ¡á  «Γñѽ∞¡δÑ  Σá⌐½δ
  9661.         Γ.«., τΓ«íδ Σπ¡¬µ¿¿ ó¡πΓα¿ Σá⌐½á ¬«¼»¿½¿α«ó὿ß∞ ¬á¬  «Γñѽ∞¡δÑ
  9662.         ßÑú¼Ñ¡Γδ.  î«ª¡«  αáºñѽ¿Γ∞  ¿ßσ«ñ¡δ⌐  Σá⌐½ φΓ«⌐ »α«úαá¼¼δ ¡á 4
  9663.         τáßΓ¿:
  9664.  
  9665.  
  9666.        Windows 3.0/pg/2#3                                       = 182 =
  9667.  
  9668.  
  9669.         êßσ«ñ¡δ⌐ Σá⌐½      æ«ñÑন¼«Ñ
  9670.         ───────────────────────────────────────────────────────────────
  9671.         memory1.c          æ«ñÑαª¿Γ Σπ¡¬µ¿ε WinMain.  Å«ß¬«½∞¬π Windows
  9672.                            óδ»«½¡∩ÑΓ   φΓπ   Σπ¡¬µ¿ε   ñ«ó«½∞¡«  τáßΓ«,
  9673.                            ßÑú¼Ñ¡Γ,  ß«ºñá¡¡δ⌐  ñ½∩  ñá¡¡«ú«  ¿ßσ«ñ¡«ú«
  9674.                            Σá⌐½á,  ¡Ñ ßíαáßδóáѼδ⌐,  ¿ »«φΓ«¼π ¡Ñ ¼«ªÑΓ
  9675.                            ó«º¡¿¬¡πΓ∞  ß¿Γπᵿ∩,  ¬«úñá  ßÑú¼Ñ¡Γ  τáßΓ«
  9676.                            ºáúαπªáÑΓß∩   ß   ñ¿ß¬á.  Å«ß¬«½∞¬π  WinMain
  9677.                            «Γ¡«ß¿Γѽ∞¡« ¡Ñóѽ¿¬á,  σαá¡Ñ¡¿Ñ ÑÑ ó »á¼∩Γ¿
  9678.                            ßπΘÑßΓóÑ¡¡«  ¡Ñ  ó½¿∩ÑΓ  ¡á  ñ«ßΓπ»¡δ⌐ «íΩѼ
  9679.                            ú½«íá½∞¡«⌐ »á¼∩Γ¿.
  9680.  
  9681.         memory2.c
  9682.                            æ«ñÑαª¿Γ Σπ¡¬µ¿ε MemoryInit.  Å«ß¬«½∞¬π  φΓá
  9683.                            Σπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓß∩   Γ«½∞¬«   »α¿  ºá»π߬Ñ
  9684.                            »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,  ßÑú¼Ñ¡Γ, ß«ºñá¡¡δ⌐ ¿º
  9685.                            φΓ«ú« ¿ßσ«ñ¡«ú«    Σá⌐½á,     ¼«ªÑΓ     íδΓ∞
  9686.                            ßíαáßδóáѼδ¼.
  9687.  
  9688.         memory3.c          æ«ñÑαª¿Γ Σπ¡¬µ¿ε     MemoryWndProc.     ò«Γ∩
  9689.                            ßÑú¼Ñ¡Γ,  ß«ºñá¡¡δ⌐  ñ½∩   φΓ«ú«   ¿ßσ«ñ¡«ú«
  9690.                            Σá⌐½á,   ¼«ªÑΓ  íδΓ∞  ßíαáßδóáѼδ¼,  Σπ¡¬µ¿∩
  9691.                            MemoryWndProc, óÑα«∩Γ¡«, íπñÑΓ óδºδóáΓ∞ß∩ »«
  9692.                            ¬αá⌐¡Ñ⌐  ¼ÑαÑ  Γᬠ ªÑ  τáßΓ«,  ¬á¬  Σπ¡¬µ¿∩
  9693.                            WinMain.   é   φΓ«¼   ß½πτáÑ    ßÑú¼Ñ¡Γ    -
  9694.                            »ÑαѼÑΘáѼδ⌐, á ¡Ñ ßíαáßδóáѼδ⌐.
  9695.  
  9696.  
  9697.         memory4.c          æ«ñÑαª¿Γ Σπ¡¬µ¿ε   About.   Å«ß¬«½∞¬π    φΓá
  9698.                            Σπ¡¬µ¿∩   óδºδóáÑΓß∩   αÑñ¬«   (Γ«½∞¬«   »α¿
  9699.                            ¿¡ñ¿¬áµ¿¿  »á¡Ñ½¿  ñ¿á½«úá  About),  ¬«ñ«óδ⌐
  9700.                            ßÑú¼Ñ¡Γ,   ß«ºñá¡¡δ⌐   ñ½∩  φΓ«ú«  ¿ßσ«ñ¡«ú«
  9701.                            Σá⌐½á, ¼«ªÑΓ íδΓ∞ ßíαáßδóáѼδ¼.
  9702.         ───────────────────────────────────────────────────────────────
  9703.  
  9704.              é ¬áªñδ⌐ ¿ßσ«ñ¡δ⌐ Σá⌐½ ¡Ñ«íσ«ñ¿¼« ó¬½ετ¿Γ∞ Σá⌐½δ windows.h
  9705.         ¿ memory.h.
  9706.                                                                                
  9707.                    15.3.2  î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á.
  9708.  
  9709.              ìÑ«íσ«ñ¿¼« »ÑαѼÑßΓ¿Γ∞  «íΩ∩ó½Ñ¡¿Ñ »ÑαѼѡ¡«⌐ hInst ó Σá⌐½
  9710.         memory.h.  ¥Γ« ñáßΓ πóÑαÑ¡¡«ßΓ∞ ó  Γ«¼,  τΓ«  »ÑαѼѡ¡á∩  íπñÑΓ
  9711.         ñ«ßΓπ»¡á  ó«  óßÑσ  ßÑú¼Ñ¡Γáσ.  ÅÑαѼѡ¡á∩ hInst ¿ß»«½∞ºπÑΓß∩ ó
  9712.         Σπ¡¬µ¿∩σ WinMain ¿ MemoryWndProc.
  9713.                        15.3.3  ä«íáó½Ñ¡¿Ñ ¡«óδσ «»αÑñѽѡ¿⌐ ßÑú¼Ñ¡Γ«ó.         
  9714.  
  9715.              ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó ó Σá⌐½  «»¿ßá¡¿∩
  9716.         ¼«ñπ½∩ ñ½∩ «»αÑñѽѡ¿∩ áΓα¿íπΓ«ó ¬áªñ«ú« ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá. ¥Γ«
  9717.         «º¡áτáÑΓ,  τΓ« ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞ «»ÑαáΓ«α SEGMENTS ó  Σá⌐½  ¿
  9718.         π¬áºáΓ∞ ¬áªñδ⌐  ßÑú¼Ñ¡Γ »« ¿¼Ñ¡¿ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.  Å«ß½Ñ
  9719.         ¿º¼Ñ¡Ñ¡¿⌐ Σá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩ íπñÑΓ  óδú½∩ñÑΓ∞  Γá¬:
  9720.  
  9721.        Windows 3.0/pg/2#3                                       = 183 =
  9722.  
  9723.  
  9724.               NAME        Memory
  9725.  
  9726.               DESCRIPTION 'Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ'
  9727.  
  9728.               STUB 'WINSTUB.EXE'
  9729.  
  9730.         (1)   SEGMENTS
  9731.                  MEMORY_MAIN PRELOAD MOVEABLE
  9732.                  MEMORY_INIT LOADONCALL MOVEABLE DISCARDABLE
  9733.                  MEMORY_WNDPROC LOADONCALL MOVEABLE
  9734.                  MEMORY_ABOUT LOADONCALL MOVEABLE DISCARDABLE
  9735.  
  9736.         (2)   CODE MOVEABLE
  9737.  
  9738.               DATA  MOVEABLE MULTIPLE
  9739.  
  9740.               HEAPSIZE  1024
  9741.               STACKSIZE 8182
  9742.  
  9743.               EXPORTS
  9744.                    MemoryWndProc    @1
  9745.                    About            @2
  9746.  
  9747.              é φΓ«¼ Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩:
  9748.  
  9749.         1)   Ä»ÑαáΓ«α SEGMENTS «»αÑñѽ∩ÑΓ áΓα¿íπΓδ ¬áªñ«ú« ßÑú¼Ñ¡Γá:
  9750.  
  9751.              - æÑú¼Ñ¡Γ  MEMORY_MAIN  ß«ñÑαª¿Γ  WinMain.
  9752.  
  9753.              - æÑú¼Ñ¡Γ MEMORY_INIT ß«ñÑαª¿Γ Σπ¡¬µ¿ε MemoryInit.
  9754.  
  9755.              - æÑú¼Ñ¡Γ MEMORY_WNDPROC ß«ñÑαª¿Γ Σπ¡¬µ¿ε «¬¡á.
  9756.  
  9757.              - æÑú¼Ñ¡Γ MEMORY_ABOUT ß«ñÑαª¿Γ Σπ¡¬µ¿ε ñ¿á½«úá.
  9758.  
  9759.              èáªñδ⌐ ßÑú¼Ñ¡Γ   ¿¼ÑÑΓ   áΓα¿íπΓ   MOVEABLE,   á  ßÑú¼Ñ¡Γδ
  9760.              MEMORY_INIT ¿ MEMORY_ABOUT ¿¼ÑεΓ áΓα¿íπΓ DISCARDABLE.
  9761.  
  9762.              Åα¿ ºá»π߬Ѡ  »α«úαá¼¼δ   ºáúαπªáÑΓß∩    Γ«½∞¬«    ßÑú¼Ñ¡Γ
  9763.              MEMORY_MAIN.  äαπú¿Ñ  ßÑú¼Ñ¡Γδ  ¿¼ÑεΓ  áΓα¿íπΓ LOADONCALL,
  9764.              «º¡áτáεΘ¿⌐, τΓ« «¡¿ ºáúαπªáεΓß∩ »« ¡Ñ«íσ«ñ¿¼«ßΓ¿.
  9765.  
  9766.         2)   ò«Γ∩ ¬áªñδ⌐   ßÑú¼Ñ¡Γ  ∩ó¡«  «»αÑñѽѡ,  óßÑ  ªÑ  ºáñáÑΓß∩
  9767.              «»ÑαáΓ«α CODE.  ¥Γ«Γ «»ÑαáΓ«α  «»αÑñѽ∩ÑΓ  áΓα¿íπΓδ  ½εíδσ
  9768.              ñ«»«½¡¿Γѽ∞¡δσ   ßÑú¼Ñ¡Γ«ó,   ¬«Γ«αδÑ   ¬«¼»«¡«óΘ¿¬  ¼«ªÑΓ
  9769.              ñ«íáó¿Γ∞ ¬  »α¿¬½áñ¡«⌐  »α«úαá¼¼Ñ:   ¡á»α¿¼Ñα,   ßÑú¼Ñ¡Γδ,
  9770.              ß«ñÑαªáΘ¿Ñ Σπ¡¬µ¿¿  ¿ß»«½¡∩εΘÑ⌐  ß¿ßΓÑ¼δ  æ,  óδºδóáѼδÑ ó
  9771.              ¿ßσ«ñ¡δσ Σá⌐½áσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
  9772.                                     15.3.4  î«ñ¿Σ¿¬áµ¿∩ Σá⌐½á make.            
  9773.  
  9774.              ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞    Σá⌐½   make   ñ½∩   «Γñѽ∞¡«⌐
  9775.  
  9776.        Windows 3.0/pg/2#3                                       = 184 =
  9777.  
  9778.         Γαá¡ß½∩µ¿¿ ¡«óδσ ¿ßσ«ñ¡δσ æ-»α«úαá¼¼.  Å«ß¬«½∞¬π φΓá  »α«úαá¼¼á
  9779.         ß««ΓóÑΓßΓóπÑΓ ßαÑñ¡Ñ⌐ ¼«ñѽ¿,  ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ¬½ετ -AM
  9780.         »α¿ Γαá¡ß½∩µ¿¿.  ä½∩ ∩ß¡«ßΓ¿ ¡Ñ«íσ«ñ¿¼« ΓᬪѠ¿¼Ñ¡«óáΓ∞  ¬áªñδ⌐
  9781.         ßÑú¼Ñ¡Γ,  ¿ß»«½∞ºπ∩  ¬½ετ  -NT »α¿ Γαá¡ß½∩µ¿¿.
  9782.  
  9783.              ìÑ«íσ«ñ¿¼« ΓᬪѠ¿º¼Ñ¡¿Γ∞ ¬«¼á¡ñπ LINK  ñ½∩  ¿ß»«½∞º«óá¡¿∩
  9784.         í¿í½¿«ΓѬ¿  ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿ MLIBCEW.LIB ó¼ÑßΓ« í¿í½¿«ΓѬ¿
  9785.         ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿ SLIBCEW.LIB.
  9786.  
  9787.              Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿⌐ Σá⌐½ make ñ«½ªÑ¡ óδú½∩ñÑΓ∞ Γá¬:
  9788.  
  9789.              memory.res: memory.rc memory.h
  9790.                  rc -r memory.rc
  9791.  
  9792.              memory1.obj: memory1.c memory.h
  9793.                  cl -c -AM -Gsw -Zp -NT MEMORY_MAIN memory1.c
  9794.  
  9795.              memory2.obj: memory2.c memory.h
  9796.                  cl -c -AM -Gsw -Zp -NT MEMORY_INIT memory2.c
  9797.  
  9798.              memory3.obj: memory3.c memory.h
  9799.                  cl -c -AM -Gsw -Zp -NT MEMORY_WNDPROC memory3.c
  9800.  
  9801.              memory4.obj: memory4.c memory.h
  9802.                  cl -c -AM -Gsw -Zp -NT MEMORY_ABOUT memory4.c
  9803.  
  9804.              memory.exe: memory1.obj memory2.obj memory3.obj
  9805.                          memory4.obj memory.def
  9806.                  link4 memory1 memory2 memory3 memory4,memory.exe,,
  9807.                        mlibcew libw,memory.def
  9808.                  rc memory.res
  9809.  
  9810.              memory.exe: memory.res
  9811.                  rc memory.res
  9812.                                                                                
  9813.                       15.3.5  Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
  9814.  
  9815.              Å«ß½Ñ Γαá¡ß½∩µ¿¿  ¿  ¬«¼»«¡«ó¬¿ »α«úαá¼¼δ Memory ºá»πßΓ¿ΓÑ
  9816.         Windows, »α«úαá¼¼π Heapwalker (óσ«ñ¿Γ ó ß«ßΓáó SDK) ¿ »α«úαá¼¼π
  9817.         Memory. êß»«½∞ºπ⌐ΓÑ    Heapwalker   ñ½∩   »α«ß¼«Γαá   αẽ¿τ¡δσ
  9818.         ßÑú¼Ñ¡Γ«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Memory.
  9819.                                               15.4  çᬽετÑ¡¿Ñ.                
  9820.  
  9821.              é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ óδñѽ∩Γ∞ ¿ ¿ß»«½∞º«óáΓ∞ »á¼∩Γ∞
  9822.         ó ßαÑñÑ Windows.  Å«ß¬«½∞¬π Windows - φΓ« ¼¡«ú«ºáñáτ¡á∩  ßαÑñá,
  9823.         ¡Ñ«íσ«ñ¿¼«,  τΓ«íδ óáΦá »α«úαἼᠬ«ααÑ¬Γ¡« ¿ß»«½∞º«óá½á »á¼∩Γ∞
  9824.         ß«ó¼ÑßΓ¡« ß ñαπú¿¼¿ »α«úαἼἿ.
  9825.  
  9826.              èα«¼Ñ φΓ«ú«,  ó ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«,  ¬á¬ ¿ß»«½∞º«óáΓ∞  ó
  9827.         »α«úαἼѠßÑú¼Ñ¡Γδ ñá¡¡δσ ¿ ¬«ñá.
  9828.  
  9829.  
  9830.        Windows 3.0/pg/2#3                                       = 185 =
  9831.  
  9832.              ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε  «Γ¡«ß¿Γѽ∞¡« π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε
  9833.         óδ ¡á⌐ñÑΓÑ ó:
  9834.  
  9835.         Éáºñѽ               Éπ¬«ó«ñßΓó«
  9836.         ───────────────────────────────────────────────────────────────
  9837.         ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε   Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 16, "àΘÑ «í
  9838.                              π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
  9839.  
  9840.         öπ¡¬µ¿¿ π»αáó½Ñ¡¿∩   æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 4,
  9841.         »á¼∩Γ∞ε              "滿߫¬ Σπ¡¬µ¿⌐".
  9842.  
  9843.         Ä»ÑαáΓ«αδ Σá⌐½á «»-  æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2: ú½áóá 10,
  9844.         αÑñѽѡ¿∩ ¼«ñπ½∩     "Ä»ÑαáΓ«αδ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩".
  9845.  
  9846.  
  9847.