home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-09-16 | 472.1 KB | 9,847 lines |
- Äú½áó½Ñ¡¿Ñ
- Windows 3.0/pg/2#3 = 1 =
-
- â½áóá 8. ü½«¬¿ π»αáó½Ñ¡¿∩.....................................6
- 8.1 ùΓ« Γá¬«Ñ í½«¬ π»αáó½Ñ¡¿∩?................................6
- 8.2 櫺ñá¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.................................6
- 8.2.1 Ä»αÑñѽѡ¿Ñ ¬½áßßá í½«¬á π»αáó½Ñ¡¿∩.....................7
- 8.2.2 éδí«α Γ¿»á í½«¬á π»αáó½Ñ¡¿∩.............................8
- 8.2.3 Ä»αÑñѽѡ¿Ñ α«ñ¿Γѽ∞߬«ú« «¬¡á..........................9
- 8.2.4 éδí«α ¿ñÑ¡Γ¿Σ¿¬áΓ«αá í½«¬á π»αáó½Ñ¡¿∩..................10
- 8.3 êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩..........................10
- 8.3.1 Å«½πτÑ¡¿Ñ óó«ñá «Γ »«½∞º«óáΓѽ∩........................10
- 8.3.2 ÅÑαÑñáτá π»αáó½∩εΘ¿σ ß««íΘÑ¡¿⌐.........................11
- 8.3.3 èᬠßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ ñ«ßΓπ»¡δ¼ ¿½¿...............11
- 8.3.4 ÅÑαѼÑΘÑ¡¿Ñ ¿ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá í½«¬á π»αáó½Ñ¡¿∩.......12
- 8.3.5 ÉáºαπΦÑ¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩............................12
- 8.4 櫺ñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ¡Ñ¬«Γ«αδσ ¡á¿í«½ÑÑ τáßΓ«........12
- 8.4.1 êß»«½∞º«óá¡¿Ñ ¬½áó¿Φ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩..............13
- 8.4.2 êß»«½∞º«óá¡¿Ñ ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩............18
- 8.4.3 êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐ »ÑαÑτ¡Ñ⌐.........................18
- 8.4.4 è«¼í¿¡¿α«óá¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩.......................30
- 8.4.5 ÉÑñá¬Γ¿απѼδÑ í½«¬¿....................................32
- 8.4.6 æΓ᫬¿ »α«¬απΓ¬¿.......................................35
- 8.5 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl.....................38
- 8.5.1 ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½................39
- 8.5.2 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ............................39
- 8.5.3 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ CreateWindow........................39
- 8.5.4 î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.......................41
- 8.5.5 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SETFOCUS.......................41
- 8.5.6 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SIZE...........................41
- 8.5.7 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á................................42
- 8.6 çᬽετÑ¡¿Ñ...............................................42
- â½áóá 9. Åá¡Ñ½∞ ñ¿á½«úá.......................................44
- 9.1 ùΓ« Γá¬«Ñ »á¡Ñ½∞ ñ¿á½«úá.................................44
- 9.1.1 î«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá...............................45
- 9.1.2 ìѼ«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá.............................45
- 9.2 êß»«½∞º«óá¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá.............................46
- 9.2.1 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿½«úá.........................47
- 9.2.2 êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½∩σ ñ¿á½«úá......48
- 9.3 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ FileOpen.....................48
- 9.3.1 ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½................50
- 9.3.2 櫺ñá¡¿Ñ Φáí½«¡á »á¡Ñ½¿ ñ¿á½«úá Open...................50
- 9.3.3 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ............................51
- 9.3.4 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_OPEN..........................52
- 9.3.5 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ OpenDlg...............................53
- 9.3.6 ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.....................56
- 9.3.7 ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá........................58
- 9.3.8 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á................................58
- 9.4 çᬽετÑ¡¿Ñ...............................................58
- â½áóá 10. éó«ñ ¿ óδó«ñ ¿º Σá⌐½«ó..............................60
- 10.1 Åαáó¿½á αáí«Γδ ß Σá⌐½á¼¿ ó ßαÑñÑ Windows.................60
- 10.2 櫺ñá¡¿Ñ Σá⌐½«ó.........................................62
- 10.3 ÄΓ¬αδΓ¿Ñ ßπΘÑßΓóπεΘ¿σ Σá⌐½«ó............................63
- 10.4 ùΓÑ¡¿Ñ ¿ ºá»¿ß∞ Σá⌐½«ó..................................64
- 10.5 Å«óΓ«α¡«Ñ «Γ¬αδΓ¿Ñ Σá⌐½«ó...............................64
- 10.6 çá»α«ß ¿¼Ñ¡¿ Σá⌐½á......................................65
-
- Windows 3.0/pg/2#3 = 2 =
-
- 10.7 Åα«óÑα¬á ß«ßΓ«∩¡¿∩ Σá⌐½á................................65
- 10.8 Åα«ßΓ«⌐ αÑñá¬Γ«α Σá⌐½«ó EditFile........................65
- 10.8.1 ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γ ó« ó¬½ετáѼδ⌐ Σá⌐½................66
- 10.8.2 ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá SaveAs......................66
- 10.8.3 ä«íáó½Ñ¡¿Ñ «»ÑαáΓ«α«ó include.........................67
- 10.8.4 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ............................67
- 10.8.5 çá¼Ñ¡á Σαáú¼Ñ¡Γá WM_COMMAND...........................68
- 10.8.6 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_QUERYENDSESSION ¿
- WM_CLOSE.....................................................71
- 10.8.7 î«ñ¿Σ¿¬áµ¿∩ Σπ¡¬µ¿¿ ñ¿á½«úá OpenDlg...................71
- 10.8.8 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg..................72
- 10.8.9 ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.....................74
- 10.8.10 ¥¬ß»«αΓ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg....................77
- 10.8.11 ÉáßΦ¿αÑ¡¿Ñ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿................77
- 10.8.12 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................78
- 10.9 çᬽετÑ¡¿Ñ..............................................78
- 11.1 ùΓ« Γá¬«Ñ αáßΓα«óá∩ ¬áαΓá...............................80
- 11.2 櫺ñá¡¿Ñ αáßΓα«óδσ ¬áαΓ.................................80
- 11.2.1 櫺ñá¡¿Ñ ¿ ºáúαπº¬á Σá⌐½«ó αáßΓα«óδσ ¬áαΓ.............80
- 11.2.2 櫺ñá¡¿Ñ ¿ ºá»«½¡Ñ¡¿Ñ »πßΓδσ αáßΓα«óδσ ¬áαΓ...........82
- 11.2.3 櫺ñá¡¿Ñ αáßΓα«óδσ ¬áαΓ ß »«¼«Θ∞ε Σ¿¬ß¿α«óá¡¡δσ.......83
- 11.2.4 ɿ߫óá¡¿Ñ µóÑΓ¡δσ αáßΓα«óδσ ¬áαΓ......................87
- 11.3 ÄΓ«íαáªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ ¡á φ¬αá¡Ñ....................88
- 11.3.1. ê¡ñ¿µ¿α«óá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿......................................................89
- 11.3.2 ÉáßΓ∩ªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ.............................91
- 11.3.3 êß»«½∞º«óá¡¿Ñ αáßΓα«óδσ ¬áαΓ ó ¬¿ßΓ¿ Φáí½«¡á..........92
- 11.3.4 ê¡ñ¿µ¿α«óá¡¿Ñ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δσ αáßΓα«óδσ
- ¬áαΓ.........................................................94
- 11.3.5 êß»«½∞º«óá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γá....95
- 11.4 ä«íáó½Ñ¡¿Ñ µóÑΓá ¬ ¼«¡«σα«¼¡«⌐ αáßΓα«ó«⌐ ¬áαΓÑ..........95
- 11.5 ôñá½Ñ¡¿Ñ αáßΓα«óδσ ¬áαΓ.................................96
- 11.6 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Bitmap......................96
- 11.6.1 î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á.........................98
- 11.6.2 ä«íáó½Ñ¡¿Ñ αÑßπαß«ó αáßΓα«ó«⌐ ¬áαΓδ...................98
- 11.6.3 ä«íáó½Ñ¡¿Ñ ¼Ñ¡ε Bitmap, Pattern ¿ Mode................98
- 11.6.4 ä«íáó½Ñ¡¿Ñ ú½«íá½∞¡δσ ¿ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ..........99
- 11.6.5 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_CREATE.......................100
- 11.6.6 î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_DESTROY.....................104
- 11.6.7 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_LBUTTONUP, WM_MOUSEMOVE.....104
- 11.6.8 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_RBUTTONUP....................105
- 11.6.9 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_ERASEBKGND...................105
- 11.6.10 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_COMMAND.....................106
- 11.6.11 î«ñ¿Σ¿¬áµ¿∩ make-Σá⌐½á..............................108
- 11.6.12 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.............................108
- 11.7 çᬽετÑ¡¿Ñ.............................................108
- â½áóá 12. éδó«ñ ¡á »ÑτáΓ∞....................................110
- 12.1 ÅÑτáΓ∞ ó ßαÑñÑ Windows.................................110
- 12.1.1 êß»«½∞º«óá¡¿Ñ π»αáó½∩εΘ¿σ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐........111
- 12.2 Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « ΓѬπΘѼ »α¿¡ΓÑαÑ................111
- 12.3 ÅÑτáΓ∞ ßΓ᫬¿ ΓѬßΓá...................................113
- 12.4 ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ.................................114
- 12.5 Äíαáí«Γ¬á «Φ¿í«¬ ó« óαѼ∩ »ÑτáΓ¿.......................116
-
- Windows 3.0/pg/2#3 = 3 =
-
- 12.6 ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿.................................118
- 12.6.1 Ä»αÑñѽѡ¿Ñ »á¡Ñ½¿ ñ¿á½«úá...........................118
- 12.6.2 Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿á½«úá...................119
- 12.6.3 öπ¡¬µ¿∩ »αÑαδóá¡¿∩ »ÑτáΓ¿............................119
- 12.6.4 éδ»«½¡Ñ¡¿Ñ »αÑαδóáѼδσ «»Ñαᵿ⌐ »ÑτáΓ¿...............121
- 12.6.5 ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿ ß »«¼«Θ∞ε ABORTDOC............122
- 12.7 ÅÑτáΓ∞ »«αµ¿∩¼¿........................................122
- 12.8 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ PrntFile...................124
- 12.8.1 ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá AbortDlg..................124
- 12.8.2 ä«íáó½Ñ¡¿Ñ »ÑαѼѡ¡δσ ñ½∩ »ÑτáΓ¿.....................125
- 12.8.3 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_PRINT.......................125
- 12.8.4 櫺ñá¡¿Ñ Σπ¡¬µ¿⌐ AbortDlg ¿ AbortProc................128
- 12.8.5 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ GetPrinterDC......................129
- 12.8.6 ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ AbortDlg ¿ AbortProc.........130
- 12.6.7 諼»¿½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................130
- 12.9 çᬽετÑ¡¿Ñ.............................................130
- â½áóá 13. æ¿ßΓѼ¡δ⌐ íπΣÑα....................................132
- 13.1 êß»«½∞º«óá¡¿Ñ ß¿ßΓѼ¡«ú« íπΣÑαá........................132
- 13.1.1 è«»¿α«óá¡¿Ñ ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα.................133
- 13.1.2 éßΓáó¬á ΓѬßΓá ¿º ß¿ßΓѼ¡«ú« íπΣÑαá..................136
- 13.1.3 éßΓáó¬á αáßΓα«óδσ ¬áαΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá..........138
- 13.1.4 ê¡ßΓαπ¼Ñ¡Γá½∞¡á∩ »α«úαá¼¼á Clipboard.................140
- 13.2 êß»«½∞º«óá¡¿Ñ ß»Ñµ¿á½∞¡δσ 󫺼«ª¡«ßΓÑ⌐ ß¿ßΓѼ¡«ú«...141
- 13.2.1 ÅαÑñßΓáó½Ñ¡¿Ñ ñá¡¡δσ »« ºá»α«ßπ......................141
- 13.2.2 ÅαÑñßΓáó½Ñ¡¿Ñ Σ«α¼áΓ«ó »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ αáí«Γδ......142
- 13.2.3 ÉÑú¿ßΓαᵿ∩ ß«íßΓóÑ¡¡δσ Σ«α¼áΓ«ó.....................142
- 13.2.4 ô»αáó½Ñ¡¿Ñ «Γ«íαáªÑ¡¿Ñ¼ ñá¡¡δσ Clipboard...........142
- 13.3. Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ClipText...................145
- 13.3.1 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ..........................146
- 13.3.2 î«ñ¿Σ¿¬áµ¿∩ »α«úαá¼¼δ ¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá.......146
- 13.3.3 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_INITMENU.....................147
- 13.3.4 î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.....................147
- 13.3.5 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_PAINT........................150
- 13.3.6 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ OutOfMemory.......................150
- 13.3.7 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................150
- 13.4 çᬽετÑ¡¿Ñ.............................................151
- ùÇæÆ£ 3. üÄïàà æïÄåì¢à ÉÇçäàï¢...............................152
- â½áóá 14. ƒºδ¬ æ ¿ ∩ºδ¬ ÇßßѼí½Ñαá...........................153
- 14.1 éδí«α ¼«ñѽ¿ »á¼∩Γ¿....................................153
- 14.2 êß»«½∞º«óá¡¿Ñ NULL.....................................154
- 14.3 êß»«½∞º«óá¡¿Ñ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ ¿...155
- 14.4 ìỿßá¡¿Ñ φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐.......................156
- 14.4.1 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá................156
- 14.4.2 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ WinMain.............................157
- 14.5 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ............158
- 14.5.1 êß»«½∞º«óá¡¿Ñ í¿í½¿«ΓѬ æ............................158
- 14.5.2 éδñѽѡ¿Ñ »á¼∩Γ¿.....................................159
- 14.5.3 Éáí«Γá ß« ßΓα«¬á¼¿...................................159
- 14.5.4 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ Σá⌐½«ó«ú« óó«ñá/óδó«ñá.........161
- 14.5.5 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ óó«ñá ¿ óδó«ñá ¡á ¬«¡ß«½∞......162
- 14.5.6 êß»«½∞º«óá¡¿Ñ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐....................162
- 14.5.7 êß»«½∞º«óá¡¿Ñ óδτ¿ß½Ñ¡¿⌐ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐..........162
- 14.5.8 çá»π߬ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼....................163
-
- Windows 3.0/pg/2#3 = 4 =
-
- 14.5.9 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿¡ΓÑαΣÑ⌐ßá ß MS-DOS ¿ BIOS.....163
- 14.5.10 ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ........................164
- 14.6 ìỿßá¡¿Ñ »α«úαá¼¼ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá.................165
- 14.6.1 꺼ѡѡ¿Ñ ß«ßΓ«∩¡¿∩ Σ½áúá »αÑαδóá¡¿∩.................167
- 14.6.2 èᬠ¡á áßßѼí½ÑαÑ ¡á»¿ßáΓ∞ φ¬ß»«αΓ¿απѼπε Σπ¡¬µ¿ε....168
- 14.6.3 êß»«½∞º«óá¡¿Ñ αÑú¿ßΓαá ES............................169
- 14.7 çᬽετÑ¡¿Ñ.............................................170
- â½áóá 15. ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε................................172
- 15.1 êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿...................................172
- 15.1.1 êß»«½∞º«óá¡¿Ñ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿......................................................173
- 15.1.2 êß»«½∞º«óá¡¿Ñ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿......................................................174
- 15.1.3 Éáí«Γá ß« ßíαáßδóáѼ«⌐ »á¼∩Γ∞ε.......................176
- 15.2 êß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ«ó................................178
- 15.2.1 êß»«½∞º«óá¡¿Ñ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó......................179
- 15.2.2 æÑú¼Ñ¡Γδ ñá¡¡δσ......................................180
- 15.3 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Memory.....................180
- 15.3.1 Éáºñѽѡ¿Ñ ¿ßσ«ñ¡«ú« æ-Σá⌐½á.........................181
- 15.3.2 î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á........................182
- 15.3.3 ä«íáó½Ñ¡¿Ñ ¡«óδσ «»αÑñѽѡ¿⌐ ßÑú¼Ñ¡Γ«ó...............182
- 15.3.4 î«ñ¿Σ¿¬áµ¿∩ Σá⌐½á make...............................183
- 15.3.5 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á..............................184
- 15.4 çᬽετÑ¡¿Ñ.............................................184
-
- Windows 3.0/pg/2#3 = 5 =
-
- ----------------------------------------------------------------
-
-
- ÅÉÄâÉÇîîÇ-æÅÉÇéÄùìêè ÅÄ
-
- Microsoft Windows
-
- éÑαß¿∩ 3.0
-
- Éπ¬«ó«ñßΓó« »« »α«úαἿα«óá¡¿ε ó ßαÑñÑ Microsoft Windows
-
-
-
- 2#3
-
-
- î«ß¬óá 1991 ú.
- ----------------------------------------------------------------
-
- Windows 3.0/pg/2#3 = 6 =
-
-
- â½áóá 8. ü½«¬¿ π»αáó½Ñ¡¿∩.
- ----------------------------------------------------------------
- ü½«¬¿ π»αáó½Ñ¡¿∩ - φΓ« ߻ѵ¿á½∞¡δÑ «¬¡á, »«ºó«½∩εΘ¿Ñ «ßπ-
- ΘÑßΓó¿Γ∞ »α«ßΓ«Ñ óºá¿¼«ñÑ⌐ßΓó¿Ñ ß »«½∞º«óáΓѽѼ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡δ ß½ÑñπεΘ¿Ñ αáºñѽδ:
-
- - ùΓ« Γá¬«Ñ í½«¬ π»αáó½Ñ¡¿∩.
-
- - 櫺ñá¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.
-
- - êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »α¿¬½áñ¡δσ »α«úαá¼¼áσ.
-
- é ñá¡¡«⌐ ú½áóÑ Γá¬ªÑ «»¿ßá¡« ß«ºñá¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
- EditCntl, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩.
-
- 8.1 ùΓ« Γá¬«Ñ í½«¬ π»αáó½Ñ¡¿∩?
-
- ü½«¬¿ π»αáó½Ñ¡¿∩ - φΓ« óßΓα«Ñ¡¡δÑ ñ«τÑα¡¿Ñ «¬¡á, τÑαѺ
- ¬«Γ«αδÑ «ßπΘÑßΓó½∩ÑΓß∩ ߻ѵ¿á½∞¡δ⌐ ó¿ñ óó«ñá/óδó«ñá. ìá»α¿¼Ñα,
- Ñß½¿ ¡Ñ«íσ«ñ¿¼« »«½πτ¿Γ∞ «Γ »«½∞º«óáΓѽ∩ ¿¼∩ Σá⌐½á, ¼«ª¡«
- ß«ºñáΓ∞ ¿ ¿¡ñ¿µ¿α«óáΓ∞ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ñ½∩ Γ«ú«,
- τΓ«íδ ñáΓ∞ 󫺼«ª¡«ßΓ∞ »«½∞º«óáΓѽε óóÑßΓ¿ ¿¼∩. "ÉÑñá¬Γ¿απѼδ⌐
- í½«¬ π»αáó½Ñ¡¿∩" - φΓ« »αÑñ«»αÑñѽ¡¡«Ñ ñ«τÑα¡ÑÑ «¬¡«, ¬«Γ«α«Ñ
- »«½πτáÑΓ ¿ «Γ«íαáªáÑΓ óó«ñ ß ¬½áó¿áΓπαδ.
-
- ü½«¬ π»αáó½Ñ¡¿∩ »«ñ«í¡« ½εí«¼π ñαπú«¼π «¬¡π »α¿¡áñ½Ñª¿Γ
- ¬½áßß𠫬¡á. è½áßß «¬¡á «»αÑñѽ∩ÑΓ áΓα¿íπΓδ »« π¼«½τá¡¿ε í½«¬á
- π»αáó½Ñ¡¿∩ ¿, τΓ« í«½ÑÑ ó᪡«, Σπ¡¬µ¿ε «¬¡á í½«¬á π»αáó½Ñ¡¿∩.
- öπ¡¬µ¿∩ «¬¡á «»αÑñѽ∩ÑΓ, ¬á¬ í½«¬ π»αáó½Ñ¡¿∩ íπñÑΓ óδú½∩ñÑΓ∞ ¿
- ¬á¬ «¡ íπñÑΓ «ΓóÑτáΓ∞ ¡á ñÑ⌐ßΓó¿∩ »«½∞º«óáΓѽ∩. öπ¡¬µ¿¿ «¬«¡
- ñ½∩ í½«¬«ó π»αáó½Ñ¡¿∩ ∩ó½∩εΓß∩ óßΓα«Ñ¡¡δ¼¿ ó Windows, ΓᬠτΓ«
- ñ½∩ ¿σ ¿ß»«½∞º«óá¡¿∩ ¡Ñ ΓαÑíπÑΓß∩ ߻ѵ¿á½∞¡«ú«
- »α«úαá¼¼¿α«óá¡¿∩.
- 8.2 櫺ñá¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.
-
- ä½∩ ß«ºñá¡¿∩ í½«¬á π»αáó½Ñ¡¿∩ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ñóá
- ¼ÑΓ«ñá:
-
- - é¡πΓα¿ »á¡Ñ½¿ ñ¿á½«úá.
-
- - é¡πΓα¿ «í½áßΓ¿ »«½∞º«óáΓѽ∩ ½εí«ú« ñαπú«ú« Γ¿»á «¬«¡.
-
- é ñá¡¡«⌐ ú½áóÑ «íßπªñáÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩
- ó ßΓá¡ñáαΓ¡«¼ «¬¡Ñ. é ú½áóÑ 9, "Åá¡Ñ½¿ ñ¿á½«úá", «»¿ßá¡«
- ß«ºñá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá.
-
- ¡« ß«ºñáΓ∞ í½«¬ π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- CreateWindow. é «Γ½¿τ¿Ñ «Γ «íδτ¡«ú« »α¿¼Ñ¡Ñ¡¿∩ φΓ«⌐ Σπ¡¬µ¿¿ ñ½∩
- ß«ºñá¡¿∩ «¬¡á »α«úαá¼¼δ ¡Ñ«íσ«ñ¿¼« π¬áºáΓ∞:
-
- - ¬½áßß í½«¬á π»αáó½Ñ¡¿∩;
-
- Windows 3.0/pg/2#3 = 7 =
-
-
- - Γ¿» í½«¬á π»αáó½Ñ¡¿∩;
-
- - α«ñ¿Γѽ∞߬«Ñ «¬¡« í½«¬á π»αáó½Ñ¡¿∩;
-
- - ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩.
-
- öπ¡¬µ¿∩ CreateWindow ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α í½«¬á
- π»αáó½Ñ¡¿∩, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ »«ß½ÑñπεΘ¿¼¿
- Σπ¡¬µ¿∩¼¿ ñ½∩ »ÑαѼÑΘÑ¡¿∩, α¿ß«óá¡¿∩, π¬áºá¡¿∩ αẼÑαá ¿½¿
- αáºαπΦÑ¡¿∩ «¬¡á, ¿½¿ ñ½∩ Γ«ú«, τΓ«íδ ºáßΓáó¿Γ∞ «¬¡« óδ»«½¡¿Γ∞
- ßó«¿ ºáñáτ¿.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ß«ºñáΓ∞ í½«¬
- π»αáó½Ñ¡¿∩ Γ¿»á á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá:
-
- hButtonWnd = CreateWindow(
- "Button", /* ¬½áßß ¬½áó¿Φ¿ */
- "OK",
- BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE,
- 20, /* ¬««αñ¿¡áΓá »« «ß¿ X */
- 40, /* ¬««αñ¿¡áΓá »« «ß¿ Y */
- 30, /* Φ¿α¿¡á ó »¿¬ßѽ∩σ */
- 12, /* óδß«Γá ó »¿¬ßѽ∩σ */
- hWnd, /* α«ñ¿Γѽ∞߬«Ñ «¬¡« */
- IDOK, /* ID í½«¬á π»αáó½Ñ¡¿∩ */
- hInstance, /* ñÑß¬α¿»Γ«α φ¬ºÑ¼»½∩αá */
- NULL);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ ß«ºñáÑΓß∩ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
- á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá, ¬«Γ«αδ⌐ »α¿¡áñ½Ñª¿Γ ¬½áßß𠫬¡á
- "Button" ¿ ¿¼ÑÑΓ Γ¿» BS_PUSHBUTTON. ü½«¬ π»αáó½Ñ¡¿∩ ∩ó½∩ÑΓß∩
- ñ«τÑα¡¿¼ «¬¡«¼ ¿ íπñÑΓ ó¿ñÑ¡ »α¿ »Ñαó«¼ ß«ºñá¡¿¿. ìÑ«íσ«ñ¿¼«
- ¿ß»«½∞º«óáΓ∞ Γ¿» WS_CHILD; «ñ¡á¬«, Ñß½¿ ñ½∩ ¿¡ñ¿¬áµ¿¿ í½«¬á
- π»αáó½Ñ¡¿∩ íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿∩ ShowWindow, Γ« Γ¿»
- WS_VISIBLE »α¿¼Ñ¡∩Γ∞ ¡Ñ ¡πª¡«. öπ¡¬µ¿∩ CreateWindow »«¼ÑßΓ¿Γ
- í½«¬ π»αáó½Ñ¡¿∩ ó Γ«τ¬π ß ¬««αñ¿¡áΓἿ (20, 40) ó «í½áßΓ¿
- »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á. àú« Φ¿α¿¡á ¿ óδß«Γá αáó¡δ
- ß««ΓóÑΓßΓóÑ¡¡« 30 ¿ 12 »¿¬ßѽÑ⌐. É«ñ¿Γѽ∞߬«Ñ «¬¡«
- ¿ñÑ¡Γ¿Σ¿µ¿απÑΓß∩ ñÑß¬α¿»Γ«α«¼ hWnd. è«¡ßΓá¡Γá IDOK - φΓ«
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩.
-
- ÄßΓáóΦá∩ß∩ τáßΓ∞ ñá¡¡«ú« αáºñÑ½á »«ßó∩ΘÑ¡á «íßπªñÑ¡¿ε
- Γ«ú«, ¬á¬ π¬áºáΓ∞ ¬½áßß «¬¡á í½«¬á π»αáó½Ñ¡¿∩, Ñú« Γ¿»,
- α«ñ¿Γѽ∞߬«Ñ «¬¡« ¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«α.
- 8.2.1 Ä»αÑñѽѡ¿Ñ ¬½áßßá í½«¬á π»αáó½Ñ¡¿∩.
-
- è½áßß «¬¡á í½«¬á π»αáó½Ñ¡¿∩, ¿½¿ ¬½áßß í½«¬á π»αáó½Ñ¡¿∩
- «»αÑñѽ∩ÑΓ Σπ¡¬µ¿ε ¿ áΓα¿íπΓδ í½«¬á π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπѼδÑ »«
- π¼«½τá¡¿ε. éδ π¬áºδóáÑΓÑ ¬½áßß í½«¬á π»αáó½Ñ¡¿∩ »α¿ Ñú«
- ß«ºñá¡¿¿. ä½∩ φΓ«ú« ¿¼∩ ¬½áßßá (¡á»α¿¼Ñα, BUTTON") ó¬½ετáÑΓß∩ ó
- ¬áτÑßΓóÑ »áαá¼ÑΓαá lpClassName Σπ¡¬µ¿¿ CreateWindow.
-
- Windows 3.0/pg/2#3 = 8 =
-
-
- Windows »αÑñ«ßΓáó½∩ÑΓ ß½ÑñπεΘ¿Ñ óßΓα«Ñ¡¡δÑ ¬½áßßδ í½«¬«ó
- π»αáó½Ñ¡¿∩:
-
- è½áßß Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- BUTTON ìÑí«½∞Φ¿Ñ »«¼ÑτÑ¡¡δÑ «¬¡á, ¬«Γ«αδÑ ¼«ªÑΓ óδí¿-
- αáΓ∞ »«½∞º«óáΓѽ∞, ºáñáóá∩ 󫺼«ª¡δÑ «ΓóÑΓδ
- Γ¿»á ñá/¡ÑΓ ¿½¿ ó¬½/ó䬽.
-
- EDIT Ĭ¡á, ó ¬«Γ«αδÑ »«½∞º«óáΓѽ∞ ¼«ªÑΓ ó«⌐Γ¿ ñ½∩
- óó«ñá ¿ αÑñá¬Γ¿α«óá¡¿∩ ΓѬßΓá.
-
- LISTBOX Ĭ¡á, ¬«Γ«αδÑ ß«ñÑαªáΓ »ÑαÑτ¡¿ ¿¼Ñ¡, ¿º ¬«Γ«-
- αδσ »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδíαáΓ∞ ¡πª¡δÑ ¿¼Ñ¡á.
-
- COMBOBOX è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩, ß«ßΓ«∩Θ¿⌐ ¿º
- αÑñá¬Γ¿απѼ«ú« ¿½¿ ßΓáΓ¿τÑ߬«ú« í½«¬á π»αáó½Ñ-
- ¡¿∩ ¿ »«ñ¬½ετÑ¡¡«⌐ ¬ ¡¿¼ »á¡Ñ½¿ »ÑαÑτ¡∩. Å«½∞-
- º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ φ½Ñ¼Ñ¡Γδ ¿º »á¡Ñ½¿ »Ñ-
- αÑτ¡∩ ¿/¿½¿ óó«ñ¿Γ∞ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩.
-
- SCROLLBAR Ĭ¡á, ¬«Γ«αδÑ óδú½∩ñ∩Γ ¿ αáí«ΓáεΓ ¬á¬ ßΓ᫬¿
- »α«¬απΓ¬¿.
-
- STATIC ìÑí«½∞Φ¿Ñ «¬¡á, ß«ñÑαªáΘ¿Ñ ΓѬßΓ ¿½¿ »α«ßΓ«Ñ
- ¿º«íαáªÑ¡¿Ñ. Ä¡¿ τáßΓ« ¿ß»«½∞ºπεΓß∩ ñ½∩ Γ«ú«,
- τΓ«íδ »«¼ÑΓ¿Γ∞ ñαπú¿Ñ í½«¬¿ π»αáó½Ñ¡¿∩ ¿½¿
- «Γñѽ¿Γ∞ «ñ¡π úαπ»»π í½«¬«ó π»αáó½Ñ¡¿∩ «Γ
- ñαπú«⌐.
- ───────────────────────────────────────────────────────────────
- 8.2.2 éδí«α Γ¿»á í½«¬á π»αáó½Ñ¡¿∩.
-
- Æ¿» í½«¬á π»αáó½Ñ¡¿∩ ºáó¿ß¿Γ «Γ ¬½áßßá ¿ «»αÑñѽ∩ÑΓ ó¿ñ ¿
- αáí«Γπ í½«¬á π»αáó½Ñ¡¿∩. Æ¿» ºáñáÑΓß∩ »α¿ ß«ºñá¡¿¿ í½«¬á
- π»αáó½Ñ¡¿∩. ä½∩ φΓ«ú« «¡ ó¬½ετáÑΓß∩ ó »áαá¼ÑΓαÑ dwStyle
- (¡á»α¿¼Ñα, BS_PUSHBUTTON) Σπ¡¬µ¿¿ CreateWindow.
-
- Windows ß«ñÑαª¿Γ ¼¡«ú« »αÑñ«»αÑñѽѡ¡δσ Γ¿»«ó í½«¬«ó
- π»αáó½Ñ¡¿∩. ì¿ªÑ »α¿óÑñÑ¡δ ¡á¿í«½ÑÑ τáßΓ« óßΓαÑτáεΘ¿Ñß∩ Γ¿»δ:
-
- Æ¿» Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- BS_PUSHBUTTON æ»Ñµ¿Σ¿µ¿απÑΓ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
- á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá, ß«ñÑαªáΘ¿⌐
- ¼ÑΓ¬π, ¬«Γ«απε »«½∞º«óáΓѽ∞ ¼«ªÑΓ
- óδíαáΓ∞ ñ½∩ πóÑñ«¼½Ñ¡¿∩ α«ñ¿Γѽ∞߬«ú«
- «¬¡á.
-
- BS_DEFPUSHBUTTON æ»Ñµ¿Σ¿µ¿απÑΓ á½∞ΓÑα¡áΓ¿ó¡πε ¬½áó¿Φπ »«
- π¼«½τá¡¿ε, ¬«Γ«αá∩ ¿ñÑ¡Γ¿τ¡á «íδτ¡«⌐
-
- Windows 3.0/pg/2#3 = 9 =
-
- á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿ΦÑ, ¡« ¿¼ÑÑΓ
- ߻ѵ¿á½∞¡πε «¬á¡Γ«ó¬π.
-
- BS_CHECKBOX æ»Ñµ¿Σ¿µ¿απÑΓ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
- »á¡Ñ½∞ ¬«¡Γα«½∩. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ
- ó¬½ετáΓ∞/ó䬽ετáΓ∞ »á¡Ñ½∞. è«úñá »á¡Ñ½∞
- ¬«¡Γα«½∩ ó¬½ετÑ¡á, Γ« ó ¡Ñ⌐ »«∩ó½∩ÑΓß∩
- º¡á¬ "ò".
-
- BS_RADIOBUTTON
- æ»Ñµ¿Σ¿µ¿απÑΓ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
- ¬½áó¿Φá πßΓá¡«ó¬¿ (¡Ñí«½∞Φ«⌐ ¬α𪫬).
- Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ó¬½ετáΓ∞/ó䬽ετáΓ∞
- ñá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩. è«úñá ¬½áó¿Φá
- πßΓá¡«ó¬¿ ó¬½ετÑ¡á, ¬α𪫬 ºá¬αáΦÑ¡.
-
- ES_LEFT æ»Ñµ¿Σ¿µ¿απÑΓ «ñ¡«ßΓα«τ¡δ⌐ óδαáó¡Ñ¡¡δ⌐
- ó½Ñó« αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
-
- ES_MULTILINE æ»Ñµ¿Σ¿µ¿απÑΓ ¼¡«ú«ßΓα«τ¡δ⌐
- αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
-
- SS_LEFT æ»Ñµ¿Σ¿µ¿απÑΓ óδαáó¡Ñ¡¡δ⌐ ó½Ñó«
- ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
-
- SS_RIGHT æ»Ñµ¿Σ¿µ¿απÑΓ óδαáó¡Ñ¡¡δ⌐ ó»αáó«
- ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
-
- LBS_STANDARD æ»Ñµ¿Σ¿µ¿απÑΓ ßΓá¡ñáαΓ¡πε »á¡Ñ½∞
- »ÑαÑτ¡∩. æΓá¡ñáαΓ¡á∩ »á¡Ñ½∞ »ÑαÑτ¡∩
- ó¬½ετáÑΓ ßΓ᫬π »α«¬απΓ¬¿ ¿ πóÑñ«¼½∩ÑΓ
- ÑÑ α«ñ¿Γѽ∞¬«Ñ «¬¡«, ¬«úñá »«½∞º«óáΓѽ∞
- ñѽáÑΓ óδí«α¬π.
-
- CBS_DROPDOWN Ä»αÑñѽ∩ÑΓ ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó-
- ½Ñ¡¿∩, ß«ñÑαªáΘ¿⌐ αÑñá¬Γ¿απѼδ⌐ í½«¬
- π»αáó½Ñ¡¿∩ ¿ »á¡Ñ½∞ »ÑαÑτ¡∩, ¬«Γ«αá∩
- «Γ«íαáªáÑΓß∩, ¬«úñá »«½∞º«óáΓѽ∞
- ¡áª¿¼áÑΓ ¡á í½«¬, ß½ÑñπεΘ¿⌐ ºá »«½Ñ¼
- óδí«αá. àß½¿ óδí¿αáÑΓß∩ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿
- »ÑαÑτ¡∩, ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- «Γ«íαáªáÑΓß∩ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ.
- ───────────────────────────────────────────────────────────────
-
- 8.2.3 Ä»αÑñѽѡ¿Ñ α«ñ¿Γѽ∞߬«ú« «¬¡á.
-
- ū߬«½∞¬π ¬áªñδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ∩ó½∩ÑΓß∩ ñ«τÑα¡¿¼ «¬¡«¼,
- ¡Ñ«íσ«ñ¿¼« α«ñ¿Γѽ∞߬«Ñ «¬¡«. É«ñ¿Γѽ∞߬«Ñ «¬¡« π¬áºδóáÑΓß∩ »α¿
- ß«ºñá¡¿¿ í½«¬á π»αáó½Ñ¡¿∩. ä½∩ φΓ«ú« ó¬½ετ¿ΓÑ ñÑß¬α¿»Γ«α
- α«ñ¿Γѽ∞߬«ú« «¬¡á ó ¬áτÑßΓóÑ »áαá¼ÑΓαá hWndParent ó ó맮ó
- Σπ¡¬µ¿¿ CreateWindow.
-
- èᬠ½εí«Ñ ñ«τÑα¡ÑÑ «¬¡« í½«¬ π»αáó½Ñ¡¿∩ »«ñóÑαúáÑΓß∩
-
- Windows 3.0/pg/2#3 = 10 =
-
- ¿º¼Ñ¡Ñ¿∩¼ ß« ßΓ«α«¡δ α«ñ¿Γѽ∞߬«ú« «¬¡á. ìá»α¿¼Ñα, Ñß½¿
- α«ñ¿Γѽ∞߬«Ñ «¬¡« ñѽáÑΓß∩ ¡Ññ«ßΓπ»¡δ¼, í½«¬ π»αáó½Ñ¡¿∩ ΓᬪÑ
- íπñÑΓ ¡Ññ«ßΓπ»Ñ¡. àß½¿ Windows α¿ßπÑΓ, »ÑαѼÑΘáÑΓ ¿½¿ αáºαπΦáÑΓ
- α«ñ¿Γѽ∞߬«Ñ «¬¡«, «¡ Γá¬ªÑ α¿ßπÑΓ, »ÑαѼÑΘáÑΓ ¿½¿ αáºαπΦáÑΓ
- í½«¬ π»αáó½Ñ¡¿∩.
-
- ò«Γ∩ í½«¬ π»αáó½Ñ¡¿∩ ¼«ªÑΓ íδΓ∞ ½εí«ú« αẼÑαá ¿
- »ÑαѼÑΘáΓ∞ß∩ ó ½εí«Ñ »«½«ªÑ¡¿Ñ, «¡ «úαá¡¿τÑ¡ «í½áßΓ∞ε
- »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á. Windows óδαѺáÑΓ «¬¡«, Ñß½¿
- «¡« »ÑαѼÑΘáÑΓß∩ ºá »αÑñÑ½δ «í½áßΓ¿ »«½∞º«óáΓѽ∩ ¿½¿ ßΓá¡«ó¿Γß∩
- í«½∞ΦÑ «í½áßΓ¿ »«½∞º«óáΓѽ∩.
-
- 8.2.4 éδí«α ¿ñÑ¡Γ¿Σ¿¬áΓ«αá í½«¬á π»αáó½Ñ¡¿∩.
-
- Åα¿ ß«ºñá¡¿¿ í½«¬á π»αáó½Ñ¡¿∩ «¡ »«½πτáÑΓ π¡¿¬á½∞¡δ⌐
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α (¿½¿ ID) í½«¬á π»αáó½Ñ¡¿∩. êñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á
- π»αáó½Ñ¡¿∩ »α¿ ß«ºñá¡¿¿ í½«¬á π»αáó½Ñ¡¿∩. êñÑ¡Γ¿Σ¿¬áΓ«α
- π¬áºδóáÑΓß∩ ó Σπ¡¬µ¿¿ CreateWindow ó¼ÑßΓ« ñÑß¬α¿»Γ«αá ¼Ñ¡ε
- (hMenu). ü½«¬ π»αáó½Ñ¡¿∩ «»αÑñѽ∩ÑΓß∩ φΓ¿¼ ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ó
- ½εí«¼ πóÑñ«¼½∩εΘѼ ß««íΘÑ¡¿¿, ¬«Γ«α«Ñ «¡ »«ßδ½áÑΓ Σπ¡¬µ¿¿
- α«ñ¿Γѽ∞߬«ú« «¬¡á. êñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩ «ß«íÑ¡¡«
- »«½ÑºÑ¡, ¬«úñá ó «¬¡Ñ ¿¼ÑεΓß∩ ¡Ñ߬«½∞¬« í½«¬«ó π»αáó½Ñ¡¿∩. ¥Γ«
- ¡á¿í«½ÑÑ »α«ßΓ«⌐ ¿ íδßΓαδ⌐ ß»«ß«í «Γ½¿τ¿Γ∞ «ñ¿¡ í½«¬ π»αáó½Ñ¡¿∩
- «Γ ñαπú«ú«.
-
- 8.3 êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩.
-
- Å«ß½Ñ ß«ºñá¡¿∩ í½«¬á π»αáó½Ñ¡¿∩ óδ ¼«ªÑΓÑ:
-
- - Å«½πτ¿Γ∞ óó«ñ «Γ í½«¬á π»αáó½Ñ¡¿∩.
-
- - æ««íΘ¿Γ∞ í½«¬π π»αáó½Ñ¡¿∩, τΓ« ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞
- «»αÑñѽѡ¡δÑ ºáñáτ¿, ¡á»α¿¼Ñα, óÑα¡πΓ∞ ßΓ᫬π ΓѬßΓá.
-
- - æñѽáΓ∞ ñ«ßΓπ»¡δ¼ ¿½¿ ¡Ññ«ßΓπ»¡δ¼ óó«ñ ó í½«¬
- π»αáó½Ñ¡¿∩.
-
- - ÅÑαѼÑßΓ¿Γ∞ ¿½¿ ¿º¼Ñ¡¿Γ∞ αẼÑα í½«¬á π»αáó½Ñ¡¿∩.
-
- - ÉáºαπΦ¿Γ∞ í½«¬ π»αáó½Ñ¡¿∩.
-
- é ñá¡¡«¼ αáºñÑ½Ñ «»¿ßá¡«, ¬á¬ óδ»«½¡¿Γ∞ óßÑ φΓ¿ ºáñáτ¿.
- 8.3.1 Å«½πτÑ¡¿Ñ óó«ñá «Γ »«½∞º«óáΓѽ∩.
-
- Åα¿ óºá¿¼«ñÑ⌐ßΓó¿¿ »«½∞º«óáΓѽ∩ ß í½«¬«¼ π»αáó½Ñ¡¿∩
- »«ß½Ññ¡¿⌐ »«ßδ½áÑΓ α«ñ¿Γѽ∞߬«¼π «¬¡π ¿¡Σ«α¼áµ¿ε «í φΓ«¼
- óºá¿¼«ñÑ⌐ßΓó¿¿ ó Σ«α¼Ñ πóÑñ«¼½∩εΘ¿σ ß««íΘÑ¡¿⌐. ôóÑñ«¼½∩εΘÑÑ
- ß««íΘÑ¡¿Ñ - φΓ« ß««íΘÑ¡¿Ñ WM_COMMAND, ó ¬«Γ«α«¼:
-
- - »áαá¼ÑΓα wParam ß«ñÑαª¿Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩;
-
- - »áαá¼ÑΓα lParam ß«ñÑαª¿Γ ¬«ñ πóÑñ«¼½Ñ¡¿∩ ¿ ñÑß¬α¿»Γ«α
- í½«¬á π»αáó½Ñ¡¿∩.
-
- Windows 3.0/pg/2#3 = 11 =
-
-
-
- ìá»α¿¼Ñα, »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬¡«»¬π ¼δΦ¿, ¬«úñá ¬παß«α
- ¡áσ«ñ¿Γß∩ ¡á í½«¬Ñ π»αáó½Ñ¡¿∩ BUTTON, φΓ«Γ í½«¬ π»αáó½Ñ¡¿∩
- »«ßδ½áÑΓ Σπ¡¬µ¿¿ «¬¡á α«ñ¿Γѽ∩ ß««íΘÑ¡¿Ñ WM_COMMAND. æ««íΘÑ¡¿Ñ
- WM_COMMAND ß«ñÑαª¿Γ ó »áαá¼ÑΓαÑ lParam ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á
- π»αáó½Ñ¡¿∩, á ó ßΓáαΦѼ ß½«óÑ »áαá¼ÑΓαá lParam ß«ñÑনΓß∩ ¬«ñ
- πóÑñ«¼½Ñ¡¿∩ BN_CLICKED, ¬«Γ«αδ⌐ π¬áºδóáÑΓ ¡á Γ«, τΓ«
- »«½∞º«óáΓѽ∞ ¡áªá½ ¡á ñá¡¡πε ¼∩ú¬πε ¬½áó¿Φπ.
-
- ū߬«½∞¬π πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ ¿¼ÑÑΓ Γπ ªÑ «ß¡«ó¡πε
- Σ«α¼π, τΓ« ¿ »α¿ óó«ñÑ ¿º ¼Ñ¡ε, «¡« ¼«ªÑΓ «íαáíáΓδóáΓ∞ß∩ ó«
- ¼¡«ú«¼ á¡á½«ú¿τ¡«. àß½¿ ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ í½«¬«ó π»αáó½Ñ¡¿∩ í뫨
- óδíαá¡δ Γá¬, τΓ« «¡¿ ¡Ñ óσ«ñ∩Γ ó ¬«¡Σ½¿¬Γ ß ¿ñÑ¡Γ¿Σ¿¬áΓ«αἿ
- φ½Ñ¼Ñ¡Γ«ó ¼Ñ¡ε, ¼«ª¡« «íαáíáΓδóáΓ∞ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ ó Γ«¼
- ªÑ «»ÑαáΓ«αÑ switch, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ñ½∩ «íαáí«Γ¬¿ óó«ñá
- ¿º ¼Ñ¡ε.
-
- 8.3.2 ÅÑαÑñáτá π»αáó½∩εΘ¿σ ß««íΘÑ¡¿⌐.
-
- ü«½∞Φ¿¡ßΓó« í½«¬«ó π»αáó½Ñ¡¿∩ »α¿¡¿¼áεΓ ¿ «íαáíáΓδóáεΓ α∩ñ
- ß««íΘÑ¡¿⌐. ¥Γ« ߻ѵ¿á½∞¡δÑ ß««íΘÑ¡¿∩, ¬«Γ«αδÑ »«íπªñáεΓ í½«¬
- π»αáó½Ñ¡¿∩ óδ»«½¡∩Γ∞ ¡Ñ¬«Γ«αδÑ π¡¿¬á½∞¡δÑ ñ½∩ ñá¡¡«ú« í½«¬á
- π»αáó½Ñ¡¿∩ ºáñáτ¿. ìá»α¿¼Ñα, ß««íΘÑ¡¿Ñ WM_GETTEXTLENGTH
- »αÑñ»¿ßδóáÑΓ αÑñá¬Γ¿απѼ«¼π í½«¬π π»αáó½Ñ¡¿∩ ó«ºóαáΓ¿Γ∞ ñ½¿¡π
- óδíαá¡¡«⌐ ßΓ᫬¿ ΓѬßΓá.
-
- æ««íΘÑ¡¿Ñ í½«¬π π»αáó½Ñ¡¿∩ »«ßδ½áÑΓß∩ Σπ¡¬µ¿Ñ⌐
- SendMessage. ìÑ«íσ«ñ¿¼« ºáñáΓ∞ ¡«¼Ñα ß««íΘÑ¡¿∩ ¿ º¡áτÑ¡¿∩
- »áαá¼ÑΓα«ó wParam ¿ lParam. ìá»α¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ «»ÑαáΓ«α
- »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ EM_GETTEXTLENGTH αÑñá¬Γ¿απѼ«¼π í½«¬π
- π»αáó½Ñ¡¿∩, ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«¼π ñÑß¬α¿»Γ«α«¼ hEditWnd, á ºáΓѼ
- ó«ºóαáΘáÑΓ ñ½¿¡π óδíαá¡¡«⌐ ßΓ᫬¿.
-
- nLength=SendMessage(hEditWnd, WM_GETTEXTLENGTH, 0, 0L);
-
- î¡«ú¿Ñ í½«¬¿ π»αáó½Ñ¡¿∩ Γá¬ªÑ «íαáíáΓδóáεΓ ßΓá¡ñáαΓ¡δÑ
- ß««íΘÑ¡¿∩ «¬«¡, Γá¬¿Ñ ¬á¬ WM_HSCROLL ¿ WM_VSCROLL. ¡«
- »«ß½áΓ∞ φΓ¿ ß««íΘÑ¡¿∩ í½«¬á¼ π»αáó½Ñ¡¿∩ ΓѼ ªÑ ß»«ß«í«¼,
- ¬«Γ«αδ⌐ ¿ß»«½∞º«óá½ß∩ ñ½∩ »«ß佬¿ π»αáó½∩εΘ¿σ ß««íΘÑ¡¿⌐.
-
- 8.3.3 èᬠßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ ñ«ßΓπ»¡δ¼ ¿½¿
- ¡Ññ«ßΓπ»¡δ¼ ñ½∩ óó«ñá.
-
- ¡« ßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ ñ«ßΓπ»¡δ¼ ¿½¿ ¡Ññ«ßΓπ»¡δ¼
- ñ½∩ óó«ñá, ¿ß»«½∞º«óáó Σπ¡¬µ¿ε EnableWindow.
-
- è«úñá óδ ñѽáÑΓÑ óó«ñ ó í½«¬ π»αáó½Ñ¡¿∩ ¡Ññ«ßΓπ»¡δ¼, φΓ«Γ
- í½«¬ π»αáó½Ñ¡¿∩ ¡Ñ αÑáú¿απÑΓ ¡á óó«ñ «Γ »«½∞º«óáΓѽ∩. Windows
- ñѽáÑΓ ñá¡¡δ⌐ í½«¬ "ßÑαδ¼", τΓ«íδ π¬áºáΓ∞ »«½∞º«óáΓѽε, τΓ«
- ñá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩ ¡Ññ«ßΓπ»Ñ¡. é »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ
- »«¬áºá¡«, ¬á¬ ßñѽáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ ¡Ññ«ßΓπ»¡δ¼:
-
- Windows 3.0/pg/2#3 = 12 =
-
-
- EnableWindow(hButton, FALSE);
-
- ¡« ó«º«í¡«ó¿Γ∞ óó«ñ ó í½«¬ π»αáó½Ñ¡¿∩, ßñѽáó Ñú«
- ñ«ßΓπ»¡δ¼ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ EnableWindow, π¬áºáó »áαá¼ÑΓα TRUE:
-
- EnableWindow(hButton, TRUE);
- 8.3.4 ÅÑαѼÑΘÑ¡¿Ñ ¿ ¿º¼Ñ¡Ñ¡¿Ñ αẼÑαá í½«¬á π»αáó½Ñ¡¿∩.
-
- ¡« »ÑαѼÑΘáΓ∞ ¿½¿ ¿º¼Ñ¡∩Γ∞ αẼÑα í½«¬á π»αáó½Ñ¡¿∩,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε MoveWindow. ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ í½«¬
- π»αáó½Ñ¡¿∩ ó π¬áºá¡¡πε Γ«τ¬π «í½áßΓ¿ »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú«
- «¬¡á ¿ πßΓá¡áó½¿óáÑΓ ñ½∩ í½«¬á π»αáó½Ñ¡¿∩ ºáñá¡¡πε Φ¿α¿¡π ¿
- óδß«Γπ. æ½ÑñπεΘ¿⌐ »α¿¼Ñα ñѼ«¡ßΓα¿απÑΓ, ¬á¬ »ÑαѼÑßΓ¿Γ∞ ¿
- ¿º¼Ñ¡¿Γ∞ αẼÑαδ í½«¬á π»αáó½Ñ¡¿∩:
-
- MoveWindow(hButtonWnd, 10, 10, 30, 12, TRUE);
-
- é φΓ«¼ »α¿¼ÑαÑ í½«¬ π»αáó½Ñ¡¿∩ »ÑαѼÑΘáÑΓß∩ ó Γ«τ¬π (10,
- 10) ó «í½áßΓ¿ »«½∞º«óáΓѽ∩; Φ¿α¿¡á ¿ óδß«Γá πßΓá¡áó½¿óáÑΓß∩
- αáó¡«⌐ 30 ¿ 12 »¿¬ßѽ∩¼ ß««ΓóÑΓßΓóÑ¡¡«. ç¡áτÑ¡¿Ñ TRUE ú«ó«α¿Γ «
- Γ«¼, τΓ« »«ß½Ñ »ÑαѼÑΘÑ¡¿∩ í½«¬ π»αáó½Ñ¡¿∩ ñ«½ªÑ¡ íδΓ∞
- »ÑαÑα¿ß«óá¡.
-
- Windows áóΓ«¼áΓ¿τÑ߬¿ »ÑαѼÑΘáÑΓ í½«¬ π»αáó½Ñ¡¿∩ »α¿
- »ÑαѼÑΘÑ¡¿¿ α«ñ¿Γѽ∞߬«ú« «¬¡á. Å«½«ªÑ¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩
- íÑαÑΓß∩ óßÑúñá «Γ¡«ß¿Γѽ∞¡« ½Ñó«ú« óÑασ¡Ñú« πú½á «í½áßΓ¿
- »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á, ΓᬠτΓ« ¬«úñá α«ñ¿Γѽ∞߬«Ñ
- «¬¡« »ÑαѼÑΘáÑΓß∩, í½«¬ π»αáó½Ñ¡¿∩ «ßΓáÑΓß∩ Σ¿¬ß¿α«óá¡¡δ¼ ó
- «í½áßΓ¿ »«½∞º«óáΓѽ∩, ¡« »ÑαѼÑΘáÑΓß∩ «Γ¡«ß¿Γѽ∞¡« φ¬αá¡á.
- Windows ¡Ñ ¿º¼Ñ¡∩ÑΓ αẼÑαδ í½«¬á π»αáó½Ñ¡¿∩ »α¿ ¿º¼Ñ¡Ñ¡¿¿
- α«ñ¿Γѽ∞߬«ú« «¬¡á, ¡« »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_SIZE α«ñ¿Γѽ∞߬«¼π
- «¬¡π ñ½∩ π¬áºá¡¿∩ Ñú« ¡«ó«ú« αẼÑαá. Åα¿ ªÑ½á¡¿¿ ¼«ª¡«
- ¿ß»«½∞º«óáΓ∞ φΓ« ß««íΘÑ¡¿Ñ ñ½∩ Γ«ú«, τΓ«íδ ñáΓ∞ í½«¬π
- π»αáó½Ñ¡¿∩ ¡«óδÑ αẼÑαδ.
-
- 8.3.5 ÉáºαπΦÑ¡¿Ñ í½«¬á π»αáó½Ñ¡¿∩.
-
- ¡« αáºαπΦ¿Γ∞ í½«¬ π»αáó½Ñ¡¿∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- DestroyWindow. ¥Γá Σπ¡¬µ¿∩ πñá½∩ÑΓ óßÑ ó¡πΓαÑ¡¡¿Ñ ºá»¿ß¿ ¿ ßá¼
- í½«¬ π»αáó½Ñ¡¿∩ ¿º «í½áßΓ¿ »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á. é
- »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ αáºαπΦ¿Γ∞ í½«¬ π»αáó½Ñ¡¿∩:
-
- DestroyWindow(hEditWnd);
-
- Windows áóΓ«¼áΓ¿τÑ߬¿ αáºαπΦáÑΓ í½«¬ π»αáó½Ñ¡¿∩ »α¿
- αáºαπΦÑ¡¿¿ α«ñ¿Γѽ∞߬«ú« «¬¡á. é««íΘÑ ú«ó«α∩, í½«¬ π»αáó½Ñ¡¿∩
- ¡Ñ«íσ«ñ¿¼« αáºαπΦáΓ∞ Γ«½∞¬« Γ«úñá, ¬«úñá «¡ ó α«ñ¿Γѽ∞߬«¼ «¬¡Ñ
- í«½∞ΦÑ ¡Ñ ¡πªÑ¡.
-
-
- Windows 3.0/pg/2#3 = 13 =
-
-
- 8.4 櫺ñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ¡Ñ¬«Γ«αδσ ¡á¿í«½ÑÑ τáßΓ«
- óßΓαÑτáεΘ¿σß∩ í½«¬«ó π»αáó½Ñ¡¿∩.
-
- äá½ÑÑ ó φΓ«⌐ ú½áóÑ »α¿óÑñÑ¡á í«½ÑÑ »«ñα«í¡á∩ ¿¡Σ«α¼áµ¿∩ «í
- ¿ß»«½∞º«óá¡¿¿ ¡á¿í«½ÑÑ τáßΓ« óßΓαÑτáεΘ¿σß∩ í½«¬«ó π»αáó½Ñ¡¿∩:
-
- - ü½«¬ π»αáó½Ñ¡¿∩ Γ¿»á ¬½áó¿Φá.
-
- - æΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
-
- - Åá¡Ñ½∞ »ÑαÑτ¡∩.
-
- - è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩.
-
- - ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
-
- - æΓ᫬¿ »α«¬απΓ¬¿.
- 8.4.1 êß»«½∞º«óá¡¿Ñ ¬½áó¿Φ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩.
-
- è½áó¿Φ¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩ - φΓ« ¡Ñí«½∞Φ«Ñ «¬¡«,
- ¿ß»«½∞ºπѼ«Ñ ñ½∩ »α«ßΓ«ú« óó«ñá Γ¿»á ñá/¡ÑΓ ¿½¿ ó¬½/ó䬽.
- æπΘÑßΓóπεΓ ß½ÑñπεΘ¿Ñ ¡á¿í«½ÑÑ τáßΓ« ¿ß»«½∞ºπѼδÑ ¬½áó¿Φ¡δÑ
- í½«¬¿ π»αáó½Ñ¡¿∩:
-
- - ǽ∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá.
-
- - ǽ∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½τá¡¿ε.
-
- - è½áó¿Φá πßΓá¡«ó¬¿.
-
- - Åá¡Ñ½∞ ¬«¡Γα«½∩.
-
- - è½áó¿Φá, α¿ßπѼá∩ ó½áñѽ∞µÑ¼.
-
- - âαπ»»«óá∩ »á¡Ñ½∞.
-
- ǽ∞ΓÑα¡áΓ¿ó¡δÑ ¬½áó¿Φ¿.
-
- è½áó¿Φ¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩ - φΓ« ¬½áó¿Φá, ¬«Γ«αá∩ »«ºó«½∩ÑΓ
- »«½∞º«óáΓѽε óδíαáΓ∞ «»αÑñѽѡ¡«Ñ ñÑ⌐ßΓó¿Ñ. èñáó¿Φá ß«ñÑনΓ
- ΓѬßΓ, ¬«Γ«αδ⌐ «»αÑñѽ∩ÑΓ ÑÑ ñÑ⌐ßΓó¿Ñ. è«úñá »«½∞º«óáΓѽ∞
- "¡áª¿¼áÑΓ" ÑÑ, »α¿¬½áñ¡á∩ »α«úαá¼¼á «íδτ¡« óδ»«½¡∩ÑΓ ßó∩ºá¡¡δÑ
- ß ¡Ñ⌐ ñÑ⌐ßΓó¿∩. ìá»α¿¼Ñα, Ñß½¿ »«½∞º«óáΓѽ∞ ó »á¡Ñ½¿ ñ¿á½«úá
- óδí¿αáÑΓ ¬½áó¿Φπ "Cancel", Γ« »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ¼Ññ½Ñ¡¡«
- πí¿αáÑΓ »á¡Ñ½∞ ñ¿á½«úá ¿ «Γ¼Ñ¡∩ÑΓ óßÑ »α«¿ºóÑñÑ¡¡δÑ ó »á¡Ñ½¿
- ñ¿á½«úá πßΓá¡«ó¬¿ (Ñß½¿ «¡¿ í뫨 »α«¿ºóÑñÑ¡δ).
-
- ¡« ß«ºñáΓ∞ ¬½áó¿Φ¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπ∩ ¬½áßß
- "Button" ¿ ߻ѵ¿Σ¿µ¿απ∩ Γ¿» ¬½áó¿Φ¿. ìá»α¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ
- ó맮ó Σπ¡¬µ¿¿ CreateWindow ß«ºñáÑΓ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
- á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá ß ¼ÑΓ¬«⌐ "Cancel":
-
-
- Windows 3.0/pg/2#3 = 14 =
-
- HWND hCancelButton;
- .
- .
- .
- hCancelButton=CreateWindow("Button", "Cancel",
- BS_PUSHBUTTON ! WS_CHILD ! WS_VISIBLE,
- 20, 40, 30, 12, hWnd, ICANCEL, hInstance, NULL);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ ß»Ñµ¿Σ¿µ¿α«óá¡ Γ¿» WS_VISIBLE, ΓᬠτΓ«
- »α¿ ß«ºñá¡¿¿ í½«¬á π»αáó½Ñ¡¿∩ «¡ ¿¡ñ¿µ¿απÑΓß∩. êñÑ¡Γ¿Σ¿¬áΓ«α
- í½«¬á π»αáó½Ñ¡¿∩ αáóÑ¡ ICANCEL. ¥Γá ¬«¡ßΓá¡Γá «»αÑñѽѡá ó
- Σá⌐½Ñ windows.h ¿ »αÑñ¡áº¡áτÑ¡á ñ½∩ ¿ß»«½∞º«óá¡¿∩ ß
- á½∞ΓÑα¡áΓ¿ó¡δ¼¿ ¬½áó¿ΦἿ , Γᬿ¼¿ ¬á¬ ¬½áó¿Φá "Cancel".
-
- ǽ∞ΓÑα¡áΓ¿ó¡δÑ ¬½áó¿Φ¿ »« π¼«½τá¡¿ε.
-
- ǽ∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½τá¡¿ε «íδτ¡« ¿ß»«½∞ºπÑΓß∩
- ñ½∩ Γ«ú«, τΓ«íδ ñáΓ∞ »«½∞º«óáΓѽε 󫺼«ª¡«ßΓ∞ ß¿ú¡á½¿º¿α«óáΓ∞
- «í «¬«¡τá¡¿¿ ¡Ñ¬«Γ«α«⌐ αáí«Γδ, ¡á»α¿¼Ñα Γᬫ⌐, ¬á¬ ºá»¿ß∞ ó
- αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ¿¼Ñ¡¿ Σá⌐½á. ü½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
- á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½τá¡¿ε (Γá¬ªÑ ¬á¬ ¿ ñαπú¿Ñ Γ¿»δ
- ¬½áó¿Φ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩) «ΓóÑτáεΓ ¡á óó«ñ «Γ "¼δΦ¿" ¿½¿
- ¬½áó¿áΓπαδ. àß½¿ »«½∞º«óáΓѽ∞ »ÑαѼÑΘáÑΓ ¬παß«α "¼δΦ¿" ó í½«¬
- π»αáó½Ñ¡¿∩ ¿ ¡áª¿¼áÑΓ ¬¡«»¬π ¡á ¡Ñ⌐, ¬½áó¿Φá »«ßδ½áÑΓ
- πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ BN_CLICKED α«ñ¿Γѽ∞߬«¼π «¬¡π. è½áó¿Φá
- ¡Ñ ñ«½ª¡á ºáσóáΓδóáΓ∞ óó«ñ ñ½∩ «ΓóÑΓá ¡á ñÑ⌐ßΓó¿∩ ß "¼δΦ∞ε", ¡«
- φΓ« ¡Ñ«íσ«ñ¿¼« ñѽáΓ∞ ó «ΓóÑΓ ¡á óó«ñ ß ¬½áó¿áΓπαδ. ä½∩ Γ«ú«,
- τΓ«íδ ñáΓ∞ 󫺼«ª¡«ßΓ∞ »«½∞º«óáΓÑ½ε ¿ß»«½∞º«óáΓ∞ ¬½áó¿áΓπαπ,
- ¡Ñ«íσ«ñ¿¼« ºáσóáΓ¿Γ∞ óó«ñ ñ½∩ ¬½áó¿Φ¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SetFocus. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ºáΓѼ ¡áªáΓ∞ ¬½áó¿Φπ »α«íѽá ñ½∩
- Γ«ú«, τΓ«íδ »«íπñ¿Γ∞ ¬½áó¿Φπ »«ß½áΓ∞ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ
- BN_CLICKED α«ñ¿Γѽ∞߬«¼π «¬¡π.
-
- 櫺ñá¡¿Ñ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿Φ¿ »« π¼«½τá¡¿ε ó« ¼¡«ú«¼
- á¡á½«ú¿τ¡« ß«ºñá¡¿ε «íδτ¡«⌐ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿Φ¿. ô¬áª¿ΓÑ
- ¬½áßß í½«¬á π»αáó½Ñ¡¿∩ "Button", á Γ¿» π¬áª¿ΓÑ ó »áαá¼ÑΓαÑ
- dwStyle Σπ¡¬µ¿¿ CreateWindow. ìá»α¿¼Ñα, »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ ó맮ó
- Σπ¡¬µ¿¿ CreateWindow ß«ºñáÑΓ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á
- á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½τá¡¿ε ß ¼ÑΓ¬«⌐ "Oè":
-
- HWND hDefButton;
- . . .
- hDefButton=CreateWindow("Button", "Oè",
- BS_DEFPUSHBUTTON ! WS_CHILD ! WS_VISIBLE,
- 20, 40, 30, 12, hWnd, IDOK, hInstance, NULL);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ ß»Ñµ¿Σ¿µ¿α«óá¡ Γ¿» WS_VISIBLE, ΓᬠτΓ«
- »α¿ ß«ºñá¡¿¿ í½«¬á π»αáó½Ñ¡¿∩ «¡ ¿¡ñ¿µ¿απÑΓß∩. ID í½«¬á π»-
- αáó½Ñ¡¿∩ αáóÑ¡ IDOK. ¥Γá ¬«¡ßΓá¡Γá «»αÑñѽѡá ó Σá⌐½Ñ
- windows.h ¿ »αÑñ¡áº¡áτÑ¡á ñ½∩ ¿ß»«½∞º«óá¡¿∩ ß á½∞ΓÑα¡áΓ¿ó¡δ-
- ¼¿ ¬½áó¿ΦἿ »« π¼«½τá¡¿ε, Γᬿ¼¿ ¬á¬ ¬½áó¿Φá "Oè".
-
- Åá¡Ñ½∞ ¬«¡Γα«½∩.
-
- Åá¡Ñ½∞ ¬«¡Γα«½∩ «íδτ¡« ¿ß»«½∞ºπÑΓß∩ ñ½∩ óδí«αá ¡Ñ¬«Γ«α«ú«
-
- Windows 3.0/pg/2#3 = 15 =
-
- »áαá¼ÑΓαá, »α¿¼Ñ¡∩Ѽ«ú« ó ñá¡¡«⌐ ºáñáτÑ. Å« ß«ú½áΦÑ¡¿ε ó¡πΓα¿
- úαπ»»δ »á¡Ñ½Ñ⌐ ¬«¡Γα«½∩ ¼«ª¡« óδíαáΓ∞ í«½ÑÑ «ñ¡«ú« »áαá¼ÑΓαá.
- (ä½∩ »αÑñßΓáó½Ñ¡¿∩ »áαá¼ÑΓα«ó, ó ¬«Γ«αδσ ¼«ª¡« óδíαáΓ∞ Γ«½∞¬«
- «ñ¿¡, ¿ß»«½∞ºπ⌐ΓÑ í½«¬¿ π»αáó½Ñ¡¿∩ Γ¿»á ¬½áó¿Φ¿ πßΓá¡«ó¬¿.)
-
- ìá»α¿¼Ñα, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ úαπ»»π »á¡Ñ½Ñ⌐ ¬«¡Γα«½∩ ñ½∩
- Γ«ú«, τΓ«íδ ñáΓ∞ 󫺼«ª¡«ßΓ∞ »«½∞º«óáΓѽε óδíαáΓ∞ »áαá¼ÑΓαδ
- Φα¿ΣΓá ñ½∩ «»Ñαᵿ¿ óδó«ñá. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ óδíαáΓ∞ ¬á¬
- å¿α¡δ⌐ Φα¿ΣΓ, Γᬠ¿ èπαß¿ó, π¬áºáó "Bold" ¿ "Italic".
-
- ¡« ß«ºñáΓ∞ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á »á¡Ñ½∞ ¬«¡Γα«½∩,
- ¿ß»«½∞ºπ∩ Γ¿» BS_CHECKBOX, ¬á¬ ó »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ:
-
- #define ID_ITALIC 201
- HWND hCheckBox;
- .
- .
- .
- hCheckBox=CreateWindow("Button", "èπαß¿ó",
- BS_CHECKBOX ! WS_CHILD ! WS_VISIBLE,
- 20, 40, 80, 20, hWnd, ID_ITALIC, hInstance,
- NULL);
-
- é φΓ«¼ »α¿¼ÑαÑ ¼ÑΓ¬á »á¡Ñ½¿ ¬«¡Γα«½∩ - "èπαß¿ó", á
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩ - ID_ITALIC.
-
- Åá¡Ñ½∞ ¬«¡Γα«½∩ «ΓóÑτáÑΓ ¡á óó«ñ «Γ "¼δΦ¿" ¿½¿ ¬½áó¿áΓπαδ
- ó« ¼¡«ú«¼ ΓᬪÑ, ¬á¬ ¿ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á á½∞ΓÑα¡áΓ¿ó¡á∩
- ¬½áó¿Φá. äαπú¿¼¿ ß½«óἿ, «¡á »«ßδ½áÑΓ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ
- α«ñ¿Γѽ∞߬«¼π «¬¡π, ¬«úñá »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬½áó¿Φ¡δ⌐ í½«¬
- π»αáó½Ñ¡¿∩ ¿½¿ ¬½áó¿Φπ »α«íѽá. Äñ¡á¬« »á¡Ñ½∞ ¬«¡Γα«½∩ ¼«ªÑΓ
- ¿¡ñ¿µ¿α«óáΓ∞ ¼ÑΓ¬π "ò" ñ½∩ Γ«ú«, τΓ«íδ »«¬áºáΓ∞, τΓ« «¡á ó
- ñá¡¡δ⌐ ¼«¼Ñ¡Γ ó¬½ετÑ¡á (óδíαá¡á).
-
- ¡« »«íπñ¿Γ∞ í½«¬ π»αáó½Ñ¡¿∩ »«¬áºáΓ∞ «Γ¼ÑΓ¬π,
- ¿ß»«½∞ºπ∩ ß««íΘÑ¡¿Ñ BM_SETCHECK. ¡« Γá¬ªÑ »α«óÑα¿Γ∞, ¿¼ÑÑΓ
- ½¿ »á¡Ñ½∞ ¬«¡Γα«½∩ «Γ¼ÑΓ¬π, ¿ß»«½∞ºπ∩ ß««íΘÑ¡¿Ñ BM_GETCHECK.
- ìá»α¿¼Ñα, ñ½∩ »«¼ÑΘÑ¡¿∩ «Γ¼ÑΓ¬¿ ó »á¡Ñ½∞ ¬«¡Γα«½∩ ¿ß»«½∞ºπ⌐ΓÑ
- ß½ÑñπεΘπε Σπ¡¬µ¿ε:
-
- SendMessage(hCheckBox, BM_SETCHECK, 1, 0L);
-
- ¥Γ« «º¡áτáÑΓ, τΓ« ¼«ª¡« »«¼ÑßΓ¿Γ∞ ¿½¿ πñ὿Γ∞ «Γ¼ÑΓ¬π ¿º
- »á¡Ñ½¿ ¬«¡Γα«½∩ ó ½εí«⌐ ¼«¼Ñ¡Γ (¡á»α¿¼Ñα, ¬«úñá Σπ¡¬µ¿∩
- α«ñ¿Γѽ∞߬«ú« «¬¡á »«½πτáÑΓ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ BN_CLICKED).
- Windows Γá¬ªÑ «íÑß»Ñτ¿óáÑΓ αѪ¿¼ BS_AUTOCHECKBOX, ¬«Γ«αδ⌐
- ß½πª¿Γ ñ½∩ áóΓ«¼áΓ¿τÑ߬«ú« αẼÑΘÑ¡¿∩ ¿½¿ πñá½Ñ¡¿∩ ¬«¡Γα«½∞¡«⌐
- «Γ¼ÑΓ¬¿.
-
- è½áó¿Φ¿ πßΓá¡«ó¬¿.
-
- ü½«¬¿ π»αáó½Ñ¡¿∩ Γ¿»á ¬½áó¿Φá πßΓá¡«ó¬¿ αáí«ΓáεΓ ó« ¼¡«ú«¼
- ΓᬪÑ, ¬á¬ ¿ »á¡Ñ½¿ ¬«¡Γα«½∩. Äñ¡á¬«, ¬½áó¿Φ¿ πßΓá¡«ó¬¿ «íδτ¡«
-
- Windows 3.0/pg/2#3 = 16 =
-
- ¿ß»«½∞ºπεΓß∩ úαπ»»á¼¿, ¬«Γ«αδÑ »αÑñßΓáó½∩εΓ óºá¿¼¡« ¿ß¬½ετáεΘ¿Ñ
- 󫺼«ª¡«ßΓ¿. ìá»α¿¼Ñα, óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ úαπ»»π ¬½áó¿Φ
- πßΓá¡«ó¬¿ ñ½∩ Γ«ú«, τΓ«íδ ñáΓ∞ »«½∞º«óáΓѽε 󫺼«ª¡«ßΓ∞ π¬áºáΓ∞
- óδαáó¡¿óá¡¿Ñ ΓѬßΓá (ó½Ñó«, ó»αáó« ¿½¿ »« µÑ¡Γαπ). è½áó¿Φ¿
- πßΓá¡«ó¬¿ »«ºó«½∩εΓ »«½∞º«óáΓѽε óδíαáΓ∞ Γ«½∞¬« «ñ¿¡ Γ¿»
- óδαáó¡¿óá¡¿∩.
-
- è½áó¿Φá πßΓá¡«ó¬¿ ß«ºñáÑΓß∩ á¡á½«ú¿τ¡« ñαπú¿¼ í½«¬á¼
- π»αáó½Ñ¡¿∩. ô¬áª¿ΓÑ ¬½áßß "Button" ó ¬áτÑßΓóÑ ¬½áßßá «¬¡á ¿
- π¬áª¿ΓÑ Γ¿» »«ßαÑñßΓó«¼ »áαá¼ÑΓαá dwStyle. ìá»α¿¼Ñα, ¡¿ªÑ
- »α¿óÑñÑ¡δ «»ÑαáΓ«αδ, ß«ºñáεΘ¿Ñ ¬½áó¿Φπ πßΓá¡«ó¬¿ ß ΓѬßΓ«¼
- "Right":
-
- HWND hRightJustifyButton;
- #define IDC_RIGHTJUST
- .
- .
- .
- hRightJustifyButton = CreateWindow("Button", "Right",
- BS_RADIOBATTON | WS_CHILD | WS_VISIBLE,
- 20, 40, 80, 20, IDC_RIGHTJUST, hInstance, NULL);
-
- èᬠ¿ ó ß½πτáÑ ß »á¡Ñ½∞ε ¬«¡Γα«½∩ óδ ¼«ªÑΓÑ »«ß½áΓ∞
- ¬½áó¿ΦÑ πßΓá¡«ó¬¿ ß««íΘÑ¡¿Ñ BM_SETCHECK, τΓ«íδ ¬½áó¿Φá
- πßΓá¡«ó¬¿ «Γ«íαế½á »«¼ÑΓ¬π («íδτ¡« ºá¬αáΦÑ¡¡δ⌐ ¬α𪫬).
- Æá¬ªÑ, »«ß¬«½∞¬π ¬½áó¿Φá πßΓá¡«ó¬¿ »αÑñ«ßΓáó½∩ÑΓ ó«º¼«ª¡«ßΓ∞
- óδí«αá ¿º óºá¿¼¡« ¿ß¬½ετáεΘ¿σ 󫺼«ª¡«ßΓÑ⌐, Γ« ¡Ñ«íσ«ñ¿¼«
- »«ß½áΓ∞ ß««íΘÑ¡¿Ñ BM_SETCHECK ¬½áó¿ΦÑ, ¬«Γ«αá∩ íδ½á óδíαá¡á ñ«
- φΓ«ú« (Ñß½¿ Γá¬á∩ íδ½á), τΓ«íδ ßíα«ß¿Γ∞ «Γ¼ÑΓ¬π. éδ ¼«ªÑΓÑ
- «»αÑñѽ¿Γ∞, ¬á¬á∩ ¿º ¬½áó¿Φ πßΓá¡«ó¬¿ íδ½á óδíαá¡á, »«ßδ½á∩
- ¬áªñ«⌐ ¬½áó¿ΦÑ ó úαπ»»Ñ ß««íΘÑ¡¿Ñ BM_GETCHECK.
-
- é »á¡Ñ½¿ ñ¿á½«úá óδ ¼«ªÑΓÑ ß«ºñáΓ∞ ¬½áó¿Φπ πßΓá¡«ó¬¿ ß
- Γ¿»«¼ BS_AUTORADIOBUTTON. àß½¿ óßÑ ¬½áó¿Φ¿ πßΓá¡«ó¬¿ ó úαπ»»Ñ
- ¿¼ÑεΓ φΓ«Γ Γ¿», Windows áóΓ«¼áΓ¿τÑ߬¿ πñá½¿Γ ßΓáαπε «Γ¼ÑΓ¬π »α¿
- óδí«αÑ ¡«ó«ú« φ½Ñ¼Ñ¡Γá.
-
- ä½∩ »α«óÑન ¿ πñá½Ñ¡¿∩ «Γ¼ÑΓ«¬ ß ¬½áó¿Φ πßΓá¡«ó¬¿ ó
- »á¡Ñ½¿ ñ¿á½«úá óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε CheckRadioButton.
- Åα¿ ó맮óÑ Σπ¡¬µ¿¿ CheckRadioButton óδ »ÑαÑñáÑΓÑ Ñ⌐
- ¿ñÑ¡Γ¿Σ¿¬áΓ«αδ »Ñαó«⌐ ¿ »«ß½Ññ¡Ñ⌐ ¬½áó¿Φ¿ πßΓá¡«ó¬¿ ó úαπ»»Ñ, á
- Γá¬ªÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α ¬½áó¿Φ¿ ó φΓ«¼ ñ¿á»áº«¡Ñ, ¬«Γ«αá∩ ñ«½ª¡á
- íδΓ∞ »«¼ÑτÑ¡á. Windows πñá½∩ÑΓ «Γ¼ÑΓ¬¿ ß« óßÑσ ¬½áó¿Φ ó
- π¬áºá¡¡«¼ ñ¿á»áº«¡Ñ ¿ »«¼ÑτáÑΓ ñá¡¡πε ¬½áó¿Φπ. ìá»α¿¼Ñα, ó
- úαπ»»Ñ ¬½áó¿Φ πßΓá¡«ó¬¿, »αÑñßΓáó½∩εΘ¿σ óδαáó¡¿óá¡¿Ñ ΓѬßΓá, óδ
- ¼«ªÑΓÑ óδºóáΓ∞ Σπ¡¬µ¿ε CheckRadioButton ñ½∩ «Γ¼ÑΓ¬¿ ¬½áó¿Φ¿
- "Right". ¥Γ« ñѽáÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- CheckRadioButton(hDlg, ID_RIGHTLEFTJUST, ID_LEFTJUST,
- ID_RIGHTJUST);
-
- é φΓ«¼ »α¿¼ÑαÑ CheckRadioButton «Γ¼ÑτáÑΓ ¬½áó¿Φπ πßΓá¡«ó¬¿
- ß ¿ñÑ¡Γ¿Σ¿¬áΓ«α«¼ ID_RIGHTJUST ¿ πñá½∩ÑΓ óßÑ «Γ¼ÑΓ¬¿ ß ¬½áó¿Φ ó
-
- Windows 3.0/pg/2#3 = 17 =
-
- ñ¿á»áº«¡Ñ «Γ ID_RIGHTLEFTJUST ñ« ID_LEFTJUST.
-
- è½áó¿Φ¿, α¿ßπѼδÑ ó½áñѽ∞µÑ¼.
-
- É¿ßπѼδÑ ó½áñѽ∞µÑ¼ ¬½áó¿Φ¿ á¡á½«ú¿τ¡δ «ßΓá½∞¡δ¼ Γ¿»á¼
- ¬½áó¿Φ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ«
- »α¿¬½áñ¡á∩ »α«úαá¼¼á «ΓóÑτáÑΓ ºá »«ññÑ᪬π ó¿ñá ¬½áó¿Φ¿,
- ó¬½ετá∩ ΓÑ ¼«¼Ñ¡Γδ, ¬«úñá ¬½áó¿Φá ºáσóáΓδóáÑΓ óó«ñ, ñѽáÑΓß∩
- ¡Ññ«ßΓπ»¡«⌐ ¿½¿ ¬«úñá ÑÑ óδí¿αáεΓ. Windows »α«ßΓ« ß««íΘáÑΓ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, ¬«úñá »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬¡«»¬π ¼δΦ¿,
- ¬«úñá ÑÑ ¬παß«α ¡áσ«ñ¿Γß∩ ¡á φΓ«⌐ ¬½áó¿ΦÑ.
-
- ä½∩ ß«ºñá¡¿∩ ¬½áó¿Φ¿, α¿ßπѼ«⌐ ó½áñѽ∞µÑ¼, ¿ß»«½∞ºπÑΓß∩
- Γ¿» BS_OWNERDRAW, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
-
- hMyOwnButton = CreateWindow("Button", NULL,
- BS_OWNERDRAW | WS_CHILD | WS_VISIBLE,
- 20, 40, 30, 12, hWnd, ID_MYBUTTON,
- hInstance, NULL);
-
- è«úñá 󫺡¿¬áÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞ ¡áα¿ß«óáΓ∞ ¬½áó¿Φπ, Windows
- »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_DRAWITEM «¬¡π, ¬«Γ«α«¼π »α¿¡áñ½Ñª¿Γ
- ñá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩. Åáαá¼ÑΓα lParam ß««íΘÑ¡¿∩ WM_DRAWITEM
- ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ ñá¡¡δσ Γ¿»á DRAWITEMSTRUCT. ¥Γá
- ßΓαπ¬Γπαá ¬α«¼Ñ óßÑú« »α«τÑú« ß«ñÑαª¿Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á
- π»αáó½Ñ¡¿∩, º¡áτÑ¡¿Ñ, «»αÑñѽ∩εΘÑÑ Γ¿» ΓαÑíπѼ«⌐ «»Ñαᵿ¿
- α¿ß«óá¡¿∩, º¡áτÑ¡¿Ñ, «»αÑñѽ∩εΘÑÑ ß«ßΓ«∩¡¿Ñ ¬½áó¿Φ¿,
- »α∩¼«πú«½∞¡¿¬, ∩ó½∩εΘ¿⌐ß∩ úαá¡¿µÑ⌐ ¬½áó¿Φ¿, ¿ ñÑß¬α¿»Γ«α
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ñ½∩ ñá¡¡«⌐ ¬½áó¿Φ¿.
-
- é «ΓóÑΓ ¡á »«½πτÑ¡¿Ñ ß««íΘÑ¡¿∩ WM_DRAWITEM óáΦá »α«úαá¼¼á
- ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ñÑ⌐ßΓó¿∩:
-
- 1. Ä»αÑñѽ¿Γ∞ Γ¿» ΓαÑíπѼ«⌐ «»Ñαᵿ¿ α¿ß«óá¡¿∩. ä½∩ φΓ«ú«
- »α«óÑα∞ΓÑ ß«ñÑন¼«Ñ »«½∩ itemAction ßΓαπ¬Γπαδ ñá¡¡δσ
- DRAWITEMSTRUCT.
-
- 2. ìáα¿ßπ⌐ΓÑ ¬½áó¿Φπ ß««ΓóÑΓßΓóπεΘ¿¼ «íαẫ¼, ¿ß»«½∞ºπ∩
- »α∩¼«πú«½∞¡¿¬, «úαá¡¿τ¿óáεΘ¿⌐ ¬½áó¿Φπ ¿ ¬«¡ΓѬßΓ
- πßΓα«⌐ßΓóá, »«½πτÑ¡¡δÑ ¿º ßΓαπ¬Γπαδ DRAWITEMSTRUCT.
-
- 3. é«ßßΓá¡«ó¿ΓÑ «íΩѬΓδ GDI, óδíαá¡¡δÑ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá.
-
- ìá»α¿¼Ñα, ¬«úñá ¬½áó¿Φá ΓÑα∩ÑΓ ºáσóáΓ óó«ñá, Windows
- »«ßδ½áÑΓ ó »«½Ñ itemAction ßΓαπ¬Γπαδ ñá¡¡δσ DRAWITEMSTRUCT
- º¡áτÑ¡¿Ñ ODA_FOCUS, ¡« ¡Ñ πßΓá¡áó½¿óáÑΓ í¿Γ ODS_FOCUS ó »«½Ñ
- itemState. çáΓѼ óáΦá »α«úαá¼¼á ñ«½ª¡á ¡áα¿ß«óáΓ∞ ¬½áó¿Φπ Γᬿ¼
- «íαẫ¼, τΓ«íδ »«¬áºáΓ∞, τΓ« «¡á »«ΓÑα∩½á ºáσóáΓ óó«ñá.
-
- âαπ»»«óδÑ í½«¬¿.
-
- âαπ»»«ó«⌐ í½«¬ - φΓ« »α∩¼«πú«½∞¡¿¬, ºá¬½ετáεΘ¿⌐ ñóÑ ¿½¿
-
- Windows 3.0/pg/2#3 = 18 =
-
- í«½ÑÑ ºáó¿ß¿¼δσ ¬½áó¿Φ ¿½¿ ñαπú¿σ í½«¬«ó π»αáó½Ñ¡¿∩. éδ ¼«ªÑΓÑ
- »«ß½áΓ∞ úαπ»»«ó«¼π í½«¬π ß««íΘÑ¡¿Ñ WM_SETTEXT, τΓ«íδ »«¼ÑßΓ¿Γ∞
- ó »αáóδ⌐ óÑασ¡¿⌐ πú«½ ºáú«½«ó«¬. âαπ»»«óδÑ í½«¬¿ ¡Ñ «ΓóÑτáεΓ ¡á
- óó«ñ «Γ »«½∞º«óáΓѽ∩, Γ.Ñ. «¡¿ ¡Ñ »«ßδ½áεΓ πóÑñ«¼½∩εΘ¿σ
- ß««íΘÑ¡¿⌐.
- 8.4.2 êß»«½∞º«óá¡¿Ñ ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩.
-
- æΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩ - φΓ« ¡Ñí«½∞Φ«Ñ «¬¡«,
- ß«ñÑαªáΘÑÑ ΓѬßΓ ¿½¿ ¿º«íαáªÑ¡¿Ñ. æΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩
- «íδτ¡« ¿ß»«½∞ºπÑΓß∩ ñ½∩ »«¼ÑΓ¬¿ ¡Ñ¬«Γ«α«ú« ñαπú«ú« í½«¬á
- π»αáó½Ñ¡¿∩ ¿½¿ ñ½∩ ß«ºñá¡¿∩ »á¡Ñ½Ñ⌐ ¿ ½¿¡¿⌐, ¬«Γ«αδÑ «Γñѽ∩εΓ
- «ñ¡π úαπ»»π í½«¬«ó π»αáó½Ñ¡¿∩ «Γ ñαπú«⌐.
-
- ìá¿í«½ÑÑ τáßΓ« ¿ß»«½∞ºπѼδ⌐ ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩ -
- SS_LEFT. ¥Γ« óδαáó¡Ñ¡¡á∩ ó½Ñó« ßΓ᫬á ΓѬßΓá. ÆÑ¬ßΓ
- ºá»¿ßδóáÑΓß∩, ¡áτ¿¡á∩ ß ½Ñó«ú« ¬«¡µá í½«¬á π»αáó½Ñ¡¿∩,
- ¿¡ñ¿µ¿απ∩ ßΓ«½∞¬« ß¿¼ó«½«ó, ߬«½∞¬« óσ«ñ¿Γ ó í½«¬ π»αáó½Ñ¡¿∩ ¿
- «íαѺá∩ «ßΓá½∞¡«Ñ. ä½∩ ΓѬßΓá í½«¬ π»αáó½Ñ¡¿∩ ¿ß»«½∞ºπÑΓ
- ß¿ßΓѼ¡δÑ Φα¿ΣΓδ Γá¬, τΓ« ¼«ª¡« óδτ¿ß½¿Γ∞ αẼÑαδ í½«¬á
- π»αáó½Ñ¡¿∩, »«½πτ¿ó σáαá¬ΓÑα¿ßΓ¿¬¿ φΓ«ú« Φα¿ΣΓá (í«½ÑÑ »«ñα«í¡«
- ß¼. ú½áóπ 18 "ÿα¿ΣΓδ").
-
- Å«ñ«í¡« úαπ»»«óδ¼ »á¡Ñ½∩¼ ßΓáΓ¿τÑ߬¿Ñ í½«¬¿ π»αáó½Ñ¡¿∩ ¡Ñ
- «ΓóÑτáεΓ ¡á óó«ñ «Γ »«½∞º«óáΓѽ∩; Γ.Ñ. »α¿ óδí«α¬Ñ «¡¿ ¡Ñ
- úÑ¡Ñα¿απεΓ πóÑñ«¼½∩εΘ¿σ ß««íΘÑ¡¿⌐. Äñ¡á¬« ¿¼ÑÑΓß∩ 󫺼«ª¡«ßΓ∞ ó
- ½εí«⌐ ¼«¼Ñ¡Γ óαѼѡ¿ ¿º¼Ñ¡¿Γ∞ ó¡ÑΦ¡¿⌐ ó¿ñ ¿ αáß»«½«ªÑ¡¿Ñ
- ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩. ìá»α¿¼Ñα, ¼«ª¡« ¿º¼Ñ¡¿Γ∞ ΓѬßΓ,
- ßó∩ºá¡¡δ⌐ ß« ßΓáΓ¿τÑ߬¿¼ í½«¬«¼ π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- SetWindowText ¿½¿ ß««íΘÑ¡¿Ñ WM_SETTEXT.
- 8.4.3 êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐ »ÑαÑτ¡Ñ⌐.
-
- Åá¡Ñ½∞ »ÑαÑτ¡∩ - φΓ« í½«¬ π»αáó½Ñ¡¿∩ ñ½∩ »ÑαÑτ¡∩
- ß¿¼ó«½∞¡δσ ßΓ᫬, Γᬿσ ¬á¬ ¿¼Ñ¡á Σá⌐½«ó. Äíδτ¡« »á¡Ñ½∞ »ÑαÑτ¡∩
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩ »ÑαÑτ¡∩ φ½Ñ¼Ñ¡Γ«ó, ¿º ¬«Γ«αδσ
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδíαáΓ∞ «ñ¡« ¿½¿ ¡Ñ߬«½∞¬«. ê¼ÑÑΓß∩
- ¡Ñ߬«½∞¬« Γ¿»«ó »Ñ¡Ñ½Ñ⌐ »ÑαÑτ¡∩. ìá¿í«½ÑÑ π»«ΓαÑí¿Γѽ∞¡δ¼¿
- Γ¿»á¼¿ ∩ó½∩εΓß∩:
-
- Æ¿» Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- LBS_BORDER Åá¡Ñ½∞ »ÑαÑτ¡∩ ß «¬á¡Γ«ó¬«⌐ ó«¬απú ¡ÑÑ.
-
- LBS_NOTIFY Åá¡Ñ½∞ »ÑαÑτ¡∩ »«ßδ½áÑΓ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩
- α«ñ¿Γѽ∞߬«¼π «¬¡π »α¿ óδí«αÑ φ½Ñ¼Ñ¡Γá
- »«½∞º«óáΓѽѼ.
-
- LBS_SORT Åá¡Ñ½∞ »ÑαÑτ¡∩ ß «Γß«αΓ¿α«óá¡¡δ¼¿ ó á½Σáó¿Γ¡«¼
- »«α∩ñ¬Ñ φ½Ñ¼Ñ¡ΓἿ.
-
- WS_SCROLL Åá¡Ñ½∞ »ÑαÑτ¡∩ ¿¼ÑÑΓ óÑαΓ¿¬á½∞¡πε ßΓ᫬π »α«-
- ¬απΓ¬¿.
- ───────────────────────────────────────────────────────────────
-
- Windows 3.0/pg/2#3 = 19 =
-
-
- ¥Γ¿ Γ¿»δ ó¬½ετÑ¡δ ó »á¡Ñ½∞ »ÑαÑτ¡∩ Γ¿»á LBS_STANDART. é
- ß½ÑñπεΘѼ »α¿¼ÑαÑ ß«ºñáÑΓß∩ ßΓá¡ñáαΓ¡á∩ »á¡Ñ½∞ »ÑαÑτ¡∩:
-
- HWND hListBox;
- #define IDC_LISTBOX 203
- .
- .
- .
- hListBox = CreateWindow("Listbox", NULL,
- LBS_STANDART | WS_CHILD | WS_VISIBLE,
- 20, 40, 120, 56, hWnd, IDC_LISTBOX,
- hInstance, NULL);
-
- ä«íáó½Ñ¡¿Ñ ßΓ᫬¿ ¬ »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- ¡« ñ«íáó¿Γ∞ ßΓப㠪 »á¡Ñ½¿ »ÑαÑτ¡∩, ¿ß»«½∞ºπ∩
- ß««íΘÑ¡¿Ñ LB_ADDSTRING. ¥Γ« ß««íΘÑ¡¿Ñ ¬«»¿απÑΓ ñá¡¡πε ßΓ᫬π ó
- »á¡Ñ½∞ »ÑαÑτ¡∩, ¬«Γ«αá∩ ¿¡ñ¿µ¿απÑΓ ÑÑ ó ß«ßΓáóÑ »ÑαÑτ¡∩. àß½¿
- »á¡Ñ½∞ »ÑαÑτ¡∩ ¿¼ÑÑΓ Γ¿» LBS_SORT, ßΓ᫬á ß«αΓ¿απÑΓß∩ ó
- á½Σáó¿Γ¡«¼ »«α∩ñ¬Ñ, ¿¡áτÑ «¡á »α«ßΓ« ñ«íáó½∩ÑΓß∩ ó ¬«¡Ñµ
- ß»¿ß¬á. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ñ«íáó¿Γ∞
- ßΓ᫬π:
-
- int nIndex;
- .
- .
- .
- nIndex=SendMessage(hListBox,
- LB_ADDSTRING, NULL,
- (LONG)(LPSTR) "Horseradish");
-
- ¥Γ« ß««íΘÑ¡¿Ñ ó«ºóαáΘáÑΓ µÑ½«Ñ, »αÑñßΓáó½∩εΘÑÑ ¿¡ñѬß
- ßΓ᫬¿ ó »ÑαÑτ¡Ñ. ¡« ¿ß»«½∞º«óáΓ∞ φëà ¿¡ñÑ¬ß ó »«ß½ÑñπεΘ¿σ
- ß««íΘÑ¡¿∩σ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ ßΓ᫬¿, ¡« Γ«½∞¬«
- ñ« ΓÑσ »«α, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ ñ«íáó¿Γ, πñá½¿Γ ¿½¿ óßΓáó¿Γ
- ñαπúπε ßΓ᫬π, Γᬠ¬á¬ φΓ¿ ñÑ⌐ßΓó¿∩ ¼«úπΓ ¿º¼Ñ¡¿Γ∞ ¿¡ñѬß
- ßΓ᫬¿.
-
- ôñá½Ñ¡¿Ñ ßΓ᫬¿ ¿º »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- ¡« πñ὿Γ∞ ßΓα«¬π ¿º »á¡Ñ½¿ »ÑαÑτ¡∩, ºáñáó ¿¡ñÑ¬ß ß
- ß««íΘÑ¡¿Ñ¼ LB_DELETESTRING, ¬á¬ φΓ« ßñѽᡫ ó ß½ÑñπεΘѼ
- »α¿¼ÑαÑ:
-
- SendMessage(hListBox, LB_DELETESTRING, nIndex,
- (LPSTR)NULL);
-
- éδ ¼«ªÑΓÑ ñ«íáó¿Γ∞ ßΓ᫬π ó »á¡Ñ½∞ »ÑαÑτ¡∩, »«ß½áó
- ß««íΘÑ¡¿Ñ LB_INSERTSTRING. é «Γ½¿τ¿Ñ «Γ ß««íΘÑ¡¿∩ LP_ADDSTRING,
- LB_INSERTSTRING »«ºó«½∩ÑΓ óá¼ «»αÑñѽ¿Γ∞, ¬πñá ¡Ñ«íσ«ñ¿¼«
- óßΓáó¿Γ∞ ßΓ᫬π ó »á¡Ñ½¿ »ÑαÑτ¡∩. Åα¿ »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩
-
- Windows 3.0/pg/2#3 = 20 =
-
- ß««íΘÑ¡¿Ñ LB_INSERTSTRING »á¡Ñ½∞ »ÑαÑτ¡∩ ¡Ñ »α«¿ºó«ñ¿Γ
- ß«αΓ¿α«ó¬¿ φ½Ñ¼Ñ¡Γ«ó, ñáªÑ Ñß½¿ «¡á ¿¼ÑÑΓ Γ¿» LBS_SORT.
-
- ä«íáó½Ñ¡¿Ñ ¬ »á¡Ñ½¿ »ÑαÑτ¡∩ ¿¼Ñ¡ Σá⌐½«ó.
-
- èᬠπªÑ í佫 ߬áºá¡« αá¡∞ΦÑ, τáΘÑ óßÑú« »á¡Ñ½¿ »ÑαÑτ¡∩
- ¿ß»«½∞ºπεΓß∩ ñ½∩ óδó«ñá ß»¿ß¬á ¿¼Ñ¡ Σá⌐½«ó, ñ¿αÑ¬Γ«α¿⌐ ¿/¿½¿
- ¿ñÑ¡Γ¿Σ¿¬áΓ«α«ó ñ¿ß¬«ó«ñ«ó. æ««íΘÑ¡¿Ñ LB_DIR ß««íΘáÑΓ »á¡Ñ½¿
- »ÑαÑτ¡∩, τΓ« «¡á ñ«½ª¡á ºá»«½¡¿Γ∞ ßÑí∩ Γᬫ⌐ ¿¡Σ«α¼áµ¿Ñ⌐.
- Åáαá¼ÑΓα wParam φΓ«ú« ß««íΘÑ¡¿∩ ß«ñÑαª¿Γ áΓα¿íπΓδ Σá⌐½«ó DOS, á
- lParam ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ßΓ᫬π, ß«ñÑαªáΘπε ߻ѵ¿Σ¿¬áµ¿ε
- Σá⌐½á.
-
- ìá»α¿¼Ñα, τΓ«íδ ºá»«½¡¿Γ∞ »á¡Ñ½∞ »ÑαÑτ¡∩ ¿¼Ñ¡á¼¿ óßÑσ
- Σá⌐½«ó ΓѬπΘÑ⌐ ñ¿αÑ¬Γ«α¿¿, ¿¼ÑεΘ¿σ αáßΦ¿αÑ¡¿Ñ .TXT, ¿ »½εß
- ß»¿ß¬«¼ ñ¿αÑ¬Γ«α¿⌐ ¿ ñ¿ß¬«ó«ñ«ó, óδ ñ«½ª¡δ »«ß½áΓ∞ ß««íΘÑ¡¿Ñ
- LB_DIR, ¬á¬ »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
-
- #define FILE_LIST 4010;
- .
- .
- .
- int nFiles;
- .
- .
- .
- nFiles = SendMessage(hListBox, LB_DIR, FILE_LIST,
- (LPSTR)"*.TXT");
-
- 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ »«ß½Ñ »«ß佬¿ ß««íΘÑ¡¿∩ LB_DIR
- «»αÑñѽ∩ÑΓ τ¿ß½« φ½Ñ¼Ñ¡Γ«ó, ¬«Γ«αδÑ ß«ñÑαªáΓß∩ ó »á¡Ñ½¿
- »ÑαÑτ¡∩.
-
- Åα¿¼Ñτá¡¿Ñ: àß½¿ »á¡Ñ½∞ »ÑαÑτ¡∩ »α¿¡áñ½Ñª¿Γ »á¡Ñ½¿
- ñ¿á½«úá, Γ« ñ½∩ óδ»«½¡Ñ¡¿∩ Γ«⌐ ªÑ ºáñáτ¿ óδ ¼«ªÑΓÑ óδºóáΓ∞
- Σπ¡¬µ¿ε DlgDirList.
-
-
- Windows 3.0/pg/2#3 = 21 =
-
- Åá¡Ñ½∞ »ÑαÑτ¡∩ «ΓóÑτáÑΓ ¡á óó«ñ «Γ ¼δΦ¿ ¿ ¬½áó¿áΓπαδ. àß½¿
- »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¡á ¬¡«»¬π ¼δΦ¿ ¿½¿ ¡áª¿¼áÑΓ ¬½áó¿Φπ
- »α«íѽá, ¡áσ«ñ∩ß∞ ¡á ßΓ᫬Ñ, »α«¿ßσ«ñ¿Γ óδí«α¬á ßΓ᫬¿ ¿º
- »á¡Ñ½¿ »ÑαÑτ¡∩, ¡á τΓ« π¬áºδóáÑΓ ¿¡óÑαß¿∩ ΓѬßΓá ßΓ᫬¿ ¿
- πñá½Ñ¡¿Ñ óδí«α¬¿ ß »αÑñδñπΘÑú« óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá.
- Å«½∞º«óáΓѽ∞ ¼«ªÑΓ Γá¬ªÑ ¡áªáΓ∞ ß¿¼ó«½∞¡πε ¬½áó¿Φπ, ¿ íπñÑΓ
- óδíαá¡ ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ, ¬«Γ«αδ⌐ ¡áτ¿¡áÑΓß∩ ß ñá¡¡«ú« ß¿¼ó«½á.
- àß½¿ »á¡Ñ½∞ »ÑαÑτ¡∩ ¿¼ÑÑΓ Γ¿» LBS_NOTIFY, «¡á ÑΘÑ »«ßδ½áÑΓ
- α«ñ¿Γѽ∞߬«¼π «¬¡π πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ LBN_SELCHANGE. àß½¿
- »«½∞º«óáΓѽ∞ ñóáªñδ ¡áª¼ÑΓ ¡á ¬¡«»¬π ¼δΦ¿, ¡áσ«ñ∩ß∞ ¡á ßΓ᫬Ñ,
- ¿ «»αÑñѽѡ Γ¿» LBS_NOTIFY, »á¡Ñ½∞ »ÑαÑτ¡∩ »«ßδ½áÑΓ
- α«ñ¿Γѽ∞߬«¼π «¬¡π ß««íΘÑ¡¿∩ LBN_SELCHANGE ¿ LBN_DBLCLK.
-
- é ½εí«⌐ ¼«¼Ñ¡Γ ¼«ª¡« «»αÑñѽ¿Γ∞ ¿¡ñÑ¬ß óδí¿αáѼ«⌐ ßΓ᫬¿,
- ¿ß»«½∞ºπ∩ ß««íΘÑ¡¿∩ LB_GETCURSEL ¿ LB_GETTEXT. æ««íΘÑ¡¿Ñ
- LB_GETCURSEL ó«ºóαáΘáÑΓ ¿¡ñÑ¬ß óδí«α¬¿ ó »á¡Ñ½¿ »ÑαÑτ¡∩, á
- ß««íΘÑ¡¿Ñ LB_GETTEXT ñѽáÑΓ óδí«α¬π ¿º »á¡Ñ½¿ »ÑαÑτ¡∩, ¬«»¿απ∩
- ÑÑ ó ºáñá¡¡δ⌐ íπΣÑα.
-
-
- Windows 3.0/pg/2#3 = 22 =
-
-
- é Γáí½¿µÑ 8.1 »α¿ó«ñ¿Γß∩ ¿¡ΓÑαΣÑ⌐ß ¬½áó¿áΓπαδ ¿ ¼δΦ¿ ñ½∩
- ßΓá¡ñáαΓ¡«⌐ »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- Æáí½¿µá 8. ê¡ΓÑαΣÑ⌐ß »«½∞º«óáΓѽ∩ ß« ßΓá¡ñáαΓ¡«⌐ »á¡Ñ½∞ε
- »ÑαÑτ¡∩.
- ───────────────────────────────────────────────────────────────
- äÑ⌐ßΓó¿Ñ ÉѺπ½∞ΓáΓ
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿
- ───────────────────────────────────────────────────────────────
- àñ¿¡¿τ¡«Ñ ¡áªáΓ¿Ñ éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ, ¿ πñá½∩ÑΓ óδí«α¬π ß »αÑ-
- ¬¡«»¬¿ ¼δΦ¿ ñδñπΘÑú« óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐
- ÑßΓ∞).
-
- äó«⌐¡«Ñ ¡áªáΓ¿Ñ Ç¡á½«ú¿τ¡« Ññ¿¡¿τ¡«¼π ¡áªáΓ¿ε.
- ¬¡«»¬¿ ¼δΦ¿
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ
- ───────────────────────────────────────────────────────────────
- Åα«íѽ éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ.
-
- è½áó¿Φá ßΓαѽ¬á éδí¿αáÑΓ ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß¬Ñ ¿
- ó»αáó« ¿½¿ 󡿺 πñá½∩ÑΓ óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú«
- φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
-
- è½áó¿Φá ßΓαѽ¬á éδí¿αáÑΓ »αÑñΦÑßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ ó ß»¿ß¬Ñ
- óóÑασ ¿½¿ ó½Ñó« ¿ πñá½∩ÑΓ óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú«
- φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
-
- è½áó¿Φá PgUp Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
- 󡿺 »á¡Ñ½¿ »ÑαÑτ¡∩, óδí¿αáÑΓ »Ñαóδ⌐
- ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ
- óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá
- (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
-
- è½áó¿Φá PgDn Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
- óóÑασ »á¡Ñ½¿ »ÑαÑτ¡∩, óδí¿αáÑΓ »«ß½Ññ¡¿⌐
- ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ
- óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá
- (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
-
- è½áó¿Φá HOME Å᫬απτ¿óáÑΓ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »ÑαÑτ¡∩
- óóÑασ »á¡Ñ½¿, óδí¿αáÑΓ »Ñαóδ⌐ ó¿ñ¿¼δ⌐
- φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ óδí«α¬π
- ß »αÑñδñπΘÑú« óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá (Ñß½¿
- Γᬫ⌐ ÑßΓ∞).
-
- è½áó¿Φá END Å᫬απτ¿óáÑΓ »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »Ñ-
- αÑτ¡∩ 󡿺 »á¡Ñ½¿, óδí¿αáÑΓ »«ß½Ññ¡¿⌐
- ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ß¡¿¼áÑΓ
- óδí«α¬π ß »αÑñδñπΘÑú« óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá
- (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
- ───────────────────────────────────────────────────────────────
-
- Windows 3.0/pg/2#3 = 23 =
-
-
- êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ß ¼¡«ªÑßΓóÑ¡¡«⌐ óδí«α¬«⌐.
-
- Å« π¼«½τá¡¿ε, »á¡Ñ½∞ »ÑαÑτ¡∩ »«ºó«½∩ÑΓ »«½∞º«óáΓѽε
- óδí¿αáΓ∞ «ñ¡«óαѼѡ¡« Γ«½∞¬« «ñ¿¡ φ½Ñ¼Ñ¡Γ. ùΓ«íδ »«½∞º«óáΓѽ∞
- ¼«ú óδíαáΓ∞ «ñ¡«óαѼѡ¡« ¡Ñ߬«½∞¬« φ½Ñ¼Ñ¡Γ«ó, ß«ºñá⌐ΓÑ »á¡Ñ½∞
- »ÑαÑτ¡∩ ß «ñ¡¿¼ ¿º ß½ÑñπεΘ¿σ Γ¿»«ó:
-
- Æ¿» Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- LBS_MULTIPLESEL Åá¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_MULTIPLESET
- »«½¡«ßΓ∞ε á¡á½«ú¿τ¡á ßΓá¡ñáαΓ¡«⌐ »á¡Ñ½¿
- »ÑαÑτ¡∩, ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ«
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ í«½∞ΦÑ, τѼ
- «ñ¿¡ φ½Ñ¼Ñ¡Γ.
-
- LBS_EXTENDEDSEL Åá¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_EXTENDEDSEL
- »αÑñ«ßΓáó½∩ÑΓ πñ«í¡δÑ ßαÑñßΓóá ñ½∩ óδí«αá
- ¡Ñ߬«½∞¬¿σ »«ß½Ññ«óáΓѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó, á
- Γá¬ªÑ ñ½∩ óδí«αá «Γñѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó.
- ───────────────────────────────────────────────────────────────
-
- é «ßΓáóΦÑ⌐ß∩ τáßΓ¿ ñá¡¡«ú« αáºñѽá φΓ¿ Γ¿»δ »á¡Ñ½Ñ⌐ ß
- ¼¡«ªÑßΓóÑ¡¡«⌐ óδí«α¬«⌐ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
-
- Åá¡Ñ½¿ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_MULTIPLESEL.
-
- Åá¡Ñ½∞ »ÑαÑτ¡∩, ß«ºñá¡¡á∩ ß Γ¿»«¼ LBS_MULTIPLESEL,
- »«½¡«ßΓ∞ε á¡á½«ú¿τ¡á ßΓá¡ñáαΓ¡«⌐ »á¡Ñ½¿ »ÑαÑτ¡∩, ºá ¿ß¬½ετÑ¡¿Ñ¼
- Γ«ú«, τΓ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ ó »á¡Ñ½¿ »ÑαÑτ¡∩ í«½∞ΦÑ,
- τѼ «ñ¿¡ φ½Ñ¼Ñ¡Γ. ìáªáΓ¿Ñ ¼δΦ¬«⌐ ¿½¿ ¬½áó¿ΦÑ⌐ »α«íѽá ó »á¡Ñ½¿
- »ÑαÑτ¡∩ »ÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿ φ½Ñ¼Ñ¡Γá. àß½¿
- »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ß¿¼ó«½∞¡πε ¬½áó¿Φπ, ¬«úñá »á¡Ñ½∞ »ÑαÑτ¡∩
- ºáσóáΓ¿½á óó«ñ, Γ« ¬παß«α »á¡Ñ½¿ »ÑαÑτ¡∩ »ÑαѼÑΘáÑΓß∩ ¡á
- ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ, ¬«Γ«αδ⌐ ¡áτ¿¡áÑΓß∩ ß φΓ«ú« ß¿¼ó«½á. ¥Γ«Γ
- φ½Ñ¼Ñ¡Γ ¡Ñ íπñÑΓ óδíαá¡ ñ« ΓÑσ »«α, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ ¡áª¼ÑΓ
- ¬½áó¿Φπ »α«íѽ.
-
-
- Windows 3.0/pg/2#3 = 24 =
-
-
- Æáí½¿µá 8.2 ê¡ΓÑαΣÑ⌐ß »«½∞º«óáΓѽ∩ ß »á¡Ñ½∞ε »ÑαÑτ¡∩, ¿¼ÑεΘÑ⌐
- Γ¿» LBS_MULTIPLESEL.
- ───────────────────────────────────────────────────────────────
- äÑ⌐ßΓó¿Ñ ÉѺπ½∞ΓáΓ
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿
- ───────────────────────────────────────────────────────────────
- àñ¿¡¿τ¡«Ñ ¡áªáΓ¿Ñ ÅÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿, ¡« ¡Ñ
- ß¡¿¬¡«»¬¿ ¼δΦ¿ ¼áÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿ ß »αÑñδñπΘÑú«
- óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
-
- äó«⌐¡«Ñ ¡áªáΓ¿Ñ Ç¡á½«ú¿τ¡« Ññ¿¡¿τ¡«¼π ¡áªáΓ¿ε.
- ¬¡«»¬¿ ¼δΦ¿
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ
- ───────────────────────────────────────────────────────────────
- Åα«íѽ ÅÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿, ¡« ¡Ñ ß¡¿-
- ¼áÑΓ ß«ßΓ«∩¡¿Ñ óδí«α¬¿ ß »αÑñδñπΘÑú«
- óδíαá¡¡«ú« φ½Ñ¼Ñ¡Γá (Ñß½¿ Γᬫ⌐ ÑßΓ∞).
-
- è½áó¿Φá ßΓαѽ¬á ÅÑαѼÑΘáÑΓ ¬παß«α »á¡Ñ½¿ »ÑαÑτ¡∩ ¡á
- ó»αáó« ¿½¿ 󡿺 ß½ÑñπεΘ¿⌐ φ½Ñ¼Ñ¡Γ.
-
- è½áó¿Φá ßΓαѽ¬á ÅÑαѼÑΘáÑΓ ¬παß«α »á¡Ñ½¿ »ÑαÑτ¡∩ ¡á
- óóÑασ ¿½¿ ó½Ñó« »αÑñΦÑßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ.
-
- è½áó¿Φá PgUp Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
- 󡿺 »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ »ÑαѼÑΘáÑΓ ¬παß«α ¡á
- »Ñαóδ⌐ ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- è½áó¿Φá PgDn Å᫬απτ¿óáÑΓ ΓѬπΘ¿⌐ óδíαá¡¡δ⌐ φ½Ñ¼Ñ¡Γ
- óóÑασ »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ »ÑαѼÑΘáÑΓ ¬παß«α
- ¡á »«ß½Ññ¡¿⌐ ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿
- »ÑαÑτ¡∩.
-
- è½áó¿Φá HOME Å᫬απτ¿óáÑΓ »Ñαóδ⌐ φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »ÑαÑτ¡∩
- óóÑασ »á¡Ñ½¿ ¿ »ÑαѼÑΘáÑΓ ¬παß«α ¡á »Ñαóδ⌐
- ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- è½áó¿Φá END Å᫬απτ¿óáÑΓ »«ß½Ññ¡¿⌐ φ½Ñ¼Ñ¡Γ »á¡Ñ½¿ »Ñ-
- αÑτ¡∩ 󡿺 »á¡Ñ½¿ ¿ »ÑαѼÑΘáÑΓ ¬παß«α ¡á
- »«ß½Ññ¡¿⌐ ó¿ñ¿¼δ⌐ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿
- »ÑαÑτ¡∩.
- ───────────────────────────────────────────────────────────────
-
- Åá¡Ñ½¿ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_EXTENDEDSEL.
-
- Åá¡Ñ½¿ »ÑαÑτ¡∩, ß«ºñá¡¡δÑ ß Γ¿»«¼ LBS_EXTENDEDSEL,
- »αÑñ«ßΓáó½∩εΓ πñ«í¡δÑ ßαÑñßΓóá ñ½∩ óδí«αá ¡Ñ߬«½∞¬¿σ
- »«ß½Ññ«óáΓѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó ó »á¡Ñ½¿ »ÑαÑτ¡∩, á Γá¬ªÑ ñ½∩ óδí«αá
- «Γñѽ∞¡δσ φ½Ñ¼Ñ¡Γ«ó. é Γáí½¿µÑ 8.3 »α¿óÑñÑ¡ ¿¡ΓÑαΣÑ⌐ß »α¿
- ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿ ¿ ¬½áó¿áΓπαδ ñ½∩ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ß Γ¿»«¼
- LBS_EXTENDEDSEL.
-
- Windows 3.0/pg/2#3 = 25 =
-
-
- Æáí½¿µá 8.3 ê¡ΓÑαΣÑ⌐ß »«½∞º«óáΓѽ∩ ß »á¡Ñ½∞ε »ÑαÑτ¡∩, ¿¼ÑεΘÑ⌐
- Γ¿» LBS_EXTENDEDSEL.
- ───────────────────────────────────────────────────────────────
- äÑ⌐ßΓó¿Ñ ÉѺπ½∞ΓáΓ ÉѺπ½∞ΓáΓ
- (ó䬽. αѪ¿¼ ñ«íáó½Ñ¡¿∩) (ó¬½. αѪ¿¼ ñ«íáó½Ñ¡¿∩)
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿
- ───────────────────────────────────────────────────────────────
- àñ¿¡¿τ¡«Ñ éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ, πñá- èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- ¡áªáΓ¿Ñ ½∩ÑΓ óδí«α¬π ß ñαπú¿σ αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- ¬½áó¿Φ¿ ¼δΦδ φ½Ñ¼Ñ¡Γ«ó ¿ πßΓá¡áó- ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- ½¿óáÑΓ ¡á ¡Ñú« "∩¬«α∞" ½Ñ¡¿∩.
- óδí«α¬¿.
-
- SHIFT + éδí¿αáÑΓ φ½Ñ¼Ñ¡Γδ, ¡á- èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- Ññ¿¡¿τ¡«Ñ σ«ñ∩Θ¿Ñß∩ ¼Ñªñπ ∩¬«αѼ αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- ¡áªáΓ¿Ñ óδí«α¬¿ ¿ ΓѬπΘ¿¼ φ½Ñ- ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- ¬½áó¿Φ¿ ¼δΦδ ¼Ñ¡Γ«¼, ¿ πñá½∩ÑΓ óδ- ½Ñ¡¿∩.
- í«α¬π ß φ½Ñ¼Ñ¡Γ«ó, ¬«-
- Γ«αδÑ ¡Ñ »«»áñáεΓ ó
- φëà ñ¿á»áº«¡.
-
- äó«⌐¡«Ñ ǡὫú¿τ¡« Ññ¿¡¿τ¡«¼π èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- ¡áªáΓ¿Ñ ¡áªáΓ¿ε. αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- SHIFT + ǡὫú¿τ¡« Ññ¿¡¿τ¡«¼π ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- äó«⌐¡«Ñ ¡áªáΓ¿ε + SHIFT. ½Ñ¡¿∩.
- ¡áªáΓ¿Ñ
-
- CONTROL + ÅÑαѼÑΘáÑΓ ¬παß«α óδ- èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- Ññ¿¡¿τ¡«Ñ í«α¬¿ ¿ »ÑαѬ½ετáÑΓ αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- ¡áªáΓ¿Ñ ß«ßΓ«∩¡¿Ñ óδí«α¬¿ ñ½∩ ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- ¬½áó¿Φ¿ ¼δΦδ óδí¿αáѼδσ φ½Ñ¼Ñ¡Γ«ó, ½Ñ¡¿∩.
- ¡« ¡Ñ πñá½∩ÑΓ óδí«α¬π
- «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó.
-
- CONTROL + ìÑ πñá½∩ÑΓ óδí«α¬π ß èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- SHIFT + ñαπú¿σ φ½Ñ¼Ñ¡Γ«ó (ºá αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- Ññ¿¡¿τ¡«Ñ ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ, ¬«Γ«- ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- ¡áªáΓ¿Ñ αδÑ »«»áñáεΓ ó ñ¿á»á- ½Ñ¡¿∩.
- ¬½áó¿Φ¿ ¼δΦδ º«¡ ¼Ñªñπ ΓѬπΘÑ⌐ ¿
- »«ß½Ññ¡Ñ⌐ πßΓá¡«ó¬«⌐
- ∩¬«α∩) ¿ »ÑαѬ½ετáÑΓ
- ß«ßΓ«∩¡¿Ñ óßÑσ φ½Ñ¼Ñ¡-
- Γ«ó (ó Γ«ªÑ ß«ßΓ«∩¡¿Ñ,
- τΓ« ¿ φ½Ñ¼Ñ¡Γ, ¡á ¬«Γ«-
- α«¼ πßΓá¡«ó½Ñ¡ ∩¬«α∞)
- «Γ ∩¬«α∩ ñ« ΓѬπΘÑú«
- φ½Ñ¼Ñ¡Γá. ìÑ »ÑαѼÑΘáÑ∞
- ∩¬«α∞.
-
- ÆáΘ¿Γ∞ Å«¼ÑΘáÑΓ ∩¬«α∞ óδí«α¬¿ èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
-
- Windows 3.0/pg/2#3 = 26 =
-
- ó Γ«τ¬π, úñÑ »«½∞º«óá- αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- Γѽ∞ ¡áªá½ ¡á ¬¡«»¬π ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- ¼δΦ¿, óδí¿αáÑΓ φ½Ñ¼Ñ¡Γδ ½Ñ¡¿∩.
- «Γ ∩¬«α∩ ñ« Γ«τ¬¿, ó
- ¬«Γ«α«⌐ »«½∞º«óáΓѽ∞
- «Γ»πßΓ¿½ ¬¡«»¬π, ¿ πñá-
- ½∩ÑΓ óδí«α¬π ß« óßÑσ
- «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó.
-
- SHIFT + éδí¿αáÑΓ φ½Ñ¼Ñ¡Γδ «Γ èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- ΓáΘ¿Γ∞ ∩¬«α∩ óδí«α¬¿ ñ« φ½Ñ- αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- ¼Ñ¡Γá, ¡á ¬«Γ«α«¼ »«½∞- ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- º«óáΓѽ∞ «Γ»πßΓ¿½ ¬¡«»- ½Ñ¡¿∩.
- ¬π, ¿ πñá½∩ÑΓ óδí«α¬π
- ß« óßÑσ «ßΓá½∞¡δσ
- φ½Ñ¼Ñ¡Γ«ó. ìÑ »ÑαѼÑ-
- ΘáÑΓ ∩¬«α∞ óδí«α¬¿.
-
- CONTROL + Å«¼ÑΘáÑΓ ∩¬«α∞ óδí«α¬¿ èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- ΓáΘ¿Γ∞ ó Γ«τ¬π, úñÑ »«½∞º«óá- αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- Γѽ∞ ¡áªá½ ¬¡«»¬π ¼δΦ¿. ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- ìÑ πñá½∩ÑΓ óδí«α¬π ß ½Ñ¡¿∩.
- «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó, ¡«
- »ÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ
- óßÑσ φ½Ñ¼Ñ¡Γ«ó ó ß«ßΓ«-
- ∩¡¿Ñ, ß««ΓóÑΓßΓóπεΘÑÑ
- φ½Ñ¼Ñ¡Γπ, ¡á ¬«Γ«α«¼
- ¡áσ«ñ¿Γß∩ ∩¬«α∞, «Γ
- ∩¬«α∩, ñ« Γ«τ¬¿ úñÑ
- »«½∞º«óáΓѽ∞ «Γ»πßΓ¿½
- ¬¡«»¬π ¼δΦ¿.
-
- CONTROL + ìÑ πñá½∩ÑΓ óδí«α¬π ß èᬠ¿ »α¿ ó䬽ετÑ¡¡«¼
- SHIFT + «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó αѪ¿¼Ñ ñ«íáó½Ñ¡¿∩, »½εß
- ΓáΘ¿Γ∞ (ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ, ó䬽ετáÑΓ αѪ¿¼ ñ«íáó½-
- ¬«Γ«αδÑ óσ«ñ∩Γ ó ñ¿á»á- ½Ñ¡¿∩.
- º«¡ óδí«α¬¿, «»αÑñѽ∩Ñ-
- ¼δ⌐ »«ß½Ññ¡¿¼ »«½«ªÑ-
- ¡¿Ñ¼ ∩¬«α∩), ¡« »ÑαÑ-
- ¬½ετáÑΓ ß«ßΓ«∩¡¿Ñ óßÑσ
- φ½Ñ¼Ñ¡Γ«ó (ó ß«ßΓ«∩¡¿Ñ,
- ß««ΓóÑΓßóπεΘÑÑ φ½Ñ¼Ñ¡Γπ
- ¡á ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡
- ∩¬«α∞) «Γ ∩¬«α∩ ñ«
- φ½Ñ¼Ñ¡Γá, ¡á ¬«Γ«α«¼
- »«½∞º«óáΓѽ∞ «Γ»πßΓ¿½
- ¬¡«»¬π ¼δΦ¿. ìÑ »ÑαÑ-
- ¼ÑΘáÑΓ ∩¬«α∞.
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ (á)
- ───────────────────────────────────────────────────────────────
- SHIFT + F8 鬽ετáÑΓ αѪ¿¼ ñ«íáó- é䬽ετáÑΓ αѪ¿¼ ñ«íáó-
- ½Ñ¡¿∩. é φΓ«¼ αѪ¿¼Ñ ½Ñ¡¿∩.
- ¬παß«α »á¡Ñ½¿ »ÑαÑτ¡∩
- ¼¿úáÑΓ.
-
- Windows 3.0/pg/2#3 = 27 =
-
-
- Åα«íѽ éδí¿αáÑΓ φ½Ñ¼Ñ¡Γ, πñá- ÅÑαѬ½ετáÑΓ ß«ßΓ«∩¡¿Ñ
- ½∩ÑΓ óδí«α¬π ß ñαπú¿σ φ½Ñ¼Ñ¡Γá ¿ πßΓá¡áó½¿-
- φ½Ñ¼Ñ¡Γ«ó ¿ πßΓá¡áó- óáÑΓ ∩¬«α∞, ¡« ¡Ñ πñá-
- ½¿óáÑΓ ¡á ¡Ñú« "∩¬«α∞" ½∩ÑΓ óδí«α¬π ß ñαπú¿σ
- óδí«α¬¿. φ½Ñ¼Ñ¡Γ«ó.
-
- SHIFT + ôñá½∩ÑΓ óδí«α¬π ß »αÑ- ìÑ πñá½∩ÑΓ óδí«α¬π ß
- Åα«íѽ ñδñπΘ¿σ óδíαá¡¡δσ φ½Ñ- «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó
- ¼Ñ¡Γ«ó ¿ »ÑαѬ½ετáÑΓ (ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ,
- ß«ßΓ«∩¡¿Ñ φ½Ñ¼Ñ¡Γ«ó (ó ¬«Γ«αδÑ óσ«ñ∩Γ ó ñ¿á»á-
- ß««ΓóÑΓßΓó¿¿ ß ß«ß«∩- º«¡ óδí«α¬¿, «»αÑñѽ∩Ñ-
- ¡¿Ñ¼ φ½Ñ¼Ñ¡Γá, ¡á ¬«Γ«- ¼δ⌐ »«ß½Ññ¡¿¼ »«½«ªÑ-
- α«¼ πßΓá¡«ó½Ñ¡ ∩¬«α∞) ¡¿Ñ¼ ∩¬«α∩), ¡« »ÑαÑ-
- «Γ ∩¬«α∩ ñ« ΓѬπΘÑ⌐ »«- ¬½ετáÑΓ ß«ßΓ«∩¡¿Ñ óßÑσ
- º¿µ¿¿. φ½Ñ¼Ñ¡Γ«ó (ó ß«ßΓ«∩¡¿Ñ,
- ß««ΓóÑΓßóπεΘÑÑ φ½Ñ¼Ñ¡Γπ
- ¡á ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡
- ∩¬«α∞) «Γ ∩¬«α∩ ñ«
- ΓѬπΘÑú« φ½Ñ¼Ñ¡Γá. ìÑ
- »ÑαѼÑΘáÑΓ ∩¬«α∞.
-
- è½áó¿Φ¿ ¡á»- ÅÑαѼÑΘáεΓ ¬παß«α »á- ÅÑαѼÑΘáεΓ ¬παß«α »á-
- αáó½Ñ¡¿∩ (í) ¡Ñ½¿ »ÑαÑτ¡∩ ó ß««Γ- ¡Ñ½¿ »ÑαÑτ¡∩ ó ß««Γ-
- óÑΓßΓó¿¿ ß ¬½áó¿ΦÑ⌐, óÑΓßΓó¿¿ ß ¬½áó¿ΦÑ⌐, ¡«
- óδí¿αáεΓ φ½Ñ¼Ñ¡Γ »«ñ ¡Ñ óδí¿αáεΓ φ½Ñ¼Ñ¡Γ
- ¬παß«α«¼, »ÑαѼÑΘáεΓ πñá½∩εΓ óδí«α¬π ß« óßÑσ
- ¡á ¡Ñú« ∩¬«α∞ ¿ πñá- «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó
- ½∩εΓ óδí«α¬π ß« óßÑσ ¿½¿ »ÑαѼÑΘáεΓ ¡á ¡Ñú«
- «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó. ∩¬«α∞
-
- SHIFT + ôñá½∩ÑΓ óδí«α¬π ß« óßÑσ ìÑ πñá½∩ÑΓ óδí«α¬π ß
- è½áó¿Φ¿ ¡á»- «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó, «ßΓá½∞¡δσ φ½Ñ¼Ñ¡Γ«ó
- αáó½Ñ¡¿∩ »ÑαѼÑΦáÑΓ ¬παß«α ó (ºá ¿ß¬½ετÑ¡¿Ñ¼ ΓÑσ,
- ß««ΓóÑΓßó¿¿ ß ¬½áó¿ΦÑ⌐ ¬«Γ«αδÑ óσ«ñ∩Γ ó ñ¿á»á-
- ¿ »ÑαѬ½ετáÑΓ º«¡ óδí«α¬¿, «»αÑñѽ∩Ñ-
- ß«ßΓ«∩¡¿Ñ φ½Ñ¼Ñ¡Γ«ó (ó ¼δ⌐ »«ß½Ññ¡¿¼ »«½«ªÑ-
- ß««ΓóÑΓßΓó¿¿ ß ß«ß«∩- ¡¿Ñ¼ ∩¬«α∩), »ÑαѼÑΘáÑΓ
- ¡¿Ñ¼ φ½Ñ¼Ñ¡Γá, ¡á ¬«Γ«- ¬παß«α ó ß««ΓóÑΓßΓó¿¿
- α«¼ πßΓá¡«ó½Ñ¡ ∩¬«α∞) ß ¬½áó¿ΦÑ⌐ ¿ »ÑαÑ-
- «Γ ∩¬«α∩ ñ« ΓѬπΘÑ⌐ »«- ¬½ετáÑΓ ß«ßΓ«∩¡¿Ñ óßÑσ
- º¿µ¿¿. ìÑ »ÑαѼÑΘáÑΓ φ½Ñ¼Ñ¡Γ«ó (ó ß«ßΓ«∩¡¿Ñ,
- ∩¬«α∞. ß««ΓóÑΓßóπεΘÑÑ φ½Ñ¼Ñ¡Γπ,
- ¡á ¬«Γ«α«¼ πßΓá¡«ó½Ñ¡
- ∩¬«α∞) «Γ ∩¬«α∩ ñ«
- ΓѬπΘÑú« φ½Ñ¼Ñ¡Γá. ìÑ
- »ÑαѼÑΘáÑΓ ∩¬«α∞.
- ───────────────────────────────────────────────────────────────
-
- á) çá ¿ß¬½ετÑ¡¿Ñ¼ SHIFT + F8 óßÑ ¬½áó¿Φ¿ ¿ ¬«¼í¿¡áµ¿¿ ¬½áó¿Φ
- ¼«úπΓ ¿ß»«½∞º«óáΓ∞ß∩ ó ¬«¼í¿¡áµ¿¿ ß CONTROL. ìá»α¿¼Ñα, CONTROL
-
- Windows 3.0/pg/2#3 = 28 =
-
- + SHIFT + SPACEBAR ¿¼ÑÑΓ Γ« ªÑ º¡áτÑ¡¿Ñ, τΓ« ¿ SHIFT +
- SPACEBAR.
-
- í) è½áó¿Φ¿ ¡á»αáó½Ñ¡¿∩ ó¬½ετáεΓ ¬½áó¿Φ¿ ß« ßΓαѽ¬á¼¿ ¿ ¬½áó¿Φ¿
- HOME, END, PAGE UP ¿ PAGE DOWN. Ä»¿ßá¡¿Ñ Γ«ú«, ¬á¬ ¬áªñá∩
- ¬½áó¿Φá π»αáó½∩ÑΓ »ÑαѼÑΘÑ¡¿Ñ¼ ¬παß«αá, óδ ¡á⌐ñÑΓÑ ó Γáí½¿µÑ
- 8.2 "ê¡ΓÑαΣÑ⌐ß »«½∞º«óáΓѽ∩ ñ½∩ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩, ¿¼ÑεΘ¿σ Γ¿»
- LBS_MULTIPLESEL".
-
- êß»«½∞º«óá¡¿Ñ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩, ß«ßΓ«∩Θ¿σ ¿º ¡Ñ߬«½∞¬¿σ
- ßΓ«½íµ«ó.
-
- Äíδτ¡« »á¡Ñ½¿ »ÑαÑτ¡∩ óδó«ñ∩Γ φ½Ñ¼Ñ¡Γδ ó «ñ¿¡ ßΓ«½íѵ.
- àß½¿ óδ º¡áÑΓÑ, τΓ« »á¡Ñ½∞ »ÑαÑτ¡∩ íπñÑΓ ß«ñÑαªáΓ∞ ¼¡«ú«
- φ½Ñ¼Ñ¡Γ«ó, Γ« óδ ¼«ªÑΓÑ ß«ºñáΓ∞ »á¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼
- LBS_MULTICOLOMN. ¥Γ«Γ Γ¿» «»αÑñѽ∩ÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩, ó ¬«Γ«α«⌐
- φ½Ñ¼Ñ¡Γδ «Γ«íαáªáεΓß∩ ó ¡Ñ߬«½∞¬« ßΓ«½íµ«ó. ¥½Ñ¼Ñ¡Γδ Γᬫ⌐
- »á¡Ñ½¿ »ÑαÑτ¡∩ "º¼Ñ∩Γß∩" ß ¡¿ª¡Ñ⌐ τáßΓ¿ «ñ¡«⌐ ¬«½«¡¬¿ ó ñαπúπε.
- Å« φΓ«⌐ »α¿τ¿¡Ñ ñ½∩ Γᬿσ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ¡Ñ »αÑñπß¼«ΓαÑ¡á
- óÑαΓ¿¬á½∞¡á∩ »α«¬απΓ¬á. Äñ¡á¬«, Ñß½¿ »á¡Ñ½∞ »ÑαÑτ¡∩ ¼«ªÑΓ
- ß«ñÑαªáΓ∞ í«½∞ΦÑ φ½Ñ¼Ñ¡Γ«ó, τѼ ¼«úπΓ íδΓ∞ «Γ«íαáªÑ¡δ
- «ñ¡«óαѼѡ¡«, óδ ¼«ªÑΓÑ ºáñáΓ∞ Γ¿» WM_HSCROLL ñ½∩ Γ«ú«, τΓ«íδ
- »«½∞º«óáΓѽ∞ ¼«ú óδ»«½¡∩Γ∞ ú«α¿º«¡Γá½∞¡πε »α«¬απΓ¬π. 쿪Ñ
- »α¿óÑñÑ¡ »α¿¼Ñα ß«ºñá¡¿∩ »á¡Ñ½¿ »ÑαÑτ¡∩, ¬«Γ«αá∩ ß«ñÑনΓ
- ¡Ñ߬«½∞¬« ßΓ«½íµ«ó ¿ ºá¡¿¼áÑΓ óßε «í½áßΓ∞ »«½∞º«óáΓѽ∩
- α«ñ¿Γѽ∞߬«ú« «¬¡á:
-
- #define IDC_MULTILISTBOX
- RECT Rect;
- HWND hMultiListBox;
- .
- .
- .
- GetClientRect(hWnd, (LPRECT) &Rect);
-
- hMultiListBox = CreateWindow("Listbox",
- NULL,
- WS_CHILD | WS_VISIBLE | LBS_SORT |
- LBS_MULTICOLOMN | WS_HSCROLL | LBS_NOTIFY,
- Rect.left,
- Rect.top,
- Rect.right,
- Rect.botton,
- hWnd,
- IDC_MULTILISTBOX,
- hInst,
- NULL);
-
- é φΓ«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ GetClientRect ¿ß»«½∞ºπÑΓß∩ ñ½∩
- »«½πτÑ¡¿∩ ¬««αñ¿¡áΓ «í½áßΓ¿ »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á,
- ¬«Γ«αδÑ ºáΓѼ »ÑαÑñáεΓß∩ Σπ¡¬µ¿¿ CreateWindow ñ½∩ πßΓá¡«ó¬¿
- ¼ÑßΓ«»«½«ªÑ¡¿∩ ¿ αẼÑα«ó »á¡Ñ½¿ »ÑαÑτ¡∩.
-
-
- Windows 3.0/pg/2#3 = 29 =
-
- Åα¿¼Ñα«¼ »á¡Ñ½¿ »ÑαÑτ¡∩, ß«ñÑαªáΘÑ⌐ ¡Ñ߬«½∞¬« ßΓ«½íµ«ó,
- ¼«ªÑΓ ß½πª¿Γ∞ «¬¡« ñ¿αÑ¬Γ«α¿¿, ¬«Γ«α«Ñ «Γ«íαáªáÑΓ File Manager.
-
- ùΓ«íδ πßΓá¡«ó¿Γ∞ Φ¿α¿¡π ¬«½«¡¬¿ »á¡Ñ½¿ »ÑαÑτ¡∩, ¬«Γ«αá∩
- ß«ñÑαª¿Γ ¡Ñ߬«½∞¬« ¬«½«¡«¬, ¼«ª¡« »«ß½áΓ∞ Ñ⌐ ß««íΘÑ¡¿Ñ
- LB_SETCOLOMNWIGTH.
-
- êß»«½∞º«óá¡¿Ñ α¿ßπѼδσ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩.
-
- èᬠ¿ ¬½áó¿Φ¿, »á¡Ñ½¿ »ÑαÑτ¡∩ ¼«ª¡« Γá¬ªÑ ß«ºñáΓ∞ ¬á¬
- α¿ßπѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩. Äñ¡á¬« ó ß½πτáÑ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ óáΦá
- »α«úαá¼¼á «ΓóÑτáÑΓ Γ«½∞¬« ºá α¿ß«óá¡¿Ñ φ½Ñ¼Ñ¡Γ«ó »á¡Ñ½Ñ⌐
- »ÑαÑτ¡∩.
-
- ä½∩ ß«ºñá¡¿∩ α¿ßπѼδσ »á¡Ñ½Ñ⌐ »ÑαÑτ¡∩ ¼«ª¡« ¿ß»«½∞º«óáΓ∞
- «ñ¿¡ ¿º ß½ÑñπεΘ¿σ Γ¿»«ó: LBS_OWNERDRAWFIXED ¿½¿
- LBS_OWNERDRAWVARIABLE. Æ¿» LBS_OWNERDRAWFIXED «»αÑñѽ∩ÑΓ »á¡Ñ½∞
- »ÑαÑτ¡∩, ó ¬«Γ«α«⌐ óßÑ α¿ßπѼδÑ φ½Ñ¼Ñ¡Γδ ¿¼ÑεΓ «ñ¿¡á¬«óπε
- óδß«Γπ.
-
- ä½∩ ñ«íáó½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ¬ »á¡Ñ½¿ »ÑαÑτ¡∩ »«Φ½¿ΓÑ ß««íΘÑ¡¿Ñ
- LB_ADDSTRING ¿½¿ LB_INSERTSTRING. Åáαá¼ÑΓα lParam ¼«ªÑΓ
- ß«ñÑαªáΓ∞ ½εí«Ñ 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ, ¬«Γ«α«Ñ óδ σ«Γ¿ΓÑ ßó∩ºáΓ∞
- ß φ½Ñ¼Ñ¡Γ«¼. àß½¿ lParam ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ßΓ᫬π, Γ« Γ¿»
- »á¡Ñ½¿ »ÑαÑτ¡∩ LBS_HASSSTRING »«ºó«½∩ÑΓ «íαáíáΓδóáΓ∞ »á¼∩Γ∞ ¿
- π¬áºáΓѽ¿ ¡á ßΓ᫬¿. ¥Γ« »«ºó«½∩ÑΓ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ
- ¿ß»«½∞º«óáΓ∞ ß««íΘÑ¡¿Ñ LB_GETTEXT ñ½∩ »«½πτÑ¡¿∩ ΓѬßΓá
- «»αÑñѽѡ¡«ú« φ½Ñ¼Ñ¡Γá. ǡὫú¿τ¡«, Ñß½¿ óδ ß«ºñáÑΓÑ »á¡Ñ½∞
- »ÑαÑτ¡∩ ß Γ¿»á¼¿ LBS_SORT ¿½¿ LBS_HASSTRING, Γ« Windows
- áóΓ«¼áΓ¿τÑ߬¿ ß«αΓ¿απÑΓ φ½Ñ¼Ñ¡Γδ »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- àß½¿ óδ ß«ºñáÑΓÑ »á¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼ LBS_SORT, ¡« íѺ
- LBS_HASSTRING, Windows ¡Ñ ¼«ªÑΓ «»αÑñѽ¿Γ∞ »«α∩ñ«¬ φ½Ñ¼Ñ¡Γ«ó
- ó¡πΓα¿ »á¡Ñ½¿ »ÑαÑτ¡∩. é φΓ«¼ ß½πτáÑ »α¿ ñ«íáó½Ñ¡¿¿ φ½Ñ¼Ñ¡Γá ó
- »á¡Ñ½∞ »ÑαÑτ¡∩ (ß »«¼«Θ∞ε ß««íΘÑ¡¿∩ LB_ADDSTRING) Windows
- »«ßδ½áÑΓ «ñ¡« ¿½¿ ¡Ñ߬«½∞¬« ß««íΘÑ¡¿⌐ WM_COMPAREITEM ó½áñѽ∞µπ
- »á¡Ñ½¿ »ÑαÑτ¡∩. é φΓ¿σ ß««íΘÑ¡¿∩σ »áαá¼ÑΓα lParam π¬áºδóáÑΓ ¡á
- ßΓαπ¬Γπαπ ñá¡¡δσ COMPAREITEMSTRUCT, ¬«Γ«αá∩ ß«ñÑনΓ
- ¿¡Σ«α¼áµ¿ε, ¿ñÑ¡Γ¿Σ¿µ¿απεΘπε ñóá φ½Ñ¼Ñ¡Γá »á¡Ñ½¿ »ÑαÑτ¡∩. Åα¿
- ó«ºóαáΓÑ π»αáó½Ñ¡¿∩ »«ß½Ñ «íαáí«Γ¬¿ φΓ«ú« ß««íΘÑ¡¿∩ »α¿¬½áñ¡á∩
- »α«úαá¼¼á ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ, «»αÑñѽ∩εΘÑÑ ¬á¬«⌐ (Ñß½¿ Γᬫ⌐
- ÑßΓ∞) φ½Ñ¼Ñ¡Γ ñ«½ªÑ¡ ¡áσ«ñ¿Γ∞ß∩ óδΦÑ ñαπú«ú«. Windows »«ßδ½áÑΓ
- φΓ¿ ß««íΘÑ¡¿∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ «Γß«αΓ¿απÑΓ óßÑ φ½Ñ¼Ñ¡Γδ
- »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- Åα¿ ñ«íáó½Ñ¡¿¿ ¿½¿ óßΓáó¬Ñ φ½Ñ¼Ñ¡Γá ó »á¡Ñ½∞ »ÑαÑτ¡∩
- Windows «»αÑñѽ∩ÑΓ αẼÑα φ½Ñ¼Ñ¡Γá, »«ßδ½á∩ ß««íΘÑ¡¿Ñ
- WM_MEASHUREITEM ó½áñѽ∞µπ »á¡Ñ½¿ »ÑαÑτ¡∩. Windows ΓαÑíπÑΓß∩
- ¿¡Σ«α¼áµ¿∩, ¬«Γ«αá∩ »«ºó«½¿½á íδ «ßπΘÑßΓó¿Γ∞ óºá¿¼«ñÑ⌐ßΓó¿Ñ ß
- »«½∞º«óáΓѽѼ. àß½¿ óδ ß«ºñ὿ »á¡Ñ½∞ »ÑαÑτ¡∩ ß Γ¿»«¼
- LBS_OWNERDRAWFIXED, Γ« Windows »«ßδ½áÑΓ φΓ« ß««íΘÑ¡¿Ñ Γ«½∞¬«
- «ñ¿¡ αáº, »«ß¬«½∞¬π óßÑ φ½Ñ¼Ñ¡Γδ ó »á¡Ñ½¿ »ÑαÑτ¡∩ íπñπΓ ¿¼ÑΓ∞
- «ñ¿¡á¬«óπε óδß«Γπ. ä½∩ »á¡Ñ½¿ »ÑαÑτ¡∩ ß Γ¿»«¼
-
- Windows 3.0/pg/2#3 = 30 =
-
- LBS_OWNERDRAWVARIABLE Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ
- WM_MEASHUREITEM ñ½∩ ¬áªñ«ú« ñ«íáó½∩Ѽ«ú« φ½Ñ¼Ñ¡Γá.
-
- Åáαá¼ÑΓα lParam ß««íΘÑ¡¿∩ WM_MEASHUREITEM ß«ñÑনΓ
- π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ MEASHUREITEMSTRUCT. èα«¼Ñ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá
- ¿ Γ¿»á í½«¬á π»αáó½Ñ¡¿∩ φΓá ßΓαπ¬Γπαá ß«ñÑαª¿Γ ¡«¼Ñα φ½Ñ¼Ñ¡Γá
- »á¡Ñ½¿ »ÑαÑτ¡∩, ¿¡«Σα¼áµ¿∩ « ¬«Γ«α«¼ ¡Ñ«íσ«ñ¿¼á (ñ½∩ »á¡Ñ½Ñ⌐
- »ÑαÑτ¡∩, ¿¼ÑεΘ¿σ Γ¿» LBS_OWNERDRAWVARIABLE), ¿ ¡Ñ«í∩ºáΓѽ∞¡«Ñ
- 32-í¿Γ«ó«Ñ º¡áτÑ¡¿Ñ, ßó∩ºá¡¡«Ñ ß ñá¡¡δ¼ φ½Ñ¼Ñ¡Γ«¼. Åα¿
- »«½πτÑ¡¿¿ ß««íΘÑ¡¿∩ WM_MEASHUREITEM »α«úαá¼¼á ñ«½ª¡á ºá¡ÑßΓ¿ ó
- »«½Ñ itemHeight ßΓαπ¬Γπαδ MEASHUREITEMSTRUCT óδß«Γπ φ½Ñ¼Ñ¡Γá.
- éδß«Γá óδτ¿ß½∩ÑΓß∩ ó óÑαΓ¿¬á½∞¡δσ Ññ¿¡¿µáσ »á¡Ñ½¿ ñ¿á½«úá.
- éÑαΓ¿¬á½∞¡á∩ Ññ¿¡¿µá »á¡Ñ½¿ ñ¿á½«úá αáó¡á 1/8 íẫó«⌐ Ññ¿¡¿µδ
- »á¡Ñ½¿ ñ¿á½«úá, ¬«Γ«αá∩ óδτ¿ß½∩ÑΓß∩ ¿º óδß«Γδ ß¿ßΓѼ¡«ú«
- Φα¿ΣΓá. ä½∩ «»αÑñѽѡ¿∩ óδß«Γδ íẫó«⌐ Ññ¿¡¿µδ »á¡Ñ½¿ ñ¿á½«úá ó
- »¿¬ßѽ∩σ ¼«ª¡« ó«ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿Ñ⌐ GetDialogBaseUnit.
-
- è«úñá Windows óδó«ñ¿Γ »á¡Ñ½∞ »ÑαÑτ¡∩, ¿½¿ ¬«úñá ¡Ñ«íσ«ñ¿¼«
- ¿º¼Ñ¡¿Γ∞ ó¿ñ φ½Ñ¼Ñ¡Γá ó »á¡Ñ½¿ »ÑαÑτ¡∩, Windows »«ßδ½áÑΓ «¬¡π
- ß««íΘÑ¡¿Ñ WM_DRAWITEM. Åáαá¼ÑΓα lParam ß««íΘÑ¡¿∩ WM_DRAWITEM
- ß«ñÑαª¿Γ π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ ñá¡¡δσ DRAWITEMSTRUCT. ¥Γá
- ßΓαπ¬Γπαá ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε, ¿ñÑ¡Γ¿Σ¿µ¿απεΘπε φ½Ñ¼Ñ¡Γ »á¡Ñ½¿
- »ÑαÑτ¡∩ ¿ Γ¿» ΓαÑíπѼ«⌐ «»Ñαᵿ¿. èᬠ¿ ó ß½πτáÑ ß α¿ßπѼ«⌐
- ¬½áó¿ΦÑ⌐, óáΦá »α«úαá¼¼á ¿ß»«½∞ºπÑΓ φΓπ ¿¡«Σα¼áµ¿ε ñ½∩
- α¿ß«óá¡¿∩ φ½Ñ¼Ñ¡Γá.
-
- ä½∩ πñá½Ñ¡¿∩ φ½Ñ¼Ñ¡Γá ¿º α¿ßπѼ«⌐ »á¡Ñ½¿ »ÑαÑτ¡∩ »«Φ½¿ΓÑ
- »á¡Ñ½¿ »ÑαÑτ¡∩ ß««íΘÑ¡¿Ñ LB_DELETESTRING. Windows ó ßó«ε
- «τÑαÑñ∞ »«Φ½ÑΓ ß««íΘÑ¡¿Ñ WM_DELETEITEM ó½áñѽ∞µπ »á¡Ñ½¿
- »ÑαÑτ¡∩. (Windows Γá¬ªÑ »«ßδ½áÑΓ φΓ« ß««íΘÑ¡¿Ñ »α¿ αáºαπΦÑ¡¿¿
- »á¡Ñ½¿ »ÑαÑτ¡∩.) Åáαá¼ÑΓα lParam φΓ«ú« ß««íΘÑ¡¿∩ ß«ñÑনΓ
- π¬áºáΓѽ∞ ¡á ßΓαπ¬Γπαπ ñá¡¡δσ DELETEITEMSTRUCT. ¥Γá ßΓαπ¬Γπαá
- «»αÑñѽ∩ÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩ ¿ φ½Ñ¼Ñ¡Γ, ¬«Γ«αδ⌐ ñ«½ªÑ¡ íδΓ∞
- πñá½Ñ¡, á Γá¬ªÑ 32-í¿Γ«ó«Ñ τ¿ß½«, ßó∩ºá¡¡«Ñ ß φΓ¿¼ φ½Ñ¼Ñ¡Γ«¼.
- éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ φΓπ ¿¡«Σα¼áµ¿ε ñ½∩
- «ßó«í«ªñÑ¡¿∩ »á¼∩Γ¿, ºá¡∩Γ«⌐ ¿¡«Σα¼áµ¿Ñ⌐ «í φΓ«¼ φ½Ñ¼Ñ¡ΓÑ.
- 8.4.4 è«¼í¿¡¿α«óá¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩.
-
- è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩ ß«ßΓ«¿Γ ¿º »á¡Ñ½¿ »ÑαÑτ¡∩
- ¿ ßΓáΓ¿τÑ߬«ú« ¿½¿ αÑñá¬Γ¿απѼ«ú« í½«¬á. é ºáó¿ß¿¼«ßΓ¿ «Γ Γ¿»á
- »á¡Ñ½¿ »ÑαÑτ¡∩, «¡á ¼«ªÑΓ «Γ«íαáªáΓ∞ß∩ óßÑ óαѼ∩ ¿½¿ íδΓ∞
- ߬αδΓ«⌐ ñ« ΓÑσ »«α, »«¬á »«½∞º«óáΓѽ∞ ÑÑ ¡Ñ «Γ«íαếΓ.
- ê¡ΓÑαΣÑ⌐ß ß »á¡Ñ½∞ε »ÑαÑτ¡∩ ¿ αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩
- á¡á½«ú¿τ¡δ ßΓá¡ñáαΓ¡δ¼, ºá ¿ß¬½ετÑ¡¿Ñ¼ ß½πτáÑó, ¬«Γ«αδÑ
- «»¿ßá¡δ.
-
- Æ¿» CBS_SIMPLE ß«ºñáÑΓ ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ ß
- αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ ¿ »á¡Ñ½∞ε »ÑαÑτ¡∩, ¬«Γ«αá∩ «Γ«íαáªáÑΓß∩
- »«ñ αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼. è«úñá ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ ºáσóáΓ¿½
- óó«ñ, »«½∞º«óáΓѽ∞ ¼«ªÑΓ ¡áí¿αáΓ∞ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ ΓѬßΓ. àß½¿ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩ ß«ó»áñáÑΓ ß
- ΓѼ, ¬«Γ«αδ⌐ »«½∞º«óáΓѽ∞ ¡áíαá½, Γ« ß««ΓóÑΓßΓóπεΘ¿⌐ φ½Ñ¼Ñ¡Γ
-
- Windows 3.0/pg/2#3 = 31 =
-
- »α«¬απτ¿óáÑΓß∩ ó ¡áτὫ »á¡Ñ½¿ »ÑαÑτ¡∩. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ
- ºáΓѼ óδíαáΓ∞ φ½Ñ¼Ñ¡Γδ ¿º »á¡Ñ½¿ »ÑαÑτ¡∩, ¿ß»«½∞ºπ∩ ¼δΦ∞ ¿½¿
- ¬½áó¿áΓπαπ (¬½áó¿Φ¿ ßΓαѽ¬á óóÑασ ¿ ßΓαѽ¬á 󡿺).
-
- Æ¿» CBS_DROPDOWN á¡á½«ú¿τÑ¡ Γ¿»π CBS_SIMPLE, ºá
- ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« »á¡Ñ½∞ »ÑαÑτ¡∩ «Γ«íαáªáÑΓß∩ Γ«½∞¬« ó Γ«¼
- ß½πτáÑ, Ñß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ φ½Ñ¼Ñ¡Γ, ß½ÑñπεΘ¿⌐ ºá
- αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩, ¿½¿ Ñß½¿ »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ
- ¬½áó¿Φ¿ ALT + DOWN ARROW ¿½¿ ALT + UP ARROW. äáªÑ Ñß½¿ »á¡Ñ½∞
- »ÑαÑτ¡∩ ߬αδΓá, »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ φ½Ñ¼Ñ¡Γδ ó »á¡Ñ½¿
- »ÑαÑτ¡∩ ß »«¼«Θ∞ε ¬½áó¿Φ ßΓαѽ¬á óóÑασ ¿ ßΓαѽ¬á 󡿺.
-
- è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩ ß Γ¿»«¼ CBS_DROPDOWNLIST
- óδú½∩ñ¿Γ á¡á½«ú¿τ¡« í½«¬π ß Γ¿»«¼ CBS_DROPDOWN, ºá ¿ß¬½ετÑ¡¿Ñ¼
- Γ«ú«, τΓ« ó ¡Ñ¼ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ºá¼Ñ¡Ñ¡ ¡á
- ßΓáΓ¿τÑ߬¿⌐. é¼ÑßΓ« Γ«ú«, τΓ«íδ ¡áí¿αáΓ∞ φ½Ñ¼Ñ¡Γ ó
- αÑñá¬Γ¿απѼ«¼ í½«¬Ñ, »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ φ½Ñ¼Ñ¡Γδ ó
- »á¡Ñ½¿ »ÑαÑτ¡∩, óó«ñ∩ Γ«½∞¬« Ñú« »Ñαóδ⌐ ß¿¼ó«½. è«¡Ñτ¡«
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ ¬α«¼Ñ φΓ«ú« ¿ß»«½∞º«óáΓ∞ ñ½∩ óδí«αá
- φ½Ñ¼Ñ¡Γ«ó ¼δΦ∞ ¿ ¬½áó¿Φ¿ ßΓαѽ¬á óóÑασ ¿ ßΓαѽ¬á 󡿺.
-
- éδ ¼«ªÑΓÑ ñ«íáó½∩Γ∞ ¿ πñá½∩Γ∞ φ½Ñ¼Ñ¡Γδ ó »á¡Ñ½¿ »ÑαÑτ¡∩
- ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á ΓѼ ªÑ »πΓѼ, ¬á¬ ¿ ¿º «íδτ¡«⌐ »á¡Ñ½¿
- »ÑαÑτ¡∩, «ñ¡á¬« óδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ ß««íΘÑ¡¿∩ CB_ADDSTRING,
- CB_INSERTSTRING, CB_DIR ¿ CB_DELETESTRING. Windows
- »αÑñ«ßΓáó½∩ÑΓ ¬α«¼Ñ φΓ«ú« ñ«»«½¡¿Γѽ∞¡δÑ ß««íΘÑ¡¿∩ ñ½∩
- »«½πτÑ¡¿∩ ß«ñÑন¼«ú« αÑñá¬Γ¿απѼ«ú« í½«¬á, ßαáó¡Ñ¡¿∩ ß
- φ½Ñ¼Ñ¡ΓἿ »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ñ½∩ αáí«Γδ ß ß«ñÑন¼δ¼
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩.
-
- æ« ¼¡«ú¿σ Γ«τѬ ºαÑ¡¿∩ ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ á¡á½«ú¿τÑ¡
- »á¡Ñ½¿ »ÑαÑτ¡∩ ó Γ«¼, ¬á¬ »«½∞º«óáΓѽ∞ ß ¡¿¼ óºá¿¼«ñÑ⌐ßΓóπÑΓ.
- éßÑ πóÑñ«¼½∩εΘ¿Ñ ¬«ñδ »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ß»«½∞ºπεΓß∩ ñ½∩
- ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á. èα«¼Ñ ¡¿σ Windows »«ßδ½áÑΓ πóÑñ«¼½∩εΘ¿Ñ
- ß««íΘÑ¡¿∩ ñ½∩ π¬áºá¡¿∩ ß½ÑñπεΘ¿σ ß«íδΓ¿⌐:
-
- - éδ»áñáÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩ ¿º ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á
- (CBN_DROPDOWN).
-
- - Å«½∞º«óáΓѽ∞ ¿º¼Ñ¡¿½ ΓѬßΓ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ, ¿
- Windows ¼«ñ¿Σ¿µ¿απÑΓ ¿º«íαáªÑ¡¿Ñ (CBN_EDITCHANGE).
-
- - Å«½∞º«óáΓѽ∞ ¿º¼Ñ¡¿½ ΓѬßΓ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ, ¡«
- Windows ¡Ñ ¼«ñ¿Σ¿µ¿α«óá½á ¿º«íαáªÑ¡¿Ñ (CBN_EDITUPDATE).
-
- - è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ »«ΓÑα∩½ ºáσóáΓ óó«ñá
- (CBN_KILLFOCUS). é ß½πτáÑ, Ñß½¿ ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬
- π»αáó«Ñ¡¿∩ ¿¼ÑÑΓ Γ¿» CBS_DROPDOWN ¿½¿ CBS_DROPDOWNLIST,
- φΓ« »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« Windows πñá½∩ÑΓ ß φ¬αá¡á »á¡Ñ½∞
- »ÑαÑτ¡∩.
-
- - è«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ «ßπΘÑßΓó½∩ÑΓ ºáσóáΓ óó«ñá
- (CBN_SETFOCUS).
-
- Windows 3.0/pg/2#3 = 32 =
-
-
- èᬠ¿ »á¡Ñ½∞ »ÑαÑτ¡∩, ¬«¼í¿¡¿α«óá¡¡δ⌐ í½«¬ ¼«ªÑΓ
- ß«ºñáóáΓ∞ß∩ ß Γ¿»«¼, «»αÑñѽ∩εΘ¿¼ »ÑαѼѡ¡πε ¿½¿ Σ¿¬ß¿α«óá¡¡πε
- óδß«Γπ α¿ßπѼδσ φ½Ñ¼Ñ¡Γ«ó. Äñ¡á¬« ó ß½πτáÑ ¬«¼í¿¡¿α«óá¡¡δσ
- í½«¬«ó π»αáó½Ñ¡¿∩ »α«úαá¼¼á «ΓóÑτáÑΓ ºá óδó«ñ φ½Ñ¼Ñ¡Γ«ó ó
- »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ ó αÑñá¬Γ¿απѼ«¼ ¿½¿ ßΓáΓ¿τÑ߬«¼ í½«¬Ñ.
- ìá»α¿¼Ñα, Ñß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ φ½Ñ¼Ñ¡Γ ó »á¡Ñ½¿ »ÑαÑτ¡∩,
- »α«úαá¼¼á ñ½∩ »á¡Ñ½¿ »ÑαÑτ¡∩ »«½πτáÑΓ ß««íΘÑ¡¿Ñ WM_DRAWITEM,
- «»αÑñѽ∩εΘÑÑ, τΓ« φ½Ñ¼Ñ¡Γ ñ«½ªÑ¡ íδΓ∞ óδóÑñÑ¡ ¬á¬ óδíαá¡¡δ⌐, ¿
- ñαπú«Ñ ß««íΘÑ¡¿Ñ (WM_DRAWITEM) ñ½∩ αÑñá¬Γ¿απѼ«ú« í½«¬á.
-
- éδ ¼«ªÑΓÑ Γá¬ªÑ π¬áºáΓ∞ ñ½∩ ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á Γ¿»
- CBS_SORT. Windows ß«αΓ¿απÑΓ φ½Ñ¼Ñ¡Γδ ¬«¼í¿¡¿α«óá¡¡«ú« í½«¬á ΓѼ
- ªÑ »πΓѼ, τΓ« ¿ α¿ßπѼδÑ »á¡Ñ½¿ »ÑαÑτ¡∩.
-
- ä½∩ ¬«¼í¿¡¿α«óá¡¡δσ í½«¬«ó ¡Ñ ßπΘÑßΓóπÑΓ Γ¿»«ó,
- »αÑñπß¼áΓα¿óáεΘ¿σ ¡Ñ߬«½∞¬« ßΓ«½íµ«ó ñ½∩ »á¡Ñ½¿ »ÑαÑτ¡∩.
- 8.4.5 ÉÑñá¬Γ¿απѼδÑ í½«¬¿.
-
- ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ - φΓ« »α∩¼«πú«½∞¡«Ñ ñ«τÑα¡ÑÑ
- «¬¡«, ó ¬«Γ«α«¼ »«½∞º«óáΓѽ∞ ¼«ªÑΓ óó«ñ¿Γ∞ ¿ αÑñá¬Γ¿α«óáΓ∞
- ΓѬßΓ. ÉÑñá¬Γ¿απѼδÑ í½«¬¿ ¿¼ÑεΓ Φ¿α«¬¿Ñ 󫺼«ª¡«ßΓ¿, Γá¬¿Ñ ¬á¬
- αÑñá¬Γ¿α«óá¡¿Ñ ¡Ñ߬«½∞¬¿σ ßΓ᫬ ¿ »α«¬απΓ¬á. éδ π¬áºδóáÑΓÑ
- ¡Ñ«íσ«ñ¿¼δÑ óá¼ Σπ¡¬µ¿¿ ó Γ¿»Ñ í½«¬á π»αáó½Ñ¡¿∩.
-
- Æ¿» αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ «»αÑñѽ∩ÑΓ, ¬á¬ «¡
- íπñÑΓ «Γ«íαáªáΓ∞ß∩ ¿ Σπ¡¬µ¿«¡¿α«óáΓ∞. ìá»α¿¼Ñα, Γ¿»
- ES_MULTILINE «»αÑñѽ∩ÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬, ó ¬«Γ«αδ⌐ ¼«ª¡«
- óó«ñ¿Γ∞ í«½∞ΦÑ «ñ¡«⌐ ßΓ᫬¿ ΓѬßΓá. Æ¿»δ ES_AUTOHSCROLL ¿
- ES_AUTOVSCROLL «»αÑñѽ∩εΓ, τΓ« í½«¬ π»αáó½Ñ¡¿∩ íπñÑΓ
- »α«¿ºó«ñ¿Γ∞ »α«¬απΓ¬π, Ñß½¿ »«½∞º«óáΓѽ∞ óóÑñÑΓ ΓѬßΓ, ¬«Γ«αδ⌐
- ¡Ñ íπñÑΓ »«¼ÑΘáΓ∞ß∩ ó «í½áßΓ¿ »«½∞º«óáΓѽ∩ αÑñá¬Γ¿απѼ«ú« í½«¬á
- π»αáó½Ñ¡¿∩. àß½¿ φΓ¿ Γ¿»δ ¡Ñ π¬áºá¡δ ¿ »«½∞º«óáΓѽ∞ óó«ñ¿Γ
- í«½∞ΦÑ, τѼ ¼«ªÑΓ »«¼ÑßΓ¿Γ∞ß∩ ó «ñ¡«⌐ ßΓ᫬Ñ, Γ« óó«ñ íπñÑΓ
- »α«ñ«½ªÑ¡ ¡á ß½ÑñπεΘÑ⌐ ßΓ᫬Ñ, Ñß½¿ í½«¬ π»αáó½Ñ¡¿∩ ß«ñÑনΓ
- ¡Ñ߬«½∞¬« ßΓ᫬. éδ ¼«ªÑΓÑ ¬α«¼Ñ φΓ«ú« ¿ß»«½∞º«óáΓ∞ Γ¿»δ
- WS_HSCROLL ¿ (ó ß½πτáÑ ¼¡«ú«ßΓα«τ¡«ú« í½«¬á π»αáó½Ñ¡¿∩)
- WS_VSCROLL, ¬«Γ«αδÑ Γá¬ªÑ »«ºó«½∩εΓ »«½∞º«óáΓÑ½ε »α«¬απτ¿óáΓ∞
- ΓѬßΓ ó í½«¬Ñ π»αáó½Ñ¡¿∩.
-
- éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ αÑñá¬Γ¿απѼδ⌐
- í½«¬ π»αáó½Ñ¡¿∩ ñ½∩ óó«ñá »áα«½Ñ⌐ ¿½¿ ñαπú«ú« ßѬαÑΓ¡«ú« ΓѬßΓá
- Γᬿ¼ «íαẫ¼, τΓ« «¡ ¡Ñ íπñÑΓ «Γ«íαáªáΓ∞ß∩ ¡á φ¬αá¡Ñ. Æ¿»
- ES_PASSWORD «»αÑñѽ∩ÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩, ¬«Γ«αδ⌐
- ¡Ñ «Γ«íαáªáÑΓ ΓѬßΓ »α¿ óó«ñÑ Ñú« »«½∞º«óáΓѽѼ. é¼ÑßΓ« φΓ«ú« ó
- í½«¬Ñ π»αáó½Ñ¡¿∩ «Γ«íαáªáÑΓß∩ ñ½∩ ¬áªñ«ú« ¡áíαá¡¡«ú« ß¿¼ó«½á
- ¡Ñ«í∩ºáΓѽ∞¡δ⌐ ß¿¼ó«½ (»« π¼«½τá¡¿ε ºóѺñ«τ¬á "*"). éδ ¼«ªÑΓÑ
- ¿º¼Ñ¡¿Γ∞ φΓ«Γ ß¿¼ó«½ ß »«¼«Θ∞ε ß««íΘÑ¡¿∩ EM_SETPASSWORDCHAR.
-
- æ »«¼«Θ∞ε ß««íΘÑ¡¿∩ EM_SETTABSTOPS óδ ¼«ªÑΓÑ πßΓá¡«ó¿Γ∞
- »«º¿µ¿¿ Γáíπ½∩µ¿¿ ó ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½½Ñ¡¿∩. ¥Γ« ß««íΘÑ¡¿Ñ «»αÑñѽ∩ÑΓ τ¿ß½« »α«íѽ«ó ¼Ñªñπ
-
- Windows 3.0/pg/2#3 = 33 =
-
- ß½ÑñπεΘ¿¼¿ »«º¿µ¿∩¼¿ Γáíπ½∩µ¿¿.
-
- ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ »«ßδ½áÑΓ πóÑñ«¼½∩εΘÑÑ
- ß««íΘÑ¡¿Ñ ßó«Ñ¼π α«ñ¿Γѽ∞߬«¼π «¬¡π. ìá»α¿¼Ñα, αÑñá¬Γ¿απѼδ⌐
- í½«¬ π»αáó½Ñ¡¿∩ »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ EN_CHANGE, ¬«úñá
- »«½∞º«óáΓѽ∞ ¿º¼Ñ¡∩ÑΓ ΓѬßΓ. ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩
- ¼«ªÑΓ Γá¬ªÑ »«½πτáΓ∞ ß««íΘÑ¡¿∩, Γá¬¿Ñ ¬á¬ EM_GETLINE ¿
- EM_LINELENGTH. é φΓ«¼ ß½πτáÑ «¡ óδ»«½¡∩ÑΓ π¬áºá¡¡δÑ ñÑ⌐ßΓó¿∩.
-
- ÄτÑ¡∞ πñ«í¡á∩ Σπ¡¬µ¿∩ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ -
- φΓ« Σπ¡¬µ¿∩ «Γ¼Ñ¡á ¿º¼Ñ¡Ñ¡¿⌐, »α«¿ºóÑñÑ¡¡δσ ó í½«¬Ñ
- π»αáó½½Ñ¡¿∩. ä½∩ «»αÑñѽѡ¿∩ Γ«ú«, ¼«ªÑΓ ½¿ í½«¬ π»αáó½Ñ¡¿∩
- óδ»«½¡¿Γ∞ φΓπ Σπ¡¬µ¿ε, óδ ¼«ªÑΓÑ »«ß½áΓ∞ ß««íΘÑ¡¿Ñ EM_CANUNDO.
- àß½¿ Windows óÑα¡ÑΓ ¡Ñ¡π½Ñó«Ñ º¡áτÑ¡¿Ñ, Γ« º¡áτ¿Γ ¼«ª¡«
- «Γ¼Ñ¡¿Γ∞ »«ß½Ññ¡ÑÑ ¿º¼Ñ¡Ñ¡¿Ñ. é φΓ«¼ ß½πτáÑ ñ½∩ óδ»«½¡Ñ¡¿∩ φΓ«⌐
- Σπ¡¬µ¿¿ óδ ¼«ªÑΓÑ »«ß½áΓ∞ ß««íΘÑ¡¿Ñ EM_UNDO αÑñá¬Γ¿απѼ«¼π
- í½«¬π π»αáó½Ñ¡¿∩.
-
- é Γáí½¿µÑ 8.4 «»¿ßá¡ »«½∞º«óáΓѽ∞߬¿⌐ ¿¡ΓÑαΣÑ⌐ß ß
- αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩.
-
-
- Æáí½¿µá 8.4 ê¡ΓÑαΣÑ⌐ß »«½∞º«óáΓѽ∩ ß αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼
- π»αáó½Ñ¡¿∩.
- ───────────────────────────────────────────────────────────────
- äÑ⌐ßΓó¿Ñ ÉѺπ½∞ΓáΓ
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¼δΦ¿
- ───────────────────────────────────────────────────────────────
- àñ¿¡¿τ¡«Ñ ¡áªáΓ¿Ñ Å«º¿µ¿«¡¿απÑΓ Γ«τ¬π óó«ñá ¿ »«¼ÑΘáÑΓ ∩¬«α∞
- ¬¡«»¬¿ ¼δΦδ óδí«α¬¿.
-
- äó«⌐¡«Ñ ¡áªáΓ¿Ñ éδí¿αáÑΓ ß½«ó«.
- ¬¡«»¬¿ ¼δΦδ
-
- SHIFT + Å«º¿µ¿«¡¿απÑΓ Γ«τ¬π óó«ñá ¿ αáßΦ¿α∩ÑΓ óδ-
- Ññ¿¡¿τ¡«Ñ ¡áªáΓ¿Ñ í«α¬π «Γ "∩¬«α∩" óδí«α¬¿ ñ« Γ«τ¬¿ óó«ñá.
- ¬¡«»¬¿ ¼δΦδ
-
- ÆáΘ¿Γ∞ Å«¼ÑΘáÑΓ "∩¬«α∞" óδí«α¬¿, »ÑαѼÑΘáÑΓ Γ«τ¬π
- óó«ñá ¿ αáßΦ¿α∩ÑΓ óδí«α¬π «Γ "∩¬«α∩" ñ«
- Γ«τ¬¿ óó«ñá.
- ───────────────────────────────────────────────────────────────
- ê¡ΓÑαΣÑ⌐ß »α¿ ¿ß»«½∞º«óá¡¿¿ ¬½áó¿áΓπαδ
- ───────────────────────────────────────────────────────────────
- è½áó¿Φ¿ ¡á»αáó½Ñ¡¿∩ ôí¿αáεΓ óδí«α¬π ß ½εí«ú« ΓѬßΓá ¿ »ÑαѼÑ-
- ΘáεΓ Γ«τ¬π óó«ñá ó ß««ΓóÑΓßΓóπεΘѼ ¡á»αáó-
- ½Ñ¡¿¿.
-
- SHIFT + ÅÑαѼÑΘáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ ¡Ñ
- ¬½áó¿Φ¿ ¡á»αáó½Ñ¡¿∩ πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ¿ óδ-
- í¿αáÑΓ ΓѬßΓ ¼Ñªñπ Γ«τ¬«⌐ óó«ñá ¿ "∩¬«αѼ"
- óδí«α¬¿.
-
- Windows 3.0/pg/2#3 = 34 =
-
-
- CONTROL + ßΓαѽ¬á ÅÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ¡á ¡áτὫ ß½«óá ó
- ó½Ñó«, CONTROL + π¬áºá¡¡«¼ ¡á»αáó½Ñ¡¿¿.
- ßΓαѽ¬á ó»αáó«
-
- SHIFT + CONTROL + ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
- ßΓαѽ¬á ó½Ñó«, ¡Ñ πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ¡á
- SHIFT + CONTROL + ¡áτὫ ß½«óá ó π¬áºá¡¡«¼ ¡á»αáó½Ñ¡¿¿ ¿
- ßΓαѽ¬á ó»αáó« óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ "∩¬«αѼ" ¿ Γ«τ¬«⌐
- óó«ñá.
-
- HOME ôñá½∩ÑΓ óδí«α¬π ¿ »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá
- ó ¡áτὫ ßΓ᫬¿.
-
- SHIFT + HOME ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
- ¡Ñ πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ó
- ¡áτὫ ßΓ᫬¿ ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ
- "∩¬«αѼ" ¿ Γ«τ¬«⌐ óó«ñá.
-
- CONTROL + HOME Å«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »ÑαÑñ »Ñαóδ¼ ß¿¼ó«-
- ½«¼ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ π»αáó½Ñ¡¿∩.
-
- SHIFT + CONTROL + Å«¼ÑΘáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ ¡Ñ
- HOME πßΓá¡«ó½Ñ¡), »«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »ÑαÑñ
- »Ñαóδ¼ ß¿¼ó«½«¼ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ "∩¬«-
- αѼ" ¿ Γ«τ¬«⌐ óó«ñá.
-
- END ôñá½∩ÑΓ óδí«α¬π ¿ »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá
- ó ¬«¡Ñµ ßΓ᫬¿.
-
- SHIFT + END ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
- ¡Ñ πßΓá¡«ó½Ñ¡), »ÑαѼÑΘáÑΓ Γ«τ¬π óó«ñá ó
- ¬«¡Ñµ ßΓ᫬¿ ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ
- "∩¬«αѼ" ¿ Γ«τ¬«⌐ óó«ñá.
-
- CONTROL + END Å«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »«ß½Ñ »«ß½Ññ¡Ñú«
- ß¿¼ó«½á ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ π»αáó½Ñ¡¿∩.
-
- SHIFT + CONTROL + ôßΓá¡áó½¿óáÑΓ "∩¬«α∞" óδí«α¬¿ (Ñß½¿ «¡ ÑΘÑ
- END ¡Ñ πßΓá¡«ó½Ñ¡), »«¼ÑΘáÑΓ Γ«τ¬π óó«ñá »«ß½Ñ
- »«ß½Ññ¡Ñú« ß¿¼ó«½á ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩, ¿ óδí¿αáÑΓ ΓѬßΓ ¼Ñªñπ "∩¬«αѼ"
- ¿ Γ«τ¬«⌐ óó«ñá.
-
- DELETE àß½¿ ΓѬßΓ óδíαá¡, Γ« πñá½∩ÑΓ φëà ΓѬßΓ.
- àß½¿ ¡ÑΓ, Γ« πñá½∩ÑΓ ß¿¼ó«½, ß»αáóá «Γ
- Γ«τ¬¿ óó«ñá.
-
- SHIFT + DELETE àß½¿ ΓѬßΓ óδíαá¡, óδαѺáÑΓ Ñú« ¿ »«¼ÑΘáÑΓ
- ó ß¿ßΓѼ¡δ⌐ íπΣÑα. ê¡áτÑ πñá½∩ÑΓ ß¿¼ó«½ »Ñ-
- αÑñ Γ«τ¬«⌐ óó«ñá.
-
-
- Windows 3.0/pg/2#3 = 35 =
-
- SHIFT + INSERT éßΓáó½∩ÑΓ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá, ¡á-
- τ¿¡á∩ ß Γ«τ¬¿ óó«ñá.
-
- CONTROL + INSERT è«»¿απÑΓ, ¡« ¡Ñ πñá½∩ÑΓ, óδíαá¡¡δ⌐ ΓѬßΓ
- ó ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- PAGE UP é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ óóÑασ ¡á
- ßΓ᫬π ¼Ñ¡∞ΦÑ, τѼ óδß«Γá í½«¬á π»αáó½Ñ-
- ¡¿∩.
-
- CONTROL + PAGE UP é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ ó½Ñó« ¡á
- Φ¿α¿¡π í½«¬á π»αáó½Ñ¡¿∩ ¼¿¡πß «ñ¿¡
- ß¿¼ó«½.
-
- PAGE DOWN é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ ó¡¿º ¡á
- ßΓ᫬π ¼Ñ¡∞ΦÑ, τѼ óδß«Γá í½«¬á π»αáó½Ñ-
- ¡¿∩.
-
- CONTROL + PAGE DOWN é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ »α«¬απτ¿óáÑΓ ΓѬßΓ ó»αáó« ¡á
- Φ¿α¿¡π í½«¬á π»αáó½Ñ¡¿∩ ¼¿¡πß «ñ¿¡
- ß¿¼ó«½.
-
- CONTROL + ENTER é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá ºáóÑαΦáÑΓ
- ßΓப㠨 »ÑαѼÑΘáÑΓ ¬παß«α ó ¡áτὫ ß½Ñ-
- ñπεΘÑ⌐ ßΓ᫬¿.
-
- CONTROL + TAB é ¼¡«ú«ßΓα«τ¡«¼ αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá óßΓáó½∩ÑΓ
- ß¿¼ó«½ Γáíπ½∩µ¿¿.
- ───────────────────────────────────────────────────────────────
-
- é ¬«¡µÑ ñá¡¡«⌐ ú½áóδ «»¿ßá¡ »α¿¼Ñα EditCntl, ¬«Γ«αδ⌐
- ¿ß»«½∞ºπÑΓ ¼¡«ú«ßΓα«τ¡δ⌐ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ñ½∩
- óδ»«½¡Ñ¡¿∩ íẫóδσ Σπ¡¬µ¿⌐ »« óó«ñπ ¿ αÑñá¬Γ¿α«óá¡¿ε ΓѬßΓá.
- 8.4.6 æΓ᫬¿ »α«¬απΓ¬¿.
-
- æΓ᫬¿ »α«¬απΓ¬¿ - φΓ« »αÑñ«»αÑñѽѡ¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩,
- ¬«Γ«αδÑ ¼«úπΓ αáß»«½áúáΓ∞ß∩ ó ½εí«¼ ¼ÑßΓÑ «¬¡á. Ä¡¿ »«ºó«½∩εΓ
- »«½∞º«óáΓѽε óδí¿αáΓ∞ º¡áτÑ¡¿Ñ ó ¡Ñ»αÑαδó¡«¼ ñ¿á»áº«¡Ñ. æΓ᫬¿
- »α«¬απΓ¬¿ »«ßδ½áεΓ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ α«ñ¿Γѽ∞߬«¼π «¬¡π ó
- ΓÑσ ß½πτá∩σ, ¬«úñá »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ ¬¡«»¬π ¼δΦ¿, ¬«úñá
- ¬παß«α ¡áσ«ñ¿Γß∩ ¡á í½«¬Ñ π»αáó½Ñ¡¿∩ ¿½¿ »ÑαѼÑΘáÑΓ íÑúπ¡«¬ ß
- »«¼«Θ∞ε ¬½áó¿áΓπαδ. ¥Γ« »«ºó«½∩ÑΓ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ
- «íαáíáΓδóáΓ∞ ß««íΘÑ¡¿∩ ñ½∩ Γ«ú«, τΓ«íδ «»αÑñѽ¿Γ∞ óδíαá¡¡«Ñ
- »«½∞º«óáΓѽѼ º¡áτÑ¡¿Ñ ¿ τΓ«íδ ó ß««ΓóÑΓßΓó¿¿ ß ¡¿¼ »ÑαѼÑßΓ¿Γ∞
- íÑúπ¡«¬.
-
-
- Windows 3.0/pg/2#3 = 36 =
-
- ä½∩ ß«ºñá¡¿∩ ñ«τÑα¡Ñú« «¬¡á ßΓ᫬¿ »α«úαπΓ¬¿ óδ ¼«ªÑΓÑ
- ¿ß»«½∞º«óáΓ∞ Γ¿»δ SBS_HORZ ¿½¿ SBS_VERT. æΓα«¬á »α«¬απΓ¬¿ ¼«ªÑΓ
- ¿¼ÑΓ∞ ½εí«⌐ ¡Ñ«íσ«ñ¿¼δ⌐ αẼÑα. àß½¿ óδ σ«Γ¿ΓÑ, τΓ«íδ Φ¿α¿¡á
- (ñ½∩ óÑαΓ¿¬á½∞¡«⌐ ßΓ᫬¿ »α«¬απΓ¬¿) ¿½¿ óδß«Γá (ñ½∩
- ú«α¿º«¡Γá½∞¡«⌐ ßΓ᫬¿ »α«¬απΓ¬¿) ß««ΓóÑΓßΓó«óá½á αẼÑαá¼ «¬¡á,
- óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ß««ΓóÑΓßΓóπεΘ¿Ñ αẼÑα¡«ßΓ¿ «¬¡á, ¬á¬
- »«¬áºá¡« ó ß½ÑñπεΘѼ »α¿¼ÑαÑ:
-
- hScrollBar = CreateWindow("Scrollbar", NULL
- WS_CHILD | WS_VISIBLE | SBS_VERT,
- 20,20,
- GetSystemMetrics(SM_CXVSCROLL),50,
- hWnd, IDSCROLLBAR, hInst, NULL);
-
- öπ¡¬µ¿∩ GetSystemMetrics ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ SM_CXVSCROLL,
- ¬«Γ«α«Ñ »αÑñßΓáó½∩ÑΓ ß«í«⌐ Φ¿α¿¡π ßΓá¡ñáαΓ¡«⌐ ßΓ᫬¿ »α«¬απΓ¬¿
- «¬¡á.
-
- æΓα«¬á »α«¬απΓ¬¿ ¡Ñ ¿¼ÑÑΓ ß»Ñµ¿á½∞¡δσ πóÑñ«¼½∩εΘ¿σ
- ß««íΘÑ¡¿⌐. é¼ÑßΓ« φΓ«ú« «¡¿ »«ßδ½áεΓ ß««íΘÑ¡¿∩ WM_HSCROLL ¿
- WM_VSCROLL ¬á¬ ßΓ᫬¿ »«α¬απΓ¬¿ «¬¡á. Åáαá¼ÑΓα wParam φΓ¿σ
- ß««íΘÑ¡¿⌐ ß«ñÑαª¿Γ º¡áτÑ¡¿Ñ, «»αÑñѽ∩εΘÑÑ Γ¿» óδ»«½¡∩Ѽ«⌐
- »α«¬απΓ¬¿. Åਪ½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ φΓπ ¿¡«Σα¼áµ¿ε ñ½∩
- «»αÑñѽѡ¿∩ ¼ÑßΓ«»«½«ªÑ¡¿∩ íÑúπ¡¬á ¿ ó ßó«¿σ ó¡πΓαÑ¡¡¿σ µÑ½∩σ.
- Æáí½¿µá 8.5 ß«ñÑαª¿Γ ß»¿ß«¬ 󫺼«ª¡δσ º¡áτÑ¡¿⌐ »áαá¼ÑΓαá wParam
- ¿ ñÑ⌐ßΓó¿∩ »«½∞º«óáΓѽ∩, ¬«Γ«αδÑ »α¿ó«ñ∩Γ ¬ ¿σ úÑ¡Ñαᵿ¿.
-
-
- Windows 3.0/pg/2#3 = 37 =
-
-
- Æáí½¿µá 8.5 Å«½∞º«óáΓѽ∞߬¿⌐ ¿¡ΓÑαΣÑ⌐ß ß« ßΓ᫬«⌐ »α«¬απΓ¬¿.
- ───────────────────────────────────────────────────────────────
- ç¡áτÑ¡¿Ñ »áαá- îδΦ∞ è½áó¿áΓπαá
- ¼ÑΓαá wParam
- ───────────────────────────────────────────────────────────────
- SB_LINEUP Å«½∞º«óáΓѽ∞ ¡áª¿¼á- Å«½∞º«óáΓѽ∞ ¡áªá½ ¡á
- ÑΓ ¼δΦ¬«⌐ ¡á ßΓαѽ¬π ¬½áó¿Φπ ßΓαѽ¬á ó½Ñó«
- óóÑασ ¿½¿ ßΓαѽ¬π ¿½¿ ßΓαѽ¬á óóÑασ.
- ó½Ñó« ó ßΓα«¬Ñ »α«¬-
- απΓ¬¿.
-
- SB_LINEDOWN Å«½∞º«óáΓѽ∞ ¡áª¿¼á- Å«½∞º«óáΓѽ∞ ¡áªá½ ¡á
- ÑΓ ¼δΦ¬«⌐ ¡á ßΓαѽ¬π ¬½áó¿Φπ ßΓαѽ¬á ó»αáó«
- 󡿺 ¿½¿ ßΓαѽ¬π ¿½¿ ßΓαѽ¬á 󡿺.
- ó»αáó« ó ßΓα«¬Ñ »α«¬-
- απΓ¬¿.
-
- SB_PAGEUP Å«½∞º«óáΓѽ∞ ¡áªá½ Å«½∞º«óáΓѽ∞ ¡áªá½
- ¼δΦ¬«⌐ óδΦÑ ¿½¿ ½ÑóÑÑ PAGE UP.
- íÑúπ¡¬á ßΓ᫬¿ »α«¬-
- απΓ¬¿.
-
- SB_PAGEDOWN Å«½∞º«óáΓѽ∞ ¡áªá½ Å«½∞º«óáΓѽ∞ ¡áªá½
- ¼δΦ¬«⌐ ¡¿ªÑ ¿½¿ PAGE DOWN.
- »αáóÑÑ íÑúπ¡¬á ßΓ᫬¿
- »α«¬απΓ¬¿.
-
- SB_ENDSCROLL Å«½∞º«óáΓѽ∞ ¡áªá½ ìÑΓ.
- ¼δΦ¬«⌐ ó ½εí«¼ ¼ÑßΓÑ
- ßΓ᫬¿ »α«¬απΓ¬¿, ºá
- ¿ß¬½ετÑ¡¿Ñ¼ íÑúπ¡¬á.
-
- SB_THUMBTRACK Å«½∞º«óáΓѽ∞ "ΓáΘ¿Γ" ìÑΓ.
- íÑúπ¡«¬.
-
- SB_THUMBPOSITION Å«½∞º«óáΓѽ∞ «Γ»πß- ìÑΓ.
- ¬áÑΓ íÑúπ¡«¬.
-
- SB_TOP ìÑΓ. Å«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ
- HOME.
-
- SB_BOTTOM ìÑΓ. Å«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ
- END.
- ───────────────────────────────────────────────────────────────
-
- Windows ¼«ªÑΓ »«º¿µ¿«¡¿α«óáΓ∞ íÑúπ¡«¬ ßΓ᫬¿ »α«¬απΓ¬¿,
- ßó∩ºá¡¡«⌐ ß »á¡Ñ½∞ε »ÑαÑτ¡∩ ¿½¿ αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼
- π»αáó½Ñ¡¿∩, ó ß««ΓóÑΓßΓó¿¿ ß Ñú« ß«ñÑন¼δ¼. Äñ¡á¬«, ßΓ᫬á
- »α«¬απΓ¬¿, ∩ó½∩εΘá∩ß∩ ñ«τÑα¡¿¼ «¬¡«¼, »αÑñßΓáó½∩ÑΓ ñ¿á»áº«¡
- º¡áτÑ¡¿⌐, ¬«Γ«αδÑ ¿¼ÑεΓ ß¼δß½ Γ«½∞¬« ñ½∩ óáΦÑ⌐ »α«úαá¼¼δ.
- æ½Ññ«óáΓѽ∞¡« «¡á «ΓóÑτáÑΓ ºá πßΓá¡«ó¬π ñ¿á»áº«¡á ßΓ᫬¿
- »α«¬απΓ¬¿ ¿ ºá »«º¿µ¿«¡¿α«óá¡¿Ñ íÑúπ¡¬á »«ß½Ñ ¬áªñ«ú«
-
- Windows 3.0/pg/2#3 = 38 =
-
- »ÑαѼÑΘÑ¡¿∩ Ñú« »«½∞º«óáΓѽѼ.
-
- öπ¡¬µ¿∩ SetScrollRange πßΓá¡áó½¿óáÑΓ ñ¿á»áº«¡ º¡áτÑ¡¿⌐,
- »αÑñßΓáó½∩Ѽδσ ßΓ᫬«⌐ »α«¬απΓ¬¿. ìá»α¿¼Ñα, ó óáΦÑ⌐ »α«úαá¼¼Ñ
- ÑßΓ∞ ßΓα«¬á »α«¬απΓ¬¿, ß »«¼«Θ∞ε ¬«Γ«α«⌐ »«½∞º«óáΓѽ∞ ¼«ªÑΓ
- óδíαáΓ∞ ñÑ¡∞ ¼Ñß∩µá. é φΓ«¼ ß½πτáÑ ñ¿á»áº«¡ ßΓ᫬¿ »α«¬απΓ¬¿
- ñ½∩ ƒ¡óáα∩ ¼«ªÑΓ íδΓ∞ πßΓá¡«ó½Ñ¡ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- SetScrollRange(hScrollBar, SB_CTL, 1, 31, 1);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ ¬«¡ßΓá¡Γá SB_CTL ß««íΘáÑΓ Windows, τΓ«
- ßΓα«¬á »α«¬απΓ¬¿ ∩ó½∩ÑΓß∩ «Γñѽ∞¡δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩, ¡Ñ
- ßó∩ºá¡¡δ¼ ß «¬¡«¼. ÆαÑΓ¿⌐ ¿ τÑΓóÑαΓδ⌐ »áαá¼ÑΓαδ «»αÑñѽ∩εΓ
- ñ¿á»áº«¡, á »∩Γδ⌐ »áαá¼ÑΓα (αáó¡δ⌐ 1) ºáßΓáó½∩ÑΓ Windows
- »ÑαÑα¿ß«óáΓ∞ ßΓ᫬π »α«¬απΓ¬¿ ñ½∩ «Γ«íαáªÑ¡¿∩ ¡«ó«ú« ñ¿á»áº«¡á.
-
- äáªÑ »«ß½Ñ Γ«ú«, ¬á¬ óδ «»αÑñѽ¿½¿ ñ¿á»áº«¡ ßΓ᫬¿
- »α«¬απΓ¬¿, Windows ¡Ñ ¼«ªÑΓ πßΓá¡áó½¿óáΓ∞ íÑúπ¡«¬ ó
- ß««ΓóÑΓßΓó¿¿ ß ñÑ⌐ßΓó¿∩¼¿ »«½∞º«óáΓѽ∩, φΓ« «ßΓáÑΓß∩ ¡á óáΦÑ⌐
- »α«úαá¼¼Ñ. è«úñá óáΦá »α«úαá¼¼á »«½πτáÑΓ «Γ ßΓ᫬¿ »α«¬απΓ¬¿
- ß««íΘÑ¡¿∩ WM_HSCROLL ¿½¿ WM_VSCROLL, óδ ñ«½ª¡δ »α«óÑα¿Γ∞
- »áαá¼ÑΓα wParam ñ½∩ «»αÑñѽѡ¿∩ Γ«ú«, ¡á߬«½∞¬« ñá½Ñ¬«
- »«½∞º«óáΓѽ∞ »ÑαѼÑßΓ¿½ íÑúπ¡«¬. Å«ß½Ñ φΓ«ú« óδ óδºδóáÑΓÑ
- Σπ¡¬µ¿ε SetScrollPos ñ½∩ »«º¿µ¿«¡¿α«óá¡¿∩ íÑúπ¡¬á. Æá¬ ªÑ, Ñß½¿
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ ¿º¼Ñ¡¿Γ∞ »«½«ªÑ¡¿Ñ íÑúπ¡¬á, ¡Ñ ¿ß»«½∞ºπ∩
- ßΓ᫬π »α«¬απΓ¬¿ (¡á»α¿¼Ñα, ¡áí¿αá∩ ΓѬßΓ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩), óáΦá »α«úαá¼¼á ñ«½ª¡á »ÑαÑπßΓá¡«ó¿Γ∞ »«º¿µ¿ε
- íÑúπ¡¬á ó ß««ΓóÑΓßΓó¿¿ ß ¡«óδ¼ º¡áτÑ¡¿Ñ¼.
- 8.5 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl
-
- ¥Γá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿½½εßΓα¿απÑΓ, ¬á¬ ¼«ª¡«
- ¿ß»«½∞º«óáΓ∞ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ó «ß¡«ó¡«¼ «¬¡Ñ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ½∩ Γ«ú«, τΓ«íδ «íÑß»Ñτ¿Γ∞ óó«ñ
- ¼¡«ú«ßΓα«τ¡«ú« ΓѬßΓá ¿ Ñú« αÑñá¬Γ¿α«óá¡¿Ñ. Åਪ½áñ¡á∩
- »α«úαá¼¼á EditCntl ºá»«½¡∩ÑΓ «í½áßΓ∞ »«½∞º«óáΓѽ∩ «ß¡«ó¡«ú«
- «¬¡á ¼¡«ú«ßΓα«τ¡δ¼ αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩ ¿ π»αáó½∩ÑΓ
- αẼÑαἿ «í½áßΓ¿ »«½∞º«óáΓѽ∩ ñ½∩ πóÑαÑ¡¡«ßΓ¿ ó »αáó¿½∞¡«¼ ÑÑ
- ºá»«½¡Ñ¡¿¿. Äß¡«ó¡«Ñ «¬¡« »α«úαá¼¼δ EditCntl »α¿óÑñÑ¡« ¡á
- α¿ßπ¡¬Ñ 8.1.
-
- É¿ßπ¡«¬ 8.1 Ĭ¡« »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl.
- 1. éß∩ «í½áßΓ∞ »«½∞º«óáΓѽ∩ «¬¡á »αÑñßΓáó½∩ÑΓ ß«í«⌐ «ñ¿¡
- í½«¬ π»αáó½Ñ¡¿∩.
-
- ä½∩ ß«ºñá¡¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ߬«»¿απ⌐ΓÑ ¿
- »ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿ßσ«ñ¡δÑ Σá⌐½δ ÅÅ EditMenu, á ºáΓѼ óδ»«½¡¿ΓÑ
- ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
-
- 1. ä«íáó∞ΓÑ ¡«óπε ¬«¡ßΓá¡Γπ ó« ó¬½ετáѼδ⌐ Σá⌐½.
-
- 2. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ.
-
-
- Windows 3.0/pg/2#3 = 39 =
-
- 3. ä«íáó∞ΓÑ Σπ¡¬µ¿ε CreateWindow.
-
- 4. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σαáú¼Ñ¡Γ WM_COMMAND.
-
- 5. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_SETFOCUS.
-
- 6. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_SIZE.
-
- 7. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
-
- 8.5.1 ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ ¬«¡ßΓá¡Γπ, ¬«Γ«αá∩ íπñÑΓ
- ¿ß»«½∞º«óáΓ∞ß∩ ó ¬áτÑßΓóÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«αá αÑñá¬Γ¿απѼ«ú« í½«¬á
- π»αáó½Ñ¡¿∩ ó« ó¬½ετáѼδ⌐ Σá⌐½. ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α:
-
- #define ID_EDIT 300
-
- 8.5.2 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.
-
- ìÑ«íσ«ñ¿¼« ¿¼ÑΓ∞ ú½«íá½∞¡πε »ÑαѼѡ¡πε ñ½∩ σαá¡Ñ¡¿∩
- ñÑß¬α¿»Γ«αá «¬¡á αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩. ä«íáó∞ΓÑ
- ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ó ¡áτὫ ¿ßσ«ñ¡«ú« æ-Σá⌐½á:
-
- HWND hEditWnd; /* ñÑß¬α¿»Γ«α αÑñá¬Γ¿απѼ«ú« «¬¡á */
-
- èα«¼Ñ Γ«ú«, ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ ½«¬á½∞¡πε »ÑαѼѡ¡πε ó
- Σπ¡¬µ¿¿ WinMain ñ½∩ σαá¡Ñ¡¿∩ ¬««αñ¿¡áΓ »α∩¼«πú«½∞¡«⌐ «í½áßΓ¿
- »«½∞º«óáΓѽ∩. ¥Γ¿ ¬««αñ¿¡áΓδ ¿ß»«½∞ºπεΓß∩ ñ½∩ «»αÑñѽѡ¿∩
- αẼÑαá í½«¬á π»αáó½Ñ¡¿∩. ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ó ¡áτὫ
- Σπ¡¬µ¿¿ WinMain:
-
- RECT Rect;
- 8.5.3 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ CreateWindow.
-
- ìÑ«íσ«ñ¿¼« ß«ºñáΓ∞ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε CreateWindow; ¡« »ÑαÑñ φΓ¿¼ ¡πª¡« »«½πτ¿Γ∞
- αẼÑαδ «í½áßΓ¿ »«½∞º«óáΓѽ∩, τΓ«íδ ¼«ª¡« í佫 πßΓá¡«ó¿Γ∞
- αẼÑαδ í½«¬á π»αáó½Ñ¡¿∩. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬
- Σπ¡¬µ¿¿ WinMain ßαáºπ »«ß½Ñ ß«ºñá¡¿∩ «ß¡«ó¡«ú« «¬¡á:
-
- GetClientRect(hWnd, (LPRECT) &Rect);
- hEditWnd = CreateWindow("Edit",
- NULL,
- WS_CHILD | WS_VISIBLE |
- ES_MULTILINE |
- WS_VSCROLL | WS_HSCROLL |
- ES_AUTOHSCROLL | ES_AUTOVSCROLL,
-
- Windows 3.0/pg/2#3 = 40 =
-
- 0,
- 0,
- (Rect.right-Rect.left),
- (Rect.bottom-Rect.top),
- hWnd,
- ID_EDIT,
- hInst,
- NULL);
-
- if (!hEditWnd) {
- DestroyWindow(hWnd);
- return (NULL);
- }
-
- öπ¡¬µ¿∩ GetClientRect »«½πτáÑΓ αẼÑαδ «í½áßΓ¿
- »«½∞º«óáΓѽ∩ «ß¡«ó¡«ú« «¬¡á ¿ »«¼ÑΘáÑΓ φΓπ ¿¡Σ«α¼áµ¿ε ó
- ßΓαπ¬Γπαπ Rect. öπ¡¬µ¿∩ CreateWindow ß«ºñáÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬
- π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπ∩ Φ¿α¿¡π ¿ óδß«Γπ, óδτ¿ß½Ñ¡¡πε »α¿ »«¼«Θ¿
- φΓ«⌐ ßΓαπ¬Γπαδ.
-
- öπ¡¬µ¿∩ CreateWindow ß«ºñáÑΓ αÑñá¬Γ¿απѼ«Ñ «¬¡«. ä½∩
- ß«ºñá¡¿∩ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ ¡Ñ«íσ«ñ¿¼«
- ¿ß»«½∞º«óáΓ∞ óßΓα«Ñ¡¡δ⌐ ¬½áßß í½«¬á π»αáó½Ñ¡¿∩ "Edit" ¿
- π¬áºáΓ∞ Γ¿» «¬¡á WS_CHILD. éßΓα«Ñ¡¡δÑ í½«¬¿ π»αáó½Ñ¡¿∩ ¼«úπΓ
- íδΓ∞ ¿ß»«½∞º«óá¡δ Γ«½∞¬« ¬á¬ ñ«τÑα¡¿Ñ «¬¡á. Ä¡¿ ¡Ñ ¼«úπΓ íδΓ∞
- ¿ß»«½∞º«óá¡δ ¬á¬ «ß¡«ó¡δÑ ¿½¿ ¡á¬½áñδóáѼδÑ «¬¡á. ū߬«½∞¬π
- ñ«τÑα¡ÑÑ «¬¡« »«ñαáºπ¼ÑóáÑΓ ¡á½¿τ¿Ñ α«ñ¿Γѽ∞߬«ú« «¬¡á, ó
- ó맮óÑ Σπ¡¬µ¿¿ π¬áºδóáÑΓß∩ ñÑß¬α¿»Γ«α «ß¡«ó¡«ú« «¬¡á hWnd.
-
- ä½∩ φΓ«ú« í½«¬á π»αáó½Ñ¡¿∩ Γá¬ªÑ π¬áºδóáÑΓß∩ α∩ñ Γ¿»«ó
- αÑñá¬Γ¿απѼδσ í½«¬«ó π»αáó½Ñ¡¿∩. Å«ñ«í¡« Γ¿»π «¬«¡, Γ¿»
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ «»αÑñѽ∩ÑΓ, ¬á¬ «¡ íπñÑΓ
- óδú½∩ñÑΓ∞ ¿ ¬á¬ «¡ íπñÑΓ αáí«ΓáΓ∞. ÉÑñá¬Γ¿απѼδ⌐ í½«¬
- π»αáó½Ñ¡¿∩, «»¿ßδóáѼδ⌐ ó ñá¡¡«¼ »α¿¼ÑαÑ, ∩ó½∩ÑΓß∩
- ¼¡«ú«ßΓα«τ¡δ¼, Γ.Ñ. »«ºó«½∩εΘ¿¼ óó«ñ¿Γ∞ ó «¬¡« í«½ÑÑ «ñ¡«⌐
- ßΓ᫬¿ ΓѬßΓá. èα«¼Ñ Γ«ú«, í½«¬ π»αáó½Ñ¡¿∩ íπñÑΓ «ßπΘÑßΓó½∩Γ∞
- ú«α¿º«¡Γá½∞¡πε ¿ óÑαΓ¿¬á½∞¡πε »α«¬απΓ¬π, Ñß½¿ »«½∞º«óáΓѽ∞
- óó«ñ¿Γ í«½∞ΦÑ ΓѬßΓá, τѼ ¼«ªÑΓ »«¼ÑßΓ¿Γ∞ß∩ ó «¬¡Ñ.
-
- éÑασ¡¿⌐ ½Ñóδ⌐ πú«½ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩
- αẼÑΘáÑΓß∩ ó óÑασ¡Ñ¼ ½Ñó«¼ πú½π «í½áßΓ¿ »«½∞º«óáΓѽ∩
- α«ñ¿Γѽ∞߬«ú« «¬¡á (¬««αñ¿¡áΓδ ñ«τÑα¡Ñú« «¬¡á óßÑúñá íÑαπΓß∩
- «Γ¡«ß¿Γѽ∞¡« «í½áßΓ¿ »«½∞º«óáΓѽ∩ α«ñ¿Γѽ∞߬«ú« «¬¡á).
- æ½ÑñπεΘ¿Ñ ñóá áαúπ¼Ñ¡Γá Rect.right-Rect.left ¿
- Rect.bottom-Rect.top «»αÑñѽ∩εΓ óδß«Γπ ¿ Φ¿α¿¡π αÑñá¬Γ¿απѼ«ú«
- í½«¬á π»αáó½Ñ¡¿∩, ñáóá∩ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ« φΓ«Γ í½«¬
- ºá»«½¡∩ÑΓ «í½áßΓ∞ »«½∞º«óáΓѽ∩ »α¿ »Ñαó«⌐ ¿¡ñ¿¬áµ¿¿ «¬¡á.
-
- ū߬«½∞¬π αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ »«ßδ½áÑΓ
- πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ ßó«Ñ¼π α«ñ¿Γѽ∞߬«¼π «¬¡π, «¡ ñ«½ªÑ¡
- íδΓ∞ ºáñá¡ ßó«¿¼ ID (¿ñÑ¡Γ¿Σ¿¬áΓα«¼). ä«τÑα¡¿Ñ «¬¡á ¡Ñ ¼«úπΓ
- ¿¼ÑΓ∞ ¼Ñ¡ε, ΓᬠτΓ« ó¼ÑßΓ« ¡Ñú« áαúπ¼Ñ¡Γ ¼Ñ¡ε ó Σπ¡¬µ¿¿
- CreateWindow ¿ß»«½∞ºπÑΓß∩ ñ½∩ π¬áºá¡¿∩ ID í½«¬á π»αáó½Ñ¡¿∩. ä½∩
-
- Windows 3.0/pg/2#3 = 41 =
-
- ñá¡¡«ú« í½«¬á π»αáó½Ñ¡¿∩ πßΓá¡áó½¿óáÑΓß∩ ID, αáó¡δ⌐ ID_EDIT.
- ïεí«Ñ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ, »«ßδ½áѼ«Ñ α«ñ¿Γѽ∞߬«¼π «¬¡π
- αÑñá¬Γ¿απÑ¼δ¼ í½«¬«¼ π»αáó½Ñ¡¿∩, íπñÑΓ ß«ñÑαªáΓ∞ φëà ID.
-
- àß½¿ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ¡Ñ ¼«ªÑΓ íδΓ∞ ß«ºñá¡,
- Σπ¡¬µ¿∩ CreateWindow ó«ºóαáΘáÑΓ NULL. é φΓ«¼ ß½πτáÑ »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¡Ñ ¼«ªÑΓ »α«ñ«½ªáΓ∞ ßó«ε αáí«Γπ, ¿ Σπ¡¬µ¿∩
- DestroyWindow ¿ß»«½∞ºπÑΓß∩ ñ½∩ αáºαπΦÑ¡¿∩ «ß¡«ó¡«ú« «¬¡á »ÑαÑñ
- ºáóÑαΦÑ¡¿Ñ¼ »α«úαá¼¼δ.
-
- 8.5.4 î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.
-
- ä«τÑα¡¿Ñ í½«¬¿ π»αáó½Ñ¡¿∩ πóÑñ«¼½∩εΓ α«ñ¿Γѽ∞߬«Ñ «¬¡«
- »«ßαÑñßΓó«¼ ß««íΘÑ¡¿∩ WM_COMMAND. Åáαá¼ÑΓα wParam φΓ«ú«
- ß««íΘÑ¡¿∩ ß«ñÑαª¿Γ ¿ñÑ¡Γ¿Σ¿¬áΓ«α í½«¬á π»αáó½Ñ¡¿∩, ¬«Γ«αδ⌐
- »«ß½á½ φΓ« ß««íΘÑ¡¿Ñ.
-
- ä½∩ αáß»«º¡áóá¡¿∩ ß««íΘÑ¡¿∩ « ¡Ññ«ßΓá⪥ »á¼∩Γ¿ ñ½∩
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ ñ«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ ¬«ñ ó
- Σαáú¼Ñ¡Γ WM_COMMAND:
-
- case IDC_EDIT:
- if(HIWORD (lParam) == EN_ERRSPACE) {
- MessageBox(
- GetFocus(),
- "ìÑ σóáΓáÑΓ »á¼∩Γ¿",
- "Åα«úαá¼¼á EditCntl",
- MB_ICONHAND | MB_OK);
- }
- break;
-
- 8.5.5 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SETFOCUS.
-
- ä½∩ ¡á»αáó½Ñ¡¿∩ óó«ñá ó αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ »α¿
- á¬Γ¿ó¿ºáµ¿¿ α«ñ¿Γѽ∞߬«ú« «¬¡á ñ«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó
- Σπ¡¬µ¿ε «¬¡á:
-
- case WM_SETFOCUS:
- SetFocus(hEditWnd);
- break;
-
- 8.5.6 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_SIZE.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ WM_SIZE ¬ Σπ¡¬µ¿¿ «¬¡á.
- Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_SIZE Σπ¡¬µ¿¿ «¬¡á ¬áªñδ⌐ αáº,
- ¬«úñá ¿º¼Ñ¡∩ÑΓß∩ Φ¿α¿¡á ¿½¿ óδß«Γá «¬¡á. ū߬«½∞¬π ¿º¼Ñ¡Ñ¡¿Ñ
- αẼÑα«ó «ß¡«ó¡«ú« «¬¡á ¡Ñ ¿º¼Ñ¡∩ÑΓ áóΓ«¼áΓ¿τÑ߬¿ αẼÑα«ó
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩, Γ« ñ½∩ ¿σ ¿º¼Ñ¡Ñ¡¿∩ ¡Ñ«íσ«ñ¿¼
- Σαáú¼Ñ¡Γ WM_SIZE.
-
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_SIZE:
-
- Windows 3.0/pg/2#3 = 42 =
-
- MoveWindow(hEditWnd, 0, 0, LOWORD(lParam),
- HIWORD(lParam), TRUE);
- break;
-
- 8.5.7 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- é Σá⌐½Ñ make ¿º¼Ñ¡Ñ¡¿⌐ ¡Ñ ΓαÑíπÑΓß∩. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿
- ߬«¼»«¡π⌐ΓÑ »α«úαá¼¼π EditCntl, ºáΓѼ ºá»πßΓ¿ΓÑ Windows ¿
- »α¿¬½áñ¡πε »α«úαá¼¼π. ÆÑ»Ñα∞ ¼«ª¡« óßΓáó¿Γ∞ ΓѬßΓ, ¿ß»«½∞º«óáΓ∞
- ¬½áó¿Φπ BackSpace ñ½∩ πñá½Ñ¡¿∩ ΓѬßΓá ¿ ßñѽáΓ∞ óδí«α¬π »α¿
- »«¼«Θ¿ ¼δΦ¿, á ¡Ñ ¬½áó¿áΓπαδ. ū߬«½∞¬π »α¿ ß«ºñá¡¿¿ í½«¬á
- π»αáó½Ñ¡¿∩ ߻ѵ¿Σ¿µ¿α«óá¡« ES_MULTILINE, ES_AUTOVSCROLL ¿
- ES_AUTOHSCROLL, í½«¬ π»αáó½Ñ¡¿∩ ¼«ªÑΓ αÑñá¬Γ¿α«óáΓ∞ ΓѬßΓ ¡á
- óßѼ φ¬αá¡Ñ, á Γá¬ªÑ «ßπΘÑßΓó½∩Γ∞ »α«¬απΓ¬π.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á EditCntl ¿½½εßΓα¿απÑΓ »Ñαóδ⌐ Φáú,
- ΓαÑíπεΘ¿⌐ß∩ ñ½∩ Γ«ú«, τΓ«íδ ßñѽáΓ∞ »α«ßΓ«⌐ ΓѬßΓ«óδ⌐ αÑñá¬Γ«α.
- ä½∩ Γ«ú«, τΓ«íδ ßñѽáΓ∞ »«½¡δ⌐ αÑñá¬Γ«α, ¼«ª¡« ñ«íáó¿Γ∞ ¼Ñ¡ε
- File ¬ «ß¡«ó¡«¼π «¬¡π ñ½∩ «Γ¬αδΓ¿∩ ¿ ß«σαá¡Ñ¡¿∩ Σá⌐½«ó ΓѬßΓ«ó,
- á Γá¬ªÑ ñ½∩ ¬«»¿α«óá¡¿∩ ¿½¿ »«¿ß¬á ΓѬßΓá ¿º αÑñá¬Γ¿απѼ«ú«
- í½«¬á π»αáó½Ñ¡¿∩ ¿ ñ«íáó¿Γ∞ ¼Ñ¡ε Edit ¬ «ß¡«ó¡«¼π «¬¡π ñ½∩
- ¬«»¿α«óá¡¿∩, αáºαѺ᡿∩ ¿ ߬½Ñ¿óá¡¿∩ ΓѬßΓá ß »«¼«Θ∞ε
- ß¿ßΓѼ¡«ú« íπΣÑαá. ū߽ÑñπεΘ¿Ñ ú½áóδ »α«¿½½εßαΓ¿απεΓ ¡Ñ¬«Γ«αδÑ
- »α«ßΓδÑ »πΓ¿ ñ«íáó½Ñ¡¿∩ φΓ¿σ 󫺼«ª¡«ßΓÑ⌐ ó óáΦπ »α«úαá¼¼π.
- 8.6 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«Ñ ú½áóÑ «»¿ßá¡« ¿ß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. ü½«¬ π»αáó½Ñ¡¿∩ - φΓ« ߻ѵ¿á½∞¡«Ñ
- ñ«τÑα¡ÑÑ «¬¡«, ¬«Γ«α«Ñ óδ ¼«ªÑΓÑ ñ«íá½∩Γ∞ ¬ ßó«Ñ⌐ »α«úαá¼¼Ñ ñ½∩
- óδ»«½¡Ñ¡¿∩ óó«ñá «Γ »«½∞º«óáΓѽ∩. Windows óδ»«½¡∩ÑΓ
- áóΓ«¼áΓ¿τÑ߬πε »«ññÑ᪬π í«½∞Φ¿¡ßΓóá Γ¿»«ó í½«¬«ó π»αáó½Ñ¡¿∩.
- ìá»α¿¼Ñα, Windows ¼«ªÑΓ áóΓ«¼áΓ¿τÑ߬¿ α¿ß«óáΓ∞ í½«¬ π»αáó½Ñ¡¿∩
- ó π¬áºá¡¡«⌐ óἿ Γ«τ¬Ñ, »α¿ óδí«αÑ »«½∞º«óáΓѽѼ í½«¬á
- π»αáó½Ñ¡¿∩ Windows »«ßδ½áÑΓ óáΦÑ⌐ »α«úαá¼¼Ñ ß««íΘÑ¡¿Ñ,
- ß«ñÑαªáΘÑÑ ¿ñÑ¡Γ¿Σ¿¬áΓ«α φΓ«ú« í½«¬á π»αáó½Ñ¡¿∩.
-
- é ñá¡¡«⌐ ú½áóÑ Γá¬ªÑ «»¿ßá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞ ¡á¿í«½ÑÑ
- τáßΓ« óßΓαÑτáεΘ¿Ñß∩ í½«¬¿ π»αáó½Ñ¡¿∩.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« í½«¬«ó π»αáó½Ñ¡¿∩
- óδ ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- Äíαáí«Γ¬á ß««íΘÑ¡¿⌐ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 4, "éó«ñ ß
- óó«ñá ¿ß»«½∞º«ó᡿Ѽ ¼δΦ¿ ¿ ¬½áó¿áΓπαδ"
-
-
- êß»«½∞º«óá¡¿Ñ í½«- Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 9, "Åá¡Ñ½¿
- ¬«ó π»αáó½Ñ¡¿∩ ó ñ¿á½«úá"
- »á¡Ñ½∩σ ñ¿½«úá
-
-
- Windows 3.0/pg/2#3 = 43 =
-
- ô»αáó½∩εΘ¿Ñ Σπ¡¬µ¿¿ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 1,
- "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá π»αáó½Ñ¡¿∩ «¬¡á¼¿",
-
- Ä»ÑαáΓ«αδ «»¿ßá¡¿∩ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 8,
- αÑßπαß«ó "Ä»ÑαáΓ«αδ «»¿ßá¡¿∩ αÑßπαß«ó".
-
- äѼ«¡ßΓαᵿ«¡¡á∩ ä¿ß¬ "SDK Sample Source Code Disk"
- »α«úαá¼¼á
- OWNCOMBO.EXE,
- ¿½½εßΓα¿απÑΓ ¿ß»«½∞-
- º«óá¡¿Ñ ¬á߬áñ¡δσ
- ¼Ñ¡ε, ¼Ñ¡ε, α¿ßπѼδσ
- ó½áñѽ∞µÑ¼ ¿ ¬«¡Γ-
- α«½∞¡δσ «Γ¼ÑΓ«¬, α¿-
- ßπѼδσ ó½áñѽ∞µÑ¼.
-
-
-
-
- Windows 3.0/pg/2#3 = 44 =
-
-
- â½áóá 9. Åá¡Ñ½∞ ñ¿á½«úá.
-
- Åá¡Ñ½∞ ñ¿á½«úá - φΓ« ¡á¬½áñδóáѼ«Ñ «¬¡«, ¬«Γ«α«Ñ
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ ñ½∩ óºá¿¼«ñÑ⌐ßΓó¿∩ ß
- »«½∞º«óáΓѽѼ. Äíδτ¡« »á¡Ñ½¿ ñ¿á½«úá ß«ñÑαªáΓ «ñ¿¡ ¿½¿
- ¡Ñ߬«½∞¬« í½«¬«ó π»αáó½Ñ¡¿∩.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡δ ß½ÑñπεΘ¿Ñ αáºñѽδ:
-
- - ùΓ« Γá¬«Ñ »á¡Ñ½∞ ñ¿á½«úá.
-
- - 櫺ñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ ¼«ñá½∞¡δσ ¿ ¡Ñ¼«ñá½∞¡δσ »á¡Ñ½Ñ⌐
- ñ¿á½«úá.
-
- - 櫺ñá¡¿Ñ Σπ¡¬µ¿⌐ »á¡Ñ½Ñ⌐ ñ¿á½«úá.
-
- - êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
- FileOpen, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ß«ºñá¡¿Ñ ¿ ¿ß»«½∞º«óá¡¿Ñ
- ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá, ß«ñÑαªáΘÑ⌐ ¡Ñ߬«½∞¬« í½«¬«ó
- π»αáó½Ñ¡¿∩.
- 9.1 ùΓ« Γá¬«Ñ »á¡Ñ½∞ ñ¿á½«úá.
-
- Åá¡Ñ½∞ ñ¿á½«úá - φΓ« ¡á¬½áñδóáѼ«Ñ «¬¡«, ¬«Γ«α«Ñ
- »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¿ß»«½∞ºπÑΓ ñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩ ¿½¿ ºá»α«ßá
- ¿¡Σ«α¼áµ¿¿. Åá¡Ñ½¿ ñ¿á½«úá «íδτ¡« ¿ß»«½∞ºπεΓ ñ½∩ ºá»α«ßá π
- »«½∞º«óáΓѽ∩ ¿¡Σ«α¼áµ¿¿, ¡Ñ«íσ«ñ¿¼«⌐ ñ½∩ ºáóÑαΦÑ¡¿∩ ¬«¼á¡ñδ.
- Åá¡Ñ½∞ ñ¿á½«úá ß«ñÑαª¿Γ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« í½«¬«ó π»αáó½Ñ¡¿∩, ß
- »«¼«Θ∞ε ¬«Γ«αδσ »«½∞º«óáΓѽ∞ ¼«ªÑΓ óóÑßΓ¿ ΓѬßΓ, óδíαáΓ∞
- π¬áºá¡¿∩ ¿½¿ ºáßΓáó¿Γ∞ óδ»«½¡¿Γ∞ «Γñѽ∞¡πε ¬«¼á¡ñπ.
-
- Åα¿¼Ñα »á¡Ñ½¿ ñ¿á½«úá πªÑ αáßß¼áΓα¿óá½ß∩ ó »α«úαá¼¼Ñ
- Generic - φΓ« »á¡Ñ½∞ ñ¿á½«úá About. ¥Γá »á¡Ñ½∞ ñ¿á½«úá ß«ñÑনΓ
- ΓѬßΓ«óδ⌐ í½«¬ π»αáó½Ñ¡¿∩, ñáεΘ¿⌐ ¿¡Σ«α¼áµ¿ε « »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ, á Γá¬ªÑ í½«¬ π»αáó½Ñ¡¿∩ Γ¿»á á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá,
- ¬«Γ«αδ⌐ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ºá¬αδΓ¿∩ »á¡Ñ½¿ ñ¿á½«úá ¿
- ó«ºóαáΓá ó «ß¡«ó¡«Ñ «¬¡«. ä½∩ «íαáí«Γ¬¿ »á¡Ñ½¿ ñ¿á½«úá
- ¡Ñ«íσ«ñ¿¼« ºáñáΓ∞ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá, Σπ¡¬µ¿ε ñ¿á½«úá ¿
- ¡Ñ¬«Γ«αδÑ ßαÑñßΓóá ñ½∩ ó맮óá »á¡Ñ½¿ ñ¿á½«úá.
-
- ÿáí½«¡ »á¡Ñ½¿ ñ¿á½«úá - φΓ« «»¿ßá¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá ¿
- í½«¬«ó π»αáó½Ñ¡¿∩, ¬«Γ«αδÑ «¡á ß«ñÑনΓ. ÿáí½«¡ ¼«ª¡« ß«ºñáΓ∞ ß
- »«¼«Θ∞ε ΓѬßΓ«ó«ú« αÑñá¬Γ«αá ¿½¿ ÉÑñá¬Γ«αá ñ¿á½«úá ßαÑñδ
- Windows 3.0, ¿ ºáΓѼ ñ«íáó¿Γ∞ Ñú« ¬ Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
-
- öπ¡¬µ¿∩ ñ¿á½«úá - φΓ« Σπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá,
- ¬«Γ«απε óδºδóáÑΓ Windows, ¬«úñá «¡á ¿¼ÑÑΓ ß««íΘÑ¡¿Ñ ñ½∩ »á¡Ñ½¿
- ñ¿á½«úá. ò«Γ∩ Σπ¡¬µ¿∩ ñ¿á½«úá á¡á½«ú¿τ¡á Σπ¡¬µ¿¿ «¬¡á, Windows
- óδ»«½¡∩ÑΓ ß»Ñµ¿á½∞¡πε «íαáí«Γ¬π »á¡Ñ½Ñ⌐ ñ¿á½«úá Γᬿ¼ «íαẫ¼,
- τΓ« Σπ¡¬µ¿∩ ñ¿á½«úá (»« ßαáó¡Ñ¡¿ε ß Σπ¡¬µ¿Ñ⌐ «¬¡á) «ΓóÑτáÑΓ ºá
- ñαπú¿Ñ ñÑ⌐ßΓó¿∩.
-
- Windows 3.0/pg/2#3 = 45 =
-
-
- Äíδτ¡δ⌐ ß»«ß«í ó맮óá »á¡Ñ½¿ ñ¿á½«úá - ó «ΓóÑΓ ¡á óó«ñ ¿º
- ¼Ñ¡ε. ìá»α¿¼Ñα, ¬«¼á¡ñδ "Open" ¿ "Save As" ó ¼Ñ¡ε File ΓαÑíπεΓ
- ñ«»«½¡¿Γѽ∞¡«⌐ ¿¡Σ«α¼áµ¿¿ ñ½∩ ºáóÑαΦÑ¡¿∩ ¿σ αáí«Γδ. ÄíÑ «¡¿
- ¿¡ñ¿µ¿απεΓ »á¡Ñ½¿ ñ¿á½«úá ñ½∩ ºá»α«ßá ñ«»«½¡¿Γѽ∞¡«⌐
- ¿¡Σ«α¼áµ¿¿.
-
- ê¼ÑÑΓß∩ ñóá Γ¿»á »á¡Ñ½Ñ⌐ ñ¿á½«úá: ¼«ñá½∞¡δÑ ¿ ¡Ñ¼«ñá½∞¡δÑ.
- 9.1.1 î«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá.
-
- î«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá (About) πªÑ ¿ß»«½∞º«óá½áß∞ ó
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ Generic. î«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá - φΓ«
- ¡á¬½áñδóáѼ«Ñ «¬¡«, ¬«Γ«α«Ñ ¿¡ñ¿µ¿απÑΓ ¿¡Σ«α¼áµ¿ε ¿ ºá»α«ß ¡á
- óó«ñ «Γ »«½∞º«óáΓѽ∩. Ä¡á ¡áºδóáÑΓß∩ ¼«ñá½∞¡«⌐, »«ß¬«½∞¬π
- ñѽáÑΓ α«ñ¿Γѽ∞߬«Ñ «¬¡« óαѼѡ¡« ¡Ññ«ßΓπ»¡δ¼ ¿ ºáßΓáó½∩ÑΓ
- »«½∞º«óáΓѽ∩ ºá¬«¡τ¿Γ∞ ºá»αáΦ¿óáѼδÑ ñÑ⌐ßΓó¿∩ »ÑαÑñ ó«ºóαáΓ«¼
- π»αáó½Ñ¡¿∩ α«ñ¿Γѽ∞߬«¼π «¬¡π. ìá»α¿¼Ñα, »α«úαá¼¼á Windows
- Notepad óδó«ñ¿Γ ¼«ñá½∞¡πε »á¡Ñ½∞ ñ¿á½«úá ó «ΓóÑΓ ¡á óδí«α
- ¬«¼á¡ñδ Open ó ¼Ñ¡ε File. Notepad ¡Ñ ¼«ªÑΓ »α«ñ«½ª¿Γ∞
- óδ»«½¡Ñ¡¿Ñ ¬«¼á¡ñδ Open ñ« ΓÑσ »«α, »«¬á »«½∞º«óáΓѽ∞ ¡Ñ π¬áªÑΓ
- Σá⌐½.
-
- ò«Γ∩ ¼«ª¡« ñáΓ∞ ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá »«τΓ¿ ½εí«⌐ Γ¿»,
- αѬ«¼Ñ¡ñ«óá¡¡δ¼¿ Γ¿»á¼¿ ∩ó½∩εΓß∩ DS_MODALFRAME, WS_CAPTION,
- ¿ WS_SYSMENU. Æ¿» DS_MODALFRAME ºáñáÑΓ »á¡Ñ½¿ ñ¿á½«úá ó ¬áτÑßΓóÑ
- »áαá¼ÑΓαá ñó«⌐¡πε ½¿¡¿ε «¬á¡Γ«ó¬¿.
-
- î«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá ºá»π߬áÑΓ ßó«⌐ ß«íßΓóÑ¡¡δ⌐ µ¿¬½
- «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ ¿º «τÑαÑñ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ íѺ
- ó«ºóαáΓá ó Σπ¡¬µ¿ε WinMain. ä½∩ Γ«ú«, τΓ«íδ ºá¬αδΓ∞
- α«ñ¿Γѽ∞߬«¼π «¬¡π «íαáí«Γ¬π óó«ñá, »á¡Ñ½∞ ñ¿á½«úá ñѽáÑΓ Ñú«
- ¡Ññ«ßΓπ»¡δ¼ »ÑαÑñ φΓ«⌐ «íαáí«Γ¬«⌐. Å« φΓ«⌐ »α¿τ¿¡Ñ ¼«ñá½∞¡á∩
- »á¡Ñ½∞ ñ¿á½«úá ¡¿¬«úñá ¡Ñ ¼«ªÑΓ íδΓ∞ ß«ºñá¡á ß ºáñ᡿Ѽ Γ¿»á
- WS_CHILD, »«ß¬«½∞¬π, Ñß½¿ α«ñ¿Γѽ∞߬«Ñ «¬¡« ñѽáÑΓß∩
- ¡Ññ«ßΓπ»¡δ¼, Γá¬ªÑ ñѽáÑΓß∩ ¡Ññ«ßΓπ»¡δ¼ ¿ «¬¡« ñ«τÑα¡Ñú« Γ¿»á,
- »α¿¡áñ½ÑªáΘÑÑ φΓ«¼π α«ñ¿Γѽ∞߬«¼π «¬¡π.
-
- ä½∩ «Γ«íαáªÑ¡¿∩ ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ DialogBox. Éáí«Γá ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá
- ºá¬á¡τ¿óáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ EndDialog.
- 9.1.2 ìѼ«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá.
-
- ìѼ«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá - φΓ« »α«ßΓ« ¡á¬½áñδóáѼ«Ñ
- «¬¡«, ¬«Γ«α«Ñ ¿¡ñ¿µ¿απÑΓ ¿¡Σ«α¼áµ¿ε ¿½¿ ºá»αáΦ¿óáÑΓ óó«ñ «Γ
- »«½∞º«óáΓѽ∩. é «Γ½¿τ¿Ñ «Γ ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá,
- ¡Ñ¼«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá ¡Ñ ñѽáÑΓ ¡Ññ«ßΓπ»¡δ¼ α«ñ¿Γѽ∞߬«Ñ
- «¬¡«. ¥Γ« «º¡áτáÑΓ, τΓ« ¼«ª¡« »α«ñ«½ªáΓ∞ αáí«ΓáΓ∞ ó
- α«ñ¿Γѽ∞߬«¼ «¬¡Ñ, »«¬á ¡Ñ¼«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá
- ¿¡ñ¿µ¿απÑΓß∩. ìá»α¿¼Ñα, Windows Write ¿ß»«½∞ºπÑΓ ¡Ñ¼«ñá½∞¡πε
- »á¡Ñ½∞ ñ¿á½«úá ñ½∩ ¬«¼á¡ñδ Find. ¥Γ« »«ºó«½∩ÑΓ »«½∞º«óáΓѽε
- »α«ñ«½ªáΓ∞ αÑñá¬Γ¿α«óáΓ∞ ΓѬßΓ ¡Ñ ºá¬αδóá∩ »á¡Ñ½∞ ñ¿á½«úá Find.
-
- Windows 3.0/pg/2#3 = 46 =
-
-
- ü«½∞Φ¿¡ßΓó« ¡Ñ¼«ñá½∞¡δσ »á¡Ñ½Ñ⌐ ñ¿á½«úá ¿¼ÑεΓ Γ¿»δ
- WS_POPUP, WS_CAPTION, WS_BORDER ¿ WS_SYSTEMMENU. Äíδτ¡«
- ¡Ñ¼«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá ¿¼ÑεΓ ß¿ßΓѼ¡«Ñ ¼Ñ¡ε, ßΓ᫬π
- ºáú«½«ó¬á ¿ Γ«¡¬πε τÑα¡πε «¬á¡Γ«ó¬π.
-
- ò«Γ∩ Windows áóΓ«¼áΓ¿τÑ߬¿ ñѽáÑΓ ¡Ññ«ßΓπ»¡δ¼¿ ¡Ñ¬«Γ«αδÑ
- ¬«¼á¡ñδ ß¿ßΓѼ¡«ú« ¼Ñ¡ε ó »á¡Ñ½¿ ñ¿á½«úá, ¼Ñ¡ε óßÑ ªÑ ß«ñÑনΓ
- ¬«¼á¡ñπ Close. Å«½∞º«óáΓѽ∞ ¼«ªÑΓ ÑÑ ¿ß»«½∞º«óáΓ∞ ó¼ÑßΓ«
- á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿Φ¿ ñ½∩ ºáóÑαΦÑ¡¿∩ αáí«Γδ ß »á¡Ñ½∞ε ñ¿á½«úá.
- ¡« Γá¬ªÑ ó¬½ετ¿Γ∞ ó »á¡Ñ½∞ ñ¿á½«úá í½«¬¿ π»αáó½Ñ¡¿∩, ΓᬿÑ
- ¬á¬ αÑñá¬Γ¿απѼδÑ í½«¬¿ π»αáó½Ñ¡¿∩ ¿ »á¡Ñ½¿ ¬«¡Γα«½∩.
-
- ìѼ«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε τÑαѺ µ¿¬½
- «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ Σπ¡¬µ¿¿ WinMain. àß½¿ ó »á¡Ñ½¿ ñ¿á½«úá
- ¿¼ÑεΓß∩ í½«¬¿ π»αáó½Ñ¡¿∩ ¿ ¡Ñ«íσ«ñ¿¼« ñáΓ∞ »«½∞º«óáΓѽε
- 󫺼«ª¡«ßΓ∞ »ÑαѼÑßΓ¿Γ∞ ¿½¿ óδíαáΓ∞ í½«¬¿ π»αáó½Ñ¡¿∩ ß »«¼«Θ∞ε
- ¬½áó¿áΓπαδ, ¡Ñ«íσ«ñ¿¼« óδºóáΓ∞ Σπ¡¬µ¿ε IsDialogMessage ó
- «ß¡«ó¡«¼ µ¿¬½Ñ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐. ¥Γá Σπ¡¬µ¿∩ «»αÑñѽ∩ÑΓ,
- ¿¼ÑÑΓß∩ ½¿ ß««íΘÑ¡¿Ñ « óó«ñÑ ß ¬½áó¿áΓπαδ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá, ¿
- »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ «íαáíáΓδóáÑΓ Ñú«. û¿¬½ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐
- ñ½∩ »α«úαá¼¼δ, ¬«Γ«αá∩ ¿¼ÑÑΓ ¡Ñ¼«ñá½∞¡πε »á¡Ñ½∞ ñ¿á½«úá, íπñÑΓ
- óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- while (GetMessage(&msg, NULL, NULL, NULL) {
- if (hDlg == NULL || !IsDialogMessage(hDlg, &msg)) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- }
-
- ū߬«½∞¬π ¡Ñ¼«ñá½∞¡á∩ »á¡Ñ½∞ ñ¿á½«úá ¼«ªÑΓ ¿ ¡Ñ óßÑúñá
- »α¿ßπΓßΓó«óáΓ∞, ¡Ñ«íσ«ñ¿¼« »α«¬«¡Γα«½¿α«óáΓ∞ »ÑαѼѡ¡πε hDlg,
- ¬«Γ«αá∩ ß«ñÑαª¿Γ ñÑß¬α¿»Γ«α, τΓ«íδ «»αÑñѽ¿Γ∞, ñ«»πßΓ¿¼á ½¿
- »á¡Ñ½∞. àß½¿ «¡á ñ«»πßΓ¿¼á, Σπ¡¬µ¿∩ IsDialogMessage «»αÑñѽ∩ÑΓ,
- »αÑñ¡áº¡áτÑ¡« ½¿ ß««íΘÑ¡¿Ñ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá. àß½¿ φΓ« Γá¬,
- ß««íΘÑ¡¿Ñ «íαáíáΓδóáÑΓß∩ ¿ ¡Ñ ñ«½ª¡« ó ñá½∞¡Ñ⌐ΦѼ
- «íαáíáΓδóáΓ∞ß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ TranslateMessage ¿
- DispatchMessage.
-
- çáóÑαΦÑ¡¿Ñ αáí«Γδ ¡Ñ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá »α«¿ßσ«ñ¿Γ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ DestroyWindow.
-
- 9.2 êß»«½∞º«óá¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá.
-
- ä½∩ ß«ºñá¡¿∩ »á¡Ñ½¿ ñ¿á½«úá ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ
- Φáú¿:
-
- 1. 櫺ñáΓ∞ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá ¿ ñ«íáó¿Γ∞ Ñú« ¬ Σá⌐½π
- «»¿ßá¡¿∩ αÑßπαß«ó.
-
- 2. 櫺ñáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá ñ½∩ »«ññÑ᪬¿ αáí«Γδ »á¡Ñ½¿.
-
-
- Windows 3.0/pg/2#3 = 47 =
-
- 3. ¥¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá.
-
- 4. Åá¡Ñ½∞ ñ¿á½«úá «Γ«íαáªáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ DialogBox
- ¿ CreateDialog. ¥Γ¿ Σπ¡¬µ¿¿ ºá»π߬áεΓ ¼«ñá½∞¡πε ¿
- ¡Ñ¼«ñá½∞¡πε »á¡Ñ½¿ ñ¿á½«úá ß««ΓóÑΓßΓóÑ¡¡«.
-
- 5. çá¬αδΓ∞ »á¡Ñ½¿ ñ¿á½«úá ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ EndDialog ¿½¿
- DestroyWindow ñ½∩ ¼«ñá½∞¡«⌐ ¿ ¡Ñ¼«ñá½∞¡«⌐ »á¡Ñ½¿
- ñ¿á½«úá ß««ΓóÑΓßΓóÑ¡¡«.
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
- 9.2.1 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿½«úá.
-
- öπ¡¬µ¿∩ ñ¿á½«úá ¿¼ÑÑΓ ß½ÑñπεΘ¿⌐ ó¿ñ:
-
- BOOL FAR PASCAL DlgFunc(hDlg, message, wParam, lParam)
- HWND hDlg;
- unsigned message;
- WORD wParam;
- DWORD lParam;
- {
- switch (message) {
-
- /* ºñÑß∞ »«¼ÑΘáεΓß∩ Σαáú¼Ñ¡Γδ ß «íαáí«Γ¬«⌐ ß««íΘÑ¡¿⌐ */
-
- default:
- return FALSE;
- }
- }
-
- ¥Γ« ó «ß¡«ó¡«¼ Σπ¡¬µ¿∩ «¬¡á ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« ¡Ñ
- óδºδóáÑΓß∩ Σπ¡¬µ¿∩ DefWindowProc. Äíαáí«Γ¬á ß««íΘÑ¡¿⌐ »á¡Ñ½Ñ⌐
- ñ¿á½«úá »« π¼«½τá¡¿ε «ßπΘÑßΓó½∩ÑΓß∩ óßΓα«Ñ¡¡δ¼¿ ßαÑñßΓóἿ
- ß¿ßΓѼδ, »«φΓ«¼π Σπ¡¬µ¿∩ ñ¿á½«úá ¡Ñ ñ«½ª¡á óδºδóáΓ∞ Σπ¡¬µ¿ε
- DefWindowProc.
-
- öπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á íδΓ∞ «»αÑñÑ½Ñ¡á ¬á¬ »α«µÑñπαá FAR
- PASCAL ¿ ñ«½ª¡á ¿¼ÑΓ∞ π¬áºá¡¡δÑ ºñÑß∞ »áαá¼ÑΓαδ. 髺óαáΘáѼ«Ñ
- º¡áτÑ¡¿Ñ ñ«½ª¡« ¿¼ÑΓ∞ Γ¿» BOOL.
-
- èᬠ¿ ó ß½πτáÑ Σπ¡¬µ¿⌐ «¬¡á, ßαÑñá Windows »«ßδ½áÑΓ
- ß««íΘÑ¡¿∩ Σπ¡¬µ¿¿ ñ¿á½«úá, ¬«úñá ¿¼ÑÑΓ ñ½∩ ¡ÑÑ ¿¡Σ«α¼áµ¿ε ¿
- ¬«úñá ¡Ñ«íσ«ñ¿¼« , τΓ«íδ Σπ¡¬µ¿∩ óδ»«½¡¿½á ¡Ñ¬«Γ«αδÑ ñÑ⌐ßΓó¿∩.
- é «Γ½¿τ¿Ñ «Γ Σπ¡¬µ¿¿ «¬¡á Σπ¡¬µ¿∩ ñ¿á½«úá «ΓóÑτáÑΓ ¡á ß««íΘÑ¡¿Ñ
- »«ß佬«⌐ íπ½Ñó߬«ú« º¡áτÑ¡¿∩. àß½¿ Σπ¡¬µ¿∩ «íαáíáΓδóáÑΓ
- ß««íΘÑ¡¿Ñ, «¡á ó«ºóαáΘáÑΓ TRUE. é »α«Γ¿ó¡«¼ ß½πτáÑ «¡á
- ó«ºóαáΘáÑΓ FALSE.
-
- é φΓ«⌐ Σπ¡¬µ¿¿ »ÑαѼѡ¡á∩ hDlg »«½πτáÑΓ ñÑß¬α¿»Γ«α »á¡Ñ½¿
- ñ¿á½«úá. äαπú¿Ñ »áαá¼ÑΓαδ ß½πªáΓ ΓѼ ªÑ ßá¼δ¼ µÑ½∩¼, τΓ« ¿
- »áαá¼ÑΓαδ Σπ¡¬µ¿¿ «¬¡á. Ä»ÑαáΓ«α switch ß½πª¿Γ ó ¬áτÑßΓóÑ
- Σ¿½∞Γαá ñ½∩ αẽ¿τ¡δσ ß««íΘÑ¡¿⌐. ü«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐ ñ¿á½«úá
-
- Windows 3.0/pg/2#3 = 48 =
-
- «íαáíáΓδóáÑΓ ß««íΘÑ¡¿∩ WM_INITDIALOG ¿ WM_COMMAND ¿ «τÑ¡∞ αÑñ¬«
- ñαπú¿Ñ.
-
- æ««íΘÑ¡¿Ñ WM_INITDIALOG, »«ßδ½áѼ«Ñ »á¡Ñ½¿ ñ¿á½«úá
- ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ ÑÑ ¿¡ñ¿µ¿α«ó᡿Ѽ, »αÑñ«ßΓáó½∩ÑΓ Σπ¡¬µ¿¿
- ñ¿á½«úá 󫺼«ª¡«ßΓ∞ ºáσóáΓ¿Γ∞ óó«ñ ñ½∩ ½εí«ú« í½«¬á π»αáó½Ñ¡¿∩.
- àß½¿ Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ TRUE, Windows «íÑß»Ñτ¿Γ ºáσóáΓ óó«ñá
- ñ½∩ óδíαá¡¡«ú« í½«¬á π»αáó½Ñ¡¿∩.
-
- æ««íΘÑ¡¿Ñ WM_COMMAND »«ßδ½áÑΓß∩ ó Σπ¡¬µ¿ε ñ¿á½«úá í½«¬«¼
- π»αáó½Ñ¡¿∩, »α¿¡áñ½ÑªáΘ¿¼ »á¡Ñ½¿ ñ¿á½«úá. àß½¿ ó »á¡Ñ½¿ ñ¿á½«úá
- ßπΘÑßΓóπεΓ í½«¬¿ π»αáó½Ñ¡¿∩, «¡¿ »«ßδ½áεΓ πóÑñ«¼½∩εΘ¿Ñ
- ß««íΘÑ¡¿∩, ¬«úñá »«½∞º«óáΓѽ∞ óδ»«½¡∩ÑΓ ¡Ñ¬«Γ«αδÑ ñÑ⌐ßΓó¿∩ ß
- ¡¿¼¿. ìá»α¿¼Ñα, Σπ¡¬µ¿∩ «íαáí«Γ¬¿ »á¡Ñ½¿ ñ¿á½«úá ß
- á½∞ΓÑα¡áΓ¿ó¡δ¼¿ ¬½áó¿ΦἿ ¼«ªÑΓ »α«óÑα∩Γ∞ ß««íΘÑ¡¿∩ WM_COMMAND
- ¡á ID í½«¬á π»αáó½Ñ¡¿∩ á½∞ΓÑα¡áΓ¿ó¡«⌐ ¬½áó¿Φ¿. ID í½«¬á
- π»αáó½Ñ¡¿∩ ß«ñÑনΓß∩ ó »áαá¼ÑΓαÑ wParam. è«úñá Σπ¡¬µ¿∩ ñ¿á½«úá
- ¡áσ«ñ¿Γ ID, Γ« óδ»«½¡∩εΓß∩ ß««ΓóÑΓßΓóπεΘ¿Ñ ñÑ⌐ßΓó¿∩.
-
- àß½¿ »á¡Ñ½∞ ñ¿á½«úá ß«ºñá¡á ß Γ¿»«¼ WS_SYSMENU, óδ ñ«½ª¡δ
- ó¬½ετ¿Γ∞ ó «»ÑαáΓ«α switch «íαáí«Γ¬π ¿ñÑ¡Γ¿Σ¿¬áΓ«αá IDCANCEL,
- ¬«Γ«αδ⌐ »«ßδ½áÑΓß∩ »α¿ óδí«αÑ »«½∞º«óáΓѽѼ ¬«¼á¡ñδ Close ó
- ß¿ßΓѼ¡«¼ ¼Ñ¡ε. Äíαáí«Γ¬á φΓ«ú« ß««íΘÑ¡¿∩ ñ«½ª¡á ó¬½ετáΓ∞ ó맮ó
- Σπ¡¬µ¿¿ EndDialog.
-
- 9.2.2 êß»«½∞º«óá¡¿Ñ í½«¬«ó π»αáó½Ñ¡¿∩ ó »á¡Ñ½∩σ ñ¿á½«úá.
-
- ü½«¬¿ π»αáó½Ñ¡¿∩ ó »á¡Ñ½∩σ ñ¿á½«úá ¿ß»«½∞ºπεΓß∩ ó« ¼¡«ú«¼
- ΓᬪÑ, ¬á¬ «¡¿ ¿ß»«½∞ºπεΓß∩ ó «íδτ¡δσ «¬¡áσ. Äñ¡á¬«, ¬«úñá í½«¬
- π»αáó½Ñ¡¿∩ ¡áσ«ñ¿Γß∩ ó »á¡Ñ½¿ ñ¿á½«úá, ¼«ª¡« ¿ß»«½∞º«óáΓ∞
- ¡Ñ¬«Γ«αδÑ ß»Ñµ¿á½∞¡δÑ Σπ¡¬µ¿¿ ñ½∩ ñ«ßΓπ»á ¬ í½«¬π π»αáó½Ñ¡¿∩ ¿
- »«ß佬¿ Ѽπ ß««íΘÑ¡¿⌐. ìá»α¿¼Ñα, Σπ¡¬µ¿∩ SendDlgItemMessage
- »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ í½«¬π π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá, á Σπ¡¬µ¿∩
- SetDlgItemText πßΓá¡áó½¿óáÑΓ ΓѬßΓ í½«¬á π»αáó½Ñ¡¿∩. ìÑ ß½ÑñπÑΓ
- ºáñáóáΓ∞ φΓ¿¼ Σπ¡¬µ¿∩¼ ñÑß¬α¿»Γ«α í½«¬á π»αáó½Ñ¡¿∩. é¼ÑßΓ«
- φΓ«ú« ¡πª¡« ºáñáΓ∞ ñÑß¬α¿»Γ«α ñ¿á½«úá ¿ ID í½«¬á π»αáó½Ñ¡¿∩.
- ä½∩ »«½πτÑ¡¿∩ ñÑß¬α¿»Γ«αá í½«¬á π»αáó½Ñ¡¿∩ ¼«ª¡« ¿ß»«½∞º«óáΓ∞
- Σπ¡¬µ¿ε GetDlgItem.
- 9.3 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ FileOpen.
-
- äá¡¡δ⌐ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ »«¬áºδóáÑΓ, ¬á¬
- »«ßΓα«¿Γ∞ ¿ ¿ß»«½∞º«óáΓ∞ ¼«ñá½∞¡πε »á¡Ñ½∞ ñ¿á½«úá ñ½∩ »«ññÑ᪬¿
- ¬«¼á¡ñδ ÄΓ¬αδΓ∞ ó ¼Ñ¡ε öá⌐½. ìạáτÑ¡¿Ñ ¿ αáí«Γá ß »á¡Ñ½∞ε
- ñ¿á½«úá »«½¡«ßΓ∞ε «»¿ßá¡δ ó System Application Architecture,
- Common User Access: Advanced Interface Design Guide. ìá α¿ßπ¡¬Ñ
- 9.1 »«¬áºá¡ ó¿ñ »á¡Ñ½¿ ñ¿á½«úá, ¬«Γ«απε «Γ«íαáªáÑΓ »α«úαá¼¼á
- FileOpen »α¿ óδí«αÑ ¬«¼á¡ñδ Open ó ¼Ñ¡ε File.
-
- É¿ßπ¡«¬ 9.1 Åá¡Ñ½∞ ñ¿á½«úá »α«úαá¼¼δ FileOpen.
- 1. ÉÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó«½Ñ¡¿∩.
- 2. æΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩.
- 3. Åá¡Ñ½∞ »ÑαÑτ¡∩.
-
- Windows 3.0/pg/2#3 = 49 =
-
- 4. ǽ∞ΓÑα¡áΓ¿ó¡δÑ ¬½áó¿Φ¿.
-
- Åá¡Ñ½∞ ñ¿á½«úá FileOpen ß«ñÑαª¿Γ ß½ÑñπεΘ¿Ñ í½«¬¿
- π»αáó½Ñ¡¿∩:
-
- 1. ü½«¬ π»αáó½Ñ¡¿∩ Γ¿»á á½∞ΓÑα¡áΓ¿ó¡á∩ ¬½áó¿Φá »« π¼«½-
- τá¡¿ε, »«¼ÑτÑ¡¡δ⌐ "Open", ¿ß»«½∞ºπѼδ⌐ ñ½∩ Γ«ú«,
- τΓ«íδ »«íπñ¿Γ∞ »α«úαá¼¼π «Γ¬αδΓ∞ óδíαá¡¡δ⌐ Σá⌐½.
-
- 2. è½áó¿Φ¡δ⌐ í½«¬ π»αáó½Ñ¡¿∩, »«¼ÑτÑ¡¡δ⌐ "Cancel",
- ¿ß»«½∞ºπÑΓß∩ ñ½∩ «Γ¼Ñ¡δ ¬«¼á¡ñδ ÄΓ¬αδΓ∞.
-
- 3. Äñ¡«ßΓα«τ¡δ⌐ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩, ó ¬«Γ«αδ⌐
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ óó«ñ¿Γ∞ ¿¼∩ «Γ¬αδóáѼ«ú« Σá⌐½á.
-
- 4. Åá¡Ñ½∞ »ÑαÑτ¡∩, ß«ñÑαªáΘá∩ ¿¼Ñ¡á Σá⌐½«ó ó ΓѬπΘѼ
- ¬áΓὫúÑ, ¿º ¬«Γ«αδσ »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδí¿αáΓ∞ Σá⌐½
- ñ½∩ «Γ¬αδΓ¿∩.
-
- Åá¡Ñ½∞ »ÑαÑτ¡∩ Γá¬ªÑ ß«ñÑαª¿Γ ¿¼Ñ¡á ¬áΓὫú«ó ¿
- πßΓα«⌐ßΓó, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ ¿ß»«½∞º«óá¡δ ñ½∩
- ¿º¼Ñ¡Ñ¡¿∩ ΓѬπΘÑú« ¬áΓὫúá ¿½¿ πßΓα«⌐ßΓóá.
-
- 5. ìÑ߬«½∞¬« ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπѼδσ
- ñ½∩ »«¼ÑΓ¬¿ »á¡Ñ½¿ »ÑαÑτ¡∩ ¿ αÑñá¬Γ¿απѼ«ú« í½«¬á
- π»αáó½Ñ¡¿∩, á Γá¬ªÑ ñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩ ΓѬπΘÑú« ¿¼Ñ¡¿
- ¬áΓὫúá.
-
- ä½∩ ß«ºñá¡¿∩ »α«úαá¼¼δ FileOpen ߬«»¿απ⌐ΓÑ ¿ »ÑαÑ¿¼Ñ¡π⌐ΓÑ
- ¿ßσ«ñ¡δÑ Σá⌐½δ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ EditCntl, á ºáΓѼ ßñѽá⌐ΓÑ
- ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
-
- 1. ä«íáó∞ΓÑ ¡«óδÑ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
-
- 2. 櫺ñá⌐ΓÑ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá Open ¿ ñ«íáó∞ΓÑ Ñú« ¬
- Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
-
- 3. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ.
-
- 4. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ IDM_OPEN ¬ Σαáú¼Ñ¡Γπ WM_COMMAND.
-
- 5. 櫺ñá⌐ΓÑ Σπ¡¬µ¿ε ñ¿á½«úá OpenDlg.
-
- 6. ä«íáó∞ΓÑ óß»«¼«úáΓѽ∞¡δÑ Σπ¡¬µ¿¿ ñ½∩ »«ññÑ᪬¿ Σπ¡¬µ¿¿
- ñ¿á½«úá OpenDlg.
-
- 7. ¥¬ß»«αΓ¿απ⌐ΓÑ Σπ¡¬µ¿ε ñ¿á½«úá OpenDlg.
-
- 8. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
-
- Windows 3.0/pg/2#3 = 50 =
-
-
- 9.3.1 ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
-
- ìÑ«íσ«ñ¿¼« ¿¼ÑΓ∞ ¡Ñ߬«½∞¬« ¡«óδσ ¬«¡ßΓá¡Γ ó« ó¬½ετáѼ«¼
- Σá⌐½Ñ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ í½«¬«ó π»αáó½Ñ¡¿∩ »á¡Ñ½¿ ñ¿á½«úá
- FileOpen. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- #define ID_FILENAME 400
- #define ID_EDIT 401
- #define ID_FILES 402
- #define ID_PATH 403
- #define ID_LISTBOX 404
-
- ò«Γ∩ ¼«ª¡« óδíαáΓ∞ ½εí«Ñ µÑ½«Ñ ñ½∩ ID í½«¬á π»αáó½Ñ¡¿∩,
- ñ½∩ ¬áªñ«ú« í½«¬á π»αáó½Ñ¡¿∩ ó ºáñá¡¡«⌐ »á¡Ñ½¿ ñ¿á½«úá «¡«
- ñ«½ª¡« íδΓ∞ π¡¿¬á½∞¡δ¼. Äíδτ¡« óßΓα«Ñ¡¡δÑ ID, Γá¬¿Ñ ¬á¬ IDOK
- ¿½¿ IDCANCEL, ¼Ñ¡∞ΦÑ 100, ΓᬠτΓ« ½εí«Ñ τ¿ß½«, í«½∞ΦÑÑ 100,
- ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ñ½∩ ñαπú¿σ í½«¬«ó π»αáó½Ñ¡¿∩.
- 9.3.2 櫺ñá¡¿Ñ Φáí½«¡á »á¡Ñ½¿ ñ¿á½«úá Open.
-
- é Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ Φáí½«¡ ñ½∩
- «»αÑñѽѡ¿∩ αẼÑα«ó ¿ ó¡ÑΦ¡Ñú« ó¿ñá »á¡Ñ½¿ ñ¿á½«úá Open.
- Ä»ÑαáΓ«α DIALOG ߻ѵ¿Σ¿µ¿απÑΓ ¿¼∩ ¿ αẼÑαδ »á¡Ñ½¿ ñ¿á½«úá, á
- Γá¬ªÑ í½«¬¿ π»αáó½Ñ¡¿∩, ¬«Γ«αδÑ «¡á ß«ñÑনΓ. ä«íáó∞ΓÑ
- ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- (1) Open DIALOG 10, 10, 148, 112
- STYLE WS_MODALFRAME | WS_CAPTION | WS_SYSMENU
- CAPTION "FileOpen"
- (2) BEGIN
- (3) LTEXT "Open File &Name", ID_FILENAME, 4, 4, 60, 10
- (4) EDITTEXT ID_EDIT, 4, 16, 100, 12, ES_AUTOHSCROLL
- LTEXT "&Files in", ID_FILES, 4, 40, 32, 10
- (5) LISTBOX ID_LISTBOX, 4, 52, 70, 56, WS_TABSTOP
- (6) LTEXT "", ID_PATH, 40, 40, 100, 10
- (7) DEFPUSHBUTTON "&ÄΓ¬αδΓ∞", IDOK, 87, 60, 50, 14
- (8) PUSHBUTTON "ÄΓ¼Ñ¡¿Γ∞", IDCANCEL 87, 80, 50, 14
- END
-
- é φΓ«¼ «»ÑαáΓ«αÑ DIALOG:
-
- 1) Åá¡Ñ½∞ ñ¿á½«úá ¿¼ÑÑΓ Φ¿α¿¡π ¿ óδß«Γπ, αáó¡πε
- ß««ΓóÑΓßΓóÑ¡¡« 148 ¿ 112 (ó Ññ¿¡¿µáσ ñ¿á½«úá). àñ¿¡¿µá
- ñ¿á½«úá - φΓ« ñ«½∩ αẼÑαá ß¿¼ó«½á ß¿ßΓѼ¡«ú« Φα¿ΣΓá »«
- π¼«½τá¡¿ε, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓß∩ ó »á¡Ñ½∩σ ñ¿á½«úá ñ½∩
- Γ«ú«, τΓ«íδ »á¡Ñ½∞ ñ¿á½«úá ¿¼Ñ½á «ñ¡¿ ¿ ΓÑ ªÑ
- «Γ¡«ß¿Γѽ∞¡δÑ αẼÑαδ ó¡Ñ ºáó¿ß¿¼«ßΓ¿ «Γ ¿ß»«½∞ºπѼ«ú«
- Γ¿»á »Ñαß«¡á½∞¡«⌐ ¥éî.
-
- 2) ìÑ«íσ«ñ¿¼δ «»ÑαáΓ«αδ BEGIN ¿ END.
-
- 3) ÅÑαóδ⌐ «»ÑαáΓ«α LTEXT ß«ºñáÑΓ óδαáó¡Ñ¡¡δ⌐ ó½Ñó«
-
- Windows 3.0/pg/2#3 = 51 =
-
- ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ßΓ᫬π
- "Open File &Name". ¥Γá ßΓ᫬á ß½πª¿Γ ó ¬áτÑßΓóÑ ¼ÑΓ¬¿ ñ½∩
- »á¡Ñ½¿ ñ¿á½«úá. é ¡Ñ¬«Γ«αδσ »á¡Ñ½∩σ ñ¿á½«úá óßÑ
- ßΓáΓ¿τÑ߬¿Ñ í½«¬¿ π»αáó½Ñ¡¿∩ ¿¼ÑεΓ «ñ¿¡ ¿ ëà ªÑ ID. ò«Γ∩
- »« «íΘ¿¼ »αáó¿½á¼ ¡áñ« ¿¼ÑΓ∞ π¡¿¬á½∞¡δ⌐ ID ñ½∩ ¬áªñ«ú«
- í½«¬á π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá, ñ«»πßΓ¿¼« ¿ß»«½∞º«óáΓ∞
- -1 ñ½∩ ßΓáΓ¿τÑ߬¿σ í½«¬«ó π»αáó½Ñ¡¿∩ ñ« ΓÑσ »«α, »«¬á
- Σπ¡¬µ¿¿ ñ¿á½«úá ¡Ñ ¡áñ« íπñÑΓ αẽ¿τáΓ∞ ¿σ (¡á»α¿¼Ñα, ñ«
- ΓÑσ »«α, »«¬á Σπ¡¬µ¿∩ ñ¿á½«úá ¡Ñ »«»δΓáÑΓß∩ ¿º¼Ñ¡¿Γ∞ ΓѬßΓ
- ¿½¿ αáß»«½«ªÑ¡¿Ñ ßΓáΓ¿τÑ߬«ú« í½«¬á π»αáó½Ñ¡¿∩).
-
- 4) Ä»ÑαáΓ«α EDITTEXT ñ«íáó½∩ÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩
- ¬ »á¡Ñ½¿ ñ¿á½«úá ¿ ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ Ñú« ¬á¬ ID_EDIT. çáñá¡
- Γ¿» ES_AUTOHSCROLL, ΓᬠτΓ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ óóÑßΓ¿ ¿¼∩
- Σá⌐½á, ¬«Γ«α«Ñ ñ½¿¡¡ÑÑ Φ¿α¿¡δ í½«¬á π»αáó½Ñ¡¿∩.
-
- 5) Ä»ÑαáΓ«α LISTBOX ß«ºñáÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩. ID »á¡Ñ½¿ »ÑαÑτ¡∩
- αáóÑ¡ ID_LISTBOX. ÿ¿α¿¡á ¿ óδß«Γá »á¡Ñ½¿ »ÑαÑτ¡∩ αáó¡δ 70
- ¿ 56 ß««ΓóÑΓßΓóÑ¡¡« (ó Ññ¿¡¿µáσ ñ¿á½«úá). çáñá¡ Γ¿»
- WS_TABSTOP, ΓᬠτΓ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ ºáσóáΓ¿Γ∞ óó«ñ ñ½∩
- »á¡Ñ½¿ »ÑαÑτ¡∩, ¿ß»«½∞ºπ∩ ¬½áó¿áΓπαπ. àß½¿ φΓ«Γ Γ¿» ¡Ñ
- ¿ß»«½∞º«óáΓ∞, Γ« Ññ¿¡ßΓóÑ¡¡δ¼ ß»«ß«í«¼ »«½πτÑ¡¿∩ ñ«ßΓπ»á ¬
- »á¡Ñ½¿ »ÑαÑτ¡∩ ∩ó½∩ÑΓß∩ ¡áªáΓ¿Ñ ¡á ¬¡«»¬π ¼δΦ¿.
-
- 6) ū߽Ññ¡¿⌐ «»ÑαáΓ«α LTEXT ß«ºñáÑΓ óδαáó¡Ñ¡¡δ⌐ ó½Ñó«
- ßΓáΓ¿τÑ߬¿⌐ í½«¬ π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπѼδ⌐ ñ½∩
- π¬áºá¡¿∩ ΓѬπΘÑú« ¬áΓὫúá ¿ πßΓα«⌐ßΓóá. ü½«¬ π»αáó½Ñ¡¿∩
- »Ñαó«¡áτá½∞¡« »πßΓ; »«ºªÑ ñ«íáó½∩ÑΓß∩ ¿¼∩ ¼áαΦαπΓá. ¥Γ«Γ
- í½«¬ π»αáó½Ñ¡¿∩ ¿¼ÑÑΓ π¡¿¬á½∞¡δ⌐ ID, αáó¡δ⌐ ID_PATH, ñ½∩
- Γ«ú«, τΓ«íδ «Γ½¿τáΓ∞ Ñú« «Γ ñαπú¿σ ßΓáΓ¿τÑ߬¿σ í½«¬«ó
- π»αáó½Ñ¡¿∩. ¥Γ« ó᪡«, »«ß¬«½∞¬π ñ½∩ ºá»«½¡Ñ¡¿∩ í½«¬á
- π»αáó½Ñ¡¿∩ íπñÑΓ ¿ß»«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿∩ DlgDirList.
-
- 7) Ä»ÑαáΓ«α DEFPUSHBUTTON ß«ºñáÑΓ á½∞ΓÑα¡áΓ¿ó¡πε ¬½áó¿Φπ »«
- π¼«½τá¡¿ε, ¬«Γ«αá∩ »«¼ÑτÑ¡á "Open" ¿ ¿¼ÑΓ ID í½«¬á
- π»αáó½Ñ¡¿∩ IDOK. é ¼«ñá½∞¡δσ »á¡Ñ½∩σ ñ¿á½«úá ¡áªáΓ¿Ñ
- ¬½áó¿Φ¿ Enter úÑ¡Ñα¿απÑΓ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ, ¬«Γ«α«Ñ
- ¿ß»«½∞ºπÑà ëà ªÑ ßá¼δ⌐ ID, ΓᬠτΓ« ñ½∩ Γ«ú«, τΓ«íδ
- «Γ¬αδΓ∞ óδíαá¡¡δ⌐ Σá⌐½, »«½∞º«óáΓѽ∞ ¼«ªÑΓ ¿½¿ ¡áªáΓ∞
- ¼∩ú¬πε ¬½áó¿Φπ, ¿½¿ ¬½áó¿Φπ Enter.
-
- 8) Ä»ÑαáΓ«α PUSHBUTTON ß«ºñáÑΓ á½∞ΓÑα¡áΓ¿ó¡πε ¬½áó¿Φπ
- "Cancel". àÑ ID αáóÑ¡ IDCANCEL (óßΓα«Ñ¡¡δ⌐ ID, ¡áσ«ñ∩Θ¿⌐ß∩
- ó Σá⌐½Ñ windows.h). é ¼«ñá½∞¡δσ »á¡Ñ½∩σ ñ¿á½«úá ¡áªáΓ¿Ñ
- ¬½áó¿Φ¿ Escape úÑ¡Ñα¿απÑΓ πóÑñ«¼½∩εΘÑÑ ß««íΘÑ¡¿Ñ,
- ¿ß»«½∞ºπεΘÑÑ Γ«Γ ªÑ ßá¼δ⌐ ID, ΓᬠτΓ« ñ½∩ «Γ¼Ñ¡δ ¬«¼á¡ñδ
- Open ¼«ª¡« αáºαÑΦ¿Γ∞ »«½∞º«óáΓÑ½ε ¡áªáΓ∞ ¿½¿ ¼∩ú¬πε
- ¬½áó¿Φπ, ¿½¿ ¬½áó¿Φπ Escape.
-
- 9.3.3 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.
-
- ìÑ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞ ¡Ñ߬«½∞¬« ¡«óδσ ú½«íá½∞¡δσ ¿ ½«¬á½∞¡δσ
- »ÑαѼѡ¡δσ ñ½∩ σαá¡Ñ¡¿∩ ¿¼Ñ¡¿ Σá⌐½á ¿ «Γñѽ∞¡δσ τáßΓÑ⌐, ¿º
-
- Windows 3.0/pg/2#3 = 52 =
-
- ¬«Γ«αδσ «¡« ßΓα«¿Γß∩. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó ¡áτὫ
- Σá⌐½á αÑßπαß«ó:
-
- char FileName[128]; /* ΓѬπΘÑÑ ¿¼∩ Σá⌐½á */
- char PathName[128]; /* ΓѬπΘ¿⌐ ¼áαΦαπΓ */
- char OpenName[128]; /* ¿¼∩ «Γ¬αδóáѼ«ú« Σá⌐½á */
- char DefPath[128]; /* ¼áαΦαπΓ »« π¼«½τá¡¿ε
- ñ½∩ »á¡Ñ½¿ »ÑαÑτ¡∩ */
- char DefSpec[13] = "*.*"; /* óδí«α¬á »« π¼«½τá¡¿ε */
- char DefExt[] = ".txt"; /* αáßΦ¿αÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á
- »« π¼«½τá¡¿ε */
- char str[255]; /* ßΓ᫬á ñ½∩ ó맮óá Σπ¡¬-
- 樨 sprintf() */
-
- ìÑ«íσ«ñ¿¼á Γá¬ªÑ ¡«óá∩ ½«¬á½∞¡á∩ »ÑαѼѡ¡á∩ ñ½∩ σαá¡Ñ¡¿∩
- áñαÑßá φ¬ºÑ¼»½∩αá »α«µÑñπαδ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá FileOpen.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- FAPROC lpOpenDlg;
- 9.3.4 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_OPEN.
-
- ìÑ«íσ«ñ¿¼« ºá¡ÑßΓ¿ Σαáú¼Ñ¡Γ IDM_OPEN ñ½∩ ß««íΘÑ¡¿∩
- WM_COMMAND ¿ ¿¡ñ¿µ¿α«óáΓ∞ »á¡Ñ½∞ ñ¿á½«úá Open, ¬«úñá
- »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬
- Σπ¡¬µ¿¿ «¬¡á:
-
- case IDM_OPEN:
- lpOpenDlg = MakeProcInstance((FARPROC) OpenDlg, hInst));
- DialogBox(hInst, "Open", hWnd, lpOpenDlg);
- FreeProcInstance(lpOpenDlg);
- break;
-
- öπ¡¬µ¿∩ MakeProcInstance ß«ºñáÑΓ áñαÑß φ¬ºÑ¼»½∩αá
- »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿ OpenDlg. ¥Γ« ñáÑΓ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ«
- »α¿ ó맮óÑ Σπ¡¬µ¿¿ ñ¿á½«úá ¿ß»«½∞ºπεΓß∩ ßÑú¼Ñ¡Γδ ñá¡¡δσ
- ΓѬπΘÑú« φ¬ºÑ¼»½∩αá. öπ¡¬µ¿¿ Γ¿»á OpenDlg, ¬«Γ«αδÑ
- φ¬ß»«αΓ¿απεΓß∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐, ¼«úπΓ íδΓ∞ óδºóá¡δ Γ«½∞¬«
- τÑαѺ áñαÑß φ¬ºÑ¼»½∩αá »α«µÑñπαδ ¿ ¡Ñ ¼«úπΓ íδΓ∞ óδºóá¡δ
- ¡Ñ»«ßαÑñßΓóÑ¡¡«.
-
- öπ¡¬µ¿∩ FreeProcInstance ¿ß»«½∞ºπÑΓß∩ ñ½∩ «ßó«í«ªñÑ¡¿∩
- áñαÑßá φ¬ºÑ¼»½∩αá »α«µÑñπαδ, ¬«úñá «¡ ßΓá¡«ó¿Γß∩ ¡Ñ ¡πªÑ¡.
- Å«ß½Ñ Γ«ú«, ¬á¬ Σπ¡¬µ¿∩ DialogBox ó«ºóαáΓ¿Γ π»αáó½Ñ¡¿Ñ, áñαÑß
- φ¬ºÑ¼»½∩αá »α«µÑñπαδ lpOpenDlg ßΓá¡«ó¿Γß∩ ¡Ñ ¡πªÑ¡ ¿ ¼«ªÑΓ íδΓ∞
- «ßó«í«ªñÑ¡. Åα¿ ß½ÑñπεΘѼ ó맮óÑ »á¡Ñ½¿ ñ¿á½«úá «¡ ñ«½ªÑ¡ íδΓ∞
- ó«ßßΓá¡«ó½Ñ¡.
-
- öπ¡¬µ¿∩ DialogBox ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ Γ«½∞¬« »«ß½Ñ Γ«ú«,
- ¬á¬ Σπ¡¬µ¿∩ ñ¿á½«úá ºáóÑαΦ¿Γ αáí«Γπ ß »á¡Ñ½∞ε ñ¿á½«úá. ¥Γ«
- «º¡áτáÑΓ, τΓ« »á¡Ñ½∞ ñ¿á½«úá ñ«½ª¡á óδ»«½¡¿Γ∞ óßÑ ñÑ⌐ßΓó¿∩,
- ºá»α«ΦÑ¡¡δÑ »«½∞º«óáΓѽѼ, »αѪñÑ τѼ »α«úαá¼¼á ¼«ªÑΓ
- »α«ñ«½ª¿Γ∞ αáí«Γπ. Æá¬á∩ »á¡Ñ½∞ ñ¿á½«úá ¡áºδóáÑΓß∩ ¼«ñá½∞¡«⌐,
-
- Windows 3.0/pg/2#3 = 53 =
-
- »«ß¬«½∞¬π »«¬á «¡á ¡áσ«ñ¿Γß∩ ¡á φ¬αá¡Ñ, »α«úαá¼¼á αáí«ΓáÑΓ ó
- ñαπú«¼ αѪ¿¼Ñ. ¥Γ« «º¡áτáÑΓ, τΓ« »«½∞º«óáΓѽ∞ ¼«ªÑΓ «ΓóÑΓ¿Γ∞
- Γ«½∞¬« »á¡Ñ½¿ ñ¿á½«úá, á ¬«¼á¡ñδ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ «ßΓáεΓß∩
- ¡Ññ«ßΓπ»¡δ¼¿.
- 9.3.5 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ OpenDlg.
-
- ä½∩ «íαáí«Γ¬¿ αẽ¿τ¡δσ í½«¬«ó π»αáó½Ñ¡¿∩ ¡Ñ«íσ«ñ¿¼«
- ß«ºñáΓ∞ »á¡Ñ½∞ ñ¿á½«úá Open. è«úñá »á¡Ñ½∞ ñ¿á½«úá ó»ÑαóδÑ
- ¿¡ñ¿µ¿απÑΓß∩, Σπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á ºá»«½¡¿Γ∞ »á¡Ñ½∞ »ÑαÑτ¡∩ ¿
- αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩, á ºáΓѼ ºáσóáΓ¿Γ∞ óó«ñ ñ½∩ φΓ«ú«
- í½«¬á π»αáó½Ñ¡¿∩ ¿ óδíαáΓ∞ »«½¡πε ߻ѵ¿Σ¿¬áµ¿ε. àß½¿
- »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¿¼∩ Σá⌐½á ¿º »á¡Ñ½¿ »ÑαÑτ¡∩, Σπ¡¬µ¿∩
- ñ¿á½«úá ñ«½ª¡á ߬«»¿α«óáΓ∞ ¿¼∩ ó αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
- àß½¿ »«½∞º«óáΓѽ∞ ¡áª¼ÑΓ ¬½áó¿Φπ Open, Σπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á
- »«½πτ¿Γ∞ ¿¼∩ Σá⌐½á ¿º αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ ¿
- »«ñú«Γ«ó¿Γ∞ Σá⌐½ ¬ «Γ¬αδΓ¿ε. àß½¿ »«½∞º«óáΓѽ∞ ñóáªñδ ¡áª¼ÑΓ ¡á
- ¬¡«»¬π ¼δΦ¿, ¡áσ«ñ∩ß∞ ¡á ¿¼Ñ¡¿ Σá⌐½á ó »á¡Ñ½¿ »ÑαÑτ¡∩, Σπ¡¬µ¿∩
- ñ¿á½«úá ñ«½ª¡á ¡á⌐Γ¿ ¿¼∩ Σá⌐½á, ߬«»¿α«óáΓ∞ Ñú« ó αÑñá¬Γ¿απѼδ⌐
- í½«¬ π»αáó½Ñ¡¿∩ ¿ »«ñú«Γ«ó¿Γ∞ Σá⌐½ ¬ «Γ¬αδΓ¿ε.
-
- ä«íáó∞ΓÑ ß½ÑñπεΘπε Σπ¡¬µ¿ε ¬ Σá⌐½π αÑßπαß«ó:
-
- HANDLE FAR PASCAL OpenDlg(hDlg, message, wParam, lParam)
- HWND hDlg;
- unsigned message;
- WORD wParam;
- LONG lParam;
- {
- WORD index; /* ¿¡ñÑ¬ß ¿¼Ñ¡¿ Σá⌐½á ó »á¡Ñ½¿ »ÑαÑτ¡∩ */
- PSTR pTptr; /* óαѼѡ¡δ⌐ π¬áºáΓѽ∞ */
- HANDLE hFile; /* ñÑß¬α¿»Γ«α «Γ¬αδóáѼ«ú« Σá⌐½á */
-
- switch (message) {
- case WM_COMMAND:
- switch (wParam) {
- case ID_LISTBOX:
- switch (HIWORD) {
- case LBN_SELCHANGE:
- if (!DlgDirSelect(hDlg, str,
- ID_LISTBOX)) {
- SetDlgItemText(hDlg,
- ID_EDIT, str);
- SendDlgItemMessage(hDlg,
- ID_EDIT, EM_SETSEL,
- NULL,
- MAKELONG(0, 0x7fff));
- }
- else {
- strcat(str, DefSpec);
- DlgDirList(hDlg, str,
- ID_LISTBOX, ID_PATH,
- 0x4010);
-
- Windows 3.0/pg/2#3 = 54 =
-
- }
- break;
- case LBN_DBLCLK:
- goto openfile; /* ¬«¡Ñµ Σαáú-
- ¼Ñ¡Γá
- ID_LISTBOX */
- }
- return (TRUE);
- case IDOK:
- openfile:
- GetDlgItemText(hDlg, ID_EDIT, OpenName,
- 128);
- if (strchr(OpenName, '*') ||
- strchr(OpenName, '?')) {
- SeparateFile(hDlg, (LPSTR) str,
- (LPSTR) DefSpec,
- (LPSTR) OpenName);
- if (str[0])
- strcpy(DefPath, str);
- ChangeDefExt(DefExt, DefSpec);
- UpdateListBox(hDlg);
- return (TRUE);
- }
- if (!OpenName[0]) {
- MessageBox(hDlg,
- "ê¼∩ Σá⌐½á ¡Ñ ºáñá¡«", NULL,
- MB_OK | MB_ICONQUESTION);
- return (TRUE);
- }
- AddExt(OpenName, DefExt);
- EndDialog(hDlg, NULL);
- return (TRUE);
- case IDCANCEL:
- EndDialog(hDlg, NULL);
- return (TRUE);
- }
- break;
-
- case WM_INITDIALOG: /* ºá»α«ß ¡á ¿¡¿µ¿á½¿-
- ºáµ¿ε */
- UpdateListBox(hDlg);
- SetDlgItemText(hDlg, ID_EDIT, DefSpec);
- SendDlgItemMessage(hDlg, /* ñÑß¬α¿»Γ«α »á¡Ñ½¿
- ñ¿á½«úá */
- ID_EDIT, /* ¬πñá »«ß½áΓ∞ ß««í-
- ΘÑ¡¿Ñ */
- EM_SETSEL, /* óδí«α ß¿¼ó«½«ó */
- NULL, /* ñ«íáó«τ¡á∩ ¿¡Σ«α¼á-
- µ¿∩ */
- MAKELONG(0, 0x7fff)); /* »α¿Ñ¼ »«½¡«ú« ß«-
- ñÑন¼«ú« */
- SetFocus(GetDlgItem(hDlg, ID_EDIT));
- return (FALSE); /* ¿¡ñ¿¬áΓ«α ºáσóáΓá óó«ñá í½«-
-
- Windows 3.0/pg/2#3 = 55 =
-
- ¬«¼ π»αáó½Ñ¡¿∩ */
-
- }
- return (FALSE);
- }
-
- è«úñá Σπ¡¬µ¿∩ ñ¿á½«úá »«½πτáÑΓ ß««íΘÑ¡¿Ñ WM_INITDIALOG,
- Σπ¡¬µ¿∩ SetDlgItemText ¬«»¿απÑΓ ¡áτá½∞¡«Ñ ¿¼∩ Σá⌐½á ó
- αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩, á Σπ¡¬µ¿∩ SendDlgItemMessage
- »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ EM_SETSEL í½«¬π π»αáó½Ñ¡¿∩ ñ½∩ Γ«ú«, τΓ«íδ
- óδíαáΓ∞ Ñú« »«½¡«Ñ ß«ñÑন¼«Ñ ñ½∩ αÑñá¬Γ¿α«óá¡¿∩. öπ¡¬µ¿∩
- SetFocus ºáσóáΓδóáÑΓ óó«ñ ñ½∩ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩
- (Σπ¡¬µ¿∩ GetDlgItem »«½πτáÑΓ ñÑß¬α¿»Γ«α φΓ«ú« í½«¬á
- π»αáó½Ñ¡¿∩). öπ¡¬µ¿∩ UpdateListBox, ºáñá¡¡á∩ ó ¡áτá½Ñ Σαáú¼Ñ¡Γá
- WM_INITDIALOG, ∩ó½∩ÑΓß∩ ½«¬á½∞¡« «»αÑñѽѡ¡«⌐ Σπ¡¬µ¿Ñ⌐, ¬«Γ«αá∩
- ºá»«½¡∩ÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩ ß»¿ß¬«¼ Σá⌐½«ó ΓѬπΘÑú« ¬áΓὫúá.
-
- è«úñá Σπ¡¬µ¿∩ ñ¿á½«úá »«½πτáÑΓ ß««íΘÑ¡¿Ñ WM_COMMAND, «¡á
- Ñú« «íαáíáΓδóáÑΓ ñ½∩ ΓαÑσ αẽ¿τ¡δσ º¡áτÑ¡¿⌐: IDOK, ID_LISTBOX
- ¿ IDCANCEL.
-
- é ß½πτáÑ ID_LISTBOX Σπ¡¬µ¿∩ ñ¿á½«úá »α«óÑα∩ÑΓ Γ¿»
- πóÑñ«¼½∩εΘÑú« ß««íΘÑ¡¿∩. àß½¿ «¡ αáóÑ¡ LBN_SELCHANGE, Σπ¡¬µ¿∩
- ñ¿á½«úá ñѽáÑΓ ¡«óπε óδí«α¬π ß »«¼«Θ∞ε Σπ¡¬µ¿¿ DlgDirSelect.
- çáΓѼ «¡á ¬«»¿απÑΓ ¡«ó«Ñ ¿¼∩ Σá⌐½á ó αÑñá¬Γ¿απѼδ⌐ í½«¬
- π»αáó½Ñ¡¿∩, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SetDlgItem, ¿ óδí¿αáÑΓ Ñú« ñ½∩
- αÑñá¬Γ¿α«óá¡¿∩, »«ßδ½á∩ ß««íΘÑ¡¿Ñ EM_SETSEL. àß½¿ ΓѬπΘá∩
- óδí«α¬á ¡Ñ ∩ó½∩ÑΓß∩ ¿¼Ñ¡Ñ¼ Σá⌐½á, Σπ¡¬µ¿∩ ñ¿á½«úá ¬«»¿απÑΓ
- ߻ѵ¿Σ¿¬áµ¿ε »« π¼«½τá¡¿ε ó »á¡Ñ½∞ »ÑαÑτ¡∩, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- DlgDirList. Åα¿ φΓ«¼ »á¡Ñ½∞ »ÑαÑτ¡∩ ºá»«½¡∩ÑΓß∩ ¿¼Ñ¡á¼¿ Σá⌐½«ó
- ΓѬπΘÑú« ¬áΓὫúá.
-
- àß½¿ Γ¿» πóÑñ«¼½∩εΘÑú« ß««íΘÑ¡¿∩ ID_LISTBOX αáóÑ¡
- LBN_DBLCLK, Σπ¡¬µ¿∩ ñ¿á½«úá óδ»«½¡∩ÑΓ ΓÑ ªÑ ßá¼δÑ ñÑ⌐ßΓó¿∩, τΓ«
- ñ½∩ IDOK. Åá¡Ñ½∞ »ÑαÑτ¡∩ »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ LBN_DBLCLK Γ«½∞¬«
- »«ß½Ñ Γ«ú«, ¬á¬ íπñÑΓ »«ß½á¡« ß««íΘÑ¡¿Ñ LBN_SELCHANGE. ¥Γ«
- «º¡áτáÑΓ, τΓ« ¬«úñá »«½∞º«óáΓѽ∞ »«½πτáÑΓ πóÑñ«¼½Ñ¡¿Ñ « ñó«⌐¡«¼
- ¡áªáΓ¿¿, ¡Ñ ß½ÑñπÑΓ ¿ß¬áΓ∞ ¡«ó«Ñ ¿¼∩ Σá⌐½á.
-
- é ß½πτáÑ IDOK Σπ¡¬µ¿∩ ñ¿á½«úá »«½πτáÑΓ ß«ñÑন¼«Ñ
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ ¿ »α«óÑα∩ÑΓ ¿¼∩ Σá⌐½á ¡á
- ¬«ααÑ¬Γ¡«ßΓ∞. öπ¡¬µ¿∩ strchr ¿ΘÑΓ ó ¿¼Ñ¡¿ π¡¿óÑαßá½∞¡δÑ
- ß¿¼ó«½δ. àß½¿ «¡á ¡áσ«ñ¿Γ Γᬫ⌐ ß¿¼ó«½, Γ« αáºñѽ∩ÑΓ ¿¼∩ Σá⌐½á
- ¡á «Γñѽ∞¡δÑ τáßΓ¿ - ¼áαΦαπΓ ¿ ¿¼∩ Σá⌐½á, ¿ß»«½∞ºπ∩ ½«¬á½∞¡«
- «»αÑñѽѡ¡πε Σπ¡¬µ¿ε SeparateFile. öπ¡¬µ¿∩ strcpy ¬«ααÑ¬Γ¿απÑΓ
- »ÑαѼѡ¡πε DefPath ß πτÑΓ«¼ ¡«ó«ú« ¼áαΦαπΓá, Ñß½¿ «¡ ÑßΓ∞.
- 﫬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ ChangeDefExt ¬«ααÑ¬Γ¿απÑΓ
- »ÑαѼѡ¡πε DefExt ß πτÑΓ«¼ ¡«ó«ú« αáßΦ¿αÑ¡¿∩ ¿¼Ñ¡¿ Σá⌐½á »«
- π¼«½τá¡¿ε, Ñß½¿ «¡« ÑßΓ∞. Å«ß½Ñ π¬áºá¡¡«⌐ ¬«ααÑ¬Γ¿α«ó¬¿ Σπ¡¬µ¿∩
- UpdateListBox ¬«ααÑ¬Γ¿απÑΓ ß«ñÑন¼«Ñ »á¡Ñ½¿ »ÑαÑτ¡∩, á Σπ¡¬µ¿∩
- ñ¿á½«úá ó«ºóαáΘáÑΓ π»αáó½Ñ¡¿Ñ, τΓ«íδ ñáΓ∞ »«½∞º«óáΓѽε
- 󫺼«ª¡«ßΓ∞ óδíαáΓ∞ ¬«ααÑ¬Γ¡«Ñ ¿¼∩ Σá⌐½á ¿º ¡«ó«ú« »ÑαÑτ¡∩.
-
-
- Windows 3.0/pg/2#3 = 56 =
-
- àß½¿ ¿¼∩ Σá⌐½á ¡Ñ ß«ñÑαª¿Γ π¡¿óÑαßá½∞¡δσ ß¿¼ó«½«ó, Σπ¡¬µ¿∩
- ñ¿á½«úá ñ«½ª¡á πñ«ßΓ«óÑα¿Γ∞ß∩, τΓ« Σá⌐½ ¡Ñ »πßΓ. àß½¿ «¡ »πßΓ,
- Σπ¡¬µ¿∩ ñ¿á½«úá ¿¡ñ¿µ¿απÑΓ »αÑñπ»αѪñáεΘÑÑ ß««íΘÑ¡¿Ñ, ¡« ¡Ñ
- ºáóÑαΦáÑΓ αáí«Γπ ß »á¡Ñ½∞ε ñ¿á½«úá. ¥Γ« ñáÑΓ »«½∞º«óáΓѽε
- 󫺼«ª¡«ßΓ∞ ßñѽáΓ∞ ÑΘÑ «ñ¡π »«»δΓ¬π. àß½¿ ¿¼∩ Σá⌐½á ¡Ñ
- ß«ñÑαª¿Γ π¡¿óÑαßá½∞¡δσ ß¿¼ó«½«ó ¿ Σá⌐½ ¡Ñ »πßΓ, ¿ Ñß½¿
- »«½∞º«óáΓѽ∞ óó«ñ¿Γ ¿¼∩ Σá⌐½á, ¡Ñ ß«ñÑαªáΘÑÑ αáßΦ¿αÑ¡¿∩,
- Σπ¡¬µ¿∩ ñ¿á½«úá ¿ß»«½∞ºπÑΓ ½«¬á½∞¡« «»αÑñѽѡ¡πε Σπ¡¬µ¿ε AddExt
- ñ½∩ ñ«íáó½Ñ¡¿∩ αáßΦ¿αÑ¡¿∩ ¿¼Ñ¡¿ Σá⌐½á »« π¼«½τá¡¿ε. çáΓѼ
- Σπ¡¬µ¿∩ ñ¿á½«úá óδºδóáÑΓ Σπ¡¬µ¿ε EndDialog ñ½∩ ºáóÑαΦÑ¡¿∩
- αáí«Γδ ¼«ñá½∞¡«⌐ »á¡Ñ½¿ ñ¿á½«úá ¿ πßΓá¡«ó¬¿ ó«ºóαáΘáѼ«ú«
- º¡áτÑ¡¿∩ ó NULL.
-
- é ß½πτáÑ IDCANCEL Σπ¡¬µ¿∩ ñ¿á½«úá óδºδóáÑΓ Σπ¡¬µ¿ε
- EndDialog ñ½∩ ºáóÑαΦÑ¡¿∩ αáí«Γδ ß »á¡Ñ½∞ε ñ¿á½«úá ¿ «Γ¼Ñ¡δ
- ¬«¼á¡ñδ. 髺óαáΘáѼ«Ñ º¡áτÑ¡¿Ñ πßΓá¡áó½¿óáÑΓß∩ ó NULL.
-
- ÅÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ αáí«Γδ ß »á¡Ñ½∞ε ñ¿á½«úá Σπ¡¬µ¿∩ ñ¿á½«úá
- ¼«ªÑΓ Γá¬ªÑ »α«óÑα¿Γ∞ ßπΘÑßΓó«óá¡¿Ñ ¿ αѪ¿¼ ñ«ßΓπ»á ¬ ºáñá¡¡«¼π
- Σá⌐½π. Åα«óÑα¬á ¡á ßπΘÑßΓó«óá¡¿Ñ - ñѽ« ßἫ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ¿ ó ñá¡¡«¼ »α¿¼ÑαÑ ¡Ñ »α«¿ºó«ñ¿Γß∩. ìѬ«Γ«αδÑ »α«ßΓδÑ
- ß»«ß«íδ Γᬫ⌐ »α«óÑન »α¿óÑñÑ¡δ ó ú½áóÑ 10 "éó«ñ ¿ óδó«ñ ó
- Σá⌐½".
- 9.3.6 ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ ¡Ñ߬«½∞¬« Σπ¡¬µ¿⌐ ¬ ¿ßσ«ñ¡«¼π
- æ-Σá⌐½π ñ½∩ »«ññÑ᪬¿ Σπ¡¬µ¿¿ ñ¿á½«úá OpenDlg. ¥Γ¿ Σπ¡¬µ¿¿
- »ÑαÑτ¿ß½Ñ¡δ ¡¿ªÑ:
-
- öπ¡¬µ¿∩ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- UpdateListBox çừ½¡∩ÑΓ »á¡Ñ½∞ »ÑαÑτ¡∩ ó »á¡Ñ½¿ ñ¿á½«úá
- Open ¿¼Ñ¡á¼¿ π¬áºá¡¡δσ Σá⌐½«ó.
-
- SeparateFile Éáºñѽ∩ÑΓ »«½¡«Ñ ¿¼∩ Σá⌐½á ¡á ¿¼∩ ¼áαΦαπΓá
- ¿ ¿¼∩ Σá⌐½á.
-
- ChangeDefExt è«»¿απÑΓ αáßΦ¿αÑ¡¿Ñ ¿¼Ñ¡¿ Σá⌐½á ó íπΣÑα,
- Ñß½¿ Γ«½∞¬« αáßΦ¿αÑ¡¿Ñ ¡Ñ ß«ñÑαª¿Γ π¡¿óÑα-
- ßá½∞¡δσ ß¿¼ó«½«ó.
-
- AddExt ä«íáó½∩ÑΓ αáßΦ¿αÑ¡¿Ñ ¬ ¿¼Ñ¡¿ Σá⌐½á, Ñß-
- ½¿ «¡« ¡Ñ ¿¼Ñ½« αáßΦ¿αÑ¡¿∩.
- ───────────────────────────────────────────────────────────────
-
- öπ¡¬µ¿∩ UpdateListBox ßΓα«¿Γ »«½¡«Ñ ¿¼∩ Σá⌐½á, ¿ß»«½∞ºπ∩
- ¼áαΦαπΓ »« π¼«½τá¡¿ε ¿ ¿¼∩ Σá⌐½á, á ºáΓѼ »ÑαÑñáÑΓ Ñú« »á¡Ñ½¿
- »ÑαÑτ¡∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ DlgDirList. ¥Γá Σπ¡¬µ¿∩ ºá»«½¡∩ÑΓ
- »á¡Ñ½∞ »ÑαÑτ¡∩ ¿¼Ñ¡á¼¿ Σá⌐½«ó ¿ ¬áΓὫú«ó, ¬áªñδ⌐ ¿º ¬«Γ«αδσ
- ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡ »«½¡δ¼ ¿¼Ñ¡Ñ¼ ¼áαΦαπΓá Σá⌐½á. ä«íáó∞ΓÑ
- ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
-
-
- Windows 3.0/pg/2#3 = 57 =
-
- void UpdateListBox(hDlg)
- HWND hDlg;
- {
- strcpy(str, DefPath);
- strcat(str, DefSpec);
- DlgDirList(hDlg, str, ID_LISTBOX, ID_PATH, 0x4010);
- SetDlgItemText(hDlg, ID_EDIT, DefSpec);
- }
-
- öπ¡¬µ¿∩ SetDlgItemText ¬«»¿απÑΓ ¿¼∩ Σá⌐½á »« π¼«½τá¡¿ε ó
- αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ »á¡Ñ½¿ ñ¿á½«úá.
-
- öπ¡¬µ¿∩ SeparateFile αáºñѽ∩ÑΓ »«½¡«Ñ ¿¼∩ Σá⌐½á ¡á ñóÑ
- τáßΓ¿ ¿ ¬«»¿απÑΓ ¿σ ó αáºñѽ∞¡δÑ íπΣÑαδ. Ä¡á ß¡áτá½á
- »ÑαѼÑΘáÑΓß∩ ó ¬«¡Ñµ »«½¡«ú« ¿¼Ñ¡¿ Σá⌐½á ¿ ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε
- AnsiPrev ñ½∩ «íαáΓ¡«ú« »ÑαѼÑΘÑ¡¿∩, ¡áσ«ñ∩ »α¿ φΓ«¼ αáºñѽ¿Γѽ∞
- »ÑαÑñ ¿¼Ñ¡Ñ¼ ñαá⌐óÑαá ¿½¿ ¬áΓὫúá. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
-
- void SeparateFile(hDlg,lpDestPath, lpDestFileName,
- lpSrcFileName)
- HWND hDlg;
- LPSTR lpDestPath, lpDestFileName, lpSrcFileName;
- {
- LPSTR lpTmp;
- CHAR cTmp;
- lpTmp = lpSrcFileName + (long) lstrlen(lpSrcFileName);
- while (*lpTmp != ':' && *lpTmp != '\' &&
- lpTmp > lpSrcFileName)
- lpTmp = AnsiPrev(lpSrcFileName, lpTmp);
- if (*lpTmp != ':' && *lpTmp != '\') {
- lstrcpy(lpDestFileName, lpSrcFileName);
- lpDestPath[0] = 0;
- return;
- }
- lstrcpy(lpDestFileName, lpTmp + 1);
- cTmp = *(lpTmp + 1);
- lstrcpy(lpDestPath, lpSrcFileName);
- *(lpTmp + 1) = cTmp;
- lpDestPath[(lpTmp - lpSrcFileName) + 1] = 0;
- }
-
- öπ¡¬µ¿¿ ChangeDefExt ¿ AddExt ¿ß»«½∞ºπεΓ ßΓá¡ñáαΓ¡δÑ
- «»ÑαáΓ«αδ ∩ºδ¬á æ ñ½∩ óδ»«½¡Ñ¡¿∩ »«ßΓáó½Ñ¡¡«⌐ »ÑαÑñ ¡¿¼¿
- ºáñáτ¿. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
-
-
- void ChangeDefExt(Ext, Name)
- PSTR Ext, Name;
- {
- PSTR pTptr;
-
- pTptr = Name;
-
- Windows 3.0/pg/2#3 = 58 =
-
- while (*pTptr && *pTptr != '.')
- pTptr++;
- if (*pTptr) /* true, Ñß½¿ φΓ« - αáß-
- Φ¿αÑ¡¿Ñ */
- if (!strchr(pTptr, '*') && !strchr(pTptr, '?'))
- strcpy(Ext, pTptr); /* ¬«»¿α«óáΓ∞ αáßΦ¿αÑ-
- ¡¿Ñ */
- }
-
- void AddExt(Name, Ext)
- PSTR Ext, Name;
- {
- PSTR pTptr;
- pTptr = Name;
- while (*pTptr && *pTptr != '.')
- pTptr++;
- if (*pTptr != '.') /* Ñß½¿ ¡ÑΓ αáßΦ¿αÑ¡¿∩ -
- ñ«íáó¿Γ∞ αáßΦ¿αÑ¡¿Ñ
- »« π¼«½τá¡¿ε */
- strcat(Name, Ext);
- }
-
- 9.3.7 ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá.
-
- ìÑ«íσ«ñ¿¼« φ¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá OpenDlg, Γ.¬.
- φΓ« Σπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá ¿ óδºδóáÑΓß∩ Γ«½∞¬« Windows.
- ä«íáó∞ΓÑ ß½ÑñπεΘπε ßΓப㠪 «»ÑαáΓ«απ EXPORTS ó Σá⌐½Ñ
- «»αÑñѽѡ¿∩ ¼«ñπ½∩:
-
- OpenDlg @3
-
- 9.3.8 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- é Σá⌐½Ñ make ¡Ñ ΓαÑíπÑΓß∩ »α«ó«ñ¿Γ∞ ¿º¼Ñ¡Ñ¡¿⌐.
- ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π, ºá»πßΓ¿ΓÑ
- Windows ¿ »α«úαá¼¼π FileOpen. è«úñá íπñÑΓ «Γ¬αδΓ« ¼Ñ¡ε File ¿
- óδíαá¡á ¬«¼á¡ñá Open, »á¡Ñ½∞ ñ¿á½«úá »α¿¼ÑΓ ó¿ñ, »αÑñßΓáó½Ñ¡¡δ⌐
- ¡á α¿ß. 9.1. ó ¡áτá½Ñ ñá¡¡«ú« αáºñѽá. éδíÑα¿ΓÑ Σá⌐½ ¿º »á¡Ñ½¿
- »ÑαÑτ¡∩ ¿½¿ óóÑñ¿ΓÑ ¿¼∩ Σá⌐½á ó αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩,
- á ºáΓѼ óδíÑα¿ΓÑ ¬½áó¿Φπ "Open".
- 9.4 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡« ¬á¬ ß«ºñáóáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞ ó
- »α¿¬½áñ¡δσ »α«úαá¼¼áσ »á¡Ñ½¿ ñ¿á½«úá. Åá¡Ñ½∞ ñ¿á½«úá - φΓ«
- ߻ѵ¿á½∞¡«Ñ «¬¡«, ¬«Γ«α«Ñ »ÑαѬαδóáÑΓ «ß¡«ó¡«Ñ «¬¡« »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ. ê¼ÑÑΓß∩ ñóá Γ¿»á »á¡Ñ½Ñ⌐ ñ¿á½«úá: ¼«ñá½∞¡δÑ ¿
- ¡Ñ¼«ñá½∞¡δÑ. î«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá ΓαÑíπεΓ ºáóÑαΦÑ¡¿∩ óó«ñá
- «Γ »«½∞º«óáΓѽ∩ ñ« Γ«ú«, ¬á¬ «¡¿ óÑα¡πΓ π»αáó½Ñ¡¿Ñ «ß¡«ó¡«¼π
- «¬¡π »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. ìѼ«ñá½∞¡δÑ »á¡Ñ½¿ ñ¿á½«úá ¡Ñ
- ΓαÑíπεΓ ºáóÑαΦÑ¡¿∩ óó«ñá «Γ »«½∞º«óáΓѽ∩ ñ½∩ Γ«ú«, τΓ«íδ
- »ÑαÑñáΓ∞ π»αáó½Ñ¡¿∩ ñαπú¿¼ «¬¡á¼ »α«úαá¼¼δ.
-
-
- Windows 3.0/pg/2#3 = 59 =
-
- Windows »αÑñ«ßΓáó½∩ÑΓ ¡áí«α ߻ѵ¿á½∞¡δσ Σπ¡¬µ¿⌐ ñ½∩ αáí«Γδ
- ß í½«¬á¼¿ π»αáó½Ñ¡¿∩ ó »á¡Ñ½¿ ñ¿á½«úá.
-
- ä½∩ ß«ºñá¡¿∩ »á¡Ñ½Ñ⌐ ñ¿á½«úá ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Dialog
- Editor.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« »á¡Ñ½Ñ⌐ ñ¿á½«úá óδ
- ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- Äíαáí«Γ¬á ß««íΘÑ¡¿⌐ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 4, "éó«ñ ß
- óó«ñá ¿ß»«½∞º«ó᡿Ѽ ¼δΦ¿ ¿ ¬½áó¿áΓπαδ".
-
- ü½«¬¿ π»αáó½Ñ¡¿∩ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, â½áóá 8, "ü½«¬¿
- π»αáó½Ñ¡¿∩".
-
- öπ¡¬µ¿¿ í½«¬«ó π»- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 1,
- αáó½Ñ¡¿∩ ¿ »á¡Ñ½Ñ⌐ "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá π»αáó½Ñ¡¿∩ «¬¡á¼¿".
- ñ¿á½«úá
-
- Ä»ÑαáΓ«αδ «»¿ßá¡¿∩ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 8,
- αÑßπαß«ó "Ä»ÑαáΓ«αδ «»¿ßá¡¿∩ αÑßπαß«ó".
-
- êß»«½∞º«óá¡¿Ñ "Tools", â½áóá 5, "櫺ñá¡¿Ñ »á¡Ñ½Ñ⌐ ñ¿á-
- Dialog Editor ½«úá: The Dialog Editor".
-
- äѼ«¡ßΓαᵿ«¡¡á∩ ä¿ß¬ "SDK Sample Source Code Disk".
- »α«úαá¼¼á
- OWNCOMBO.EXE,
- ¿½½εßΓα¿απεΘá∩ ¿ß-
- »«½∞º«óá¡¿Ñ ¬«¼í¿-
- ¡¿α«óá¡¡δσ í½«¬«ó ¿
- α¿ßπѼδσ í½«¬«ó π»-
- αáó«Ñ¡¿∩.
-
-
-
- Windows 3.0/pg/2#3 = 60 =
-
- â½áóá 10. éó«ñ ¿ óδó«ñ ¿º Σá⌐½«ó.
-
- éó«ñ ¿ óδó«ñ Σá⌐½«ó ó ßαÑñÑ Windows á¡á½«ú¿τÑ¡ óó«ñπ ¿
- óδó«ñπ Σá⌐½«ó ó ßΓá¡ñáαΓ¡δσ »α«úαá¼¼áσ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ.
- Äñ¡á¬« ¿¼ÑεΓß∩ ¿ ßπΘÑßΓóÑ¡¡δÑ «Γ½¿τ¿∩. ìá»α¿¼Ñα, σ«Γ∩ ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩ »α«úαá¼¼ ó Windows ¼«ª¡« ¿ß»«½∞º«óáΓ∞ »«Γ«τ¡δÑ
- Σπ¡¬µ¿¿ óó«ñá ¿ óδó«ñá ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ, »αÑñ»«τΓ¿Γѽ∞¡ÑÑ
- «¬áºδóáεΓß∩ Σπ¡¬µ¿¿ óó«ñá ¿ óδó«ñá ¡¿º¬«ú« πα«ó¡∩. èα«¼Ñ Γ«ú«,
- »«ß¬«½∞¬π Windows ∩ó½∩ÑΓß∩ ¼¡«ú«ºáñáτ¡«⌐ ßαÑñ«⌐, ¡Ñ«íσ«ñ¿¼«
- «ß«íÑ¡¡« ó¡¿¼áΓѽ∞¡« ß½Ññ¿Γ∞ ºá «Γ¬αδΓ묨 Σá⌐½á¼¿.
-
- ä½∩ Γ«ú«, τΓ«íδ »«ññÑনóáΓ∞ π¬áºá¡¡δÑ αẽ¿τ¿∩, ¿¼ÑÑΓß∩
- Σπ¡¬µ¿∩ OpenFile. öπ¡¬µ¿∩ OpenFile «Γ¬αδóáÑΓ Σá⌐½δ ¿ π»αáó½∩ÑΓ
- ¿¼¿, ó«ºóαáΘá∩ ñÑß¬α¿»Γ«α Σá⌐½á, ¬«Γ«αδ⌐ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ó
- Σπ¡¬µ¿∩σ ¡¿º¬«ú« πα«ó¡∩ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ñ½∩ τΓÑ¡¿∩ ¿
- ºá»¿ß¿ ñá¡¡δσ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡δ ß½ÑñπεΘ¿Ñ ΓѼδ:
-
- - Éáí«Γá ß Σá⌐½á¼¿ ó ßαÑñÑ Windows.
-
- - èᬠ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε OpenFile ñ½∩ ß«ºñá¡¿∩,
- «Γ¬αδΓ¿∩, »«óΓ«α¡«ú« «Γ¬αδΓ¿∩, ºá»α«ßá ¿ »α«óÑન
- ß«ßΓ«∩¡¿∩ Σá⌐½«ó.
-
- - Éáí«Γá ß ¡¿º¬«πα«ó¡Ñó묨 Σπ¡¬µ¿∩¼¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ
- ñ½∩ τΓÑ¡¿∩ ¿ ºá»¿ß¿ ó Σá⌐½δ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡« ß«ºñá¡¿Ñ »α«ßΓ«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ EditFile, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ φΓ¿σ
- 󫺼«ª¡«ßΓÑ⌐.
- 10.1 Åαáó¿½á αáí«Γδ ß Σá⌐½á¼¿ ó ßαÑñÑ Windows.
-
- î¡«ú«ºáñáτ¡«ßΓ∞ ¡á¬½áñδóáÑΓ ¡Ñ¬«Γ«αδÑ ß»Ñµ¿á½∞¡δÑ
- «úαá¡¿τÑ¡¿∩ ¡á ñ«ßΓπ» ¬ Σá⌐½á¼, ß ¬«Γ«α묨 ¡Ñ ßΓὬ¿óáεΓß∩ ó
- «íδτ¡δσ æ-»α«úαá¼¼áσ. ū߬«½∞¬π ¼«ªÑΓ íδΓ∞ ¡Ñ߬«½∞¬« »α«úαá¼¼,
- «ñ¡«óαѼѡ¡« αáí«ΓáεΘ¿σ ß Σá⌐½á¼¿, ¡Ñ«íσ«ñ¿¼« ß½Ññ«óáΓ∞
- ¡Ñ¬«Γ«αδ¼ »α«ßΓδ¼ »αáó¿½á¼ ñ½∩ Γ«ú«, τΓ«íδ ¿ºíѪáΓ∞ ¬«¡Σ½¿¬Γ«ó
- ¿ 󫺼«ª¡«ú« ºáΓ¿αá¡¿∩ Σá⌐½«ó.
-
- äÑনΓÑ Σá⌐½ «Γ¬αδΓδ¼ Γ«½∞¬« ¬«úñá óáΦá »α«úαá¼¼á ¿¼ÑÑΓ
- π»αáó½Ñ¡¿Ñ.
-
- ìÑ«íσ«ñ¿¼« ºá¬αδóáΓ∞ Σá⌐½δ »ÑαÑñ óδº«ó«¼ Σπ¡¬µ¿¿
- GetMessage ¿½¿ ½εí«⌐ ñαπú«⌐ Σπ¡¬µ¿¿, ¬«Γ«αá∩ íÑαÑΓ ¡á ßÑí∩
- π»αáó½Ñ¡¿Ñ óδ»«½¡Ñ¡¿Ñ¼ »α«úαá¼¼δ. çá¬αδΓ¿Ñ Σá⌐½á »αÑñ«ΓóαáΓ¿Γ
- Ñú« «Γ ó½¿∩¡¿∩ ¿º¼Ñ¡Ñ¡¿⌐ Σá⌐½«ó«⌐ ßαÑñδ, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞
- αѺπ½∞ΓáΓ«¼ αáí«Γδ ñαπú«⌐ »α«úαá¼¼δ. ÅαÑñ»«½«ª¿¼ óáΦá »α«úαá¼¼á
- »α«¿ºó«ñ¿Γ ºá»¿ß∞ ¡á ú¿í¬¿⌐ ñ¿ß¬ ¿ óαѼѡ¡« »ÑαÑñá½á π»αáó½Ñ¡¿Ñ
- ñαπú«⌐ »α«úαá¼¼Ñ, ¬«Γ«αá∩ ¼«ªÑΓ ñáΓ∞ π¬áºá¡¿Ñ πñ὿Γ∞ ú¿í¬¿⌐
- ñ¿ß¬ ¿ ºá¼Ñ¡¿Γ∞ Ñú« ñαπú¿¼. àß½¿ »Ñαóá∩ »α«úαá¼¼á ó¡«ó∞ »«½πτ¿Γ
- π»αáó½Ñ¡¿Ñ ¿ »«»δΓáÑΓß∩ »¿ßáΓ∞ ¡á ñ¿ß¬, ¬á¬ ñѽá½á φΓ« αá¡ÑÑ,
-
- Windows 3.0/pg/2#3 = 61 =
-
- Γ« íѺ ºá¬αδΓ¿∩ ¿ »«óΓ«α¡«ú« «Γ¬αδΓ¿∩ Σá⌐½á «¡á αáºαπΦ¿Γ ñá¡¡δÑ
- ¡á ¡«ó«¼ ñ¿ß¬Ñ.
-
- äαπúá∩ »α¿τ¿¡á ñÑαªáΓ∞ Σá⌐½δ ºá¬αδΓ묨 ß«ßΓ«¿Γ ó
- «úαá¡¿τÑ¡¡«¼ τ¿ß½Ñ «Γ¬αδΓδσ Σá⌐½«ó («úαá¡¿τÑ¡¿Ñ «»Ñαᵿ«¡¡«⌐
- ß¿ßΓѼδ). àß½¿ ßαáºπ í«½∞Φ«Ñ τ¿ß½« »α«úαá¼¼ »«»δΓáÑΓß∩ «Γ¬αδΓ∞
- ¿ ¿ß»«½∞º«óáΓ∞ Σá⌐½δ, Γ« π¬áºá¡¡δ⌐ »αÑñѽ ¼«ªÑΓ íδßΓα«
- ¿ßτÑα»áΓ∞ß∩.
-
- ä½∩ αÑΦÑ¡¿∩ »α«í½Ñ¼δ «Γ¬αδΓδσ Σá⌐½«ó Σπ¡¬µ¿∩ OpenFile
- ¿¼ÑÑΓ »áαá¼ÑΓα OF_REOPEN, ¬«Γ«αδ⌐ »«ºó«½∩ÑΓ ½Ñú¬« ºá¬αδóáΓ∞ ¿
- »«óΓ«α¡« «Γ¬αδóáΓ∞ Σá⌐½δ. èá¬ Γ«½∞¬« Σá⌐½ «Γ¬αδóáÑΓß∩ ¿½¿
- ß«ºñáÑΓß∩, Σπ¡¬µ¿∩ OpenFile áóΓ«¼áΓ¿τÑ߬¿ ¬«»¿απÑΓ
- ß««ΓóÑΓßΓóπεΘπε ¿¡Σ«α¼áµ¿ε « Σá⌐½Ñ, ó¬½ετáεΘπε »«½¡«Ñ ¿¼∩ Σá⌐½á
- ¿ ΓѬπΘπε »«º¿µ¿ε π¬áºáΓѽ∩ Σá⌐½á, ó ßΓαπ¬Γπαπ OFSTRUCT. ¥Γ«
- «º¡áτáÑΓ, τΓ« ¼«ª¡« ºá¬αδΓ∞ Σá⌐½, á ºáΓѼ Ñú« »«óΓ«α¡« «Γ¬αδΓ∞,
- ºáñáóá∩ Γ«½∞¬« φΓπ ßΓαπ¬Γπαπ.
-
- àß½¿ ñ¿ß¬ íδ½ ¿º¼Ñ¡Ñ¡ ó« óαѼ∩ αáí«Γδ ß ñαπú«⌐ »α«úαá¼¼«⌐,
- Σπ¡¬µ¿∩ OpenFile óδñáÑΓ «Φ¿í¬π »α¿ »«óΓ«α¡«¼ «Γ¬αδΓ¿¿ Σá⌐½á.
- àß½¿ »α¿ »«óΓ«α¡«¼ «Γ¬αδΓ¿¿ Σá⌐½á í佫 ߻ѵ¿Σ¿µ¿α«óá¡« π¬áºá¡¿Ñ
- OF_PROMPT, Σπ¡¬µ¿∩ OpenFile áóΓ«¼áΓ¿τÑ߬¿ ¿¡ñ¿µ¿απÑΓ »á¡Ñ½∞
- ß««íΘÑ¡¿⌐, ñѽá∩ ºá»α«ß ¡á πßΓá¡«ó¬π ¡πª¡«ú« ñ¿ß¬á.
-
- Åα¿ óδ»«½¡Ñ¡¿¿ «»Ñαᵿ⌐ ¡áñ Σá⌐½á¼¿ ¡Ñ«íσ«ñ¿¼« ß½Ññ«óáΓ∞
- ß«ú½áΦÑ¡¿∩¼ DOS.
-
- é ¬«¡Ñτ¡«¼ ßτÑΓÑ, »α¿ óó«ñÑ ¿ óδó«ñÑ Σá⌐½«ó Windows
- ºáó¿ß¿Γ «Γ Σπ¡¬µ¿⌐ π»αáó½Ñ¡¿∩ Σá⌐½á¼¿ «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼδ. ¥Γ«
- «º¡áτáÑΓ, τΓ« »α¿ óδ»«½¡Ñ¡¿¿ «»Ñαᵿ⌐ ¡áñ Σá⌐½á¼¿ ¡Ñ«íσ«ñ¿¼«
- ß½Ññ«óáΓ∞ ß«ú½áΦÑ¡¿∩¼, »α¿¡∩Γδ¼ ó «»Ñαᵿ«¡¡«⌐ ß¿ßΓѼÑ.
- ìá»α¿¼Ñα, ¿¼∩ Σá⌐½á ¼«ªÑΓ ¿¼ÑΓ∞ «Γ «ñ¡«ú« ñ« ó«ß∞¼¿ ß¿¼ó«½«ó, á
- τ¿ß½« ß¿¼ó«½«ó ó αáßΦ¿αÑ¡¿¿ Σá⌐½á ¼«ªÑΓ ¿º¼Ñ¡∩Γ∞ß∩ «Γ ¡π½∩ ñ«
- ΓαÑσ. ê¼∩ Σá⌐½á ¡Ñ ñ«½ª¡« ß«ñÑαªáΓ∞ »α«íѽ«ó ¿½¿ ߻ѵ¿á½∞¡δσ
- ß¿¼ó«½«ó. ü«½ÑÑ Γ«ú«, ¿¼Ñ¡á Σá⌐½«ó ñ«½ª¡δ íδΓ∞ ߻ѵ¿Σ¿µ¿α«óá¡δ
- ¡áí«α«¼ ß¿¼ó«½«ó OEM, á ¡Ñ ¡áí«α«¼ ß¿¼ó«½«ó »« π¼«½τá¡¿ε
- (ANSI).
-
- äѽ« »α«úαá¼¼¿ßΓá - ß½Ññ¿Γ∞ ºá ΓѼ, τΓ«íδ ¿¼∩ Σá⌐½á ¿¼Ñ½«
- «»αÑñѽѡ¡πε ñ½¿¡π ¿½¿ ß«ßΓ«∩½« ¿º ß««ΓóÑΓßΓóπεΘ¿σ º¡á¬«ó, ¡«
- «¡ ¼«ªÑΓ ¡Ñ íÑß»«¬«¿Γ∞ß∩ « »αÑ«íαẫóá¡¿¿ ¡áí«αá º¡á¬«ó, Ñß½¿
- ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε OpenFile. ä½∩ πñ«íßΓóá φΓá Σπ¡¬µ¿∩
- áóΓ«¼áΓ¿τÑ߬¿ »αÑ«íαáºπÑΓ ¿¼Ñ¡á Σá⌐½«ó ¿º ¡áí«αá ß¿¼ó«½«ó ANSI
- ó ¡áí«α ß¿¼ó«½«ó OEM. äѽáÑΓß∩ φΓ« ß »«¼«Θ∞ε Σπ¡¬µ¿¿ AnsiToOem.
-
- Åα¿¼Ñτá¡¿Ñ: éßÑ αÑñá¬Γ¿απѼδÑ í½«¬¿ π»αáó½Ñ¡¿∩ ¿ »á¡Ñ½¿
- »ÑαÑτ¡Ñ⌐ »« π¼«½τá¡¿ε ¿ß»«½∞ºπεΓ ¡áí«α ß¿¼ó«½«ó ANSI, ΓᬠτΓ«,
- Ñß½¿ »½á¡¿απÑΓß∩ ¿¡ñ¿µ¿α«óáΓ∞ ¿¼Ñ¡á Σá⌐½«ó DOS ¿½¿ »«ºó«½¿Γ∞
- »«½∞º«óáΓѽε óóÑßΓ¿ ¿¼Ñ¡á Σá⌐½«ó, ¼«ª¡« »«½πτ¿Γ∞
- ¡Ñ»αÑñ߬áºπѼδÑ ß¿¼ó«½δ Γá¼, úñÑ ß¿¼ó«½ OEM ¡Ñ ¿ñÑ¡Γ¿τÑ¡
- ß¿¼ó«½π ANSI.
-
- àß½¿ ¡Ñ«íσ«ñ¿¼« αáí«ΓáΓ∞ ß ¼Ñªñπ¡áα«ñ¡δ¼¿ ¿¼Ñ¡á¼¿ Σá⌐½«ó,
-
- Windows 3.0/pg/2#3 = 62 =
-
- ¡Ñ«íσ«ñ¿¼« »«ñú«Γ«ó¿Γ∞ ñ½∩ «íαáí«Γ¬¿ ¿¼Ñ¡á Σá⌐½«ó, ¬«Γ«αδÑ
- ß«ñÑαªáΓ ¼¡«ú«íá⌐Γ¡δÑ º¡áτÑ¡¿∩ ß¿¼ó«½«ó (¡á»α¿¼Ñα, ¿Ñα«ú½¿Σδ).
- ä½∩ Γá¬¿σ ¿¼Ñ¡ Σá⌐½«ó ß½ÑñπÑΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ AnsiNext ¿
- AnsiPrev ñ½∩ »ÑαѼÑΘÑ¡¿∩ »« ßΓ᫬Ñ. ¥Γ¿ Σπ¡¬µ¿¿ »αáó¿½∞¡«
- π»αáó½∩εΓ ßΓα«¬á¼¿, ¬«Γ«αδÑ ß«ñÑαªáΓ ß¿¼ó«½δ, ñ½¿¡á ¬«Γ«αδσ ¡Ñ
- αáó¡á «ñ¡«¼π íá⌐Γπ, ¡á»α¿¼Ñα, ¬á¬ ßΓ᫬¿ ¿º ß¿¼ó«½«ó ∩»«¡ß¬«ú«
- á½Σáó¿Γá.
-
- êß»«½∞ºπ⌐ΓÑ ó ¬áªñ«¼ φ¬ºÑ¼»½∩αÑ óáΦÑ⌐ »α«úαá¼¼δ π¡¿¬á½∞¡δÑ
- ¿¼Ñ¡á Σá⌐½«ó.
-
- ū߬«½∞¬π ¡Ñ߬«½∞¬« φ¬ºÑ¼»½∩α«ó «ñ¡«⌐ »α«úαá¼¼δ ¼«úπΓ
- αáí«ΓáΓ∞ «ñ¡«óαѼѡ¡«, «ñ¿¡ ¿º ¡¿σ ¼«ªÑΓ ßΓÑαÑΓ∞ óαѼѡ¡δ⌐ ¿½¿
- αáí«τ¿⌐ Σá⌐½ ñαπú«ú« φ¬ºÑ¼»½∩αá, Ñß½¿ ¡Ñ ¿ß»«½∞º«óáΓ∞
- π¡¿¬á½∞¡«Ñ ¿¼∩ Σá⌐½á ñ½∩ ¬áªñ«ú« φ¬ºÑ¼»½∩αá.
-
- ô¡¿¬á½∞¡«Ñ ¿¼∩ Σá⌐½á ¼«ª¡« ß«ºñáΓ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- GetTempFilename. ¥Γá Σπ¡¬µ¿∩ ß«ºñáÑΓ π¡¿¬á½∞¡«Ñ ¿¼∩, «íΩÑñ¿¡∩∩
- π¡¿¬á½∞¡«Ñ µÑ½«Ñ ß »αÑΣ¿¬ß«¼ ¿ αáßΦ¿αÑ¡¿Ñ¼ ¿¼Ñ¡¿ Σá⌐½á,
- ºáñáóáÑ¼δ¼¿ »«½∞º«óáΓѽѼ. éαѼѡ¡δÑ ¿¼Ñ¡á πñ«ó½ÑΓó«α∩εΓ
- ΓαÑí«óá¡¿∩¼, »αÑñΩ∩ó½∩Ñ¼δ¼ ¬ ¿¼Ñ¡á¼ Σá⌐½«ó «»Ñαᵿ«¡¡«⌐
- ß¿ßΓѼ«⌐.
-
- Åα¿¼Ñτá¡¿Ñ: öπ¡¬µ¿∩ GetTempFilename ¿ß»«½∞ºπÑΓ »ÑαѼѡ¡πε
- ßαÑñδ TEMP ñ½∩ ß«ºñá¡¿∩ »«½¡«ú« ¿¼Ñ¡¿ óαѼѡ¡«ú« Σá⌐½á. àß½¿
- »«½∞º«óáΓѽ∞ ¡Ñ ºáñáßΓ φΓπ »ÑαѼѡ¡πε, óαѼѡ¡δ⌐ Σá⌐½ íπñÑΓ
- »«¼ÑΘÑ¡ ó ¬«α¡Ñó«⌐ ¬áΓὫú ΓѬπΘÑú« πßΓα«⌐ßΓóá. àß½¿ »ÑαѼѡ¡á∩
- «»αÑñѽ∩ÑΓ ¡Ññ«ßΓπ»¡δ⌐ ¬áΓὫú, »«½∞º«óáΓѽ∞ ¡Ñ ß¼«ªÑΓ ß«ºñáΓ∞
- óαѼѡ¡δ⌐ Σá⌐½.
-
- çá¬αδóá⌐ΓÑ Σá⌐½δ »ÑαÑñ «Γ«íαáªÑ¡¿Ñ¼ »á¡Ñ½¿ ß««íΘÑ¡¿∩ ¿½¿
- ¿ß»«½∞ºπ⌐ΓÑ ß¿ßΓѼ¡δÑ ¼«ñá½∞¡δÑ »á¡Ñ½¿ ß««íΘÑ¡¿⌐ «í
- «Φ¿í¬áσ.
-
- èᬠí佫 ߬áºá¡« óδΦÑ, »α«úαá¼¼á ¡Ñ ñ«½ª¡á »ÑαÑñáóáΓ∞
- π»αáó½Ñ¡¿Ñ, »«¬á ñÑαª¿Γ Σá⌐½δ «Γ¬αδΓ묨. àß½¿ óáΦá »α«úαá¼¼á
- ¿ß»«½∞ºπÑΓ ¡Ñ ß¿ßΓѼ¡πε ¼«ñá½∞¡πε »á¡Ñ½∞ óδñáτ¿ ß««íΘÑ¡¿⌐, Γ«
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ »ÑαÑ⌐Γ¿ ¬ ñαπú«⌐ »α«úαá¼¼Ñ, ¬«úñá ¡á φ¬αá¡Ñ
- ¿¡ñ¿µ¿απÑΓß∩ »á¡Ñ½∞ ß««íΘÑ¡¿⌐. àß½¿ ó »α«úαá¼¼Ñ ÑßΓ∞ «Γ¬αδΓδÑ
- Σá⌐½δ, Γ« »ÑαѬ½ετÑ¡¿Ñ ¡á ñαπúπε »α«úαá¼¼π ¼«ªÑΓ óδºóáΓ∞
- »α«í½Ñ¼δ óó«ñá óδó«ñá.
-
- ä½∩ ¿ß¬½ετÑ¡¿∩ φΓ¿σ »α«í½Ñ¼, óáΦá »α«úαá¼¼á »α¿
- «Γ«íαáªÑ¡¿¿ »á¡Ñ½¿ ß««íΘÑ¡¿⌐ ñ«½ª¡á ñѽáΓ∞ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ «ñ¡«
- ¿º:
-
- - çá¬αδΓ∞ «Γ¬αδΓδÑ Σá⌐½δ »ÑαÑñ «Γ«íαáªÑ¡¿Ñ¼ »á¡Ñ½¿
- ß««íΘÑ¡¿⌐.
-
- - àß½¿ ºá¬αδΓ¿Ñ Σá⌐½«ó ¡Ñπñ«í¡«, Γ« ¡Ñ«íσ«ñ¿¼« ßñѽáΓ∞
- »á¡Ñ½∞ ñ¿á½«úá ß¿ßΓѼ¡«-¼«ñá½∞¡«⌐.
-
-
- Windows 3.0/pg/2#3 = 63 =
-
- 10.2 櫺ñá¡¿Ñ Σá⌐½«ó.
-
- ä½∩ ß«ºñá¡¿∩ ¡«ó«ú« Σá⌐½á ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε
- OpenFile ß ¬½ετѼ OF_CREATE. Åα¿ ó맮óÑ Σπ¡¬µ¿¿ OpenFile
- ¡Ñ«íσ«ª¿¼« π¬áºáΓ∞:
-
- - Ĭá¡τ¿óáεΘÑÑß∩ ¡π½Ñ¼ ¿¼∩ Σá⌐½á.
-
- - üπΣÑα Γ¿»á OFSTRUCT.
-
- - è½ετ OF_CREATE.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ ß«ºñáÑΓß∩ Σá⌐½ file.txt ¿
- ó«ºóαáΘáÑΓß∩ ñÑß¬α¿»Γ«α Σá⌐½á, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ó
- Σπ¡¬µ¿∩σ óó«ñá/óδó«ñá ¡¿º¬«ú« πα«ó¡∩ í¿í½¿«ΓѬ¿ æ:
-
- int hFile;
- OFSTRUCT OfStruct;
- .
- .
- .
- hFile=OpenFile("file.txt", &OfStruct, OF_CREATE);
-
- öπ¡¬µ¿∩ OpenFile ß«ºñáÑΓ Σá⌐½ (Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«) ¿
- «Γ¬αδóáÑΓ Ñú« ñ½∩ ºá»¿ß¿. àß½¿ Σá⌐½ πªÑ ßπΘÑßΓóπÑΓ, Σπ¡¬µ¿∩
- πßѬáÑΓ Ñú« ñ« ¡π½Ñó«⌐ ñ½¿¡δ ¿ «Γ¬αδóáÑΓ ñ½∩ ºá»¿ß¿.
-
- àß½¿ ¡Ñ ñ«»π߬áÑΓß∩ ßΓ¿αá¡¿Ñ ßπΘÑßΓóπεΘÑú« Σá⌐½á, Γ« »ÑαÑñ
- ß«ºñ᡿Ѽ ¡«ó«ú« Σá⌐½á ¼«ª¡« »α«óÑα¿Γ∞, ßπΘÑßΓóπÑΓ ½¿ ñá¡¡δ⌐
- Σá⌐½, óδºóáó Σπ¡¬µ¿ε OpenFile, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
-
- hFile = OpenFile("file.txt", &OfStruct, OF_EXIST);
- if (hFile >= 0) {
- wAction = MessageBox(hWnd,
- (LPSTR) "öá⌐½ ßπΘÑßΓóπÑΓ. ÅÑαÑ»¿ßáΓ∞?",
- (LPSTR) "File",
- MB_OKCANCEL);
- if (wAction == IDCANCEL)
- /* ºá¬«¡τ¿Γ∞ φΓπ «íαáí«Γ¬π */
- }
- }
- /* «Γ¬αδΓ∞ Σá⌐½ */
-
- 10.3 ÄΓ¬αδΓ¿Ñ ßπΘÑßΓóπεΘ¿σ Σá⌐½«ó.
-
- ¡« «Γ¬αδΓ∞ ßπΘÑßΓóπεΘ¿⌐ Σá⌐½, ¿ß»«½∞º«óáó »áαá¼ÑΓαδ
- OF_READ, OF_WRITE ¿½¿ OF_READWRITE. ¥Γ¿ »áαá¼ÑΓαδ »«íπªñáεΓ
- Σπ¡¬µ¿ε OpenFile «Γ¬αδΓ∞ ßπΘÑßΓóπεΘ¿Ñ Σá⌐½δ ñ½∩ τΓÑ¡¿∩, ºá»¿ß¿
- ¿½¿ τΓÑ¡¿∩ ¿ ºá»¿ß¿. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ Σá⌐½ file.txt
- «Γ¬αδóáÑΓß∩ ñ½∩ τΓÑ¡¿∩:
-
- hFile = OpenFile("file.txt", &OfStruct, OF_READ);
-
- àß½¿ »α«¿º«Φ½á «Φ¿í¬á »α¿ «Γ¬αδΓ¿¿ Σá⌐½á, ¼«ª¡«
-
- Windows 3.0/pg/2#3 = 64 =
-
- ¿¡ñ¿µ¿α«óáΓ∞ »á¡Ñ½∞ ñ¿á½«úá ¿ π¬áºáΓ∞, τΓ« Σá⌐½ ¡Ñ íδ½ ¡á⌐ñÑ¡.
- ¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε OpenFile ñ½∩ »«ñ߬Ậ¿
- »«½∞º«óáΓÑ½ε « Σá⌐½Ñ, ¬á¬ φΓ« «»¿ßá¡« ó »«ñαáºñÑ½Ñ 10.6 "çá»α«ß
- ¿¼Ñ¡¿ Σá⌐½á".
- 10.4 ùΓÑ¡¿Ñ ¿ ºá»¿ß∞ Σá⌐½«ó.
-
- èá¬ Γ«½∞¬« Σá⌐½ «Γ¬αδΓ, Γ« ¼«ª¡« ¿º ¡Ñú« τ¿ΓáΓ∞ ¿½¿ ó ¡Ñú«
- ºá»¿ßδóáΓ∞, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿¿ æ ¡¿º¬«ú« πα«ó¡∩. é »α¿óÑñÑ¡¡«¼
- ¡¿ªÑ »α¿¼ÑαÑ Σá⌐½ file.txt «Γ¬αδóáÑΓß∩ ñ½∩ τΓÑ¡¿∩ ¿ ºáΓѼ ¿º
- ¡Ñú« ßτ¿ΓδóáÑΓß∩ 512 íá⌐Γ«ó:
-
- char buffer[512];
- int count;
- .
- .
- .
- hFile = OpenFile("file.txt", &OfStruct, OF_READ);
- if (hFile >= 0) {
- count = read(hFile, buffer, 512);
- close(hFile);
- }
-
- é φΓ«¼ »α¿¼ÑαÑ »ÑαÑñ ßτ¿Γδó᡿Ѽ ¿º Σá⌐½á »α«óÑα∩ÑΓß∩
- ñÑß¬α¿»Γ«α Σá⌐½á. öπ¡¬µ¿∩ OpenFile ó«ºóαáΘáÑΓ -1, Ñß½¿ Σá⌐½ ¡Ñ
- ¼«ªÑΓ íδΓ∞ ¡á⌐ñÑ¡ ¿½¿ «Γ¬αδΓ. öπ¡¬µ¿∩ close ºá¬αδóáÑΓ Σá⌐½
- ßαáºπ ªÑ »«ß½Ñ τΓÑ¡¿∩.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ Σá⌐½ file.tmp «Γ¬αδóáÑΓß∩ ñ½∩
- ºá»¿ß¿, ¿, ºáΓѼ, ó ¡Ñú« ºá»¿ßδóáÑΓß∩ ß«ñÑন¼«Ñ íπΣÑαá ó ó¿ñÑ
- ¼áßß¿óá ß¿¼ó«½«ó:
-
- hFile = OpenFile("file.tmp", &OfStruct, OF_READ);
- if (hFile >= 0) {
- write (hFile, buffer, count);
- close (hFile);
- }
-
- éßÑúñá ¡Ñ«íσ«ñ¿¼« ºá¬αδóáΓ∞ Σá⌐½δ ¡á ú¿í¬¿σ ñ¿ß¬áσ »«ß½Ñ
- τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. ¥Γ« ¡Ñ«íσ«ñ¿¼« ñѽáΓ∞ ñ½∩ Γ«ú«, τΓ«íδ «í«⌐Γ¿
- »α«í½Ñ¼δ, 󫺡¿¬áεΘ¿Ñ »α¿ πñá½Ñ¡¿¿ ΓѬπΘÑú« ñ¿ß¬á ó« óαѼ∩
- αáí«Γδ ß ñαπú«⌐ »α«úαá¼¼«⌐. éßÑúñá ¼«ª¡« »«óΓ«α¡« «Γ¬αδΓ∞ Σá⌐½
- ¡á ñ¿ß¬Ñ, ¿ß»«½∞ºπ∩ »áαá¼ÑΓα OF_REOPEN.
-
- 10.5 Å«óΓ«α¡«Ñ «Γ¬αδΓ¿Ñ Σá⌐½«ó.
-
- àß½¿ óδ «Γ¬α뫨 Σá⌐½ ¡á ú¿í¬«¼ ñ¿ß¬Ñ, Ñú« ¡Ñ«íσ«ñ¿¼«
- ºá¬αδΓ∞ »ÑαÑñ ΓѼ, ¬á¬ »ÑαÑñáΓ∞ π»αáó½Ñ¡¿Ñ ñαπú«⌐ »α«úαá¼¼Ñ.
- ìá¿í«½ÑÑ »«ñσ«ñ∩Θ¿⌐ ñ½∩ φΓ«ú« ¼«¼Ñ¡Γ - ¡Ñ»«ßαÑñßΓóÑ¡¡« »«ß½Ñ
- τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿. öá⌐½ óßÑúñá ¼«ª¡« »«óΓ«α¡« «Γ¬αδΓ∞ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ OpenFile ß ¬½ετѼ OF_REOPEN:
-
- hFile=OpenFile((LPSTR)NULL, &OfStruct, OF_REOPEN | OF_READ);
-
- Windows 3.0/pg/2#3 = 65 =
-
-
- é φΓ«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ OpenFile ¿ß»«½∞ºπÑΓ ¿¼∩ Σá⌐½á ¿º
- ßΓαπ¬Γπαδ OfStruct ñ½∩ «Γ¬αδΓ¿∩ Σá⌐½á. Åα¿ »«óΓ«α¡«¼ «Γ¬αδΓ¿¿
- Σá⌐½á Ñú« π¬áºáΓѽ∞, «Γ߽Ѫ¿óáεΘ¿⌐ ΓѬπΘπε »«º¿µ¿ε ó Σá⌐½Ñ,
- »ÑαѼÑΘáÑΓß∩ ó Γπ ªÑ ßá¼πε Γ«τ¬π Σá⌐½á, ó ¬«Γ«α«⌐ «¡ ¡áσ«ñ¿½ß∩
- ¡Ñ»«ßαÑñßΓóÑ¡¡« »ÑαÑñ ºá¬αδΓ¿Ñ¼ Σá⌐½á.
-
- 10.6 çá»α«ß ¿¼Ñ¡¿ Σá⌐½á.
-
- æ »«¼«Θ∞ε ¬½ετá OF_PROMPT ¼«ª¡« áóΓ«¼áΓ¿τÑ߬¿ »«ñ߬áºáΓ∞
- »«½∞º«óáΓѽε óßΓáó¿Γ∞ ¡πª¡πε ñ¿ß¬ÑΓπ »ÑαÑñ »«óΓ«α¡δ¼ «Γ¬αδΓ¿Ñ¼
- Σá⌐½á. öπ¡¬µ¿∩ OpenFile ¿ß»«½∞ºπÑΓ ¿¼∩ Σá⌐½á ñ½∩ ß«ºñá¡¿∩
- ßΓ᫬¿ »«ñ߬Ậ¿. Åα¿ »«óΓ«α¡«¼ «Γ¬αδΓ¿¿ Σá⌐½á ¡áñ« ó
- ñ«íáó½Ñ¡¿Ñ ¬ αѪ¿¼π «Γ¬αδΓ¿∩ ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓαδ OF_REOPEN
- ¿½¿ OF_PROMPT:
-
- hFile = OpenFile((LPSTR)NULL, &OfStruct, OF_PROMPT |
- OF_REOPEN | OF_READ);
-
- àß½¿ Σá⌐½ »«óΓ«α¡« «Γ¬αδΓ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, Windows íπñÑΓ
- »α«óÑα∩Γ∞, ß««ΓóÑΓßΓóπÑΓ ½¿ ñáΓá ¿ óαѼ∩ Γ«⌐ ñáΓÑ ¿ óαѼѡ¿,
- ¬«úñá Σá⌐½ íδ½ «Γ¬αδΓ ó»ÑαóδÑ.
-
- 10.7 Åα«óÑα¬á ß«ßΓ«∩¡¿∩ Σá⌐½á.
-
- ¡« «»αÑñѽ¿Γ∞ ΓѬπΘÑÑ ß«ßΓ«∩¡¿Ñ «Γ¬αδΓ«ú« Σá⌐½á,
- ¿ß»«½∞º«óáó Σπ¡¬µ¿ε æ ¡¿º¬«ú« πα«ó¡∩ fstat. ¥Γá Σπ¡¬µ¿∩
- ºá»«½¡∩ÑΓ ßΓαπ¬Γπαπ ¿¡Σ«α¼áµ¿Ñ⌐ « Σá⌐½Ñ, Γᬫ⌐ ¬á¬ ñ½¿¡á Σá⌐½á
- ó íá⌐Γáσ (߻ѵ¿Σ¿µ¿α«óá¡á »«½Ñ¼ size), ñáΓá ¿ óαѼ∩ Ñú«
- ß«ºñá¡¿∩. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ ßΓαπ¬Γπαá FileStatus
- ºá»«½¡∩ÑΓß∩ ¿¡Σ«α¼áµ¿Ñ⌐ « Σá⌐½Ñ file.txt:
-
- stat FileStatus;
- .
- .
- .
- fstat(hFile, FileStatus);
- 10.8 Åα«ßΓ«⌐ αÑñá¬Γ«α Σá⌐½«ó EditFile.
-
- é ñá¡¡«¼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ß«ºñáΓ∞ »α«ßΓπε »α«úαá¼¼π,
- ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε OpenFile ¿ Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐
- ß¿ßΓÑ¼δ æ ñ½∩ «Γ¬αδΓ¿∩ ¿ ß«σαá¡Ñ¡¿∩ ¡Ñí«½∞Φ¿σ ΓѬßΓ«óδσ Σá⌐½«ó.
- ä½∩ ß«ºñá¡¿∩ »α«úαá¼¼δ EditFile ¡Ñ«íσ«ñ¿¼« ߬«»¿α«óáΓ∞ ¿
- »ÑαÑ¿¼Ñ¡«óáΓ∞ αÑßπαßδ »α«úαá¼¼δ FileOpen, «»¿ßá¡¡δÑ ó ú½áóÑ 9
- "Åá¡Ñ½¿ ñ¿á½«úá" ¿ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ¿σ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- 1. ä«íáó¿Γ∞ ¬«¡ßΓá¡Γδ ó« ó¬½ετáѼδ⌐ Σá⌐½.
-
- 2. 櫺ñáΓ∞ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá SaveAs ¿ ñ«íáó¿Γ∞ Ñú« ¬
- Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
-
- 3. ä«íáó¿Γ∞ ¡«óδÑ «»ÑαáΓ«αδ ó¬½ετÑ¡¿∩ ó ¿ßσ«ñ¡δ⌐ æ-Σá⌐½.
-
- Windows 3.0/pg/2#3 = 66 =
-
-
- 4. ä«íáó¿Γ∞ ¡«óδÑ »ÑαѼѡ¡δÑ.
-
- 5. çá¼Ñ¡¿Γ∞ Σαáú¼Ñ¡Γ WM_COMMAND.
-
- 6. ä«íáó¿Γ∞ Σαáú¼Ñ¡Γδ WM_QUERYENDSESSION ¿ WM_CLOSE.
-
- 7. î«ñ¿Σ¿µ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá OpenDlg.
-
- 8. 櫺ñáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá SaveAs.
-
- 9. 櫺ñáΓ∞ óß»«¼«úáΓѽ∞¡δÑ Σπ¡¬µ¿¿ ñ½∩ Σπ¡¬µ¿¿ ñ¿á½«úá
- SaveAs.
-
- 10. ¥¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá SaveAs.
-
- 11. î«ñ¿Σ¿µ¿α«óáΓ∞ «»ÑαáΓ«α HEAPSIZE.
-
- 12. ÄΓΓαá¡ß½¿α«óáΓ∞ ¿ ߬«¼»«¡«óáΓ∞ »α«úαá¼¼π.
-
- è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á ºáóÑαΦÑ¡á, ¼«ª¡« »α«ß¼«ΓαÑΓ∞
- ΓѬßΓ«óδÑ Σá⌐½δ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ π»αáó½Ñ¡¿∩. 諼á¡ñá
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Open ¿º ¼Ñ¡ε File »«ºó«½∩ÑΓ π¬áºáΓ∞
- «Γ¬αδóáѼδ⌐ Σá⌐½. ¡« Γá¬ªÑ ñѽáΓ∞ ¿º¼Ñ¡Ñ¡¿∩ ó Σá⌐½Ñ ¿½¿
- óó«ñ¿Γ∞ ¡«óδ⌐ ΓѬßΓ, á Γá¬ªÑ ß«σαá¡∩Γ∞ ΓѬßΓ, ¿ß»«½∞ºπ∩ ¬«¼á¡ñδ
- "Save" ¿½¿ "SaveAs" ó »á¡Ñ½¿ ñ¿á½«úá.
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
-
- 10.8.1 ä«íáó½Ñ¡¿Ñ ¬«¡ßΓá¡Γ ó« ó¬½ετáѼδ⌐ Σá⌐½.
-
- ä½∩ »«ññÑ᪬¿ »á¡Ñ½¿ ñ¿á½«úá SaveAs ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞
- «»αÑñѽѡ¿∩ ¬«¡ßΓá¡Γ ó« ó¬½ετáѼδ⌐ Σá⌐½. ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐
- «»ÑαáΓ«α ó φëà Σá⌐½:
-
- #define MAXFILESIZE 0x7FFF
-
- 10.8.2 ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá SaveAs.
-
- ä½∩ »«ññÑ᪬¿ ¬«¼á¡ñδ "SaveAs" ¡Ñ«íσ«ñ¿¼á ¡«óá∩ »á¡Ñ½∞
- ñ¿á½«úá. Åá¡Ñ½∞ ñ¿á½«úá "SaveAs" ºá»αáΦ¿óáÑΓ ¿¼∩ Σá⌐½á ¿ ñáÑΓ
- 󫺼«ª¡«ßΓ∞ »«½∞º«óáΓѽε óóÑßΓ¿ ¿¼∩ ó αÑñá¬Γ¿απѼδ⌐ í½«¬
- π»αáó½Ñ¡¿∩. ä«íáó∞ΓÑ «»ÑαáΓ«α DIALOG ¬ Σá⌐½π αÑßπαß«ó: SaveAs
-
- Saveas DIALOG 10, 10, 180, 53
- STYLE DS_MODALFRAME | WS_CAPTION | WS_SYSMENU
- CAPTION "Save As "
- BEGIN
- LTEXT "Save As File &Name:", IDC_FILENAME, 4, 4, 72, 10
- LTEXT "", IDC_PATH, 84, 4, 92, 10
- EDITTEXT IDC_EDIT, 4, 16, 100, 12
-
- Windows 3.0/pg/2#3 = 67 =
-
- DEFPUSHBUTTON "Save", IDOK, 120, 16, 50, 14
- PUSHBUTTON "Cancel", IDCANCEL, 120, 36, 50, 14
- END
-
- è«¡ßΓá¡Γδ ID_PATH, ID_FILENAME, ID_EDIT, IDCANCEL ¿ IDOK -
- ΓÑ ªÑ ßá¼δÑ, τΓ« ¿ß»«½∞º«ó὿ß∞ ó »á¡Ñ½¿ ñ¿á½«úá Open.
- ū߬«½∞¬π »á¡Ñ½¿ ñ¿á½«úá Open ¿ SaveAs ¡¿¬«úñá ¡Ñ íπñπΓ «Γ¬αδΓδ
- «ñ¡«óαѼѡ¡«, ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ íÑß»«¬«¿Γ∞ß∩ « ¬«¡Σ½¿¬Γáσ ID
- í½«¬«ó π»αáó½Ñ¡¿∩.
-
- 10.8.3 ä«íáó½Ñ¡¿Ñ «»ÑαáΓ«α«ó include.
-
- ä½∩ »«ññÑ᪬¿ «»Ñαᵿ⌐ óó«ñá ¿ óδó«ñá Σá⌐½«ó ¡Ñ«íσ«ñ¿¼«
- ó¬½ετ¿Γ∞ ñ«»«½¡¿Γѽ∞¡δÑ ó¬½ετáѼδÑ Σá⌐½δ. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ ó ¡áτὫ ¿ßσ«ñ¡«ú« æ-Σá⌐½á:
-
- #include <sys\types.h>
- #include <sys\stat.h>
- 10.8.4 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.
-
- ä½∩ «Γ¬αδΓ¿∩ ¿ ß«σαá¡Ñ¡¿∩ Σá⌐½«ó ¡Ñ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞
- ¡Ñ¬«Γ«αδÑ ú½«íá½∞¡δÑ »ÑαѼѡ¡δÑ. é ¡áτá½Ñ Σá⌐½á ñ«½ª¡δ íδΓ∞
- «íΩ∩ó½Ñ¡δ ß½ÑñπεΘ¿Ñ »ÑαѼѡ¡δÑ:
-
- HANDLE hEditBuffer; /* ñÑß¬α¿»Γ«α íπΣÑαá αÑñá¬Γ¿α«-
- óá¡¿∩ */
- HANDLE hOldBuffer; /* ñÑß¬α¿»Γ«α ßΓáα«ú« íπΣÑαá */
- HANDLE hHourGlass; /* ñÑß¬α¿»Γ«α ¬παß«αá "»Ñß«τ¡δÑ
- τáßδ" */
- HANDLE hSaveCursor; /* ñÑß¬α¿»Γ«α ΓѬπΘÑú« ¬παß«αá */
- int hFile; /* ñÑß¬α¿»Γ«α Σá⌐½á */
- int count; /* τ¿ß½« ßτ¿ΓδóáѼδσ ¿½¿ ºá»¿-
- ßδóáѼδσ ß¿¼ó«½«ó */
- PSTR pBuffer; /* áñαÑß íπΣÑαá τΓÑ¡¿∩/ºá»¿ß¿ */
- OFSTRUCT OfStruct; /* ¿¡Σ«α¼áµ¿∩ ¿º OpenFile() */
- struct stat FileStatus; /* ¿¡Σ«α¼áµ¿∩ ¿º fstat() */
- BOOL bChanges = FALSE; /* TRUE, Ñß½¿ Σá⌐½ ¿º¼Ñ¡∩ÑΓß∩ */
- BOOL bSaveEnabled = FALSE; /* TRUE, Ñß½¿ ΓѬßΓ - ó íπΣÑαÑ
- αÑñá¬Γ¿α«óá¡¿∩ */
- PSTR pEditBuffer; /* áñαÑß íπΣÑαá αÑñá¬Γ¿α«óá¡¿∩ */
- char Untitled[] = /* ºáú«½«ó«¬ «¬¡á »« π¼«½τá¡¿ε */
- " Edit File - (untitled)";
-
- ÅÑαѼѡ¡á∩ hEditBuffer ß«ñÑαª¿Γ ñÑß¬α¿»Γ«α ΓѬπΘÑú« íπΣÑαá
- αÑñá¬Γ¿α«óá¡¿∩. ¥Γ«Γ íπΣÑα, αáß»«½«ªÑ¡¡δ⌐ ó ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ß«ñÑαª¿Γ ΓѬßΓ ΓѬπΘÑú«
- Σá⌐½á. ä½∩ ºáúαπº¬¿ Σá⌐½á ¡Ñ«íσ«ñ¿¼« «ΓóÑßΓ¿ íπΣÑα, ºáúαπº¿Γ∞
- Σá⌐½, á ºáΓѼ »ÑαÑñáΓ∞ ñÑß¬α¿»Γ«α íπΣÑαá αÑñá¬Γ¿απѼ«¼π í½«¬π
- π»αáó½Ñ¡¿∩. ÅÑαѼѡ¡á∩ hOldBuffer ¿ß»«½∞ºπÑΓß∩ ñ½∩ ºá¼Ñ¡δ
- ßΓáα«ú« íπΣÑαá ¡«óδ¼. äÑß¬α¿»Γ«αδ hHourGlass ¿ hSaveCursor
- ß«ñÑαªáΓ ñÑß¬α¿»Γ«αδ ¬παß«αá »α¿ ñ½¿Γѽ∞¡δσ «»Ñαᵿ∩σ.
-
-
- Windows 3.0/pg/2#3 = 68 =
-
- ÅÑαѼѡ¡á∩ hFile ß«ñÑαª¿Γ ñÑß¬α¿»Γ«α Σá⌐½á, ¬«Γ«αδ⌐
- ó«ºóαáΓ¿½á Σπ¡¬µ¿∩ OpenFile. ÅÑαѼѡ¡á∩ count ß«ñÑαª¿Γ ßτÑΓτ¿¬
- τ¿ß½á ß¿¼ó«½«ó, ¬«Γ«αδÑ ñ«½ª¡δ íδΓ∞ ßτ¿Γá¡δ ¿½¿ ºá»¿ßá¡δ.
- ÅÑαѼѡ¡á∩ pBuffer ∩ó½∩ÑΓß∩ π¬áºáΓѽѼ; «¡á ß«ñÑαª¿Γ áñαÑß
- ß¿¼ó«½á, ¡áτ¿¡á∩ ß ¬«Γ«α«ú« «ßπΘÑßΓó½∩ÑΓß∩ ßτ¿Γδóá¡¿Ñ ¿½¿
- ºá»¿ß∞. æΓαπ¬Γπαá OfStruct ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε « Σá⌐½Ñ.
-
- æΓαπ¬Γπαá FileStatus Γ«ªÑ ß«ñÑαª¿Γ ¿¡Σ«α¼áµ¿ε « Σá⌐½Ñ.
- ÅÑαѼѡ¡á∩ bChanges αáó¡á TRUE, Ñß½¿ »«½∞º«óáΓѽ∞ ¿º¼Ñ¡¿½
- ß«ñÑন¼«Ñ Σá⌐½á. ÅÑαѼѡ¡á∩ bSaveEnabled αáó¡á TRUE, Ñß½¿
- »«½∞º«óáΓѽ∞ óδíαá½ »αáó¿½∞¡«Ñ ¿¼∩ ñ½∩ ß«σαá¡∩Ѽ«ú« Σá⌐½á.
- ÅÑαѼѡ¡á∩ Untitled ß«ñÑαª¿Γ ºáú«½«ó«¬ «ß¡«ó¡«ú« «¬¡á, ¬«Γ«αδ⌐
- ¿º¼Ñ¡∩ÑΓß∩ »α¿ ¬áªñ«⌐ ºáúαπº¬Ñ ¡«ó«ú« Σá⌐½á.
- 10.8.5 çá¼Ñ¡á Σαáú¼Ñ¡Γá WM_COMMAND.
-
- ä½∩ «íαáí«Γ¬¿ ¬«¼á¡ñ ¼Ñ¡ε File (¬α«¼Ñ ¬«¼á¡ñδ Print)
- ¡Ñ«íσ«ñ¿¼« ºá¼Ñ¡¿Γ∞ Σαáú¼Ñ¡Γ WM_COMMAND. ä½∩ ¬«¼á¡ñδ New
- ¡Ñ«íσ«ñ¿¼« «τ¿ßΓ¿Γ∞ ΓѬπΘÑÑ ¿¼∩ Σá⌐½á ¿ ßñѽáΓ∞ »πßΓδ¼
- αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩, Ñß½¿ ó ¡Ñ¼ ¿¼ÑÑΓß∩ ¬á¬«⌐-½¿í«
- ΓѬßΓ. ä½∩ ¬«¼á¡ñδ Open ¡Ñ«íσ«ñ¿¼« »«½πτ¿Γ∞ óδíαá¡¡«Ñ ¿¼∩
- Σá⌐½á, «Γ¬αδΓ∞ Σá⌐½ ¿ ºá»«½¡¿Γ∞ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩.
- ä½∩ ¬«¼á¡ñδ Save ¡Ñ«íσ«ñ¿¼« ºá»¿ßáΓ∞ ß«ñÑন¼«Ñ αÑñá¬Γ¿απѼ«ú«
- í½«¬á π»αáó½Ñ¡¿∩ «íαáΓ¡« ó ΓѬπΘ¿⌐ Σá⌐½. ìᬫ¡Ñµ, ñ½∩ ¬«¼á¡ñδ
- SaveAs ¡Ñ«íσ«ñ¿¼« ºá»α«ß¿Γ∞ ¿¼∩ Σá⌐½á ¿ ºá»¿ßáΓ∞ ß«ñÑন¼«Ñ
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩.
-
- àß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ New, ¿ ΓѬßΓ ó ΓѬπΘѼ
- ¼«ñ¿Σ¿µ¿απѼ«¼ Σá⌐½Ñ ßπΘÑßΓóπÑΓ, ¡Ñ«íσ«ñ¿¼« ñáΓ∞ »«½∞º«óáΓѽε
- »«ñ߬Ậπ ó ó¿ñÑ »á¡Ñ½¿ ß««íΘÑ¡¿∩, ¬«Γ«αá∩ «»αÑñѽ∩ÑΓ, ¡πª¡« ½¿
- ß«σαá¡¿Γ∞ ßñѽᡡδÑ ¿º¼Ñ¡Ñ¡¿∩. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬
- Σαáú¼Ñ¡Γπ WM_COMMAND:
-
- case IDM_NEW:
- if (!QuerySaveFile(hWnd))
- return (NULL);
- bChanges=FALSE;
- FileName[0]=0
- SetNewBuffer(hWnd, NULL, Untitled);
- break;
-
- 﫬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ QuerySaveFile »α«óÑα∩ÑΓ Σá⌐½
- ¡á ¡á½¿τ¿Ñ ¿º¼Ñ¡Ñ¡¿⌐ ¿ »«ñ߬áºδóáÑΓ »«½∞º«óáΓѽε ß«σαá¡¿Γ∞ φΓ¿
- ¿º¼Ñ¡Ñ¡¿∩. àß½¿ ¿º¼Ñ¡Ñ¡¿∩ ß«σαá¡∩εΓß∩, ¿¼∩ Σá⌐½á «τ¿ΘáÑΓß∩ ¿
- íπΣÑα αÑñá¬Γ¿α«óá¡¿∩ ñѽáÑΓß∩ »πßΓδ¼ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SetNewBuffer.
-
- àß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ Open, ¿ ΓѬßΓ ó ΓѬπΘѼ
- ¼«ñ¿Σ¿µ¿απѼ«¼ Σá⌐½Ñ ßπΘÑßΓóπÑΓ, ¡Ñ«íσ«ñ¿¼« ºá»α«ß¿Γ∞
- »«½∞º«óáΓѽ∩, ß½ÑñπÑΓ ½¿ ß«σαá¡¿Γ∞ ¿º¼Ñ¡Ñ¡¿∩ »ÑαÑñ «Γ¬αδΓ¿Ñ¼
- ¡«ó«ú« Σá⌐½á. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó Σαáú¼Ñ¡Γ
- WM_COMMAND:
-
-
- Windows 3.0/pg/2#3 = 69 =
-
- case IDM_OPEN:
- if (!QuerySaveFile(hWnd))
- return (NULL);
- lpOpenDlg = MakeProcInstance((FARPROC) OpenDlg, hInst);
- hFile = DialogBox(hInst, "Open", hWnd, lpOpenDlg);
- FreeProcInstance(lpOpenDlg);
- if (!hFile)
- return (NULL);
- hEditBuffer =
- LocalAlloc(LMEM_MOVEABLE | LMEM_ZEROINIT,
- FileStatus.st_size+1);
- if (!hEditBuffer) {
- MessageBox(hWnd, "ìÑ σóáΓáÑΓ »á¼∩Γ¿.",
- NULL, MB_OK | MB_ICONHAND);
- return (NULL);
- }
- hSaveCursor = SetCursor(hHourGlass);
- pEditBuffer = LocalLock(hEditBuffer);
- IOStatus = read(hFile, pEditBuffer, FileStatus.st_size);
- close(hFile);
- if (IOStatus != FileStatus.st_size) {
- sprintf(str, "ÄΦ¿í¬á τΓÑ¡¿∩ %s.", FileName);
- SetCursor(hSaveCursor);
- MessageBox(hWnd, str, NULL,
- MB_OK | MB_ICONEXCLAMATION);
- }
- LocalUnlock(hEditBuffer);
- sprintf(str, "ÉÑñá¬Γ¿απ¼δ⌐ Σá⌐½ - %s", FileName);
- SetNewBuffer(hWnd, hEditBuffer, str);
- SetCursor(hSaveCursor); /* ó«ßßΓá¡«ó½Ñ¡¿Ñ ¬παß«αá */
- break;
-
- Åα¿ «íαáí«Γ¬Ñ Σαáú¼Ñ¡Γá IDM_OPEN Σπ¡¬µ¿∩ QuerySaveFile
- »α«óÑα∩ÑΓ ßπΘÑßΓóπεΘ¿⌐ Σá⌐½ ¡á ¡á½¿τ¿Ñ ¿º¼Ñ¡Ñ¡¿⌐ »ÑαÑñ
- ¿¡ñ¿µ¿α«ó᡿Ѽ »á¡Ñ½¿ ñ¿á½«úá Open. öπ¡¬µ¿∩ DialogBox ΓÑ»Ñα∞
- ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α «Γ¬αδΓ«ú« Σá⌐½á. ¥Γ«Γ ñÑß¬α¿»Γ«α
- ß«ºñáÑΓß∩ Σπ¡¬µ¿Ñ⌐ OpenDlg. àß½¿ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬αδΓ,
- Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ NULL, ¿ «íαáí«Γ¬á ºá¬á¡τ¿óáÑΓß∩. é »α«Γ¿ó¡«¼
- ß½πτáÑ Σπ¡¬µ¿∩ LocalAlloc «Γó«ñ¿Γ ¼ÑßΓ«, ¡Ñ«íσ«ñ¿¼«Ñ ñ½∩
- ºáúαπº¬¿ Σá⌐½á ó »á¼∩Γ∞. Å«ΓαÑí¡δ⌐ «íΩѼ »á¼∩Γ¿ «»αÑñѽ∩ÑΓß∩
- ßΓαπ¬Γπα«⌐ FileStatus, ¬«Γ«αá∩ ºá»«½¡∩ÑΓß∩ ¿¡Σ«α¼áµ¿Ñ⌐ « Σá⌐½Ñ,
- «Γ¬αδΓ«¼ Σπ¡¬µ¿Ñ⌐ ñ¿á½«úá OpenDlg. àß½¿ ¡ÑΓ ñ«ßΓáΓ«τ¡«ú« «íΩѼá
- »á¼∩Γ¿, ¿¡ñ¿µ¿απÑΓß∩ »á¡Ñ½∞ ß««íΘÑ¡¿⌐ ¿ «íαáí«Γ¬á
- ºá¬á¡τ¿óáÑΓß∩. é »α«Γ¿ó¡«¼ ß½πτáÑ, Σπ¡¬µ¿∩ SetCursor ¿¡ñ¿µ¿απÑΓ
- »Ñß«τ¡δÑ τáßδ, Σπ¡¬µ¿∩ LocalLock í½«¬¿απÑΓ ¡«óδ⌐ íπΣÑα, ¿
- Σπ¡¬µ¿∩ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ read ¬«»¿απÑΓ ß«ñÑন¼«Ñ Σá⌐½á ó
- »á¼∩Γ∞. àß½¿ Σá⌐½ ¡Ñ íδ½ ßτ¿Γá¡ »«½¡«ßΓ∞ε, ¿¡ñ¿µ¿απÑΓß∩ »á¡Ñ½∞
- ß««íΘÑ¡¿⌐. öπ¡¬µ¿∩ SetCursor ó«ßßΓá¡áó½¿óáÑΓ ¬παß«α »ÑαÑñ
- óδº«ó«¼ Σπ¡¬µ¿¿ MessageBox. öπ¡¬µ¿∩ LocalUnlock αáºí½«¬¿απÑΓ
- íπΣÑα αÑñá¬Γ¿α«óá¡¿∩, ¿ »«ß½Ñ ß«ºñá¡¿∩ ¡«ó«ú« ºáú«½«ó¬á «¬¡á
- ½«¬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ SetNewBuffer ¿º¼Ñ¡∩ÑΓ íπΣÑα
- αÑñá¬Γ¿α«óá¡¿∩ ¿ ºáú«½«ó«¬.
-
-
- Windows 3.0/pg/2#3 = 70 =
-
- àß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ Save ¿ ΓѬπΘÑÑ ¿¼∩
- Σá⌐½á «ΓßπΓßΓóπÑΓ, ß½ÑñπÑΓ óδ»«½¡¿Γ∞ ¡Ñ¬«Γ«αδÑ ñÑ⌐ßΓó¿∩, ¬á¬ ¿
- »α¿ ¬«¼á¡ñÑ SaveAs. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σαáú¼Ñ¡Γπ
- WM_COMMAND:
-
- case IDM_SAVE;
- if (!FileName[0])
- goto saveas;
- if (bChanges)
- SaveFile(hWnd);
- break;
-
- öαáú¼Ñ¡Γ IDM_SAVE »α«óÑα∩ÑΓ ¿¼∩ Σá⌐½á ¿, Ñß½¿ «¡« ¡Ñ
- ßπΘÑßΓóπÑΓ, »α«»π߬áÑΓ «»ÑαáΓ«αδ ñ« Σαáú¼Ñ¡Γá IDM_SAVEAS. àß½¿
- ¿¼∩ Σá⌐½á ßπΘÑßΓóπÑΓ, ½«¬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ SaveFile
- ß«σαá¡∩ÑΓ Σá⌐½ Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿ ó ¡Ñ¼ í뫨 ¿º¼Ñ¡Ñ¡¿∩.
-
- 諼á¡ñá SaveAs óßÑúñá ñ«½ª¡á ºá»αáΦ¿óáΓ∞ ¿¼∩ Σá⌐½á.
- æ½ÑñπÑΓ ß«σαá¡¿Γ∞ Σá⌐½ Γ«½∞¬« Γ«úñá, ¬«úñá »«½∞º«óáΓѽ∞ ºáñá½
- »αáó¿½∞¡«Ñ ¿¼∩ Σá⌐½á. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σαáú¼Ñ¡Γπ
- WM_COMMAND:
-
- case IDM_SAVEAS:
- saveas:
- lpSaveAsDlg = MakeProcInstance(SaveAsDlg, hInst);
- Success = DialogBox(hInst, "SaveAs", hWnd,
- lpSaveAsDlg);
- FreeProcInstance(lpSaveAsDlg);
- if (Success == IDOK) {
- sprintf(str, "ÉÑñá¬Γ¿απѼδ⌐ Σá⌐½ %s",
- FileName);
- SetWindowText(hWnd, str);
- SaveFile(hWnd);
- }
- break;
-
- öπ¡¬µ¿∩ DialogBox ¿¡ñ¿µ¿απÑΓ »á¡Ñ½∞ ñ¿á½«úá SaveAs.
- öπ¡¬µ¿¿ MakeProcInstance ¿ FreeProcInstance ß«ºñáεΓ ¿
- «ßó«í«ªñáεΓ áñαÑß »α«µÑñπαδ φ¬ºÑ¼»½∩αá ñ½∩ Σπ¡¬µ¿¿ ñ¿á½«úá
- SaveAsDlg. öπ¡¬µ¿∩ DialogBox »«½πτáÑΓ IDOK ¿º Σπ¡¬µ¿¿ ñ¿á½«úá
- SaveAsDlg, Ñß½¿ »«½∞º«óáΓѽ∞ óó«ñ¿Γ »αáó¿½∞¡«Ñ ¿¼∩ Σá⌐½á. çáΓѼ
- Σπ¡¬µ¿∩ SetWindowText ¿º¼Ñ¡∩ÑΓ ºáú«½«ó«¬ «¬¡á, á Σπ¡¬µ¿∩
- SaveFile ß«σαá¡∩ÑΓ ó Σá⌐½Ñ ß«ñÑন¼«Ñ íπΣÑαá αÑñá¬Γ¿α«óá¡¿∩.
-
- ÆÑ»Ñα∞ ¬«¼á¡ñá Exit ñ«½ª¡á ºá»α«ß¿Γ∞ »«½∞º«óáΓѽ∩ ¿
- «»αÑñѽ¿Γ∞, ñ«½ªÑ¡ ½¿ íδΓ∞ ß«σαá¡Ñ¡ ΓѬπΘ¿⌐ Σá⌐½. èα«¼Ñ Γ«ú«,
- τΓ«íδ «Γß½Ññ¿Γ∞ ¿º¼Ñ¡Ñ¡¿∩ ó Σá⌐½Ñ, ¡Ñ«íσ«ñ¿¼« «íαáí«ΓáΓ∞
- πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩.
- î«ñ¿Σ¿µ¿απ⌐ΓÑ Σαáú¼Ñ¡Γ IDM_EXIT ¿ ñ«íáó∞ΓÑ Σαáú¼Ñ¡Γ IDC_EDIT ¬
- Σαáú¼Ñ¡Γπ WM_COMMAND, ¬á¬ π¬áºá¡« ¡¿ªÑ:
-
- case IDM_EXIT:
- QuerySaveFile(hWnd);
-
- Windows 3.0/pg/2#3 = 71 =
-
- DestroyWindow(hWnd);
- break;
-
- case ID_EDIT:
- if (HIWORD(lParam) == EN_CHANGE)
- bChanges = TRUE;
- return (NULL);
- 10.8.6 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_QUERYENDSESSION ¿ WM_CLOSE.
-
- ìÑ«íσ«ñ¿¼« «íαáí«ΓáΓ∞ ß««íΘÑ¡¿∩ WM_QUERYENDSESSION ¿
- WM_CLOSE ñ½∩ Γ«ú«, τΓ«íδ ¡Ñ »«ΓÑα∩Γ∞ ß«ñÑন¼«Ñ Σá⌐½«ó.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_QUERYENDSESSION: /* «¬«¡τ¿Γ∞ ßÑá¡ß? */
- return (QuerySaveFile(hWnd));
-
- case WM_CLOSE: /* ºá¬αδΓ∞ «¬¡«? */
- if (QuerySaveFile(hWnd));
- DestroyWindow(hWnd);
- break;
-
- Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_QUERYENDSESSION Σπ¡¬µ¿¿
- «¬¡á, ¬«úñá »«½∞º«óáΓѽ∞ αÑΦ¿½ ºá¬«¡τ¿Γ∞ αáí«Γπ ß Windows.
- æÑá¡ß αáí«Γδ ºá¬á¡τ¿óáÑΓß∩ Γ«½∞¬« Γ«úñá, ¬«úñá ó«ºóαáΘÑ¡« TRUE.
- öπ¡¬µ¿∩ QuerySaveFile »α«óÑα∩ÑΓ Σá⌐½ ¡á ¡á½¿τ¿Ñ ¿º¼Ñ¡Ñ¡¿⌐,
- ß«σαá¡∩ÑΓ ¿σ, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«, ¿ ó«ºóαáΘáÑΓ TRUE ¿½¿ FALSE
- ó ºáó¿ß¿¼«ßΓ¿ «Γ Γ«ú«, «Γ¼Ñ¡∩ÑΓ »«½∞º«óáΓѽ∞ «»Ñαáµ¿ε ¿½¿
- »«ñΓóÑαªñáÑΓ ÑÑ.
-
- Windows »«ßδ½áÑΓ ß««íΘÑ¡¿Ñ WM_CLOSE Σπ¡¬µ¿¿ «¬¡á, Ñß½¿
- »«½∞º«óáΓѽ∞ óδíαá½ ¬«¼á¡ñπ Close ó ß¿ßΓѼ¡«¼ ¼Ñ¡ε «ß¡«ó¡«ú«
- «¬¡á. öπ¡¬µ¿∩ QuerySaveFile óδ»«½¡∩ÑΓ Γπ ªÑ ßá¼πε ºáñáτπ, τΓ« ¿
- ß««íΘÑ¡¿Ñ WM_QUERYENDSESSION, ¡« ñ½∩ Γ«ú«, τΓ«íδ ºáóÑαΦ¿Γ∞
- Σαáú¼Ñ¡Γ WM_CLOSE, ¡Ñ«íσ«ñ¿¼« Γá¬ªÑ αáºαπΦ¿Γ∞ «ß¡«ó¡«Ñ «¬¡«,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε DestroyWindow.
- 10.8.7 î«ñ¿Σ¿¬áµ¿∩ Σπ¡¬µ¿¿ ñ¿á½«úá OpenDlg.
-
- ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σαáú¼Ñ¡Γ IDOK ó Σπ¡¬µ¿¿ OpenDlg
- ñ½∩ Γ«ú«, τΓ«íδ «Γ¬αδΓ∞ ¿ »α«óÑα¿Γ∞ αẼÑα Σá⌐½á, ¬«Γ«αδ⌐
- óδíαá¡ »«½∞º«óáΓѽѼ. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ßαáºπ »«ß½Ñ
- ó맮óá Σπ¡¬µ¿¿ AddExt ó Σαáú¼Ñ¡Γ IDOK Σπ¡¬µ¿¿ OpenDlg:
-
- if ((hFile = OpenFile(OpenName, (LPOFSTRUCT) &OfStruct,
- OF_READ)) < 0) {
- sprintf(str, "ÄΦ¿í¬á %d »α¿ «Γ¬αδΓ¿¿ %s.",
- OfStruct.nErrorCode, OpenName);
- MessageBox(hDlg, str, NULL, MB_OK |
- MB_ICONQUESTION);
- }
- else {
- fstat(hFile, &FileStatus);
-
- Windows 3.0/pg/2#3 = 72 =
-
- if (FileStatus.st_size > MAXFILESIZE) {
- sprintf(str,
- "ìÑ σóáΓáÑΓ »á¼∩Γ¿ ñ½∩ αẼÑΘÑ¡¿∩ %s.\n%s
- »αÑóδΦáÑΓ %ld íá⌐Γ«ó.", OpenName,
- OpenName, MAXEFILESIZE);
- MessageBox(hDlg, str, NULL,
- MB_OK | MB_ICONQUESTION);
- return (TRUE);
- }
- strcpy(FileName, OpenName);
- EndDialog(hDlg, hFile);
- return (TRUE);
-
- öπ¡¬µ¿∩ OpenFile «Γ¬αδóáÑΓ π¬áºá¡¡δ⌐ Σá⌐½ ñ½∩ τΓÑ¡¿∩ ¿,
- Ñß½¿ φΓá «»Ñαᵿ∩ »α«Φ½á πß»ÑΦ¡«, ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α Σá⌐½á.
- àß½¿ Σá⌐½ ¡Ñ ¼«ªÑΓ íδΓ∞ «Γ¬αδΓ, ¿¡ñ¿µ¿απÑΓß∩ »á¡Ñ½∞ ß««íΘÑ¡¿⌐,
- ß«ñÑαªáΘá∩ ¡«¼Ñα «Φ¿í¬¿, úÑ¡Ñα¿απѼ«⌐ DOS. àß½¿ Σá⌐½ «Γ¬αδΓ,
- Σπ¡¬µ¿∩ C fstat ¬«»¿απÑΓ ¿¡Σ«α¼áµ¿ε « Σá⌐½Ñ ó ßΓαπ¬Γπαπ
- FileStatus. ÉẼÑα Σá⌐½á »α«óÑα∩ÑΓß∩ ñ½∩ πóÑαÑ¡¡«ßΓ¿ ó Γ«¼, τΓ«
- Σá⌐½ ¡Ñ »αÑóδΦáÑΓ ¼á¬ß¿¼á½∞¡δÑ αẼÑαδ, ºáñá¡¡δÑ ¬«¡ßΓá¡Γ«⌐
- MAXFILESIZE. àß½¿ αẼÑα Σá⌐½á ß½¿Φ¬«¼ óѽ¿¬, ¿¡ñ¿µ¿απÑΓß∩
- ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ. é »α«Γ¿ó¡«¼ ß½πτáÑ Σπ¡¬µ¿∩ strcpy ¬«»¿απÑΓ
- ¡«ó«Ñ ¿¼∩ ó »ÑαѼѡ¡πε FileName, á Σπ¡¬µ¿∩ EndDialog ºáóÑαΦáÑΓ
- αáí«Γπ »á¡Ñ½¿ ñ¿á½«úá ¿ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α hFile Σπ¡¬µ¿¿
- DialogBox.
- 10.8.8 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg.
-
- ä½∩ »á¡Ñ½¿ ñ¿á½«úá SaveAs ¡Ñ«íσ«ñ¿¼« ºáñáΓ∞ Σπ¡¬µ¿ε
- ñ¿á½«úá. öπ¡¬µ¿∩ íπñÑΓ »«½πτáΓ∞ ¿¼∩ Σá⌐½á ¿º αÑñá¬Γ¿απѼ«ú«
- í½«¬á π»αáó½Ñ¡¿∩ ¿ ¬«»¿α«óáΓ∞ φΓ« ¿¼∩ ó ú½«íá½∞¡πε »ÑαѼѡ¡πε
- FileName. öπ¡¬µ¿∩ ñ¿á½«úá ñ«½ª¡á óδú½∩ñÑΓ∞ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- int FAR PASCAL SaveAsDlg(hDlg, message, wParam, lParam)
- HWND hDlg;
- unsigned message;
- WORD wParam;
- LONG lParam;
- {
- char TempName[128];
- switch (message) {
- case WM_INITDIALOG:
- if (!FileName[0])
- bSaveEnabled = FALSE;
- else {
- bSaveEnabled = TRUE;
- DlgDirList(hDlg, DefPath, NULL, ID_PATH,
- 0x4010);
- SetDlgItemText(hDlg, ID_EDIT, FileName);
- SendDlgItemMessage(hDlg, ID_EDIT, EM_SETSEL,
- 0, MAKELONG(0, 0x7fff);
- }
- EnableWindow(GetDlgItem(hDlg, IDOK),
-
- Windows 3.0/pg/2#3 = 73 =
-
- bSaveEnabled);
- SetFocus(GetDlgItem(hDlg, ID_EDIT));
- return (FALSE); /* FALSE, Ñß½¿ ºáσóáΓ óó«ñá
- ¼Ñ¡∩ÑΓß∩ */
- case WM_COMMAND:
- switch (wParam) {
- case ID_EDIT:
- if (HIWORD(lParam) == EN_CHANGE &&
- !bSaveEnabled)
- EnableWindow(GetDlgItem(hDlg, IDOK),
- bSaveEnabled = TRUE);
- return (TRUE);
- case IDOK:
- GetDlgItemText(hDlg, ID_EDIT, TempName,
- 128);
- if (CheckFileName(hDlg, FileName,
- TempName)) {
- SeparateFile(hDlg, (LPSTR) str,
- (LPSTR)DefSpec, (LPSTR)FileName);
- if (str[0])
- strcpy(DefPath, str);
- EndDialog(hDlg, IDOK);
- }
- return (TRUE);
- case IDCANCEL:
- EndDialog(hDlg, IDCANCEL);
- return (TRUE);
- }
- break;
- }
- return (FALSE);
- }
- öαáú¼Ñ¡Γ WM_INITDIALOG ñѽáÑΓ ñ«ßΓπ»¡«⌐ ¿½¿ ¡Ññ«ßΓπ»¡«⌐
- ¼∩ú¬πε ¬½áó¿Φπ Save. ¥Γá ¬½áó¿Φá ñ«½ª¡á íδΓ∞ ¡Ññ«ßΓπ»¡«⌐, Ñß½¿
- ¡Ñ ßπΘÑßΓóπÑΓ ΓѬπΘÑú« ¿¼Ñ¡¿ Σá⌐½á. öπ¡¬µ¿∩ EnableWindow
- (ó¼ÑßΓÑ ß »ÑαѼѡ¡«⌐ bSaveEnabled) ñѽáÑΓ ¼∩ú¬πε ¬½áó¿Φπ
- ñ«ßΓπ»¡«⌐ ¿½¿ ¡Ññ«ßΓπ»¡«⌐. àß½¿ ΓѬπΘÑÑ ¿¼∩ Σá⌐½á ßπΘÑßΓóπÑΓ,
- Γ« «¡« ñ«½ª¡« íδΓ∞ »αÑñ½áúáÑ¼δ¼ ¿¼Ñ¡Ñ¼. öπ¡¬µ¿∩ SetDlgItemText
- ¬«»¿απÑΓ ¿¼∩ Σá⌐½á ó αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩, á Σπ¡¬µ¿∩
- SendDlgItemMessage óδí¿αáÑΓ »«½¡«Ñ ¿¼∩ ñ½∩ αÑñá¬Γ¿α«óá¡¿∩.
- öπ¡¬µ¿∩ DlgDirList πßΓá¡áó½¿óáÑΓ í½«¬ π»αáó½Ñ¡¿∩ ID_PATH ¡á
- ΓѬπΘ¿⌐ ¬áΓὫú. ū߬«½∞¬π ¡Ñ ßπΘÑßΓóπÑΓ ºá»«½¡∩Ѽ«⌐ »á¡Ñ½¿
- »ÑαÑτ¡∩, Γ« ÑÑ ID ¡Ñ ºáñáÑΓß∩.
-
- öαáú¼Ñ¡Γ WM_COMMAND «íαáíáΓδóáÑΓ πóÑñ«¼½∩εΘ¿Ñ ß««íΘÑ¡¿∩ ¿º
- í½«¬«ó π»αáó½Ñ¡¿∩ »á¡Ñ½¿ ñ¿á½«úá. è«úñá Σπ¡¬µ¿∩ »«½πτáÑΓ
- πóÑñ«¼½Ñ¡¿Ñ EN_CHANGE «Γ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩
- ID_EDIT, «¡á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε EnableWindow ñ½∩ Γ«ú«, τΓ«íδ
- ßñѽáΓ∞ ¡Ññ«ßΓπ»¡«⌐ ¼∩ú¬πε ¬½áó¿Φπ Save, Ñß½¿ «¡á αá¡ÑÑ ¡Ñ íδ½á
- ßñѽá¡á ¡Ññ«ßΓπ»¡«⌐.
-
- è«úñá Σπ¡¬µ¿∩ »«½πτáÑΓ πóÑñ«¼½Ñ¡¿Ñ «Γ ¼∩ú¬«⌐ ¬½áó¿Φ¿
- Save, «¡á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε GetDlgItemText ñ½∩ »«½πτÑ¡¿∩ ¿¼Ñ¡¿
-
- Windows 3.0/pg/2#3 = 74 =
-
- Σá⌐½á ¿º αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩, á ºáΓѼ ¬«¡Γα«½¿απÑΓ
- »αáó¿½∞¡«ßΓ∞ ¿¼Ñ¡¿ Σá⌐½á, ¿ß»«½∞ºπ∩ ½«¬á½∞¡« «»αÑñѽѡ¡πε
- Σπ¡¬µ¿ε CheckFileName. ¥Γá Σπ¡¬µ¿∩ ¬«¡Γα«½¿απÑΓ ¿¼∩ Σá⌐½á Γá¬,
- τΓ«íδ «¡« ¡Ñ ß«ñÑαªá½« αáºñѽ¿ΓѽÑ⌐ ¼áαΦαπΓá ¿½¿ π¡¿óÑαßá½∞¡δσ
- ß¿¼ó«½«ó. çáΓѼ »α«óÑα∩ÑΓß∩, ßπΘÑßΓó«óá½ ½¿ πªÑ Γᬫ⌐ Σá⌐½;
- Ñß½¿ φΓ« Γá¬, Γ« CheckFileName ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε MessageBox
- ñ½∩ ºá»α«ßá π »«½∞º«óáΓѽ∩, ñ«½ªÑ¡ ½¿ Σá⌐½ íδΓ∞ »ÑαѺỿßá¡.
- ìᬫ¡Ñµ, Σπ¡¬µ¿∩ ñ¿á½«úá ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε SeparateFile ñ½∩
- ¬«»¿α«óá¡¿∩ ¿¼Ñ¡¿ Σá⌐½á ó »ÑαѼѡ¡δÑ DefSpec ¿ DefPath.
- 10.8.9 ä«íáó½Ñ¡¿Ñ óß»«¼«úáΓѽ∞¡δσ Σπ¡¬µ¿⌐.
-
- ä½∩ »«ññÑ᪬¿ »α«úαá¼¼δ EditFile ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞
- ¡Ñ߬«½∞¬« Σπ¡¬µ¿⌐ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π. ¥Γ« ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿:
-
- öπ¡¬µ¿∩ Ä»¿ßá¡¿Ñ
- ───────────────────────────────────────────────────────────────
- CheckFileName è«¡Γα«½¿απÑΓ ¿¼∩ Σá⌐½á ¡á π¡¿óÑαßá½∞¡δÑ
- ß¿¼ó«½δ, ñ«íáó½∩ÑΓ αáßΦ¿αÑ¡¿Ñ ¿¼Ñ¡¿
- Σá⌐½á »« π¼«½τá¡¿ε, Ñß½¿ «¡« ¡Ñ«íσ«ñ¿-
- ¼«, ¿ »α«óÑα∩ÑΓ ßπΘÑßΓó«óá¡¿Ñ Σá⌐½á.
-
- SaveFile æ«σαá¡∩ÑΓ ó Σá⌐½Ñ ß«ñÑন¼«Ñ íπΣÑαá αÑ-
- ñá¬Γ¿α«óá¡¿∩.
-
- QuerySaveFile Å«ñ߬áºδóáÑΓ »«½∞º«óáΓÑ½ε « ¡Ñ«íσ«ñ¿-
- ¼«ßΓ¿ ß«σαá¡¿Γ∞ ¿º¼Ñ¡Ñ¡¿∩.
-
- SetNewBuffer Äßó«í«ªñáÑΓ ßπΘÑßΓóπεΘ¿⌐ íπΣÑα αÑñá¬Γ¿-
- α«óá¡¿∩ ¿ ºá¼Ñ¡∩ÑΓ Ñú« ¡«óδ¼.
- ───────────────────────────────────────────────────────────────
-
- öπ¡¬µ¿∩ CheckFileName »α«óÑα∩ÑΓ, ¡Ñ »πßΓ« ½¿ ¿¼∩ Σá⌐½á ¿
- ¡Ñ ß«ñÑαª¿Γ ½¿ «¡« π¡¿óÑαßá½∞¡δÑ ß¿¼ó«½δ. Ä¡á ΓᬪÑ
- ¬«¡Γα«½¿απÑΓ, ßπΘÑßΓóπÑΓ ½¿ πªÑ Σá⌐½, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- OpenFile ¿ »áαá¼ÑΓα OF_EXIST. àß½¿ Σá⌐½ ßπΘÑßΓóπÑΓ, Σπ¡¬µ¿∩
- CheckFileName »«ñ߬áºδóáÑΓ »«½∞º«óáΓÑ½ε »«ß¼«ΓαÑΓ∞, ¡áñ« ½¿ Ñú«
- »ÑαѺỿßáΓ∞. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- BOOL CheckFileName(hWnd, pDest, pSrc)
- HWND hWnd;
- PSTR pDest, pSrc;
- {
- PSTR pTmp;
-
- if (!pSrc[0])
- return (FALSE); /* »«¬áºδóáÑΓ, τΓ« ¡Ñ π¬áºá¡« ¿¼∩
- Σá⌐½á */
- pTmp = pSrc;
- while (*pTmp) { /* »«¿ß¬ ó ßΓα«¬Ñ π¡¿óÑαßá½∞¡δσ
- ß¿¼ó«½«ó */
- switch (*pTmp++) {
- case '*':
-
- Windows 3.0/pg/2#3 = 75 =
-
- case '?':
- MessageBox(hWnd,
- "ô¡¿óÑαßá½∞¡δÑ ß¿¼ó«½δ ¡Ñ ñ«»π߬áεΓß∩",
- NULL, MB_OK | MB_ICONEXCLAMATION);
- return (FALSE);
- }
- }
-
- AddExt(pSrc, DefExt); /* ñ«íáó½Ñ¡¿Ñ ó ß½πτáÑ ¡Ñ«íσ«ñ¿-
- ¼«ßΓ¿ αáßΦ¿αÑ¡¿∩ ¿¼Ñ¡¿ Σá⌐½á
- »« π¼«½τá¡¿ε */
- if (OpenFile(pSrc, (LPOFSTRUCT) &OfStruct, OF_EXIST >= 0)
- {
- sprintf(str, "çá¼Ñ¡¿Γ∞ ßπΘÑßΓóπεΘ¿⌐ %s?", pSrc);
- if (MessageBox(hWnd, str, "EditFile",
- MB_OKCANCEL | MB_ICONHAND) == IDCANCEL);
- return (FALSE);
- }
- strcpy(pDest, pSrc);
- return (TRUE);
- }
-
- öπ¡¬µ¿∩ SaveFile ¿ß»«½∞ºπÑΓ »áαá¼ÑΓα OF_CREATE Σπ¡¬µ¿¿
- OpenFile ñ½∩ Γ«ú«, τΓ«íδ «Γ¬αδΓ∞ Σá⌐½ ñ½∩ ºá»¿ß¿. ¥Γ«Γ »áαá¼ÑΓα
- »«íπªñáÑΓ Σπ¡¬µ¿ε OpenFile πñ὿Γ∞ ΓѬπΘÑÑ ß«ñÑন¼«Ñ Σá⌐½á.
- çáΓѼ Σπ¡¬µ¿∩ SaveFile »«½πτáÑΓ ñÑß¬α¿»Γ«α íπΣÑαá Σá⌐½á ¿º
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩, í½«¬¿απÑΓ íπΣÑα ¿ ¬«»¿απÑΓ
- ß«ñÑন¼«Ñ ó Σá⌐½. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- BOOL SaveFile(hWnd)
- HWND hWnd;
- {
- BOOL bSuccess;
- int IOStatus; /* αѺπ½∞ΓáΓ ºá»¿ß¿ Σá⌐½á */
- if ((hFile = OpenFile(FileName, &OfStruct,
- OF_PROMPT | OF_CANCEL | OF_CREATE)) < 0) {
- sprintf(str, "ìѽ∞º∩ ºá»¿ßáΓ∞ ó Σá⌐½ %s.", FileName);
- MessageBox(hWnd, str, NULL, MB_OK | MB_ICONQUESTION);
- return (FALSE);
- }
- hEditBuffer = SendMessage(hEditWnd, EM_GETHANDLE, 0, 0L);
- pEditBuffer = LocalLock(hEditBuffer);
- hSaveCursor = SetCursor(hHourGlass);
- IOStatus = write(hFile,pEditBuffer, strlen(pEditBuffer));
- close(hFile);
- SetCursor(hSaveCursor);
- if (IOStatus != strLen(pEditBuffer)) {
- sprintf(str, " ÄΦ¿í¬á ºá»¿ß¿ ó %s.", FileName);
- MessageBox(hWnd, str, NULL, MB_OK | MB_ICONHAND);
- bSuccess = FALSE;
- }
-
- else {
-
- Windows 3.0/pg/2#3 = 76 =
-
- bSuccess = TRUE; /* Σá⌐½ ß«σαá¡Ñ¡ */
- bChanges = FALSE; /* ¿º¼Ñ¡Ñ¡¿∩ ß«σαá¡Ñ¡δ */
- }
- LocalUnlock(hEditBuffer);
- return (bSuccess);
- }
-
- æ««íΘÑ¡¿Ñ EM_GETHANDLE, »«ß½á¡¡«Ñ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SendMessage, »«íπªñáÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ó«ºóαáΓ¿Γ∞
- ñÑß¬α¿»Γ«α Ñú« íπΣÑαá αÑñá¬Γ¿α«óá¡¿∩. ¥Γ«Γ íπΣÑα αáß»«½áúáÑΓß∩
- ó ½«¬á½∞¡«⌐ »á¼∩Γ¿, ΓᬠτΓ« «¡ ¼«ªÑΓ íδΓ∞ ºáí½«¬¿α«óá¡ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ LocalLock. Å«ß½Ñ í½«¬¿α«ó¬¿ ß«ñÑন¼«Ñ
- ºá»¿ßδóáÑΓß∩ ó Σá⌐½ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ C write. öπ¡¬µ¿∩
- SetCursor ¿¡ñ¿µ¿απÑΓ ¬παß«α ó ó¿ñÑ »Ñß«τ¡δσ τáß«ó ñ½∩ π¬áºá¡¿∩
- ñ½¿Γѽ∞¡«⌐ «»Ñαᵿ¿. àß½¿ Σπ¡¬µ¿∩ write ¡Ñ ¼«ªÑΓ ºá»¿ßáΓ∞ óßÑ
- íá⌐Γδ, Σπ¡¬µ¿∩ SaveFile ¿¡ñ¿µ¿απÑΓ »á¡Ñ½∞ ß««íΘÑ¡¿⌐. öπ¡¬µ¿∩
- LocalUnlock «ßó«í«ªñáÑΓ íπΣÑα αÑñá¬Γ¿α«óá¡¿∩ »ÑαÑñ ó«ºóαáΓ«¼
- Σπ¡¬µ¿¿ SaveFile.
-
- öπ¡¬µ¿∩ QuerySaveFile ¬«¡Γα«½¿απÑΓ ¡á½¿τ¿Ñ ¿º¼Ñ¡Ñ¡¿⌐ ó
- Σá⌐½Ñ ¿ »«ñ߬áºδóáÑΓ »«½∞º«óáΓѽε, ß«σαá¡¿Γ∞ ¿½¿ πñ὿Γ∞ φΓ¿
- ¿º¼Ñ¡Ñ¡¿∩, ¿½¿ «Γ¼Ñ¡¿Γ∞ «»Ñαᵿε. àß½¿ »«½∞º«óáΓѽ∞ σ«τÑΓ
- ß«σαá¡¿Γ∞ ¿º¼Ñ¡Ñ¡¿∩, Σπ¡¬µ¿∩ ºá»αáΦ¿óáÑΓ π »«½∞º«óáΓѽ∩ ¿¼∩
- Σá⌐½á, ¿ß»«½∞ºπ∩ »á¡Ñ½∞ ñ¿á½«úá SaveAs. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ:
-
- BOOL QuerySaveFile(hWnd);
- HWND hWnd;
- {
- int Response;
- FARPROC lpSaveAsDlg;
- if (bChanges) {
- sprintf(str, "æ«σαá¡Ñ¡¿Ñ ΓѬπΘ¿σ ¿º¼Ñ¡Ñ¡¿⌐: %s",
- FileName);
- Response = MessageBox(hWnd, str,
- "EditFile", MB_YESNOCANCEL | MB_ICONQUESTION);
- if (Response == IDYES) {
- check_name:
- if (!FileName[0]) {
- lpSaveAsDlg = MakeProcInstance(SaveAsDlg,
- hInst);
- Response = DialogBox(hInst, "SaveAs",
- hWnd, lpSaveAsDlg);
- FreeProcInstance(lpSaveAsDlg);
- if (Response == IDOK)
- goto check_name;
- else
- return (FALSE);
- }
- SaveFile(hWnd);
- }
- else if (Response == IDCANCEL)
- return (FALSE);
-
- Windows 3.0/pg/2#3 = 77 =
-
- }
- else
- return (TRUE);
- }
-
- öπ¡¬µ¿∩ SetNewBuffer ¡áσ«ñ¿Γ ¿ «ßó«í«ªñáÑΓ íπΣÑα
- αÑñá¬Γ¿α«óá¡¿∩ »ÑαÑñ αẼÑΘÑ¡¿Ñ¼ ¿ πßΓá¡«ó¬«⌐ ¡«ó«ú« íπΣÑαá
- αÑñá¬Γ¿α«óá¡¿∩. çáΓѼ «¡á ¬«ααÑ¬Γ¿απÑΓ αÑñá¬Γ¿απѼδ⌐ í½«¬
- π»αáó½Ñ¡¿∩. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
-
- void SetNewBuffer(hWnd, hNewBuffer, Title)
- HWND hWnd;
- HANDLE hNewBuffer;
- PSRT Title;
- {
- HANDLE hOldBuffer;
-
- hOldBuffer = SendMessage(hEditWnd, EM_GETHANDLE, 0, 0L);
- LocalFree(hOldBuffer);
- if (!hNewBuffer) /* αẼÑΘÑ¡¿Ñ ¡«ó«ú« íπΣÑαá */
- hNewBuffer = LocalAlloc(LMEM_MOVAABLE |
- LMEM_ZEROINIT, 1);
- SendMessage(hEditWnd, EM_SETHANDLE, hNewBuffer, 0L);
- InvalidateRect(hEditWnd, NULL, TRUE); /* ¬«ααÑ¬Γ¿α«ó¬á
- íπΣÑαá */
- UpdateWindow(hEditWnd);
- SetWindowText(hWnd, Title);
- SetFocus(hEditWnd);
- bChanges = FALSE;
- }
-
- ì«óδ⌐ ΓѬßΓ ¡Ñ íπñÑΓ ¿¡ñ¿µ¿α«óá¡ ñ« ΓÑσ »«α, »«¬á
- αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ¡Ñ »ÑαÑα¿ßπÑΓ ßó«ε «í½áßΓ∞
- »«½∞º«óáΓѽ∩. öπ¡¬µ¿∩ InvalidateRect «ßó«í«ªñáÑΓ ñ½∩
- »ÑαÑα¿ß«ó¬¿ τáßΓ∞ «í½áßΓ¿ »«½∞º«óáΓѽ∩ ó αÑñá¬Γ¿απѼ«¼ í½«¬Ñ
- π»αáó½Ñ¡¿∩. Çαúπ¼Ñ¡Γ NULL «º¡áτáÑΓ, τΓ« ñ«½ªÑ¡ íδΓ∞ »ÑαÑα¿ß«óá¡
- óÑß∞ í½«¬ π»αáó½Ñ¡¿∩; TRUE «º¡áτáÑΓ, τΓ« »ÑαÑñ »ÑαÑα¿ß«ó¬«⌐
- ñ«½ªÑ¡ íδΓ∞ ßΓÑαΓ Σ«¡. é ½εí«¼ ß½πτáÑ í½«¬ π»αáó½Ñ¡¿∩
- »«ñú«Γáó½¿óáÑΓß∩ ñ½∩ »ÑαÑα¿ß«ó¬¿. öπ¡¬µ¿∩ UpdateWindow
- »«íπªñáÑΓ ÅÄïêöàëæ ßαáºπ ªÑ »«ß½áΓ∞ αÑñá¬Γ¿απѼ«¼π í½«¬π
- π»αáó½Ñ¡¿∩ ß««íΘÑ¡¿Ñ WM_PAINT.
-
- 10.8.10 ¥¬ß»«αΓ Σπ¡¬µ¿¿ ñ¿á½«úá SaveAsDlg.
-
- ìÑ«íσ«ñ¿¼« φ¬ß»«αΓ¿α«óáΓ∞ Σπ¡¬µ¿ε ñ¿á½«úá SaveAsDlg.
- ä«íáó∞ΓÑ ß½ÑñπεΘπε ßΓப㠪 «»ÑαáΓ«απ EXPORTS ó Σá⌐½Ñ
- «»αÑñѽѡ¿∩ ¼«ñπ½∩:
-
- SaveAsDlg @4
-
- 10.8.11 ÉáßΦ¿αÑ¡¿Ñ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ ñ«»«½¡¿Γѽ∞¡δ⌐ «íΩѼ »á¼∩Γ¿ ¬
-
- Windows 3.0/pg/2#3 = 78 =
-
- ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿. ¥Γá »á¼∩Γ∞ ΓαÑíπÑΓß∩ ñ½∩
- »«ññÑ᪬¿ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓ
- »á¼∩Γ∞ ¿º ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ñ½∩ σαá¡Ñ¡¿∩ ΓѬπΘÑú« ΓѬßΓá.
- æñѽá⌐ΓÑ ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩:
-
- HEAPSIZE 0xAFFF
-
- ¥Γ«Γ «»ÑαáΓ«α ºáñáÑΓ ¼á¬ß¿¼á½∞¡« 󫺼«ª¡δ⌐ íπΣÑα
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩, ¡Ñ¼¡«ú« ¼Ñ¡∞Φ¿⌐ 32707 (32è-1)
- íá⌐Γ«ó. öá⌐½δ í«½∞ΦÑ π¬áºá¡¡δσ ¡Ñ ¼«úπΓ íδΓ∞ «Γ¬αδΓδ.
-
- 10.8.12 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- é Σá⌐½Ñ make ¿º¼Ñ¡Ñ¡¿∩ ¡Ñ ¡πª¡δ. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿
- ߬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π, ºá»πßΓ¿ΓÑ Windows ¿ ºáΓѼ
- »α«úαá¼¼π EditFile. çáΓѼ óδíÑα¿ΓÑ ¬«¼á¡ñπ Open, óδíÑα¿ΓÑ Σá⌐½,
- ¿ »α«úαá¼¼á EditFile íπñÑΓ ßτ¿ΓδóáΓ∞ ¿ «Γ«íαáªáΓ∞ Σá⌐½. àß½¿
- Σá⌐½ »«½¡«ßΓ∞ε ¡Ñ ¼«ªÑΓ ó¼ÑßΓ¿Γ∞ß∩ ó «¬¡Ñ, ¿ß»«½∞ºπ⌐ΓÑ ¬½áó¿Φ¿
- ßΓαѽ«¬ ñ½∩ »α«¬απΓ¬¿ ó½Ñó« ¿ ó»αáó« ¿½¿ óóÑασ ¿ ó¡¿º.
- 10.9 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ αáí«ΓáΓ∞ ß Σá⌐½á¼¿ ó ßαÑñÑ
- Windows, ¿ »α¿ó«ñ¿Γß∩ ¡áí«α »αáó¿½, ¬«Γ«α묨 ¡Ñ«íσ«ñ¿¼«
- »«½∞º«óáΓ∞ß∩ »α¿ αáí«ΓÑ ß Σá⌐½á¼¿.
-
- Æ.¬. Windows ¼¡«ú«ºáñáτ¡á∩ ß¿ßΓѼá, Γ« óáΦá »α«úαá¼¼á
- ñ«½ª¡á αáí«ΓáΓ∞ ß Σá⌐½á¼¿ Γᬿ¼ «íαẫ¼, τΓ«íδ ¿ß¬½ετ¿Γ∞
- 󫺼«ª¡«ßΓ∞ ¬«¡Σ½¿¬Γ«ó ß ñαπú¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. ä½∩
- ß«ºñá¡¿∩, «Γ¬αδΓ¿∩, ºá¬αδΓ¿∩ ¿ ñαπú¿σ «»Ñαᵿ⌐ óδ ¿ß»«½∞ºπÑΓÑ
- Σπ¡¬µ¿ε OpenFile. Åα¿ óδ»«½¡Ñ¡¿¿ óó«ñá ¿ óδó«ñá ó Σá⌐½ óδ
- ¿ß»«½∞ºπÑΓÑ Σπ¡¬µ¿¿ æ ¡¿º¬«ú« πα«ó¡∩, ¬α«¼Ñ Σπ¡¬µ¿⌐ æ,
- «ßπΘÑßΓó½∩εΘ¿σ »«Γ«¬«óδ⌐ óó«ñ/óδó«ñ.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñπ Σá⌐½«ó óδ ¼«ªÑΓÑ
- »«½πτ¿Γ∞ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- æαáó¡Ñ¡¿Ñ ßαÑñδ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá. â½áóá 1 "Äüº«α
- Windows ¿ ßΓá¡ñáαΓ- ßαÑñδ Windows".
- ¡«ú« «¬απªÑ¡¿∩ æ
-
- êß»«½∞º«óá¡¿Ñ ∩ºδ¬á Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá. â½áóá 14 "ƒºδ¬
- æ ¿ ∩ºδ¬á áßßѼí½Ñαá æ ¿ ∩ºδ¬ áßßѼí½Ñαá".
- ó ßαÑñÑ Windows
-
- æ««íΘÑ¡¿Ñ OpenFile æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, â½áóá 3
- "æ¿ßΓѼ¡δÑ Σπ¡¬µ¿¿" ¿ â½áóá 4 "滿߫¬
- Σπ¡¬µ¿⌐".
-
- â½áóá 11. ÉáßΓα«óδÑ ¬áαΓδ.
-
-
- Windows 3.0/pg/2#3 = 79 =
-
- ä½∩ óδó«ñá ¿º«íαáªÑ¡¿⌐, ¬«Γ«αδÑ ß½¿Φ¬«¼ ß½«ª¡δ, τΓ«íδ
- α¿ß«óáΓ∞ ¿σ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ GDI, óáΦá »α«úαá¼¼á ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ αáßΓα«óδÑ ¬áαΓδ. é ñá¡¡«⌐ ú½áóÑ »«¬áºá¡«, ¬á¬
- ¡áα¿ß«óáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞ αáßΓα«óδÑ ¬áαΓδ ¡á ¼«¡«σα«¼¡δσ ¿
- µóÑΓ¡δσ ñ¿ß»½Ñ∩σ.
-
- é ñá¡¡«⌐ ú½áóÑ óδ ¡á⌐ñÑΓÑ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
-
- - ùΓ« Γá¬«Ñ αáßΓα«óá∩ ¬áαΓá.
-
- - 櫺ñá¡¿Ñ αáßΓα«óδσ ¬áαΓ.
-
- - ÄΓ«íαáªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ.
-
- - ä«íáó½Ñ¡¿Ñ µóÑΓ«ó ¬ ¼«¡«σα«¼¡δ¼ αáßΓα«óδ¼ ¬áαΓá¼.
-
- - ôñá½Ñ¡¿Ñ αáßΓα«óδσ ¬áαΓ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡« ΓᬪÑ, ¬á¬ ß«ºñáΓ∞ »α«ßΓπε
- »α«úαá¼¼π, Bitmap, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¬«¡µÑ»µ¿¿, «íßπªñáѼδÑ
- ºñÑß∞.
-
-
-
- Windows 3.0/pg/2#3 = 80 =
-
-
- 11.1 ùΓ« Γá¬«Ñ αáßΓα«óá∩ ¬áαΓá.
-
- ÆÑନ¡ αáßΓα«óá∩ ¬áαΓá «í«º¡áτáÑΓ ¿º«íαáªÑ¡¿Ñ,
- ßΣ«α¼¿α«óá¡¡«Ñ ó ó¿ñÑ ¬áαΓδ í¿Γ ó¼ÑßΓ« ½¿¡¿⌐. é Microsoft
- Windows ¿¼ÑÑΓß∩ ñóá Γ¿»á αáßΓα«óδσ ¬áαΓ:
-
- - çáó¿ß¿¼δÑ «Γ πßΓα«⌐ßΓóá αáßΓα«óδÑ ¬áαΓδ - φΓ« ¼áßß¿ó í¿Γ
- ó »á¼∩Γ¿, ¬«Γ«αδ⌐ ¼«ªÑΓ íδΓ∞ óδóÑñÑ¡ ¡á πßΓα«⌐ßΓó«
- óδó«ñá. ū߬«½∞¬π ¿¼ÑÑΓß∩ »«½¡«Ñ ß««ΓóÑΓßΓó¿Ñ ¼Ñªñπ
- í¿ΓἿ ó »á¼∩Γ¿ ¿ »¿¬ßѽ∩¼¿ ¡á πßΓα«⌐ßΓóÑ «Γ«íαáªÑ¡¿∩,
- Γ« « Γᬫ⌐ αáßΓα«ó«⌐ ¬áαΓÑ ú«ó«α∩Γ, τΓ« «¡á ºáó¿ß¿Γ «Γ
- πßΓα«⌐ßΓóá. ä½∩ Γᬿσ αáßΓα«óδσ ¬áαΓ »αÑñßΓáó½Ñ¡¿Ñ
- ¿º«íαáªÑ¡¿∩ ó »á¼∩Γ¿ ºáó¿ß¿Γ «Γ πßΓα«⌐ßΓóá «Γ«íαáªÑ¡¿∩.
-
- - ìѺáó¿ß¿¼δÑ «Γ πßΓα«⌐ßΓóá αáßΓα«óδÑ ¬áαΓδ (DIB)
- «»¿ßδóáεΓ ñÑ⌐ßΓó¿Γѽ∞¡δ⌐ ó¿ñ ¿º«íαáªÑ¡¿∩, á ¡Ñ Γ«, ¬á¬
- «¡« »αÑñßΓáó½∩ÑΓß∩ ó¡πΓα¿ «»αÑñѽѡ¡«ú« πßΓα«⌐ßΓóá
- «Γ«íαáªÑ¡¿∩. ū߬«½∞¬π Γá¬«Ñ ó¡ÑΦ¡ÑÑ «»αÑñѽѡ¿Ñ ¼«ªÑΓ
- íδΓ∞ ¿ß»«½∞º«óá¡« ß ½εíδ¼ πßΓα«⌐ßó«¼, Γ« ¿σ ¡áºδóáεΓ
- ¡Ñºáó¿ß¿¼δ¼¿ «Γ πßΓα«⌐ßΓó αáßΓα«ó묨 ¬áαΓἿ.
- 11.2 櫺ñá¡¿Ñ αáßΓα«óδσ ¬áαΓ.
-
- ÉáßΓα«óπε ¬áαΓπ ¼«ª¡« ß«ºñáΓ∞, ºáñáó GDI αẼÑαδ ¿ Σ«α¼áΓ
- µóÑΓá αáßΓα«ó«⌐ ¬áαΓδ, á Γá¬ªÑ ¡Ñ«í∩ºáΓѽ∞¡«Ñ ¡áτá½∞¡«Ñ
- º¡áτÑ¡¿Ñ í¿Γ«ó αáßΓα«ó«⌐ ¬áαΓδ. GDI ºáΓѼ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α
- αáßΓα«ó«⌐ ¬áαΓδ. ¥Γ«Γ ñÑß¬α¿»Γ«α ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ó
- »«ß½ÑñπεΘ¿σ Σπ¡¬µ¿∩σ GDI ñ½∩ óδí«αá ¿ ¿¡ñ¿¬áµ¿¿ αáßΓα«ó«⌐
- ¬áαΓδ.
-
- ¡« ß«ºñáóáΓ∞ αáßΓα«óδÑ ¬áαΓδ ß½ÑñπεΘ¿¼¿ ß»«ß«íἿ:
-
- - 櫺ñáΓ∞ αáßΓα«óπε ¬áαΓπ ß »«¼«Θ∞ε Windows SDKPaint ¿
- ß«σαá¡¿Γ∞ ÑÑ ó Σá⌐½Ñ. çáΓѼ ñ«íáó¿Γ∞ ÑÑ ¬ αÑßπαßá¼
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ ºáúαπº¿Γ∞ ó »α¿¬½áñ¡«⌐
- »α«úαá¼¼¼Ñ, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε LoadBitmap.
-
- - 櫺ñáΓ∞ »πßΓπε αáßΓα«óπε ¬áαΓπ ¿ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿
- óδó«ñá GDI ñ½∩ α¿ß«óá¡¿∩ í¿Γ«ó αáßΓα«ó«⌐ ¬áαΓδ.
-
- - 櫺ñáΓ∞ »πßΓπε αáßΓα«óπε ¬áαΓπ, ºáΓѼ πßΓá¡«ó¿Γ∞
- º¡áτÑ¡¿∩ ÑÑ Γ«τѬ ß »«¼«Θ∞ε í¿Γ«ó«ú« ¼áßß¿óá.
-
- - éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ Γá¬ªÑ ß«ºñáΓ∞ αáßΓα«óπε
- ¬áαΓπ ¿ ¿¡¿µ¿á½¿º¿α«óáΓ∞ ÑÑ ß«ñÑন¼«Ñ ß »«¼«Θ∞ε
- ßπΘÑßΓóπεΘÑ⌐ ¡Ñºáó¿ß¿¼«⌐ «Γ πßΓα«⌐ßΓó αáßΓα«ó«⌐ ¬áαΓδ
- (DIB).
-
- é »«ß½ÑñπεΘ¿σ »π¡¬Γáσ »«∩ß¡∩ÑΓß∩, ¬á¬ ¿ß»«½∞º«óáΓ∞ ¬áªñδ⌐
- ¿º φΓ¿σ ß»«ß«í«ó ñ½∩ ß«ºñá¡¿∩ αáßΓα«óδσ ¬áαΓ.
-
-
- Windows 3.0/pg/2#3 = 81 =
-
- 11.2.1 櫺ñá¡¿Ñ ¿ ºáúαπº¬á Σá⌐½«ó αáßΓα«óδσ ¬áαΓ.
-
- ÉáßΓα«óδÑ ¬áαΓδ ¼«ª¡« ß«ºñáóáΓ∞ ß »«¼«Θ∞ε SDKPaint.
- SDKPaint »«ºó«½∩ÑΓ π¬áºáΓ∞ αẼÑαδ αáßΓα«ó«⌐ ¬áαΓδ, ºáΓѼ
- ºá»«½¡¿Γ∞ ÑÑ, ¿ß»«½∞ºπ∩ Γá¬¿Ñ ßαÑñßΓóá ¬á¬ ¬¿ßΓ∞, αáß»δ½¿Γѽ∞ ¿
- ñáªÑ ΓѬßΓ. ïεí«Ñ ¿º φΓ¿σ ßαÑñßΓó ¼«ªÑΓ ß«ºñáóáΓ∞ µóÑΓá ¿º
- »á½¿Γαδ, ß«ñÑαªáΘÑ⌐ ñ« 28 µóÑΓ«ó, ¬«Γ«αδÑ óδ ¼«ªÑΓÑ ßἿ
- «»αÑñѽ∩Γ∞.
-
- ä½∩ ß«ºñá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε ñá¡¡«ú« ¼ÑΓ«ñá
- óδ»«½¡¿ΓÑ ß½ÑñπεΘÑÑ:
-
- - çá»πßΓ¿ΓÑ SDKPaint ¿, ß½Ññπ∩ ¿¡ßΓαπ¬µ¿∩¼, »α¿óÑñÑ¡¡δ¼ ó
- "Tools", ß«ºñá⌐ΓÑ αáßΓα«óπε ¬áαΓπ.
-
- - æ«σαá¡¿ÑΓÑ ÑÑ ó Σá⌐½Ñ ß αáßΦ¿αÑ¡¿Ñ¼ .bmp.
-
- - é Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ«íáó∞ΓÑ
- ÑÑ ß »«¼«Θ∞ε «»ÑαáΓ«αá BITMAP.
-
- ìá»α¿¼Ñα, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ñ½∩
- ºáúαπº¬¿ αáßΓα«ó«⌐ ¬áαΓδ ß ¿¼Ñ¡Ñ¼ "dog" ¿º Σá⌐½á DOG.BMP:
-
- dog BITMAP dog.bmp
-
- ê¼∩ "dog" ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ αáßΓα«óπε ¬áαΓπ, á ¿¼∩ Σá⌐½á
- dog.bmp «»αÑñѽ∩ÑΓ ß«ñÑαªáΘ¿⌐ ÑÑ Σá⌐½.
-
- - é »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ óδ ¼«ªÑΓÑ ºáúαπº¿Γ∞ αáßΓα«óπε
- ¬áαΓπ, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε LoadBitmap.
-
- öπ¡¬µ¿∩ LoadBitmap »«½πτáÑΓ ¿¼∩ Σá⌐½á, ß«ñÑαªáΘÑú«
- αáßΓα«óπε ¬áαΓπ, ºáúαπªáÑΓ αáßΓα«óπε ¬áαΓπ ó »á¼∩Γ∞ ¿
- ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ. ìá»α¿¼Ñα,
- ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºáúαπªáÑΓ αáßΓα«óπε ¬áαΓπ ß ¿¼Ñ¡Ñ¼
- "dog" ¿ ß«σαá¡∩ÑΓ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ ó
- »ÑαѼѡ¡«⌐ ß ¿¼Ñ¡Ñ¼ hDogBitmap:
-
- hDogBitmap = LoadBitmap(hInstance, "dog");
-
- - éδíÑα¿ΓÑ αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject.
-
- ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ºáúαπªáÑΓ αáßΓα«óπε ¬áαΓπ
- «»αÑñѽ∩Ѽπε hDogBitmap, ó ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá,
- «»αÑñѽ∩Ѽδ⌐ hMemoryDC:
-
- SelectObject(hMemoryDC,hDogBitmap);
-
- - ÄΓ«íαếΓÑ αáßΓα«óπε ¬áαΓπ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt.
-
- ìá»α¿¼Ñα, ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ¬«»¿απÑΓ αáßΓα«óπε ¬áαΓπ ß
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »á¼∩Γ¿ ó ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá,
- ºáñá¡¡δ⌐ »áαá¼ÑΓα«¼ hDC:
-
-
- Windows 3.0/pg/2#3 = 82 =
-
- BitBlt(hDC,10,10,100,150,hMemoryDC,0,0,SRCCOPY);
-
- é φΓ«¼ »α¿¼ÑαÑ «Γ«íαáªáÑΓß∩ αáßΓα«óá∩ ¬áαΓá ß ¡áτὫ¼ ó
- Γ«τ¬Ñ (10,10) πßΓα«⌐ßΓóá ¡áº¡áτÑ¡¿∩. ÉáßΓα«óá∩ ¬áαΓá
- ¿¼ÑÑΓ 100 φ½Ñ¼Ñ¡Γ«ó ó Φ¿α¿¡π ¿ 150 ó óδß«Γπ. ÉáßΓα«óá∩
- ¬áαΓá íÑαÑΓß∩ ß πßΓα«⌐ßΓóá »á¼∩Γ¿, ¡áτ¿¡á∩ ß Γ«τ¬¿
- (0,0). è«¡ßΓá¡Γá SRCCOPY «»αÑñѽ∩ÑΓ, τΓ« Windows ñ«½ª¡á
- ߬«»¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ ¡á πßΓα«⌐ßΓó« ¡áº¡áτÑ¡¿∩.
-
-
- 11.2.2 櫺ñá¡¿Ñ ¿ ºá»«½¡Ñ¡¿Ñ »πßΓδσ αáßΓα«óδσ ¬áαΓ.
-
- ¡« ß«ºñáΓ∞ αáßΓα«óπε ¬áαΓπ "¡á ½ÑΓπ", ß«ºñáó »πßΓπε
- αáßΓα«óπε ¬áαΓπ ¿ ºáΓѼ ºá»«½¡¿ó ÑÑ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ óδó«ñá
- GDI. êß»«½∞ºπ∩ φëà ¼ÑΓ«ñ óδ ¼«ªÑΓÑ ß¡∩Γ∞ «úαá¡¿τÑ¡¿Ñ ¡á τ¿ß½«
- Σá⌐½«ó ß αáßΓα«ó묨 ¬áαΓἿ, αÑßπαß«ó αáßΓα«óδσ ¬áαΓ ¿½¿
- αáßΓα«óδσ ¬áαΓ, ¬«Γ«αδÑ óδ ªÑßΓ¬« ¬«ñ¿απÑΓÑ ó ΓѬßΓÑ »α«úαá¼¼δ.
-
- æ½Ññπ⌐ΓÑ ß½ÑñπεΘѼπ ¼ÑΓ«ñπ:
-
- 1. 櫺ñá⌐ΓÑ »πßΓπε αáßΓα«óπε ¬áαΓπ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐
- CreateBitmap ¿ CreateCompatibleBitmap.
-
- 2. çáΓѼ óδíÑα¿ΓÑ αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá
- »á¼∩Γ¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject.
-
- 3. ìáα¿ßπ⌐ΓÑ ¿º«íαáªÑ¡¿Ñ ó αáßΓα«ó«⌐ ¬áαΓÑ ß »«¼«Θ∞ε
- Σπ¡¬µ¿⌐ óδó«ñá GDI.
-
- Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ »α¿¼Ñα ß«ºñáÑΓ αáßΓα«óπε ¬áαΓπ "ºóѺñá",
- »α¿τѼ ß¡áτá½á íÑαÑΓß∩ αáßΓα«óá∩ ¬áαΓá, ß«ó¼ÑßΓ¿¼á∩ ß ñ¿ß»½ÑѼ,
- ºáΓѼ «¡á ºá»«½¡∩ÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ Polygon:
-
- HDC hDC;
- HDC hMemoryDC;
- HBITMAP hBitmap;
- HBITMAP hOldBitmap;
- POINT Points[5] = { 32,0, 16,63, 63,16, 0,16, 48,63 };
- .
- .
- .
- (1) hDC = GetDC(hWnd);
- (2) hMemoryDC = CreateCompatibleDC(hDC);
- (3) hBitmap = CreateCompatibleBitmap(hDC, 64, 64);
- (4) hOldBitmap = SelectObject(hMemoryDC, hBitmap);
- (5) PatBlt(hMemoryDC, 0, 0, 64, 64, WHITENESS);
- (6) Polygon(hMemoryDC, Points, 5);
- (7) BitBlt(hDC,0,0,64,hMemoryDC,0,0,SRCCOPY);
- (8) SelectObject(hMemoryDC, hOldBitmap);
- DeleteDC(hMemoryDC);
- (9) ReleaseDC(hWnd, hDC);
-
-
- Windows 3.0/pg/2#3 = 83 =
-
- 1) öπ¡¬µ¿∩ GetDC ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.
- ÉáßΓα«óá∩ ¬áαΓá ñ«½ª¡á íδΓ∞ ß«ó¼ÑßΓ¿¼á ß ñ¿ß»½ÑѼ. Åα¿
- ß«ºñá¡¿¿ αáßΓα«ó«⌐ ¬áαΓδ, ß«ó¼ÑßΓ¿¼«⌐ ß ¡Ñ¬«Γ«αδ¼ ñαπú¿¼
- πßΓα«⌐ßΓó«¼, ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε CreateDC ñ½∩
- »«½πτÑ¡¿∩ ñÑß¬α¿»Γ«αá φΓ«ú« πßΓα«⌐ßΓóá.
-
-
- 2) öπ¡¬µ¿∩ CreateCompatibleDC ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- »á¼∩Γ¿, ó ¬«Γ«α«¼ íπñÑΓ ¡áα¿ß«óá¡ «íαẠαáßΓα«ó«⌐ ¬áαΓδ.
-
- 3) öπ¡¬µ¿∩ CreateCompatibleBitmap ß«ºñáÑΓ »πßΓπε αáßΓα«óπε
- ¬áαΓπ. ÉẼÑα αáßΓα«ó«⌐ ¬áαΓδ πßΓá¡áó½¿óáÑΓß∩ 64 ¡á 64
- »¿¬ßѽ∩. öá¬Γ¿τÑ߬«Ñ τ¿ß½« í¿Γ«ó αáßΓα«ó«⌐ ¬áαΓδ ºáó¿ß¿Γ
- «Γ µóÑΓ«ó«ú« Σ«α¼áΓá ñ¿ß»½Ñ∩. àß½¿ ñ¿ß»½Ñ⌐ ∩ó½∩ÑΓß∩
- µóÑΓ¡δ¼, αáßΓα«óá∩ ¬áαΓá íπñÑΓ µóÑΓ¡«⌐ ¿ ¼«ªÑΓ ¿¼ÑΓ∞
- ¡Ñ߬«½∞¬« í¿Γ ¡á ¬áªñδ⌐ »¿¬ßѽ∞.
-
- 4) öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá »á¼∩Γ¿ ¿ »«ñú«Γáó½¿óáÑΓ ÑÑ ñ½∩ α¿ß«óá¡¿∩.
- äÑß¬α¿»Γ«α αá¡ÑÑ óδíαá¡¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ ß«σαá¡∩ÑΓß∩ ó
- »ÑαѼѡ¡«⌐ hOldBitmap.
-
- 5) öπ¡¬µ¿∩ PatBlt «τ¿ΘáÑΓ αáßΓα«óπε ¬áαΓπ ¿ πßΓá¡áó½¿óáÑΓ óßÑ
- »¿¬ßѽ¿ ó íѽδ⌐ µóÑΓ. ìÑ«íσ«ñ¿¼« »Ñαó«¡áτá½∞¡«
- ¿ß»«½∞º«óáΓ∞ φΓπ ¿½¿ á¡á½«ú¿τ¡πε Ñ⌐ Σπ¡¬µ¿ε, »«ß¬«½∞¬π
- «íαẠ»πßΓ«⌐ αáßΓα«ó«⌐ ¬áαΓδ ¡Ñ «»αÑñѽѡ. éδ ¼«ªÑΓÑ
- α¿ß«óáΓ∞ ó αáßΓα«ó«⌐ ¬áαΓÑ ¡Ñºáó¿ß¿¼« «Γ Γ«ú«, »πßΓá∩ «¡á
- ¿½¿ ¡ÑΓ.
-
- 6) öπ¡¬µ¿∩ Polygon α¿ßπÑΓ ºóѺñπ, ¿ß»«½∞ºπ∩ ¬«¡Ñτ¡δÑ Γ«τ¬¿ ÑÑ
- ½πτÑ⌐, «»αÑñѽѡ¡δÑ ó ¼áßß¿óÑ ßΓαπ¬Γπα Points.
-
- 7) öπ¡¬µ¿∩ BitBlt ¬«»¿απÑΓ αáßΓα«óπε ¬áαΓπ ¿º »á¼∩Γ¿ ¡á φ¬αá¡.
-
- 8) ū߽Ññ«óáΓѽ∞¡« ¿ß»«½∞ºπѼδÑ Σπ¡¬µ¿¿ SelectObject ¿
- DeleteDC ó«ßßΓá¡áó½¿óáεΓ »αѪ¡εε αáßΓα«óπε ¬áαΓπ ¿ πñá½∩εΓ
- ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿ (¬á¬ Γ«½∞¬« αáßΓα«óá∩ ¬áαΓá
- ¡áα¿ß«óá¡á, ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿ í«½∞ΦÑ ßΓá¡«ó¿Γß∩
- ¡Ñ ¡πªÑ¡). ÄΦ¿í¬«⌐ ∩ó½∩ÑΓß∩ »«»δΓ¬á πñ὿Γ∞ ¬«¡ΓѬßΓ
- πßΓα«⌐ßΓóá, ¬«úñá óδíαá¡á αáßΓα«óá∩ ¬áαΓá, ¬«Γ«αá∩ ¡Ñ
- ∩ó½∩ÑΓß∩ »Ñαó«¡áτá½∞¡«⌐ αáßΓα«ó«⌐ ¬áαΓ«⌐ ¬«¡ΓѬßΓá.
-
-
- 9) ìᬫ¡Ñµ, Σπ¡¬µ¿∩ ReleaseDC «ßó«í«ªñáÑΓ ¬«¡ΓѬßΓ
- «Γ«íαáªÑ¡¿∩. ÆÑ»Ñα∞ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ hBitmap
- ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡ ó »«ß½ÑñπεΘ¿σ Σπ¡¬µ¿∩σ GDI.
- 11.2.3 櫺ñá¡¿Ñ αáßΓα«óδσ ¬áαΓ ß »«¼«Θ∞ε Σ¿¬ß¿α«óá¡¡δσ
- ¬«ñ«ó.
-
- ¡« ß«ºñáΓ∞ αáßΓα«óπε ¬áαΓπ ¿ πßΓá¡«ó¿Γ∞ ÑÑ
- »Ñαó«¡áτá½∞¡δ⌐ «íαáº ß »«¼«Θ∞ε ¼áßß¿óá í¿Γ αáßΓα«ó«⌐ ¬áαΓδ,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε CreateBitmap. öπ¡¬µ¿∩ ß«ºñáÑΓ αáßΓα«óπε
-
- Windows 3.0/pg/2#3 = 84 =
-
- ¬áαΓπ, ¿¼ÑεΘπε ∩ó¡« ºáñá¡¡δ⌐ αẼÑα ¿ µóÑΓ«ó«⌐ Σ«α¼áΓ, ºáΓѼ
- ¿¡¿µ¿á½¿º¿απÑΓ «íαẠαáßΓα«ó«⌐ ¬áαΓδ Γαá¡ß½¿απ∩ «íαáº
- ¡Ñºáó¿ß¿¼«⌐ «Γ πßΓα«⌐ßΓóá αáßΓα«ó«⌐ ¬áαΓδ, ó ºáó¿ß¿¼δ⌐ «Γ
- πßΓα«⌐ßΓóá Σ«α¼áΓ, ΓαÑíπѼδ⌐ πßΓα«⌐ßΓó«¼ «Γ«íαáªÑ¡¿∩, ¿ ¬«»¿απ∩
- ó φΓπ αáßΓα«óπε ¬áαΓπ. ¥Γ«Γ ¼ÑΓ«ñ «íδτ¡« »α¿¼Ñ¡∩ÑΓß∩ »α¿
- ß«ºñá¡¿¿ ¡Ñí«½∞Φ¿σ αáßΓα«óδσ ¬áαΓ ñ½∩ ¿ß»«½∞º«óá¡¿∩ ß ¬¿ßΓ∩¼¿
- Φáí½«¡á, ¡« ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ Γá¬ªÑ ñ½∩ ß«ºñá¡¿∩ í«½∞Φ¿σ ¿
- αáßΓα«óδσ ¬áαΓ.
-
- Åα¿¼Ñτá¡¿Ñ: àß½¿ αáßΓα«óá∩ ¬áαΓá ¡Ñ ¼«¡«σα«¼¡á∩ (Γ.Ñ.
- ¿¼ÑεΘá∩ «ñ¿¡ »½á¡ µóÑΓ«ó ¿ «ñ¿¡ í¿Γ ¡á »¿¬ßѽ∞), Γ« ß«ºñáóáѼá∩
- Σπ¡¬µ¿Ñ⌐ CreateBitmap αáßΓα«óá∩ ¬áαΓá ∩ó½∩ÑΓß∩ ºáó¿ß¿¼«⌐ «Γ
- πßΓα«⌐ßΓóá, ¿ Γ.«. ¡Ñ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ß∩ ¡á αạδσ ñ¿ß»½Ñ∩σ.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ ¿¡¿µ¿á½¿º¿απÑΓß∩ ¼«¡«σα«¼¡á∩
- αáßΓα«óá∩ ¬áαΓá 64 σ 32 »¿¬ßѽ∩ ß »«¼«Θ∞ε í¿Γ«ó ¼áßß¿óá Square:
-
- HBITMAP hBitmap;
- HDC hDC;
- BYTE Square[] = {
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
-
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-
- Windows 3.0/pg/2#3 = 85 =
-
- .
- .
- .
- HANDLE hDibInfo;
- PBITMAPINFO pDibInfo;
-
- if(pDibInfo = (PBITMAPINFO) LocalAlloc(LMEM_FIXED,
- sizeof(BITMAPINFOHEADER) + 2*sizeof(RGBQUARD)))
- {
- HBRUSH hOldBrush,hBrush;
- pDibInfo -> bmiHeader.biSize =
- (long)sizeof(BITMAPINFOHEADER);
- pDibInfo -> bmiHeader.biWidth = 64L;
- pDibInfo -> bmiHeader.biHeight = 32;
- pDibInfo -> bmiHeader.biPlanes = 1;
- pDibInfo -> bmiHeader.biBitCount = 1;
- pDibInfo -> bmiHeader.biCompression = 0L;
- pDibInfo -> bmiHeader.biSizeImage = 0L;
- pDibInfo -> bmiHeader.biXPelsPerMeter = 0L;
- pDibInfo -> bmiHeader.biYPelsPerMeter = 0L;
- pDibInfo -> bmiHeader.biClrUsed = 0L;
- pDibInfo -> bmiHeader.biClrImportant = 0L;
- pDibInfo -> bmiColors[0].rgbRed = 0;
- pDibInfo -> bmiColors[0].rgbGreen = 0;
- pDibInfo -> bmiColors[0].rgbBlue = 0;
- pDibInfo -> bmiColors[1].rgbRed = 0xff;
- pDibInfo -> bmiColors[1].rgbGreen = 0xff;
- pDibInfo -> bmiColors[1].rgbBlue = 0xff;
- hDC = GetDC(hWnd);
- hBitmap = CreateDIBitmap(hDC,
- (LPBITMAPINFOHEADER)&(pDibInfo->bmiHeader),
- CBM_INIT,
- (LPSTR)Square,
- (LPBITMAPINFO)pDibInfo,
- DIB_RGB_COLORS);
- ReleaseDC(hWnd,hDC);
- DeleteObject(hBitmap);
- LocalFree((HANDLE)pDibInfo);
- }
-
- öπ¡¬µ¿∩ CreateDIBitmap ß«ºñáÑΓ ¿ ¿¡¿µ¿á½¿º¿απÑΓ αáßΓα«óπε
- ¬áαΓπ »ÑαÑñ ΓѼ, ¬á¬ ó«ºóαáΓ¿Γ∞ ÑÑ ñÑß¬α¿»Γ«α. ÿ¿α¿¡á ¿ óδß«Γá
- αáßΓα«ó«⌐ ¬áαΓδ - 64 ¿ 32 »¿¬cѽ∩ ß««ΓóÑΓßΓóÑ¡¡«. ÉáßΓα«óá∩
- ¬áαΓá ¿¼ÑÑΓ «ñ¿¡ µóÑΓ«ó«⌐ »½á¡ ¿ «ñ¿¡ í¿Γ ¡á ¬áªñδ⌐ »¿¬ßѽ∞.
- ¥Γ« «º¡áτáÑΓ, τΓ« αáßΓα«óá∩ ¬áαΓá ¼«¡«σα«¼¡á∩.
-
- îáßß¿ó Square ß«ñÑαª¿Γ í¿Γδ, ¿ß»«½∞ºπѼδÑ ñ½∩
- ¿¡¿µ¿á½¿ºáµ¿¿ αáßΓα«ó«⌐ ¬áαΓδ. æΓαπ¬Γπαá BITMAPINFO «»αÑñѽ∩ÑΓ,
- ¬á¬ íπñÑΓ ¿¡ΓÑα»αÑΓ¿α«óáΓ∞ß∩ ¼áßß¿ó í¿Γ. Ä¡á «»αÑñѽ∩ÑΓ óδß«Γπ
- ¿ Φ¿α¿¡π αáßΓα«ó«⌐ ¬áαΓδ, ߬«½∞¬« í¿Γ (1,4,8,24) ¿ß»«½∞ºπεΓß∩
- ñ½∩ »αÑñßΓáó½Ñ¡¿∩ ¬áªñ«ú« »¿¬ßѽ∩ ó ¼áßß¿óÑ, ¿ Γáí½¿µπ µóÑΓ«ó
- ñ½∩ »¿¬ßѽÑ⌐. ū߬«½∞¬π ¼áßß¿ó Square «»αÑñѽ∩ÑΓ ¼«¡«σα«¼¡πε
- αáßΓα«óπε ¬áαΓπ, Γ« ¡á ¬áªñδ⌐ »¿¬ßѽ∞ «Γó«ñ¿Γß∩ »« «ñ¡«¼π í¿Γπ
-
- Windows 3.0/pg/2#3 = 86 =
-
- ¿ Γáí½¿µá µóÑΓ«ó ß«ñÑαª¿Γ Γ«½∞¬« ñóá φ½Ñ¼Ñ¡Γá, ñ½∩ íѽ«ú« ¿
- τÑα¡«ú«. àß½¿ í¿Γ ó ¼áßß¿óÑ αáóÑ¡ 0, Γ« GDI α¿ßπÑΓ τÑα¡δ⌐
- »¿¬ßѽ∞, ¿¡áτÑ íѽδ⌐.
-
- ū߬«½∞¬π Square «»αÑñѽ∩ÑΓ ¼«¡«σα«¼¡πε αáßΓα«óπε ¬áαΓπ,
- Γ« óδ ¼«ªÑΓÑ ñ½∩ ß«ºñá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε
- CreateBitmap:
-
- hBitmap = CreateBitmap(64,32,1,1,(LPSTR)Square);
-
- ¥Γ« Γá¬, »«ß¬«½∞¬π óßÑ ¼«¡«σα«¼¡δÑ αáßΓα«óδÑ ¬áαΓδ
- á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ. Äñ¡á¬« ñ½∩ µóÑΓ¡δσ αáßΓα«óδσ ¬áαΓ
- CreateBitmap ¿ß»«½∞ºπÑΓ ñαπú¿Ñ ߻ѵ¿Σ¿¬áµ¿¿ í¿Γ«ó αáßΓα«ó«⌐
- ¬áαΓδ »« ßαáó¡Ñ¡¿ε ß CreateDIBitmap.
-
- Å«ß½Ñ ß«ºñá¡¿∩ ¿ ¿¡¿µ¿á½¿ºáµ¿¿ αáßΓα«ó«⌐ ¬áαΓδ ¼«ª¡«
- ¿ß»«½∞º«óáΓ∞ ÑÑ ñÑß¬α¿»Γ«α ó »«ß½ÑñπεΘ¿σ Σπ¡¬µ¿∩σ GDI. àß½¿
- ¡Ñ«íσ«ñ¿¼« ¿º¼Ñ¡¿Γ∞ αáßΓα«óπε ¬áαΓπ, Γ« ¼«ª¡« α¿ß«óáΓ∞ ó ¡Ñ⌐,
- óδíαáó ÑÑ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬á¬ «»¿ßá¡« ó »π¡¬ΓÑ
- 11.2.2 "櫺ñá¡¿Ñ ¿ ºá»«½¡Ñ¡¿Ñ »πßΓδσ αáßΓα«óδσ ¬áαΓ". àß½¿
- ¡Ñ«íσ«ñ¿¼« ºá¼Ñ¡¿Γ∞ «íαẠóßÑ⌐ ¿½¿ τáßΓ¿ αáßΓα«ó«⌐ ¬áαΓδ
- ñαπú¿¼, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε SetDIBits ñ½∩ ¬«»¿α«óá¡¿∩
- ñαπú«ú« ¼áßß¿óá í¿Γ ó αáßΓα«óπε ¬áαΓπ. ìá»α¿¼Ñα, π¬áºá¡¡δ⌐ ¡¿ªÑ
- ó맮ó Σπ¡¬µ¿¿ ¼«ªÑΓ ºá¼Ñ¡¿Γ∞ ΓѬπΘ¿⌐ «íαẠαáßΓα«ó«⌐ ¬áαΓδ
- í¿ΓἿ ¿º ¼áßß¿óá Circle:
-
- BYTE Circle[ ]={
- .
- .
- .
- };
- SetDIBits(hDC,hBitmap,0,32,(LPSTR)Circle,
- (LPBITMAPINFO)&myDIBInfo,DIB_RGB_COLORS);
-
- öπ¡¬µ¿∩ SetDIBits ¬«»¿απÑΓ í¿Γδ ¼áßß¿óá Circle ó αáßΓα«óπε
- ¬áαΓπ, «»αÑñѽ∩Ѽπε »ÑαѼѡ¡«⌐ hBitmap. îáßß¿ó ß«ñÑαª¿Γ 32
- ßΓ᫬¿, »αÑñßΓáó½∩εΘ¿σ «íαẠ¼«¡«σα«¼¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ
- αẼÑα«¼ 64 σ 32 »¿¬ßѽ∩. àß½¿ ¡Ñ«íσ«ñ¿¼« ß«σαá¡¿Γ∞ ΓѬπΘ¿Ñ
- í¿Γδ αáßΓα«ó«⌐ ¬áαΓδ »ÑαÑñ ¿σ ºá¼Ñ¡«⌐, ¼«ª¡« ¿ß»«½∞º«óáΓ∞
- Σπ¡¬µ¿ε GetDIBits. Ä¡á ¬«»¿απÑΓ π¬áºá¡¡«Ñ τ¿ß½« ßΓ᫬ ¿º
- αáßΓα«ó«⌐ ¬áαΓδ ó á»»áαáΓ¡«¡Ñºáó¿ß¿¼πε ߻ѵ¿Σ¿¬áµ¿ε αáßΓα«óá⌐
- ¬áαΓδ. æ«σαá¡¿Γ∞ ¼«¡«σα«¼¡πε αáßΓα«óπε ¬áαΓπ ¼«ª¡« ΓᬪÑ
- ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GetBitmapBits.
-
- ǡὫú¿τ¡«, »«ß¬«½∞¬π ¼áßß¿ó Circle «»αÑñѽ∩ÑΓ ¼«¡«σα«¼¡πε
- αáßΓα«óπε ¬áαΓπ, óδ ¼«ªÑΓÑ ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ
- óδºóáΓ∞ SetBitmapBits:
-
- SetBitmapBits(hBitmap,256,(LPSTR)Circle);
-
- é »αÑñΦÑßΓóπεΘѼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ß«ºñáóáΓ∞ ¿
- ¿º¼Ñ¡∩Γ∞ ¡Ñí«½∞Φ¿Ñ αáßΓα«óδÑ ¬áαΓδ. Äíδτ¡« í«½∞ΦδÑ αáßΓα«óδÑ
- ¬áαΓδ ¡Ñ ¬«ñ¿απεΓ óαπτ¡πε. é¼ÑßΓ« φΓ«ú« óδ ¼«ªÑΓÑ ß«ºñáΓ∞ Σá⌐½
-
- Windows 3.0/pg/2#3 = 87 =
-
- ß á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓ«⌐ ß »«¼«Θ∞ε SDKPaint ¿½¿
- ñαπú¿¼¿ ßαÑñßΓóἿ. öá⌐½ ß á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐
- ¬áαΓ«⌐ ß«ßΓ«¿Γ ¿º ßΓαπ¬Γπαδ Γ¿»á BITMAPFILEHEADER, ºá ¬«Γ«α«⌐
- ß½ÑñπεΓ ßΓαπ¬Γπαá BITMAPINFO ¿ ¼áßß¿ó íá⌐Γ, ¬«Γ«αδÑ ó¼ÑßΓÑ
- «»αÑñѽ∩εΓ αáßΓα«óπε ¬áαΓπ.
-
- Åα¿¼Ñα »α«úαá¼¼δ ShiwDIB »«¬áºδóáÑΓ, ¬á¬ óδó«ñ¿Γ∞
- á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ αáßΓα«óδÑ ¬áαΓδ ß µóÑΓἿ, ¬«Γ«α묨
- π»αáó½∩ÑΓ »á½¿Γαá. Åα«úαá¼¼á ShowDIB »«ßΓáó½∩ÑΓß∩ ¡á ñ¿ß¬Ñ
- "Saple Source Code Disk" ó¼ÑßΓÑ ß SDK. ä«»«½¡¿Γѽ∞¡πε
- ¿¡Σ«α¼áµ¿ε óδ ¡á⌐ñÑΓÑ ó â½áóÑ 19 "Å὿Γαδ µóÑΓ«ó".
- 11.2.4 ɿ߫óá¡¿Ñ µóÑΓ¡δσ αáßΓα«óδσ ¬áαΓ.
-
- ū߬«½∞¬π Σ¿¬ß¿α«óá¡¡«Ñ ¬«ñ¿α«óá¡¿Ñ µóÑΓ¡δσ αáßΓα«óδσ ¬áαΓ
- ºáó¿ß¿Γ «Γ πßΓα«⌐ßΓóá ¿ ¼«ªÑΓ »«ΓαÑí«óáΓ∞ º¡áτ¿Γѽ∞¡δσ πß¿½¿⌐,
- í«½ÑÑ »«ñσ«ñ∩Θ¿⌐ ß»«ß«í ß«ºñáΓ∞ µóÑΓ¡πε αáßΓα«óπε ¬áαΓπ -
- ß«ºñá¡¿Ñ ß«ó¼ÑßΓ¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ ¿ α¿ß«óá¡¿Ñ ó ¡Ñ⌐.
- ìá»α¿¼Ñα, ñ½∩ Γ«ú«, τΓ«íδ ß«ºñáΓ∞ µóÑΓ¡πε αáßΓα«óπε ¬áαΓπ, ó
- ¬«Γ«α«⌐ «ß¡«ó¡δÑ µóÑΓá - ¬αáß¡δ⌐, ºÑ½Ñ¡δ⌐ ¿ ß¿¡¿⌐, ¼«ª¡« »α«ßΓ«
- ß«ºñáΓ∞ »πßΓπε αáßΓα«óπε ¬áαΓπ ¿ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε PatBlt
- ñ½∩ α¿ß«óá¡¿∩ ß »«¼«Θ∞ε ¬αáß¡«⌐, ºÑ½Ñ¡«⌐ ¿ ß¿¡Ñ⌐ ¬¿ßΓÑ⌐. ¥Γ«Γ
- ¼ÑΓ«ñ ¿¼ÑÑΓ »αÑ¿¼πΘÑßΓó« »α¿ úÑ¡Ñαᵿ¿ ¡πª¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ
- ñáªÑ ó Γ«¼ ß½πτáÑ, ¬«úñá ñ¿ß»½Ñ⌐ ∩ó½∩ÑΓß∩ ¼«¡«σα«¼¡δ¼. äѽ« ó
- Γ«¼, τΓ« GDI «íÑß»Ñτ¿óáÑΓ "»ßÑóñ«µóÑΓ¡πε" ¬¿ßΓ∞ ñ½∩
- ¼«¡«σα«¼¡«ú« ñ¿ß»½Ñ∩, ¡Ñ »«ññÑনóáεΘÑú« µóÑΓ. ÅßÑóñ«µóÑΓ¡á∩
- ¬¿ßΓ∞ ¿¼ÑÑΓ π¡¿¬á½∞¡δ⌐ ¡áí«α »¿¬ßѽÑ⌐, »αÑñßΓáó½∩εΘ¿σ ñá¡¡δ⌐
- µóÑΓ, ¬«úñá «¡ ¡Ñ »«ññÑনóáÑΓß∩ πßΓα«⌐ßΓó«¼.
-
- Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ Σαáú¼Ñ¡Γ »α«úαá¼¼δ ß«ºñáÑΓ µóÑΓ¡πε
- αáßΓα«óπε ¬áαΓπ:
-
- # define PATORDEST 0x00FA0089L
- HDC hDC;
- HDC hMemoryDC;
- HBITMAP hBitmap;
- HBITMAP hOldBitmap;
- HBRUSH hRedBrush;
- HBRUSH hGreenBrush;
- HBRUSH hBlueBrush;
- HBRUSH hOldBrush;
- .
- .
- .
- hDC = GetDC(hWnd);
- hMemoryDC = CreateCompatibleDC(hDC);
- hBitmap = CreateCompatibleBitmap(hDC, 64, 32);
- hOldBitmap = SelectObject(hMemoryDC, hBitmap);
-
- hRedBrush = CreateSolidBrush(RGB(255,0,0));
- hGreenBrush = CreateSolidBrush(RGB(0,255,0));
- hBlueBrush = CreateSolidBrush(RGB(0,0,255));
-
-
- Windows 3.0/pg/2#3 = 88 =
-
- PatBlt(hMemoryDC, 0, 0, 64, 32, BLACKNESS);
- hOldBrush = SelectObject(hMemoryDC, hRedBrush);
- PatBlt(hMemoryDC, 0, 0, 24, 11, PATORDEST);
- PatBlt(hMemoryDC, 40, 10, 24, 12, PATORDEST);
- PatBlt(hMemoryDC, 24, 22, 24, 11, PATORDEST);
- SelectObject(hMemoryDC, hGreenBrush);
- PatBlt(hMemoryDC, 24, 0, 24, 11, PATORDEST);
- PatBlt(hMemoryDC, 0, 10, 24, 12, PATORDEST);
- PatBlt(hMemoryDC, 40, 22, 24, 11, PATORDEST);
- SelectObject(hMemoryDC, hBlueBrush);
- PatBlt(hMemoryDC, 40, 0, 24, 11, PATORDEST);
- PatBlt(hMemoryDC, 24, 10, 24, 12, PATORDEST);
- PatBlt(hMemoryDC, 0, 22, 24, 11, PATORDEST);
-
- BitBlt(hDC,0,0,64,32,hMemoryDC,0,0,SRCCOPY);
-
- SelectObject(hMemoryDC, hOldBrush);
- DeleteObject(hRedBrush);
- DeleteObject(hGreenBrush);
- DeleteObject(hBlueBrush);
-
- SelectObject(hMemoryDC, hOldBitmap);
- DeleteDC(hMemoryDC);
- ReleaseDC(hWnd, hDC);
-
- é φΓ«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ CreateSolidBrush ß«ºñáÑΓ ¬αáß¡πε,
- ºÑ½Ñ¡πε ¿ ß¿¡εε ¬¿ßΓ¿, ¡Ñ«íσ«ñ¿¼δÑ ñ½∩ ß«ßΓáó½Ñ¡¿∩ ¬½ÑΓ«τ¡«ú«
- Φáí½«¡á. öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ ¬áªñπε ¬¿ßΓ∞ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬«úñá φΓá ¬¿ßΓ∞ ¡Ñ«íσ«ñ¿¼á, á Σπ¡¬µ¿∩ PatBlt
- α¿ßπÑΓ µóÑΓá ó αáßΓα«ó«⌐ ¬áαΓÑ. èáªñδ⌐ µóÑΓ α¿ßπÑΓß∩ Γਦñδ,
- óß∩¬¿⌐ αẠó ¡Ñí«½∞Φ«¼ »α∩¼«πú«½∞¡¿¬Ñ. öπ¡¬µ¿∩ PatBlt ¡á¼ÑαÑ¡¡«
- ¡Ñ¼¡«ú« »ÑαѬαδóáÑΓ ¡Ñí«½∞Φ¿Ñ »α∩¼«πú«½∞¡¿¬¿ αẽ¿τ¡δσ µóÑΓ«ó.
- ū߬«½∞¬π ºáñá¡á αáßΓα«óá∩ «»Ñαᵿ∩ PATORDEST, Σπ¡¬µ¿∩ PatBlt
- «íΩÑñ¿¡∩ÑΓ µóÑΓ ¬¿ßΓ¿ ß µóÑΓ«¼, πªÑ ¿¼ÑεΘ¿¼ß∩ ó αáßΓα«ó«⌐
- ¬áαΓÑ, ¿ß»«½∞ºπ∩ íπ½Ñó߬πε «»Ñαᵿε OR. ÉѺπ½∞ΓáΓ«¼ ∩ó½∩ÑΓß∩
- αẽ¿τ¡á∩ µóÑΓ«óá∩ «¬á¡Γ«ó¬á ¬áªñ«ú« »α∩¼«πú«½∞¡¿¬á. ū߽Ñ
- ºáóÑαΦÑ¡¿∩ ß«ºñá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ «¡á ¬«»¿απÑΓß∩ ¿º ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡á φ¬αá¡ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt.
-
- 11.3 ÄΓ«íαáªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ ¡á φ¬αá¡Ñ.
-
- ÉáßΓα«óπε ¬áαΓπ ¼«ª¡« ¿¡ñ¿µ¿α«óáΓ∞ ¡Ñ߬«½∞¬¿¼¿ αẽ¿τ¡δ¼¿
- ß»«ß«íἿ:
-
- - éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε BitBlt ñ½∩ ¬«»¿α«óá¡¿∩
- αáßΓα«ó«⌐ ¬áαΓδ ¿º ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩ »á¼∩Γ¿ ¡á
- πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩.
-
- - éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε StretchBlt ñ½∩
- ¬«»¿α«óá¡¿∩ αáßΓ∩¡πΓ«⌐ ¿½¿ ߪáΓ«⌐ αáßΓα«ó«⌐ ¬áαΓδ ¿º
- ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩ »á¼∩Γ¿ ¡á πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩.
-
-
- Windows 3.0/pg/2#3 = 89 =
-
- - éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε CreatePatternBrush ñ½∩
- ß«ºñá¡¿∩ ¬¿ßΓ¿, ¬«Γ«αá∩ «íΩÑñ¿¡∩ÑΓ αáßΓα«óπε ¬áαΓπ.
- ū߽ÑñπεΘ¿Ñ Σπ¡¬µ¿¿ GDI, ¿ß»«½∞ºπεΘ¿Ñ φΓπ ¬¿ßΓ∞, ΓᬿÑ
- ¬á¬ PatBlt, ¼«úπΓ ¿¡ñ¿µ¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ.
-
- - éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε SetDIBitsToDevice ñ½∩
- ¬«»¿α«óá¡¿∩ á»»áαáΓ¡« ¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ ¿º
- ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩ »á¼∩Γ¿ »α∩¼« ¡á πßΓα«⌐ßΓó«
- «Γ«íαáªÑ¡¿∩.
-
- ¡« Γá¬ªÑ ¿¡ñ¿µ¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ ó ¼Ñ¡ε. é φΓ«¼
- ß½πτáÑ αáßΓα«óá∩ ¬áαΓá ¿ß»«½∞ºπÑΓß∩ ¬á¬ φ½Ñ¼Ñ¡Γ ¼Ñ¡ε, ¬«Γ«αδ⌐
- »«½∞º«óáΓѽ∞ ¼«ªÑΓ óδíαáΓ∞ ñ½∩ óδ»«½¡Ñ¡¿∩ ñÑ⌐ßΓó¿∩. ü«½ÑÑ
- »«ñα«í¡« ß¼«Γα¿ΓÑ ú½áóπ 7 "îÑ¡ε".
- 11.3.1. ê¡ñ¿µ¿α«óá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- BitBlt.
-
- ¡« ¿¡ñ¿µ¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- BitBlt. ¥Γá Σπ¡¬µ¿∩ ¬«»¿απÑΓ αáßΓα«óπε ¬áαΓπ ¿º ¿ßσ«ñ¡«ú«
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá-¿ßΓ«τ¡¿¬á ó ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- ¡áº¡áτÑ¡¿∩. ä½∩ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε BitBlt
- ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿ ¿ óδíαáΓ∞
- αáßΓα«óπε ¬áαΓπ ó φΓ«¼ ¬«¡ΓѬßΓÑ. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ
- αáßΓα«óá∩ ¬áαΓá ¿¡ñ¿µ¿απÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt:
-
- HDC hDC, hMemoryDC;
- .
- .
- .
- hDC = GetDC(hWnd);
- hMemoryDC = CreateCompatibleDC(hDC);
-
- hOldBitmap = SelectObject(hMemoryDC , hBitmap);
-
- if(hOldBitmap) {
- BitBlt(hDC, 100, 30, 64, 32, hMemoryDC, 0, 0, SRCCOPY);
- SelectObject(hMemoryDC, hOldBitmap);
- }
- DeleteDC(hMemoryDC);
- ReleaseDC(hWnd, hDC);
-
- öπ¡¬µ¿∩ GetDC «»αÑñѽ∩ÑΓ ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩ «í½áßΓ¿
- »«½∞º«óáΓѽ∩ «¬¡á ß ñÑß¬α¿»Γ«α«¼ hWnd. öπ¡¬µ¿∩
- CreateCompatibleDC ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬«Γ«αδ⌐
- ß«ó¼ÑßΓ¿¼ ß ¬«¡ΓѬßΓ«¼ «Γ«íαáªÑ¡¿∩. öπ¡¬µ¿∩ SelectObject
- óδí¿αáÑΓ αáßΓα«óπε ¬áαΓπ ß ñÑß¬α¿»Γ«α«¼ hBit¼ap ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá »á¼∩Γ¿ ¿ ó«ºóαáΘáÑΓ αá¡ÑÑ óδíαá¡¡πε αáßΓα«óπε ¬áαΓπ.
- àß½¿ φΓá Σπ¡¬µ¿∩ ¡Ñ ¼«ªÑΓ óδíαáΓ∞ αáßΓα«óπε ¬áαΓπ, «¡á
- ó«ºóαáΘáÑΓ ¡π½∞.
-
- öπ¡¬µ¿∩ BitBlt ¬«»¿απÑΓ αáßΓα«óπε ¬áαΓπ ¿º ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá »á¼∩Γ¿ ó ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩ ñ¿ß»½Ñ∩. öπ¡¬µ¿∩
-
- Windows 3.0/pg/2#3 = 90 =
-
- »«¼ÑΘáÑΓ óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ αáßΓα«ó«⌐ ¬áαΓδ ó Γ«τ¬π ß
- ¬««αñ¿¡áΓἿ (100, 30). è«»¿απÑΓß∩ óß∩ αáßΓα«óá∩ ¬áαΓá Φ¿α¿¡«⌐
- 64 í¿Γá ¿ óδß«Γ«⌐ 32 í¿Γá. ÅÑαѼѡ¡δÑ hDC ¿ hMemoryDC
- »αÑñßΓáó½∩εΓ ñÑß¬α¿»Γ«αδ ¬«¡ΓѬßΓá ¼ÑßΓá ¡áº¡áτÑ¡¿∩ ¿ ¿ßΓ«τ¡¿¬á
- ß««ΓóÑΓßΓóÑ¡¡«. è«¡ßΓá¡Γá SRCCOPY «»αÑñѽ∩ÑΓ ¬«ñ αáßΓα«ó«⌐
- «»Ñαᵿ¿. Ä¡á ºáßΓáó½∩ÑΓ Σπ¡¬µ¿ε BitBlt ¬«»¿α«óáΓ∞ αáßΓα«óπε
- ¬áαΓπ-¿ßΓ«τ¡¿¬ íѺ ¬«¼í¿¡áµ¿¿ ÑÑ ß Φáí½«¡á¼¿ ¿½¿ µóÑΓἿ πªÑ
- ßπΘÑßΓóπεΘ¿¼¿ ó ¼ÑßΓÑ ¡áº¡áτÑ¡¿∩.
-
- öπ¡¬µ¿¿ SelectObject, DeleteDC ¿ ReleaseDC ß½πªáΓ ñ½∩
- «τ¿ßΓ¬¿ »«ß½Ñ Γ«ú«, ¬á¬ αáßΓα«óá∩ ¬áαΓá íδ½á ¿¡ñ¿µ¿α«óá¡á.
- é««íΘÑ ú«ó«α∩, »« ºáóÑαΦÑ¡¿¿ ¿ß»«½∞º«óá¡¿∩ ¬«¡ΓѬßΓ«ó
- «Γ«íαáªÑ¡¿∩ ¿ πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡Ñ«íσ«ñ¿¼« ¿σ ¬á¬ ¼«ª¡« ߬«αÑÑ
- «ßó«í«ñ¿Γ∞ («ß«íÑ¡¡« ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩), »«ß¬«½∞¬π φΓ« -
- «úαá¡¿τÑ¡¡δ⌐ αÑßπαß. àß½¿ »α«úαá¼¼á ¡Ñ «ßó«í«ñ¿Γ ¬«¡ΓѬßΓ
- «Γ«íαáªÑ¡¿∩ »«ß½Ñ Ñú« ¿ß»«½∞º«óá¡¿∩, Γ« ñαπú¿Ñ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¡Ñ ß¼«úπΓ Ñú« »«½πτ¿Γ∞. àß½¿ óδ
- »«½πτ¿½¿ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GetDC Γ« óδ
- ñ«½ª¡δ íπñÑΓÑ Ñú« «ßó«í«ñ¿Γ∞ Σπ¡¬µ¿Ñ⌐ ReleaseDC. àß½¿ ªÑ óδ
- ß«ºñ὿ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- CreateCompatibleDC, Γ« óδ ñ«½ª¡δ íπñÑΓÑ Ñú« ó ñá½∞¡Ñ⌐ΦѼ
- «ßó«í«ñ¿Γ∞, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε DeleteDC. öπ¡¬µ¿∩ SelectObject
- ¡Ñ«íσ«ñ¿¼á, »«ß¬«½∞¬π ¡Ñ½∞º∩ πñ὿Γ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá, Ñß½¿
- óδíαá¡á αáßΓα«óá∩ ¬áαΓá, ¡Ñ ∩ó½∩εΘá∩ß∩ »Ñαó«¡áτá½∞¡«⌐ ñ½∩
- ñá¡¡«ú« ¬«¡ΓѬßΓá.
-
- é »αÑñδñπΘѼ »α¿¼ÑαÑ »αÑñ»«½áúὫß∞, τΓ« Φ¿α¿¡á ¿ óδß«Γá
- αáßΓα«ó«⌐ ¬áαΓδ αáó¡á 64 ¿ 32 »¿¬ßѽ∩¼ ß««ΓóÑΓßΓóÑ¡¡«. äαπú¿¼
- ß»«ß«í«¼ «»αÑñѽѡ¿∩ Φ¿α¿¡δ ¿ óδß«Γδ ¿¡ñ¿µ¿απѼ«⌐ αáßΓα«ó«⌐
- ¬áαΓδ ∩ó½∩ÑΓß∩ ¡áσ«ªñÑ¡¿Ñ ¿σ ¿º ßἫ⌐ αáßΓα«ó«⌐ ¬áαΓδ. ¥Γ«
- ¼«ª¡« ßñѽáΓ∞, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GetObject, ¬«Γ«αá∩ ºá»«½¡∩ÑΓ
- π¬áºá¡¡πε ßΓαπ¬Γπαπ αẼÑαἿ ºáñá¡¡«ú« «íΩѬΓá. ìá»α¿¼Ñα, ñ½∩
- ¡áσ«ªñÑ¡¿∩ Φ¿α¿¡δ ¿ óδß«Γδ αáßΓα«ó«⌐ ¬áαΓδ ¼«ª¡« ¿ß»«½∞º«óáΓ∞
- ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- BITMAP Bitmap;
- .
- .
- .
- GetObject(hBitmap, sizeof(BITMAP), (LPSTR)&Bitmap);
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ Φ¿α¿¡á ¿ óδß«Γá αáßΓα«ó«⌐ ¬áαΓδ
- ¬«»¿απεΓß∩ ó »«½∩ bmWidth ¿ bmHeight ßΓαπ¬Γπαδ Bitmap. ¡«
- ¿ß»«½∞º«óáΓ∞ φΓ¿ º¡áτÑ¡¿∩ ó Σπ¡¬µ¿¿ BitBlt ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- BitBlt (hDC, 100, 30, Bitmap.bmWidth, Bitmap.bmHeight,
- hMemoryDC, 0, 0, SRCCOPY);
-
- öπ¡¬µ¿∩ BitBlt ¼«ªÑΓ ¿¡ñ¿µ¿α«óáΓ∞ ¼«¡«σα«¼¡πε ¿ µóÑΓ¡πε
- αáßΓα«óδÑ ¬áαΓδ. ìÑ ΓαÑíπÑΓß∩ ߻ѵ¿á½∞¡δσ ñÑ⌐ßΓó¿⌐ ñ½∩
- ¿¡ñ¿¬áµ¿¿ αáßΓα«óδσ ¬áαΓ αẽ¿τ¡δσ Σ«α¼áΓ«ó. Äñ¡á¬«, ¡Ñ«íσ«ñ¿¼«
- »«¼¡¿Γ∞, τΓ« Σπ¡¬µ¿∩ BitBlt ¼«ªÑΓ »αÑ«íαẫóáΓ∞ αáßΓα«óπε
- ¬áαΓπ, Ñß½¿ ÑÑ µóÑΓ¡«⌐ Σ«α¼áΓ ¡Ñ ß«ó»áñáÑΓ ß πßΓα«⌐ßΓó«¼
-
- Windows 3.0/pg/2#3 = 91 =
-
- ¡áº¡áτÑ¡¿∩. ìá»α¿¼Ñα, »α¿ ¿¡ñ¿¬áµ¿¿ µóÑΓ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ ¡á
- ¼«¡«σα«¼¡«¼ ñ¿ß»½ÑÑ Σπ¡¬µ¿∩ BitBlt »αÑ«íαáºπÑΓ »¿¬ßѽ¿, ¿¼ÑεΘ¿Ñ
- µóÑΓ Σ«¡á, ó íѽδ⌐ µóÑΓ, á óßÑ ñαπú¿Ñ - ó τÑα¡δ⌐.
- 11.3.2 ÉáßΓ∩ªÑ¡¿Ñ αáßΓα«óδσ ¬áαΓ.
-
- ÉáßΓα«óδÑ ¬áαΓδ ¡Ñ «úαá¡¿τ¿óáεΓß∩ ¿σ »Ñαó«¡áτá½∞¡δ¼¿
- αẼÑαἿ. êσ ¼«ª¡« αáßΓ∩ú¿óáΓ∞ ¿½¿ ߪ¿¼áΓ∞, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- StretchBlt ó¼ÑßΓ« Σπ¡¬µ¿¿ BitBlt. ìá»α¿¼Ñα, ¼«ª¡« πñó«¿Γ∞
- αẼÑα αáßΓα«ó«⌐ ¬áαΓδ 64 σ 32 »¿¬ßѽ∩, ¿ß»«½∞ºπ∩ ß½ÑñπεΘ¿⌐
- «»ÑαáΓ«α:
-
- StretchBlt(hDC, 100, 30, 128, 64, hMemoryDC, 0, 0, 64,
- 32, SRCCOPY);
-
- öπ¡¬µ¿∩ StretchBlt ¿¼ÑÑΓ ñóá ñ«»«½¡¿Γѽ∞¡δσ »áαá¼ÑΓαá,
- ¬«Γ«αδσ ¡ÑΓ π BitBlt. é τáßΓ¡«ßΓ¿, StretchBlt «»αÑñѽ∩ÑΓ Φ¿α¿¡π
- ¿ óδß«Γπ ¿ßσ«ñ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ. ÅÑαóá∩ π»«¼∩¡πΓá∩ Φ¿α¿¡á ¿
- óδß«Γá, ºáñá¡¡á∩ º¡áτÑ¡¿∩¼¿ 128 ¿ 64 »¿¬ßѽÑ⌐, »α¿¼Ñ¡∩ÑΓß∩
- Γ«½∞¬« ¬ «¬«¡τáΓѽ∞¡«¼π αẼÑαπ αáßΓα«ó«⌐ ¬áαΓδ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá-»«½πτáΓѽ∩.
-
- ä½∩ ߪáΓ¿∩ αáßΓα«ó«⌐ ¬áαΓδ Σπ¡¬µ¿∩ StretchBlt πñá½∩ÑΓ
- »¿¬ßѽ¿ ¿º ߬«»¿α«óá¡¡δσ αáßΓα«óδσ ¬áαΓ. ¥Γ« «º¡áτáÑΓ, τΓ«
- ¡Ñ¬«Γ«αá∩ τáßΓ∞ ¿¡Σ«α¼áµ¿¿ ó ¡Ñ⌐ ΓÑα∩ÑΓß∩ »α¿ ¿¡ñ¿µ¿α«óá¡¿¿.
- ä½∩ Γ«ú«, τΓ«íδ ¼¿¡¿¼¿º¿α«óáΓ∞ »«ΓÑα¿, ¼«ª¡« πßΓá¡«ó¿Γ∞ ΓѬπΘ¿⌐
- αѪ¿¼ αáßΓ∩ªÑ¡¿∩, τΓ«íδ ºáßΓáó¿Γ∞ Σπ¡¬µ¿ε StretchBlt »«»δΓáΓ∞ß∩
- ß«σαá¡¿Γ∞ ¡Ñ¬«Γ«απε τáßΓ∞ ¿¡Σ«α¼áµ¿¿, ¬«¼í¿¡¿απ∩ ÑÑ ß
- »¿¬ßѽ∩¼¿, ¬«Γ«αδÑ íπñπΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩. 髺¼«ª¡δÑ αѪ¿¼δ
- αáßΓ∩ªÑ¡¿∩:
-
- ÉѪ¿¼ Ä»¿ßá¡¿Ñ
- ──────────────────────────────────────────────────────────
- WHITEONBLACK ¿ß»«½∞ºπÑΓß∩, Ñß½¿ ¡Ñ«íσ«ñ¿¼«
- ß«σαá¡¿Γ∞ íѽδÑ »¿¬ßѽ¿ »α¿ ¿ºíδΓ¬Ñ
- τÑα¡δσ; ¡á»α¿¼Ñα, Ñß½¿ ¿¼ÑÑΓß∩
- íѽδ⌐ ΓѬßΓ ¡á τÑα¡«¼ Σ«¡Ñ.
-
- BLACKONWHITE ¿ß»«½∞ºπÑΓß∩, Ñß½¿ ¡Ñ«íσ«ñ¿¼«
- ß«σαá¡¿Γ∞ τÑα¡δÑ »¿¬ßѽ¿ »α¿
- ¿ºíδ⪥ íѽδσ; ¡á»α¿¼Ñα, Ñß½¿
- ¿¼ÑÑΓß∩ íѽδ⌐ ΓѬßΓ ¡á τÑα¡«¼ Σ«¡Ñ.
-
-
-
- COLORONCOLOR ¿ß»«½∞ºπÑΓß∩ ñ½∩ µóÑΓ¡δσ αáßΓα«óδσ
- ¬áαΓ. Å«»δΓ¬á «íΩÑñ¿¡∩Γ∞ µóÑΓá
- ¼«ªÑΓ »α¿óÑßΓ¿ ¬ ¡ÑªÑ½áΓѽ∞¡«¼π
- φΣΣѬΓπ.
-
- ÉѪ¿¼ αáßΓ∩ªÑ¡¿∩ πßΓá¡áó½¿óáÑΓß∩ Σπ¡¬µ¿Ñ⌐
- SetStrechBltMode. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ Σπ¡¬µ¿∩
- SetStretchBltMode πßΓá¡áó½¿óáÑΓ αѪ¿¼ αáßΓ∩ªÑ¡¿∩ ó º¡áτÑ¡¿Ñ
-
- Windows 3.0/pg/2#3 = 92 =
-
- WHITEONBLACK:
-
- SetStretchBltMode(hDC, WHITEONBLACK);
- 11.3.3 êß»«½∞º«óá¡¿Ñ αáßΓα«óδσ ¬áαΓ ó ¬¿ßΓ¿ Φáí½«¡á.
-
- ¡« ¿ß»«½∞º«óáΓ∞ αáßΓα«óδÑ ¬áαΓδ ß ¬¿ßΓ∞ε, »α¿¼Ñ¡∩∩
- ¬¿ßΓ∞ Φáí½«¡á. èá¬ Γ«½∞¬« ¬¿ßΓ∞ Φáí½«¡á ß«ºñá¡á, ¼«ª¡« óδí¿αáΓ∞
- ¬¿ßΓ∞ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá ¿ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε PatBlt ñ½∩
- ¬«»¿α«óá¡¿∩ ÑÑ ¡á φ¬αá¡; Rectangle, Ellipse ¿ ñαπú¿Ñ Σπ¡¬µ¿¿
- α¿ß«óá¡¿∩ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ ¬¿ßΓ∞ ñ½∩ ºá»«½¡Ñ¡¿∩ ß«ºñá¡¡δσ
- Σ¿úπα. è«úñá Windows α¿ßπÑΓ ß »«¼«Θ∞ε ¬¿ßΓ¿ Φáí½«¡á, «¡á
- ºá»«½¡∩ÑΓ π¬áºá¡¡πε «í½áßΓ∞, »«óΓ«α¡« ¬«»¿απ∩ αáßΓα«óπε ¬áαΓπ
- »« ú«α¿º«¡Γ὿ ¿ óÑαΓ¿¬á½¿ Γá¬, ¬á¬ φΓ« ¡Ñ«íσ«ñ¿¼«. Åα¿ φΓ«¼
- αẼÑα αáßΓα«ó«⌐ ¬áαΓδ ¡Ñ ¿º¼Ñ¡∩ÑΓß∩, ¬á¬ φΓ« ñѽáÑΓ Σπ¡¬µ¿∩
- StretchBlt.
-
- àß½¿ αáßΓα«óá∩ ¬áαΓá ¿ß»«½∞ºπÑΓß∩ ß ¬¿ßΓ∞ε Φáí½«¡á, «¡á
- ñ«½ª¡á ¿¼ÑΓ∞ αẼÑα »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ 8 σ 8; φΓ« αẼÑα Φáí½«¡á
- »« π¼«½τá¡¿ε, ¿ß»«½∞ºπѼδ⌐ í«½∞Φ¿¡ßΓó«¼ ñαá⌐óÑα«ó ñ¿ß»½ÑÑó.
- ¡« »α¿¼Ñ¡∩Γ∞ ¿ í«½∞Φ¿Ñ αáßΓα«óδÑ ¬áαΓδ, ¡« íπñÑΓ
- ¿ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬« ½Ñóδ⌐ óÑασ¡¿⌐ ÑÑ πú«½ αẼÑα«¼ 8 σ 8
- »¿¬ßѽÑ⌐. ¡« ªÑßΓ¬« ºáñáΓ∞ αáßΓα«óπε ¬áαΓ𠬫ñἿ ¿½¿
- ºáúαπº¿Γ∞ ÑÑ ¬á¬ αÑßπαß. é ½εí«¼ ß½πτáÑ, Ñß½¿ ¿¼ÑÑΓß∩
- ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ, ¼«ª¡« ß«ºñáóáΓ∞ ¬¿ßΓ∞ Φáí½«¡á,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε CreatePatternBrush. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ
- »α¿¼ÑαÑ αáßΓα«óá∩ ¬áαΓá ºáúαπªáÑΓß∩ ¿ ¿ß»«½∞ºπÑΓß∩ ñ½∩ ß«ºñá¡¿∩
- ¬¿ßΓ¿ Φáí½«¡á:
-
- hBitmap=LoadBitmap(hInstance, "checks");
- hBrush=CreatePatternBrush(hBitmap);
-
- èá¬ Γ«½∞¬« ¬¿ßΓ∞ Φáí½«¡á ß«ºñá¡á, ¼«ª¡« óδí¿αáΓ∞ ÑÑ ó
- ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject:
-
- hOldBrush=SelectObject(hDC, hBrush);
-
- ū߬«½∞¬π αáßΓα«óá∩ ¬áαΓá ∩ó½∩ÑΓß∩ τáßΓ∞ε ¬¿ßΓ¿, φΓ«Γ
- ó맮ó Σπ¡¬µ¿¿ SelectObject ¡Ñ ó«ºñÑ⌐ßΓóπÑΓ ¡á óδíαá¡¡πε
- αáßΓα«óπε ¬áαΓπ ß ¬«¡ΓѬßΓ«¼ πßΓα«⌐ßΓóá.
-
- Å«ß½Ñ óδí«αá ¬¿ßΓ¿ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε PatBlt ñ½∩
- ºá»«½¡Ñ¡¿∩ π¬áºá¡¡«⌐ «í½áßΓ¿ αáßΓα«ó«⌐ ¬áαΓ«⌐. ìá»α¿¼Ñα,
- »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ «»ÑαáΓ«α ºá»«½¡∩ÑΓ óÑασ¡¿⌐ ½Ñóδ⌐ πú«½ «¬¡á
- αáßΓα«ó«⌐ ¬áαΓ«⌐:
-
- PatBlt(hDC, 0, 0, 100, 100, PATCOPY);
-
- ÉáßΓα«óá∩ «»Ñαᵿ∩ PATCOPY ºáßΓáó½∩ÑΓ Σπ¡¬µ¿ε PatBlt
- »«½¡«ßΓ∞ε ºá¼Ñ¡¿Γ∞ «íαẠ¼ÑßΓá ¡áº¡áτÑ¡¿∩ ¬¿ßΓ∞ε Φáí½«¡á.
-
- ¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ ¬¿ßΓ∞ Φáí½«¡á ó ¬áτÑßΓóÑ ¬¿ßΓ¿
- Σ«¡á ñá¡¡«ú« «¬¡á. ä½∩ φΓ«ú« »α«ßΓ« ¡Ñ«íσ«ñ¿¼« »α¿ßó«¿Γ∞
-
- Windows 3.0/pg/2#3 = 93 =
-
- ñÑß¬α¿»Γ«α ¬¿ßΓ¿ »«½ε hbrBackground ßΓαπ¬Γπαδ ¬½áßßá «¬¡á:
-
- pWndClass->hbrBackground=CreatePatternBrush(hBitmap);
-
- æ φΓ«ú« ¼«¼Ñ¡Γá Windows ¿ß»«½∞ºπÑΓ ¬¿ßΓ∞ Φáí½«¡á »α¿
- ßΓ¿αá¡¿¿ Σ«¡á «¬¡á. ¡« Γá¬ªÑ ¿º¼Ñ¡¿Γ∞ ΓѬπΘπε ¬¿ßΓ∞ Σ«¡á ñ½∩
- ¬½áßßá «¬«¡, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SetClassWord. ìá»α¿¼Ñα, Ñß½¿
- ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ¡«óπε ¬¿ßΓ∞ Φáí½«¡á »«ß½Ñ Γ«ú«, ¬á¬
- «¬¡« ß«ºñá¡«, ¼«ª¡« ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α:
-
- SetClassWord(hWnd, GCW_HBRBACKGROUND, hBrush);
-
- ìÑ«íσ«ñ¿¼« »«¼¡¿Γ∞, τΓ« φëà «»ÑαáΓ«α ¿º¼Ñ¡∩ÑΓ ¬¿ßΓ∞ Σ«¡á
- ñ½∩ óßÑσ «¬«¡ ñá¡¡«ú« ¬½áßßá. àß½¿ ¡Ñ«íσ«ñ¿¼« ¿º¼Ñ¡¿Γ∞ Σ«¡
- Γ«½∞¬« ñ½∩ «ñ¡«ú« «¬¡á, ¡πª¡« ∩ó¡« «íαáí«ΓáΓ∞ ß««íΘÑ¡¿∩
- WM_ERASEBKGND, ¬«Γ«αδÑ »«½πτáÑΓ «¬¡«. Åα¿óÑñÑ¡¡δ⌐ ¡¿ªÑ »α¿¼Ñα
- ¿½½εßΓα¿απÑΓ, ¬á¬ φΓ« ßñѽáΓ∞:
-
- RECT Rect;
- HBRUSH hOldBrush;
- .
- .
- .
- case WM_ERASEBKGND:
- UnrealizeObject(hMyBkgndBrush);
- hOldBrush = SelectObject(wParam, hMyBkgndBrush);
- GetUpdateRect(wParam, &Rect, FALSE);
- PatBlt(wParam, Rect.left, Rect.top,
- Rect.right - Rect.left, Rect.bottom - Rect.top,
- PATCOPY);
- SelectObject(wParam, hOldBrush);
- break;
-
- æ««íΘÑ¡¿Ñ WM_ERASEBKGND »ÑαÑñáÑΓ ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá
- «Γ«íαáªÑ¡¿∩ ó »áαá¼ÑΓα wParam. öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ
- ¡πª¡πε ¬¿ßΓ∞ Σ«¡á ó ¬«¡ΓѬßΓÑ «Γ«íαáªÑ¡¿∩. öπ¡¬µ¿∩
- GetUpdateRect ¡áσ«ñ¿Γ «í½áßΓ∞, ¬«Γ«απε ¡Ñ«íσ«ñ¿¼« ßΓÑαÑΓ∞ (φΓ«
- ¡Ñ óßÑúñá óß∩ «í½áßΓ∞ »«½∞º«óáΓѽ∩). öπ¡¬µ¿∩ PatBlt ¬«»¿απÑΓ
- Φáí½«¡, ºáΓ¿αá∩ óßÑ, τΓ« ¡áσ«ñ¿Γß∩ ó ¬«ααÑ¬Γ¿απѼ«¼
- »α∩¼«πú«½∞¡¿¬Ñ. ìᬫ¡Ñµ, Σπ¡¬µ¿∩ SelectObject ó«ßßΓá¡áó½¿óáÑΓ
- »αѪ¡εε ¬¿ßΓ∞ ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.
-
- é »αÑñδñπΘѼ »α¿¼ÑαÑ ¿ß»«½∞º«óá½áß∞ Σπ¡¬µ¿∩
- UnrealizeObject. èáªñδ⌐ αáº, ¬«úñá »α«úαá¼¼á ¿½¿ »«½∞º«óáΓѽ∞
- »ÑαѼÑΘáÑΓ «¬¡«, ó ¬«Γ«α«¼ ¿ß»«½∞º«óá½áß∞ ¿½¿ íπñÑΓ
- ¿ß»«½∞º«óáΓ∞ß∩ ¬¿ßΓ∞ Φáí½«¡á, ¡Ñ«íσ«ñ¿¼« ¡áßΓα«¿Γ∞ ÑÑ ¡á ¡«óπε
- »«º¿µ¿ε ß »«¼«Θ∞ε Σπ¡¬µ¿¿ UnrealizeObject. ¥Γá Σπ¡¬µ¿∩
- ßíαáßδóáÑΓ «í½áßΓ∞ α¿ß«óá¡¿∩ ¬¿ßΓ¿ Γá¬, τΓ« ¼«ªÑΓ «Γ«íαáªáΓ∞ß∩
- ½εí«⌐ Φáí½«¡ »«ß½Ñ »ÑαѼÑΘÑ¡¿∩, ß«ó»áñáεΘ¿⌐ ß Φáí½«¡«¼, ¬«Γ«αδ⌐
- ¿ß»«½∞º«óá½ß∩ »ÑαÑñ ¡¿¼.
-
- ¡« ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε DeleteObject ñ½∩ πñá½Ñ¡¿∩ ¬¿ßΓ¿
- Φáí½«¡á, Ñß½¿ «¡á í«½∞ΦÑ ¡Ñ ¡πª¡á. Äñ¡á¬«, φΓá Σπ¡¬µ¿∩ ¡Ñ
-
- Windows 3.0/pg/2#3 = 94 =
-
- πñá½∩ÑΓ ó¼ÑßΓÑ ß ¬¿ßΓ∞ε αáßΓα«óπε ¬áαΓπ. ä½∩ πñá½Ñ¡¿∩ αáßΓα«ó«⌐
- ¬áαΓδ ¡Ñ«íσ«ñ¿¼« ß¡«óá ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε DeleteObject ¿
- π¬áºáΓ∞ ó ¡Ñ⌐ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ.
- 11.3.4 ê¡ñ¿µ¿α«óá¡¿Ñ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δσ αáßΓα«óδσ ¬áαΓ.
-
- Äñ¡¿¼ ¿º πñ«íßΓó á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δσ αáßΓα«óδσ ¬áαΓ
- ∩ó½∩ÑΓß∩ 󫺼«ª¡«ßΓ∞ «Γ«íαáªÑ¡¿∩ ¿σ »α∩¼« ¡á πßΓα«⌐ßΓóÑ íѺ
- ¿ß»«½∞º«óá¡¿∩ »α«¼ÑªπΓ«τ¡δσ ¬«¡ΓѬßΓ«ó πßΓα«⌐ßΓóá »á¼∩Γ¿.
- öπ¡¬µ¿∩ SetDIBitsToDevice »«ßδ½áÑΓ óßε ¿½¿ τáßΓ∞
- á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ »α∩¼« ¡á πßΓα«⌐ßΓó«
- óδó«ñá, º¡áτ¿Γѽ∞¡« π¼Ñ¡∞Φá∩ ΓαÑíπѼπε ñ½∩ «Γ«íαáªÑ¡¿∩
- αáßΓα«ó«⌐ ¬áαΓδ »á¼∩Γ∞. è«úñá óδ óδºδóáÑΓÑ ñ½∩ óδó«ñá αáßΓα«ó«⌐
- ¬áαΓδ Σπ¡¬µ¿ε SetDIBitsToDevice, óδ »ÑαÑñáÑΓÑ Ñ⌐ ß½ÑñπεΘπε
- ¿¡Σ«α¼áµ¿ε:
-
- - è«¡ΓѬßΓ πßΓα«⌐ßΓóá ¡áº¡áτÑ¡¿∩.
-
- - Æ«τ¬π ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá, ó ¬«Γ«απε ñ«½ª¡á
- óδó«ñ¿Γ∞ß∩ αáßΓα«óá∩ ¬áαΓá.
-
- - ÉẼÑα αáßΓα«ó«⌐ ¬áαΓδ ¡á πßΓα«⌐ßΓóÑ «Γ«íαáªÑ¡¿∩.
-
- - ù¿ß½« ßΓ᫬ ó ¿ßσ«ñ¡«¼ íπΣÑαÑ αáßΓα«ó«⌐ ¬áαΓδ, ¿º
- ¬«Γ«α«ú« «¡á ¬«»¿απÑΓß∩.
-
- - ÅÑαóδ⌐ »¿¬ßѽ∞, ¬«Γ«αδ⌐ íπñÑΓ ¬«»¿α«óáΓ∞ß∩ ¿º ¿ßσ«ñ¡«⌐
- αáßΓα«ó«⌐ ¬áαΓδ ¡á πßΓα«⌐ßΓó« «Γ«íαáªÑ¡¿∩.
-
- - æΓαπ¬Γπαπ «»¿ßá¡¿∩ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ
- ¿ íπΣÑα ó ¬«Γ«α«¼ ß«ñÑনΓß∩ ßá¼á αáßΓα«óá∩ ¬áαΓá.
-
- - ùΓ« ß«ñÑαª¿Γ Γáí½¿µá µóÑΓ«ó «»¿ßá¡¿∩ á»»áαáΓ¡«
- ¡Ñºáó¿ß¿¼«⌐ αáßΓα«ó«⌐ ¬áαΓδ - «Γñѽ∞¡δÑ RGB º¡áτÑ¡¿∩ ¿½¿
- ¿¡ñѬßδ ó »á½¿ΓαÑ µóÑΓ«ó.
-
- Åα¿¼Ñτá¡¿Ñ. Æ«τ¬«⌐ »α¿ó∩º¬¿ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼«⌐
- αáßΓα«ó«⌐ ¬áαΓδ ß½πª¿Γ ¡¿ª¡¿⌐ ½Ñóδ⌐ πú«½ αáßΓα«ó«⌐ ¬áαΓδ, á ¡Ñ
- ½Ñóδ⌐ óÑασ¡¿⌐ πú«½, ¬á¬ »α¿ «ßΓá½∞¡δσ úαáΣ¿τÑ߬¿σ «»Ñαᵿ∩σ.
-
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα ñѼ«¡ßΓα¿απÑΓ ó맮ó Σπ¡¬µ¿¿
- SetDIBitsToDevice:
-
- SetDIBitsToDevice(hDC,0,0,lpbi->bmciHeader.bcWidth,
- lpbi->bmciHeader.bcHeight,0,0,0,
- lpbi->bmciHeader.bcHeight,
- pBuf,(LPBITMAPINFO)lpbi,
- DIB_RGB_COLORS);
-
- é ñá¡¡«¼ »α¿¼ÑαÑ hDC «»αÑñѽ∩ÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- «Γ«íαáªÑ¡¿∩. SetDIBitsToDevice ¿ß»«½∞ºπÑΓ φΓπ ¿¡Σ«α¼áµ¿ε ñ½∩
- «»αÑñѽѡ¿∩ »«óÑασ¡«ßΓ¿ πßΓα«⌐ßΓóá ¿ ñ½∩ «»αÑñѽѡ¿∩
- ñ«»πßΓ¿¼«ú« Σ«α¼áΓá µóÑΓ«ó ñ½∩ αáßΓα«ó«⌐ ¬áαΓδ πßΓα«⌐ßΓóá.
-
- Windows 3.0/pg/2#3 = 95 =
-
-
- æ½ÑñπεΘ¿Ñ ñóá »áαá¼ÑΓαá «»αÑñѽ∩εΓ Γ«τ¬π ¡á πßΓα«⌐ßΓóÑ,
- «Γ¬πñá SetDIBitsToDevice ñ«½ª¡á ¡áτáΓ∞ α¿ß«óáΓ∞ αáßΓα«óπε
- ¬áαΓπ. é ñá¡¡«¼ ß½πτáÑ - φΓ« ¡áτὫ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá.
- æ½ÑñπεΘ¿Ñ ñóá »áαá¼ÑΓαá «»αÑñѽ∩εΓ Φ¿α¿¡π ¿ óδß«Γπ αáßΓα«ó«⌐
- ¬áαΓδ.
-
- ÿÑßΓ«⌐ ¿ ßÑñ∞¼«⌐ »áαá¼ÑΓαδ, ó ¡áΦѼ »α¿¼ÑαÑ αáó¡δ 0,
- «»αÑñѽ∩εΓ »Ñαóδ⌐ »¿¬ßѽ∞ ¿º ¿ßσ«ñ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ, ¬«Γ«αδ⌐
- »«ßδ½áÑΓß∩ ¡á πßΓα«⌐ßΓó«. ū߬«½∞¬π «¡¿ αáó¡δ 0, Γ« αáßΓα«óá∩
- ¬áαΓá óδó«ñ¿Γß∩ ß »Ñαó«ú« »¿¬ßѽ∩.
-
- æ½ÑñπεΘ¿Ñ ñóá »áαá¼ÑΓαá ¿ß»«½∞ºπεΓß∩ ñ½∩ µÑ½Ñ⌐
- «íΩÑñ¿¡Ñ¡¿∩. ÅÑαóδ⌐ ¿º ¡¿σ πßΓá¡«ó½Ñ¡ ó 0, «»αÑñѽ∩∩, τΓ«
- ¡áτá½∞¡á∩ ßΓα«¬á «Γ«íαáªÑ¡¿∩ ñ«½ª¡á íδΓ∞ ó íπΣÑαÑ »Ñαó«⌐.
- éΓ«α«⌐ »áαá¼ÑΓα, αáó¡δ⌐ óδß«ΓÑ αáßΓα«ó«⌐ ¬áαΓδ, ú«ó«α¿Γ « Γ«¼,
- τΓ« óß∩ αáßΓα«óá∩ ¬áαΓá íπñÑΓ «Γ«íαáªáΓ∞ß∩ ¡á φ¬αá¡Ñ ¬á¬ «ñ¡«
- µÑ½«Ñ.
-
- æá¼á αáßΓα«óá∩ ¬áαΓá ß«ñÑনΓß∩ ó íπΣÑαÑ pBuf, á »áαá¼ÑΓα
- lpbi «»αÑñѽ∩ÑΓ ßΓαπ¬Γπαπ BITMAPINFO, ¬«Γ«αá∩ ß«ñÑনΓ
- ¿¡Σ«α¼áµ¿ε « Σ«α¼áΓÑ µóÑΓ«ó ¿ßσ«ñ¡«⌐ αáßΓα«ó«⌐ ¬áαΓδ.
-
- ū߽Ññ¡¿⌐ »áαá¼ÑΓα - φΓ« Σ½áú, ¬«Γ«αδ⌐ «»αÑñѽ∩ÑΓ, τΓ«
- Γáí½¿µá µóÑΓ«ó αáßΓα«ó«⌐ ¬áαΓδ ß«ñÑαª¿Γ ñÑ⌐ßΓó¿Γѽ∞¡δÑ RGB
- º¡áτÑ¡¿∩ ¿½¿ ¿¡ñѬßδ ó ΓѬπΘÑ⌐ ½«ú¿τÑ߬«⌐ »á½¿ΓαÑ. ç¡áτÑ¡¿Ñ
- DIB_RGB_COLORS ú«ó«α¿Γ « Γ«¼, τΓ« Γáí½¿µá ß«ñÑনΓ
- ñÑ⌐ßΓó¿Γѽ∞¡δÑ RGB º¡áτÑ¡¿∩.
-
- 11.3.5 êß»«½∞º«óá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γá
- ¼Ñ¡ε.
- éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ αáßΓα«óπε ¬áαΓπ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γá
- ¼Ñ¡ε. ä½∩ φΓ«ú« ºá¼Ñ¡¿ΓÑ ΓѬßΓ φ½Ñ¼Ñ¡Γá ¼Ñ¡ε, «»αÑñѽ∩Ѽ«ú« ó
- Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ αáßΓα«ó«⌐ ¬áαΓ«⌐.
- (éδ ¡Ñ ¼«ªÑΓÑ ÑÑ π¬áºáΓ∞ ßαáºπ ó Σá⌐½Ñ «»¿ßá¡¿∩ αÑßπαß«ó.)
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε óδ ¡á⌐ñÑΓÑ ó ú½áóÑ 7 "îÑ¡ε".
- 11.4 ä«íáó½Ñ¡¿Ñ µóÑΓá ¬ ¼«¡«σα«¼¡«⌐ αáßΓα«ó«⌐ ¬áαΓÑ.
-
- àß½¿ óáΦ ¬«¼»∞εΓÑα ¿¼ÑÑΓ µóÑΓ¡«⌐ ñ¿ß»½Ñ⌐, ¼«ª¡« ñ«íáó¿Γ∞
- µóÑΓá ¬ ¼«¡«σα«¼¡«⌐ αáßΓα«ó«⌐ ¬áαΓÑ, πßΓá¡«ó¿ó µóÑΓá Σ«¡á ¿
- »ÑαÑñ¡Ñú« »½á¡á ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩. ûóÑΓá Σ«¡á ¿ »ÑαÑñ¡Ñú«
- »½á¡á ߻ѵ¿Σ¿µ¿απεΓ, ¬á¬ «¬αáß¿Γ∞ íѽδÑ ¿ τÑα¡δÑ í¿Γδ αáßΓα«ó«⌐
- ¬áαΓδ »α¿ ÑÑ «Γ«íαáªÑ¡¿¿. ûóÑΓá Σ«¡á ¿ »ÑαÑñ¡Ñú« »½á¡á
- πßΓá¡áó½¿óáεΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐ SetTextColor ¿ SetBkColor. é
- »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ πßΓá¡«ó¿Γ∞ µóÑΓ
- »ÑαÑñ¡Ñú« »½á¡á ó ¬αáß¡δ⌐, á µóÑΓ Σ«¡á - ó ºÑ½Ñ¡δ⌐:
-
- SetTextColor(hDC, RGB(255, 0, 0));
- SetBkColor(hDC, RGB(0, 255, 0));
-
- ÅÑαѼѡ¡á∩ hDC ß«ñÑαª¿Γ ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.
-
- Windows 3.0/pg/2#3 = 96 =
-
- öπ¡¬µ¿∩ SetTextColor πßΓá¡áó½¿óáÑΓ µóÑΓ »ÑαÑñ¡Ñú« »½á¡á ó
- ¬αáß¡δ⌐. öπ¡¬µ¿∩ SetBkColor πßΓá¡áó½¿óáÑΓ µóÑΓ Σ«¡á ó ºÑ½Ñ¡δ⌐.
- æ½πªÑí¡á∩ ¬«¼á¡ñá RGB ß«ºñáÑΓ µóÑΓ«ó«Ñ º¡áτÑ¡¿Ñ RGB, ¿ß»«½∞ºπ∩
- Γα¿ π¬áºá¡¡δσ º¡áτÑ¡¿∩. èáªñ«Ñ ¿º ¡¿σ »αÑñßΓáó½∩ÑΓ
- ¿¡Γѡ߿ó¡«ßΓ∞ «ñ¡«ú« ¿º «ß¡«ó¡δσ µóÑΓ«ó - ¬αáß¡«ú«, ºÑ½Ñ¡«ú« ¿
- ß¿¡Ñú«, »α¿τѼ 255 - φΓ« ¼á¬ß¿¼á½∞¡á∩ ¿¡Γѡ߿ó¡«ßΓ∞, á 0 -
- ¼¿¡¿¼á½∞¡á∩. ¡« Σ«α¼¿α«óáΓ∞ ñαπú¿Ñ µóÑΓá, ºáñáóá∩ ½εíπε ¿σ
- ¿¡Γѡ߿ó¡«ßΓ∞ ó π¬áºá¡¡δσ »αÑñѽáσ ¿ «íΩÑñ¿¡∩∩ ¿σ. ìá»α¿¼Ñα,
- »α¿óÑñÑ¡¡δ⌐ ¡¿ªÑ «»ÑαáΓ«α ß«ºñáÑΓ ªÑ½Γ«Ñ º¡áτÑ¡¿Ñ RGB:
-
- RGB(255, 255, 0);
-
- èá¬ Γ«½∞¬« íπñπΓ πßΓá¡«ó½Ñ¡δ µóÑΓá »ÑαÑñ¡Ñú« »½á¡á ¿ Σ«¡á,
- ¼«ª¡« »α«¿ºó«ñ¿Γ∞ ñá½∞¡Ñ⌐Φ¿Ñ ñÑ⌐ßΓó¿∩. ¡« ¿¡ñ¿µ¿α«óáΓ∞
- αáßΓα«óπε ¬áαΓπ (¬á¬ «»¿ßá¡« αá¡ÑÑ), ¿ Windows íπñÑΓ
- áóΓ«¼áΓ¿τÑ߬¿ ñ«íáó½∩Γ∞ µóÑΓá Σ«¡á ¿ »ÑαÑñ¡Ñú« »½á¡á. ûóÑΓ
- »ÑαÑñ¡Ñú« »½á¡á »α¿¼Ñ¡∩ÑΓß∩ ¬ íÑ½δ¼ í¿Γá¼ (πßΓá¡«ó½Ñ¡¡δ¼ ó 1),
- á µóÑΓ Σ«¡á - ¬ τÑα¡δ¼ í¿Γá¼ (πßΓá¡«ó½Ñ¡¡δ¼ ó 0). çá¼ÑΓ¿¼, τΓ«
- αѪ¿¼ Σ«¡á, ¬á¬ «¡ «»αÑñѽѡ Σπ¡¬µ¿Ñ⌐ SetBkMode, ¡Ñ »α¿¼Ñ¡¿¼ ¬
- αáßΓα«óδ¼ ¬áαΓá¼. èα«¼Ñ Γ«ú«, µóÑΓá Σ«¡á ¿ »ÑαÑñ¡Ñú« »½á¡á ¡Ñ
- »α¿¼Ñ¡¿¼δ ¬ µóÑΓ¡δ¼ αáßΓα«óδ¼ ¬áαΓá¼.
-
- Åα¿ ¿¡ñ¿µ¿α«óá¡¿¿ ó µóÑΓÑ αáßΓα«óá∩ ¬áαΓá ß ¿¼Ñ¡Ñ¼ "dog"
- íπñÑΓ ¬αáß¡«⌐, Σ«¡ - ºÑ½Ñ¡δ¼.
- 11.5 ôñá½Ñ¡¿Ñ αáßΓα«óδσ ¬áαΓ.
-
- ÉáßΓα«óá∩ ¬áαΓá »«ñ«í¡« ñαπú¿¼ αÑßπαßá¼ »«¬á ¿ß»«½∞ºπÑΓß∩
- ºá¡¿¼áÑΓ »á¼∩Γ∞. èá¬ Γ«½∞¬« αáßΓα«óá∩ ¬áαΓá ßΓá¡«ó¿Γß∩ í«½∞ΦÑ
- ¡Ñ ¡πª¡á (¿½¿ »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ »α«úαá¼¼δ), ¡Ñ«íσ«ñ¿¼« ÑÑ
- πñ὿Γ∞, τΓ«íδ «ßó«í«ñ¿Γ∞ »á¼∩Γ∞ ñ½∩ ñαπú¿σ »α«úαá¼¼. ä½∩
- πñá½Ñ¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ß¡áτá½á ¡πª¡« πñ὿Γ∞ ÑÑ ¿º ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá, ó ¬«Γ«α«¼ «¡á íδ½á óδíαá¡á, á ºáΓѼ «¬«¡τáΓѽ∞¡«
- πñ὿Γ∞ ÑÑ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ DeleteObject.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ αáßΓα«óá∩ ¬áαΓá,
- ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡á∩ »áαá¼ÑΓα«¼ hBitmap, πñá½∩ÑΓß∩ »«ß½Ñ
- π¡¿τΓ«ªÑ¡¿∩ ÑÑ ¬á¬ ΓѬπΘÑ⌐ αáßΓα«ó«⌐ ¬áαΓδ, óδíαá¡¡«⌐ ó
- ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«¼ »áαá¼ÑΓα«¼
- hMemoryDC:
-
- SelectObject(hMemoryDC, hOldBitmap);
- DeleteObject(hBitmap);
-
- öπ¡¬µ¿∩ SelectObject πñá½∩ÑΓ αáßΓα«óπε ¬áαΓπ ¿º óδí«α¬¿,
- ºá¼Ñ¡∩∩ ÑÑ »αÑñδñπΘÑ⌐ αáßΓα«ó«⌐ ¬áαΓ«⌐, ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«⌐
- »áαá¼ÑΓα«¼ hOldBitmap. öπ¡¬µ¿∩ DeleteObject «¬«¡τáΓѽ∞¡«
- πñá½∩ÑΓ αáßΓα«óπε ¬áαΓπ. æ φΓ«ú« ¼«¼Ñ¡Γá ñÑß¬α¿»Γ«α αáßΓα«ó«⌐
- ¬áαΓδ hBitmap ßΓá¡«ó¿Γß∩ ¡Ñ¬«ααÑ¬Γ¡δ¼ ¿ ¡Ñ ñ«½ªÑ¡ í«½∞ΦÑ
- ¿ß»«½∞º«óáΓ∞ß∩.
-
-
- Windows 3.0/pg/2#3 = 97 =
-
- 11.6 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Bitmap.
-
- é φΓ«¼ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ »«ñß«Ññ¿¡¿Γ∞ α∩ñ «»Ñαᵿ⌐ ¡áñ
- αáßΓα«ó묨 ¬áαΓἿ ¬ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. é τáßΓ¡«ßΓ¿,
- »«¬áºá¡« ¬á¬:
-
- - çáúαπº¿Γ∞ ¿ ¿¡ñ¿µ¿α«óáΓ∞ ¼«¡«σα«¼¡πε αáßΓα«óπε ¬áαΓπ.
-
- - 櫺ñáΓ∞ ¿ ¿¡ñ¿µ¿α«óáΓ∞ µóÑΓ¡πε αáßΓα«óπε ¬áαΓπ.
-
- - ÉáßΓ∩¡πΓ∞ ¿½¿ ߪáΓ∞ αáßΓα«óπε ¬áαΓπ ß »«¼«Θ∞ε ¼δΦ¿.
-
- - ôßΓá¡«ó¿Γ∞ αѪ¿¼ αáßΓ∩ªÑ¡¿∩/ߪáΓ¿∩.
-
- - 櫺ñáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞ ¬¿ßΓ∞ Φáí½«¡á.
-
- - êß»«½∞º«óáΓ∞ ¬¿ßΓ∞ Φáí½«¡á ñ½∩ Σ«¡á «¬¡á.
-
- é φΓ«⌐ »α«úαá¼¼Ñ »«½∞º«óáΓѽ∞ ߻ѵ¿Σ¿µ¿απÑΓ (ß »«¼«Θ∞ε
- ¼δΦ¿), úñÑ ¿ ¬á¬ íπñÑΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩ αáßΓα«óá∩ ¬áαΓá. àß½¿
- »«½∞º«óáΓѽ∞ »ÑαѼÑΘáÑΓ ¼δΦ∞, πñÑনóá∩ ¡áªáΓ«⌐ ½Ñóπε ¬¡«»¬π, ¿
- ºáΓѼ ÑÑ «Γ»π߬áÑΓ, »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε
- StretchBlt ñ½∩ ºá»«½¡Ñ¡¿∩ óδíαá¡¡«ú« »α∩¼«πú«½∞¡¿¬á ΓѬπΘÑ⌐
- αáßΓα«ó«⌐ ¬áαΓ«⌐. àß½¿ »«½∞º«óáΓѽ∞ ¡áª¿¼áÑΓ »αáóπε ¬¡«»¬π,
- »α«úαá¼¼á ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε BitBlt ñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«ó«⌐
- ¬áαΓδ.
-
- ä½∩ ß«ºñá¡¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Bitmap ߬«»¿απ⌐ΓÑ ¿
- »ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿ßσ«ñ¡δÑ Σá⌐½δ »α«úαá¼¼δ Generic, ºáΓѼ óδ»«½¡¿ΓÑ
- ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
-
- 1. ä«íáó∞ΓÑ «»αÑñѽѡ¿∩ ¬«¡ßΓá¡Γ ¿ «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐ ó«
- ó¬½ετáѼδ⌐ Σá⌐½.
-
- 2. ä«íáó∞ΓÑ ñóÑ ¼«¡«σα«¼¡δÑ αáßΓα«óδÑ ¬áαΓδ, ß«ºñá¡¡δÑ ß
- »«¼«Θ∞ε SDKPaint, ¬ Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó.
-
- 3. ä«íáó∞ΓÑ ¼Ñ¡ε Bitmap, Pattern ¿ Mode ¬ Σá⌐½π «»¿ßá¡¿∩
- αÑßπαß«ó.
-
- 4. ä«íáó∞ΓÑ ú½«íá½∞¡δÑ ¿ ½«¬á½∞¡δÑ »ÑαѼѡ¡δÑ.
-
- 5. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_CREATE ¬ Σπ¡¬µ¿¿ «¬¡á ñ½∩ ß«ºñá¡¿∩
- αáßΓα«óδσ ¬áαΓ ¿ ñ«íáó½Ñ¡¿∩ αáßΓα«óδσ ¬áαΓ ¬ ¼Ñ¡ε.
-
- 6. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σαáú¼Ñ¡Γ WM_DESTROY ó Σπ¡¬µ¿¿ «¬¡á ñ½∩
- πñá½Ñ¡¿∩ αáßΓα«óδσ ¬áαΓ.
-
- 7. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γδ WM_LBUTTONUP, WM_MOUSEMOVE ¿
- WM_LBUTTONDOWN ¬ Σπ¡¬µ¿¿ «¬¡á ñ½∩ ß«ºñá¡¿∩
- »α∩¼«πú«½∞¡¿¬á óδí«αá ¿ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«óδσ ¬áαΓ.
-
- 8. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_RBUTTONUP ¬ Σπ¡¬µ¿¿ «¬¡á ñ½∩
- «Γ«íαáªÑ¡¿∩ αáßΓα«óδσ ¬áαΓ.
-
-
- Windows 3.0/pg/2#3 = 98 =
-
- 9. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_ERASEBKGND ¬ Σπ¡¬µ¿¿ «¬¡á ñ½∩
- ßΓ¿αá¡¿∩ «í½áßΓ¿ »«½∞º«óáΓѽ∩.
-
- 10. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_COMMAND ñ½∩ »«ññÑ᪬¿ ¼Ñ¡ε.
-
- 11. î«ñ¿Σ¿µ¿απ⌐ΓÑ ¬«¼á¡ñ¡πε ßΓ᫬π link ó Σá⌐½Ñ make ñ½∩
- ó¬½ετÑ¡¿∩ í¿í½¿«ΓÑτ¡«ú« Σá⌐½á select.lib.
-
- 12. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π.
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
-
- 11.6.1 î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á.
-
- é« ó¬½ετáѼδ⌐ Σá⌐½ ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞ ß½ÑñπεΘ¿Ñ
- «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐ ¿ «»αÑñѽѡ¿∩ ¬«¡ßΓá¡Γ:
-
- #define IDM_BITMAP1 200
- #define IDM_BITMAP2 201
- #define IDM_BITMAP3 202
-
- #define IDM_PATTERN1 300
- #define IDM_PATTERN2 301
- #define IDM_PATTERN3 302
- #define IDM_PATTERN4 303
-
- #define IDM_BLACKONWHITE 400
- #define IDM_WHITEONBLACK 401
- #define IDM_COLORONCOLOR 402
-
- #define PATORDEST 0x00FA0089L
-
- HBITMAP MakeColorBitmap(HWND);
-
- 11.6.2 ä«íáó½Ñ¡¿Ñ αÑßπαß«ó αáßΓα«ó«⌐ ¬áαΓδ.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ «»ÑαáΓ«αδ BITMAP ¬ Σá⌐½π «»¿ßá¡¿∩
- αÑßπαß«ó. æ½ÑñπεΘ¿Ñ ñóá «»ÑαáΓ«αá ñ«íáó½∩εΓ αáßΓα«óδÑ ¬áαΓδ
- "dog" ¿ "cat" ¬ αÑßπαßá¼ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ:
-
- dog BITMAP dog.bmp
- cat BITMAP cat.bmp
-
- ÉáßΓα«óá∩ ¬áαΓá "dog" - φΓ« íѽ«Ñ «τÑαΓá¡¿Ñ ß«íᬿ ¡á
- τÑα¡«¼ Σ«¡Ñ. ÉáßΓα«óá∩ ¬áαΓá "cat" - φΓ« τÑα¡«Ñ «τÑαΓá¡¿Ñ
- ¬«Γá ¡á íѽ«¼ Σ«¡Ñ.
-
-
- Windows 3.0/pg/2#3 = 99 =
-
- 11.6.3 ä«íáó½Ñ¡¿Ñ ¼Ñ¡ε Bitmap, Pattern ¿ Mode.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ «»ÑαáΓ«α MENU ¬ Σá⌐½π «»¿ßá¡¿∩
- αÑßπαß«ó. ¥Γ«Γ «»ÑαáΓ«α «»αÑñѽ∩ÑΓ ¼Ñ¡ε Bitmap, Pattern ¿ Mode,
- ¿ß»«½∞ºπѼδÑ ñ½∩ óδí«αá αẽ¿τ¡δσ αáßΓα«óδσ ¬áαΓ ¿ αѪ¿¼«ó,
- ¿ß»«½∞ºπѼδσ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ ¬ Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó:
-
- BitmapMenu MENU
- BEGIN
- POPUP "&Bitmap"
- BEGIN
- MENUITEM "", IDM_BITMAP1
- END
-
- POPUP "&Pattern"
- BEGIN
- MENUITEM "", IDM_PATTERN1
- END
-
- POPUP "&Mode"
- BEGIN
- MENUITEM "&WhiteOnBlack", IDM_WHITEONBLACK, CHECKED
- MENUITEM "&BlackOnWhite", IDM_BLACKONWHITE
- MENUITEM "&ColorOnColor", IDM_COLORONCOLOR
- END
- END
-
- îÑ¡ε Bitmap ¿ Pattern ß«ñÑαªáΓ Ññ¿¡ßΓóÑ¡¡δ⌐ «»ÑαáΓ«α
- MENUITEM. ¥Γ«Γ «»ÑαáΓ«α «»αÑñѽ∩ÑΓ ¬«¼á¡ñπ, ¬«Γ«αá∩ Γ«½∞¬«
- αѺÑαó¿απÑΓ ¼ÑßΓ« ñ½∩ ¬«¼á¡ñ ¼Ñ¡ε. Åਪ½áñ¡á∩ »α«úαá¼¼á íπñÑΓ
- ñ«íáó½∩Γ∞ ¬«¡¬αÑΓ¡δÑ ¬«¼á¡ñδ ñ½∩ ¿ß»«½∞º«óá¡¿∩ ¿σ ó ¼Ñ¡ε ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ ChangeMenu.
- 11.6.4 ä«íáó½Ñ¡¿Ñ ú½«íá½∞¡δσ ¿ ½«¬á½∞¡δσ »ÑαѼѡ¡δσ.
-
- ìÑ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞ ¼áßß¿óδ Φáí½«¡«ó, ñÑß¬α¿»Γ«αδ
- αáßΓα«óδσ ¬áαΓ, ñÑß¬α¿»Γ«αδ ¬«¡ΓѬßΓ«ó ¿ ñαπú¿Ñ »ÑαѼѡ¡δÑ,
- ¿ß»«½∞ºπѼδÑ ñ½∩ ß«ºñá¡¿∩ ¿ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«óδσ ¬áαΓ.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó ¡áτὫ Σá⌐½á «»¿ßá¡¿∩ αÑßπαß«ó:
-
- BYTE White[] = { 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
- 0xFF, 0xFF };
- BYTE Black[] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
- 0x00, 0x00 };
- BYTE Zigzag[] = { 0xFF, 0xF7, 0xEB, 0xDD, 0xBE, 0x7F,
- 0xFF, 0xFF };
- BYTE CrossHatch[] = { 0xEF, 0xEF, 0xEF, 0xEF, 0x00,
- 0xEF, 0xEF, 0xEF };
- HBITMAP hPattern1;
- HBITMAP hPattern2;
- HBITMAP hPattern3;
- HBITMAP hPattern4;
-
- Windows 3.0/pg/2#3 = 100 =
-
- HBITMAP hBitmap1;
- HBITMAP hBitmap2;
- HBITMAP hBitmap3;
- HBITMAP hMenuBitmap1;
- HBITMAP hMenuBitmap2;
- HBITMAP hMenuBitmap3;
- HBITMAP hBitmap;
- HBITMAP hOldBitmap;
- HBRUSH hBrush; /* ñÑß¬α¿»Γ«α ¬¿ßΓ¿ */
- WORD fStretchMode; /* Γ¿» ¿ß»«½∞ºπѼ«ú« αѪ¿¼á
- αáßΓ∩ªÑ¡¿∩/ߪáΓ¿∩ */
- HDC hDC; /* ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá */
- HDC hMemoryDC; /* ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá
- »á¼∩Γ¿ */
- BITMAP Bitmap; /* ß«ºñá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ */
- BOOL bTrack = FALSE; /* TRUE, Ñß½¿ »«½∞º«óáΓѽ∞ óδí-
- αá½ «í½áßΓ∞ */
- RECT Rect;
-
- WORD wPrevBitmap = IDM_BITMAP1;
- WORD wPrevPattern = IDM_PATTERN1;
- WORD wPrevMode = IDM_WHITEONBLACK;
- WORD wPrevItem;
-
- int Shape = SL_BLOCK; /* Γ«, τΓ« ¿ß»«½∞ºπÑΓß∩ ó »α∩¼«-
- πú«½∞¡¿¬Ñ óδí«α¬¿ */
-
- îáßß¿óδ Φáí½«¡«ó White, Black, Zigzag ¿ CrossHatch
- ß«ñÑαªáΓ í¿Γδ, «»αÑñѽ∩εΘ¿Ñ «íαáºδ αáßΓα«ó«⌐ ¬áαΓδ αẼÑα«¼ 8 σ
- 8. ÅÑαѼѡ¡δÑ hPattern1, hPattern2, hPattern3 ¿ hPattern4
- ß«ñÑαªáΓ ñÑß¬α¿»Γ«αδ αáßΓα«óδσ ¬áαΓ ¬¿ßΓÑ⌐ Φáí½«¡«ó. ÅÑαѼѡ¡δÑ
- hBitmap1, hBitmap2 ¿ hBitmap3 ß«ñÑαªáΓ ñÑß¬α¿»Γ«αδ αáßΓα«óδσ
- ¬áαΓ, ¬«Γ«αδÑ íπñπΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩. ÅÑαѼѡ¡δÑ hMenuBitmap1,
- hMenuBitmap2 ¿ hMenuBitmap3 ß«ñÑαªáΓ ñÑß¬α¿»Γ«αδ αáßΓα«óδσ
- ¬áαΓ, ¬«Γ«αδÑ íπñπΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩ ó ¼Ñ¡ε Bitmap. ÅÑαѼѡ¡δÑ
- hBrush, hBitmap ¿ fStretchMode ß«ñÑαªáΓ ΓѬπΘ¿Ñ ¬¿ßΓ∞ Σ«¡á,
- αáßΓα«óπε ¬áαΓπ ¿ αѪ¿¼ αáßΓ∩ªÑ¡¿∩. ÅÑαѼѡ¡δÑ hDC, hMemoryDC ¿
- hOldBitmap ß«ñÑαªáΓ ñÑß¬α¿»Γ«αδ, ¿ß»«½∞ºπѼδÑ ß ¬«¡ΓѬßΓ«¼
- πßΓα«⌐ßΓóá »á¼∩Γ¿. æΓαπ¬Γπαá Bitmap ß«ñÑαª¿Γ αẼÑαδ ΓѬπΘÑ⌐
- αáßΓα«ó«⌐ ¬áαΓδ. ÅÑαѼѡ¡á∩ bTrack ¿ß»«½∞ºπÑΓß∩ ñ½∩ ¿¡ñ¿¬áµ¿¿
- Γ«ú«, τΓ« »α«¿ßσ«ñ¿Γ óδí«α¬á. æΓαπ¬Γπαá Rect ß«ñÑαª¿Γ ΓѬπΘ¿⌐
- »α∩¼«πú«½∞¡¿¬ óδí«α¬¿. ÅÑαѼѡ¡δÑ wPrevBitmap, wPrevPattern,
- wPrevItem ¿ wPrevMode ß«ñÑαªáΓ ID αá¡ÑÑ óδíαá¡¡δσ αáßΓα«óδσ
- ¬áαΓ, Φáí½«¡«ó ¿ αѪ¿¼«ó αáßΓ∩ªÑ¡¿∩. Ä¡¿ ¿ß»«½∞ºπεΓß∩ ñ½∩
- »«¼ÑΘÑ¡¿∩ ¿ πñá½Ñ¡¿∩ ¬«¡Γα«½∞¡δσ «Γ¼ÑΓ«¬ ó ¼Ñ¡ε.
-
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ »ÑαѼѡ¡δÑ ó Σπ¡¬µ¿ε MainWndProc:
-
- HMENU hMenu;
- HBRUSH hOldBrush;
- HBITMAP hOurBitmap;
-
-
- Windows 3.0/pg/2#3 = 101 =
-
- 11.6.5 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_CREATE.
-
- ä½∩ ß«ºñá¡¿∩ ¿½¿ ºáúαπº¬¿ αáßΓα«óδσ ¬áαΓ ¿ πßΓá¡«ó¬¿ ¼Ñ¡ε
- ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ Σαáú¼Ñ¡Γ WM_CREATE, »ÑαѼѡ¡δÑ »«ññÑ᪬¿ ¿
- «íΩ∩ó½Ñ¡¿∩ Σπ¡¬µ¿⌐. öαáú¼Ñ¡Γ WM_CREATE ß«ºñáÑΓ τÑΓδαÑ
- ¼«¡«σα«¼¡δÑ αáßΓα«óδÑ ¬áαΓδ αẼÑα«¼ 8 σ 8 »¿¬ßѽÑ⌐, ¬«Γ«αδÑ
- íπñπΓ ¿ß»«½∞º«óáΓ∞ß∩ ¬á¬ ¬¿ßΓ¿ Φáí½«¡«ó ñ½∩ Σ«¡á «¬¡á. Ä¡ ΓᬪÑ
- ß«ºñáÑΓ ¿½¿ ºáúαπªáÑΓ Γα¿ αáßΓα«óδÑ ¬áαΓδ αẼÑα«¼ 64 σ 32
- »¿¬ßѽ∩, ¬«Γ«αδÑ íπñπΓ ¿¡ñ¿µ¿α«óáΓ∞ß∩ ó «¬¡Ñ. ä½∩ Γ«ú«, τΓ«íδ
- αáºαÑΦ¿Γ∞ »«½∞º«óáΓѽε óδíαáΓ∞ ñ½∩ »α«ß¼«Γαá αáßΓα«óπε ¬áαΓπ
- ¿½¿ Φáí½«¡, Σαáú¼Ñ¡Γ WM_CREATE ñ«íáó½∩ÑΓ ¿σ ¬ ¼Ñ¡ε Bitmap ¿
- Pattern, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿¿ ChangeMenu. ìᬫ¡Ñµ, Σαáú¼Ñ¡Γ
- πßΓá¡áó½¿óáÑΓ ¡áτá½∞¡δÑ º¡áτÑ¡¿∩ ¬¿ßΓ¿, αáßΓα«ó«⌐ ¬áαΓδ ¿
- αѪ¿¼«ó αáßΓ∩ªÑ¡¿∩ ¿ ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¿º
- ¬«Γ«α«ú« ¬«»¿απεΓß∩ αáßΓα«óδÑ ¬áαΓδ.
-
- öαáú¼Ñ¡Γ WM_CREATE ß«ºñáÑΓ τÑΓδαÑ Φáí½«¡á, ¿ß»«½∞ºπ∩
- Σπ¡¬µ¿ε CreateBitmap. Ä¡ ºáúαπªáÑΓ ñóÑ αáßΓα«óδÑ ¬áαΓδ "dog" ¿
- "cat" ¿ ß«ºñáÑΓ ΓαÑΓ∞ε, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε MakeColorBitmap,
- «»αÑñѽѡ¡πε ó »α«úαá¼¼Ñ. Å«ß½Ñ ß«ºñá¡¿∩ Φáí½«¡«ó ¿ αáßΓα«óδσ
- ¬áαΓ Σαáú¼Ñ¡Γ WM_CREATE ß«ºñáÑΓ ¡á¬½áñδóáѼδÑ ¼Ñ¡ε,
- »α¿ß«Ññ¿¡∩ÑΓ ¬ ¡¿¼ Φáí½«¡δ ¿ αáßΓα«óδÑ ¬áαΓδ ¿ ºá¼Ñ¡∩ÑΓ
- ßπΘÑßΓóπεΘ¿Ñ ¼Ñ¡ε Bitmap ¿ Pattern ¡«ó묨 ¡á¬½áñδóáÑ¼δ¼¿ ¼Ñ¡ε.
- çáΓѼ »ÑαѼѡ¡δÑ hBrush, hBitmap ¿ fStretchMode πßΓá¡áó½¿óáεΓß∩
- ó ¡áτá½∞¡δÑ º¡áτÑ¡¿∩ ¬¿ßΓ¿ Σ«¡á, αáßΓα«ó«⌐ ¬áαΓδ ¿ αѪ¿¼«ó
- αáßΓ∩ªÑ¡¿∩. ìᬫ¡Ñµ, Σαáú¼Ñ¡Γ ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- »á¼∩Γ¿, ¿º ¬«Γ«α«ú« αáßΓα«óδÑ ¬áαΓδ ¬«»¿απεΓß∩ ¡á ñ¿ß»½Ñ⌐.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_CREATE: /* ß««íΘÑ¡¿Ñ: ß«ºñáΓ∞ «¬¡« */
-
- hPattern1 = CreateBitmap(8, 8, 1, 1, (LPSTR) White);
- hPattern2 = CreateBitmap(8, 8, 1, 1, (LPSTR) Black);
- hPattern3 = CreateBitmap(8, 8, 1, 1, (LPSTR) Zigzag);
- hPattern4 = CreateBitmap(8, 8, 1, 1, (LPSTR) CrossHatch);
-
- hBitmap1 = LoadBitmap(hInst, "dog");
- hBitmap2 = LoadBitmap(hInst, "cat");
- hBitmap3 = MakeColorBitmap(hWnd);
-
- hMenuBitmap1 = LoadBitmap(hInst, "dog");
- hMenuBitmap2 = LoadBitmap(hInst, "cat");
- hMenuBitmap3 = MakeColorBitmap(hWnd);
-
- hMenu = CreateMenu();
-
- AppendMenu(hMenu, MF_STRING | MF_CHECKED, IDM_PATTERN1, "&White");
- AppendMenu(hMenu, MF_STRING, IDM_PATTERN2, "&Black");
- AppendMenu(hMenu, MF_BITMAP, IDM_PATTERN3,
- (LPSTR)(LONG)hPattern3);
- AppendMenu(hMenu, MF_BITMAP, IDM_PATTERN4,
- (LPSTR)(LONG)hPattern4);
-
- ModifyMenu(GetMenu(hWnd), 1, MF_POPUP | MF_BYPOSITION,
- (WORD)hMenu, "&Pattern");
-
-
- Windows 3.0/pg/2#3 = 102 =
-
- hMenu = CreateMenu();
-
- /* êß»«½∞º«óáΓ∞ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γ«ó ¼Ñ¡ε αáßΓα«óδÑ ¬áαΓδ */
-
- AppendMenu(hMenu, MF_BITMAP | MF_CHECKED, IDM_BITMAP1,
- (LPSTR)(LONG) hMenuBitmap1);
- AppendMenu(hMenu, MF_BITMAP, IDM_BITMAP2,
- (LPSTR)(LONG) hMenuBitmap2);
- AppendMenu(hMenu, MF_BITMAP, IDM_BITMAP3,
- (LPSTR)(LONG) hMenuBitmap3);
- ModifyMenu(GetMenu(hWnd), 0, MF_POPUP | MF_BYPOSITION,
- (WORD) hMenu, "&Bitmap");
-
- hBrush = CreatePatternBrush(hPattern1);
- fStretchMode = IDM_BLACKONWHITE;
-
- hDC = GetDC(hWnd);
- hMemoryDC = CreateCompatibleDC(hDC);
- ReleaseDC(hWnd, hDC);
- hOldBitmap = SelectObject(hMemoryDC, hBitmap1);
- GetObject(hBitmap1, 16, (LPSTR) &Bitmap);
-
- break;
-
- öπ¡¬µ¿¿ CreateBitmap ¿ LoadBitmap αáí«ΓáεΓ, ¬á¬ «»¿ßá¡« ó
- ¡áτá½Ñ ñá¡¡«⌐ ú½áóδ. öπ¡¬µ¿∩ MakeColorBitmap ß«ºñá¡á ñ½∩ ñá¡¡«⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. Ä¡á ß«ºñáÑΓ ¿ α¿ßπÑΓ µóÑΓ¡πε αáßΓα«óπε
- ¬áαΓπ, ¿ß»«½∞ºπ∩ ¼ÑΓ«ñ, «»¿ßá¡¡δ⌐ ó »π¡¬ΓÑ 11.2.2 "櫺ñá¡¿Ñ ¿
- ºá»«½¡Ñ¡¿Ñ »πßΓ«⌐ αáßΓα«ó«⌐ ¬áαΓδ". Ä»ÑαáΓ«αδ φΓ«⌐ Σπ¡¬µ¿¿
- «»¿ßá¡δ ¡¿ªÑ. çá¼ÑΓ¿¼, τΓ« ¬áªñá∩ αáßΓα«óá∩ ¬áαΓá ºáúαπªáÑΓß∩
- ¿½¿ ß«ºñáÑΓß∩ ñóáªñδ. ¥Γ« ¡Ñ«íσ«ñ¿¼«, »«ß¬«½∞¬π ¡¿¬á¬«⌐
- Ññ¿¡ßΓóÑ¡¡δ⌐ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ ¡Ñ ¼«ªÑΓ íδΓ∞ óδíαá¡ ó
- ñóπσ ¬«¡ΓѬßΓáσ πßΓα«⌐ßΓóá «ñ¡«óαѼѡ¡«. ä½∩ ¿¡ñ¿µ¿α«óá¡¿∩ ó
- «í½áßΓ¿ ¼Ñ¡ε ΓαÑíπÑΓß∩ óδí«α¬á, ¬á¬ ¿ ñ½∩ ¿¡ñ¿µ¿α«óá¡¿∩ ó
- «í½áßΓ¿ »«½∞º«óáΓѽ∩.
-
- öπ¡¬µ¿∩ CreateMenu ß«ºñáÑΓ »πßΓ«Ñ ¼Ñ¡ε ¿ ó«ºóαáΘáÑΓ Ñú«
- ñÑß¬α¿»Γ«α. öπ¡¬µ¿∩ ChangeMenu, «»αÑñѽ∩εΘá∩ ñÑß¬α¿»Γ«αδ
- Φáí½«¡«ó, ñ«íáó½∩ÑΓ Φáí½«¡δ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γ«ó ¬ ¡«ó«¼π ¼Ñ¡ε.
- MF_BITMAP π¬áºδóáÑΓ, τΓ« ñ«½ª¡á íδΓ∞ ñ«íáó½Ñ¡á αáßΓα«óá∩ ¬áαΓá.
- öπ¡¬µ¿∩ CheckMenuItem »«¼ÑΘáÑΓ ¬«¡Γα«½∞¡πε «Γ¼ÑΓ¬π α∩ñ«¼ ß
- ΓѬπΘ¿¼ φ½Ñ¼Ñ¡Γ«¼ ¼Ñ¡ε, á »«ß½Ññ¡∩∩ Σπ¡¬µ¿∩ ChangeMenu ºá¼Ñ¡∩ÑΓ
- ßπΘÑßΓóπεΘÑÑ ¼Ñ¡ε ÿáí½«¡. ÆÑ ªÑ ßá¼δÑ Φáú¿ ºáΓѼ »«óΓ«α∩εΓß∩
- ñ½∩ ¼Ñ¡ε Bitmap.
-
- öπ¡¬µ¿∩ CreateCompatibleDC ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- »á¼∩Γ¿, ¬«Γ«αδ⌐ ß«ó¼ÑßΓ¿¼ ß ñ¿ß»½ÑѼ. öπ¡¬µ¿∩ SelectObject
- óδí¿αáÑΓ ΓѬπΘπε αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ πßΓα«⌐ßΓóá »á¼∩Γ¿,
- ΓᬠτΓ« «¡á ú«Γ«óá ñ½∩ ¬«»¿α«óá¡¿∩ ¡á ñ¿ß»½Ñ⌐. öπ¡¬µ¿∩
- GetObject ¬«»¿απÑΓ αẼÑαδ αáßΓα«ó«⌐ ¬áαΓδ ó ßΓαπ¬Γπαπ Bitmap.
- çáΓѼ φΓá ßΓαπ¬Γπαá ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á ó »«ß½ÑñπεΘ¿σ
- Σπ¡¬µ¿∩σ BitBlt ¿ StretchBlt ñ½∩ «»αÑñѽѡ¿∩ Φ¿α¿¡δ ¿ óδß«Γδ
- αáßΓα«ó«⌐ ¬áαΓδ.
-
- Windows 3.0/pg/2#3 = 103 =
-
-
- öπ¡¬µ¿∩ MakeColorBitmap ß«ºñáÑΓ µóÑΓ¡πε αáßΓα«óπε ¬áαΓπ ß
- »«¼«Θ∞ε αáßΓα«ó«⌐ ¬áαΓδ, ß«ó¼ÑßΓ¿¼«⌐ ß ñ¿ß»½ÑѼ, ºáΓѼ ºáΓѼ
- α¿ßπÑΓ ¬½ÑΓ«τ¡δ⌐ µóÑΓ¡«⌐ Φáí½«¡, ¿ß»«½∞ºπ∩ ¬αáß¡πε, ºÑ½Ñ¡πε ¿
- ß¿¡εε ¬¿ßΓ¿ ¿ Σπ¡¬µ¿ε PatBlt. é ¬«¡Ñµ ¿ßσ«ñ¡«ú« Σá⌐½á
- ñ«íáó½∩ÑΓß∩ ß½ÑñπεΘÑÑ «»¿ßá¡¿Ñ Σπ¡¬µ¿¿:
-
- HBITMAP MakeColorBitmap(hWnd);
- HWND hWnd;
- {
- HDC hDC;
- HDC hMemoryDC;
- HBITMAP hBitmap;
- HBITMAP hOldBitmap;
- HBRUSH hRedBrush;
- HBRUSH hGreenBrush;
- HBRUSH hBlueBrush;
- HBRUSH hOldBrush;
-
- hDC = GetDC(hWnd);
- hMemoryDC = CreateCompatibleDC(hDC);
- hBitmap = CreateCompatibleBitmap(hDC, 64, 32);
- hOldBitmap = SelectObject(hMemoryDC, hBitmap);
- hRedBrush = CreateSolidBrush(RGB(255,0,0));
- hGreenBrush = CreateSolidBrush(RGB(0,255,0));
- hBlueBrush = CreateSolidBrush(RGB(0,0,255));
-
- PatBlt(hMemoryDC, 0, 0, 64, 32, BLACKNESS);
- hOldBrush = SelectObject(hMemoryDC, hRedBrush);
- PatBlt(hMemoryDC, 0, 0, 24, 11, PATORDEST);
- PatBlt(hMemoryDC, 40, 10, 24, 12, PATORDEST);
- PatBlt(hMemoryDC, 20, 21, 24, 11, PATORDEST);
- hOldBrush = SelectObject(hMemoryDC, hGreenBrush);
- PatBlt(hMemoryDC, 20, 0, 24, 11, PATORDEST);
- PatBlt(hMemoryDC, 0, 10, 24, 12, PATORDEST);
- PatBlt(hMemoryDC, 40, 21, 24, 11, PATORDEST);
- hOldBrush = SelectObject(hMemoryDC, hBlueBrush);
- PatBlt(hMemoryDC, 40, 0, 24, 11, PATORDEST);
- PatBlt(hMemoryDC, 20, 10, 24, 12, PATORDEST);
- PatBlt(hMemoryDC, 0, 21, 24, 11, PATORDEST);
-
- SelectObject(hMemoryDC, hOldBrush);
- DeleteObject(hRedBrush);
- DeleteObject(hGreenBrush);
- DeleteObject(hBlueBrush);
- SelectObject(hMemoryDC, hOldBitmap);
- DeleteDC(hMemoryDC);
- ReleaseDC(hWnd, hDC);
- return (hBitmap);
- }
-
- ¥Γá Σπ¡¬µ¿∩ óδ»«½¡∩ÑΓ ΓÑ ªÑ ßá¼δÑ Φáú¿, ¬«Γ«αδÑ «»¿ßá¡δ ó
- αáºñÑ½Ñ 11.2.3 "櫺ñá¡¿Ñ αáßΓα«óδσ ¬áαΓ ß »«¼«Θ∞ε Σ¿¬ß¿α«óá¡¡δσ
- ¬«ñ«ó".
-
- Windows 3.0/pg/2#3 = 104 =
-
- 11.6.6 î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_DESTROY.
-
- ÅÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¡Ñ«íσ«ñ¿¼« πñ὿Γ∞
- ß«ºñá¡¡δÑ αáßΓα«óδÑ ¬áαΓδ, Φáí½«¡δ, ¬¿ßΓ¿ ¿ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- »á¼∩Γ¿. ÉáßΓα«óδÑ ¬áαΓδ, Φáí½«¡δ ¿ ¬¿ßΓ¿ πñá½∩εΓß∩ ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ DeleteObject. è«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿ πñá½∩ÑΓß∩ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ DeleteDC. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σαáú¼Ñ¡Γ WM_DESTROY
- Γá¬, τΓ«íδ «¡ óδú½∩ñѽ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- case WM_DESTROY: /* ß««íΘÑ¡¿Ñ: αáºαπΦ¿Γ∞ «¬¡« */
- SelectObject(hMemoryDC, hOldBitmap);
- DeleteDC(hMemoryDC);
- DeleteObject(hBrush);
-
- DeleteObject(hPattern1);
- DeleteObject(hPattern2);
- DeleteObject(hPattern3);
- DeleteObject(hPattern4);
- DeleteObject(hBitmap1);
- DeleteObject(hBitmap2);
- DeleteObject(hBitmap3);
- DeleteObject(hMenuBitmap1);
- DeleteObject(hMenuBitmap2);
- DeleteObject(hMenuBitmap3);
-
- PostQuitMessage(0);
- break;
- 11.6.7 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γ«ó WM_LBUTTONUP, WM_MOUSEMOVE
- ¿ WM_LBUTTONDOWN.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γδ WM_LBUTTONUP, WM_MOUSEMOVE ¿
- WM_LBUTTONDOWN ¬ Σπ¡¬µ¿¿ «¬¡á, τΓ«íδ ñáΓ∞ 󫺼«ª¡«ßΓ∞
- »«½∞º«óáΓѽε óδíαáΓ∞ »α∩¼«πú«½∞¡¿¬, ó ¬«Γ«αδ⌐ íπñÑΓ ß¬«»¿α«óá¡á
- ΓѬπΘá∩ αáßΓα«óá∩ ¬áαΓá. ¥Γ¿ Σαáú¼Ñ¡Γδ ¿ß»«½∞ºπεΓ Σπ¡¬µ¿¿
- óδí«αá («»¿ßá¡¡δÑ ó ú½áóÑ 20 "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ
- í¿í½¿«ΓѬ¿") ñ½∩ ß«ºñá¡¿∩ »α∩¼«πú«½∞¡¿¬á óδí«αá ¿ «ßπΘÑßΓó½Ñ¡¿∩
- «íαáΓ¡«⌐ ßó∩º¿ ß »«½∞º«óáΓѽѼ. öαáú¼Ñ¡Γ WM_LBUTTONUP ºáΓѼ
- ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿ε StretchBlt ñ½∩ ºá»«½¡Ñ¡¿∩ »α∩¼«πú«½∞¡¿¬á.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_LBUTTONDOWN: /* ß««íΘÑ¡¿Ñ: ¡áªáΓá ½Ñóá∩ ¬¡«»¬á
- "¼δΦ¿" */
- bTrack = TRUE;
- SetRectEmpty((LPRECT)&Rect);
- StartSelection(hWnd, MAKEPOINT(lParam), (LPRECT) &Rect,
- (wParam & MF_SHIFT) ? (SL_EXTEND | Shape) : Shape);
- break;
-
- case WM_MOUSEMOVE: /* ß««íΘÑ¡¿Ñ: »ÑαѼÑΘÑ¡¿Ñ "¼δΦ¿" */
- if (bTrack)
-
- Windows 3.0/pg/2#3 = 105 =
-
- UpdateSelection(hWnd, MAKEPOINT(lParam), (LPRECT)&Rect,
- Shape);
- break;
-
- case WM_LBUTTONUP: /* ß««íΘÑ¡¿Ñ: «Γ»πΘÑ¡á ½Ñóá∩ ¬¡«»¬á
- "¼δΦ¿" */
- bTrack = FALSE;
- EndSelection(MAKEPOINT(lParam), (LPRECT)&Rect);
- ClearSelection(hWnd, (LPRECT)&Rect, Shape);
-
- hDC = GetDC(hWnd);
- SetStretchBltMode(hDC, fStretchMode);
- StretchBlt(hDC, Rect.left, Rect.top,
- Rect.right - Rect.left, Rect.bottom - Rect.top,
- hMemoryDC, 0, 0,
- hBitmap.bmWidth, Bitmap.bmHeight, SRCCOPY);
- ReleaseDC(hWnd, hDC);
- break;
-
- ä½∩ ¿ß»«½∞º«óá¡¿∩ φΓ¿σ Σπ¡¬µ¿⌐ Γá¬ªÑ ¡Ñ«íσ«ñ¿¼« ó¬½ετ¿Γ∞
- Σá⌐½ select.h («»αÑñѽѡ¡δ⌐ ó ú½áóÑ 20 "信ἿτÑ߬¿
- »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿"). ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ó ¡áτὫ
- Σá⌐½á αÑßπαß«ó:
-
- #include "Select.h"
-
- 11.6.8 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_RBUTTONUP.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ WM_RBUTTONUP ñ½∩
- ¿¡ñ¿µ¿α«óá¡¿∩ ΓѬπΘÑ⌐ αáßΓα«ó«⌐ ¬áαΓδ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ BitBlt.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_RBUTTONUP: /* ß««íΘÑ¡¿Ñ: «ßó«í«ªñÑ¡á »αáóá∩
- ¬¡«»¬á "¼δΦ¿" */
- hDC = GetDC(hWnd);
- BitBlt(hDC, LOWORD(lParam), HIWORD(lParam),
- Bitmap.bmWidth, Bitmap.bmHeight,
- hMemoryDC, 0, 0, SRCCOPY);
- ReleaseDC(hWnd, hDC);
- break;
- 11.6.9 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_ERASEBKGND.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ WM_ERASEBKGND ñ½∩ πóÑαÑ¡¡«ßΓ¿
- ó Γ«¼, τΓ« ¿ß»«½∞ºπÑΓß∩ óδíαá¡¡á∩ ¬¿ßΓ∞ Σ«¡á. ä«íáó∞ΓÑ
- ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_ERASEBKGND: /* ß««íΘÑ¡¿Ñ: «τ¿ßΓ¿Γ∞ Σ«¡ */
-
- UnrealizeObject(hBrush);
- hOldBrush = SelectObject(wParam, hBrush);
- GetClientRect(hWnd, (LPRECT)&Rect);
- PatBlt(wParam, Rect.left, Rect.top,
-
- Windows 3.0/pg/2#3 = 106 =
-
- Rect.right - Rect.left, Rect.bottom - Rect.top,
- PATCOPY);
- SelectObject(wParam, hOldBrush);
- return TRUE;
-
- ÅÑαѼѡ¡á∩ hOldBrush «íΩ∩ó½Ñ¡á ¬á¬ ½«¬á½∞¡á∩ »ÑαѼѡ¡á∩.
- öπ¡¬µ¿∩ UnrealizeObject πßΓá¡áó½¿óáÑΓ óδαáó¡¿óá¡¿Ñ Φáí½«¡á,
- Ñß½¿ «¬¡« »ÑαѼÑΘὫß∞. öπ¡¬µ¿∩ SelectObject πßΓá¡áó½¿óáÑΓ
- ¬¿ßΓ∞ Σ«¡á, á Σπ¡¬µ¿∩ GetClientRect «»αÑñѽ∩ÑΓ, ¬á¬á∩ τáßΓ∞
- «í½áßΓ¿ »«½∞º«óáΓѽ∩ ñ«½ª¡á íδΓ∞ ßΓÑαΓá. öπ¡¬µ¿∩ PatBlt
- ¬«»¿απÑΓ Φáí½«¡ ó ¬«ααÑ¬Γ¿απѼδ⌐ »α∩¼«πú«½∞¡¿¬. ìᬫ¡Ñµ,
- Σπ¡¬µ¿∩ SelectObject ó«ßßΓá¡áó½¿óáÑΓ »αÑñδñπΘπε ¬¿ßΓ∞.
- 11.6.10 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_COMMAND.
-
- ìÑ«íσ«ñ¿¼« ¿º¼Ñ¡¿Γ∞ Σαáú¼Ñ¡Γ WM_COMMAND ñ½∩ »«ññÑ᪬¿ ¼Ñ¡ε
- Bitmap, Pattern ¿ Mode. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿
- «¬¡á:
-
- case WM_COMMAND: /* ß««íΘÑ¡¿Ñ: ¬«¼á¡ñá Windows */
- switch (wParam) {
- case IDM_ABOUT:
- lpProcAbout = MakeProcInstance(About, hInst);
- DialogBox(hInst,
- "AboutBox",
- hWnd,
- lpProcAbout);
- FreeProcInstance(lpProcAbout);
- break;
-
- case IDM_BITMAP1:
- wPrevItem = wPrevBitmap;
- wPrevBitmap = wParam;
- GetObject(hBitmap1, 16, (LPSTR) &Bitmap);
- SelectObject(hMemoryDC, hBitmap1);
- break;
-
- case IDM_BITMAP2:
- wPrevItem = wPrevBitmap;
- wPrevBitmap = wParam;
- GetObject(hBitmap2, 16, (LPSTR) &Bitmap);
- SelectObject(hMemoryDC, hBitmap2);
- break;
-
- case IDM_BITMAP3:
- wPrevItem = wPrevBitmap;
- wPrevBitmap = wParam;
- GetObject(hBitmap3, 16, (LPSTR) &Bitmap);
- hOurBitmap = SelectObject(hMemoryDC, hBitmap3);
- break;
-
- case IDM_PATTERN1:
- wPrevItem = wPrevPattern;
-
- Windows 3.0/pg/2#3 = 107 =
-
- wPrevPattern = wParam;
- DeleteObject(hBrush);
- hBrush = CreatePatternBrush(hPattern1);
- InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
- UpdateWindow(hWnd);
- break;
-
- case IDM_PATTERN2:
- wPrevItem = wPrevPattern;
- wPrevPattern = wParam;
- DeleteObject(hBrush);
- hBrush = CreatePatternBrush(hPattern2);
- InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
- UpdateWindow(hWnd);
- break;
-
- case IDM_PATTERN3:
- wPrevItem = wPrevPattern;
- wPrevPattern = wParam;
- DeleteObject(hBrush);
- hBrush = CreatePatternBrush(hPattern3);
- InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
- UpdateWindow(hWnd);
- break;
-
- case IDM_PATTERN4:
- wPrevItem = wPrevPattern;
- wPrevPattern = wParam;
- DeleteObject(hBrush);
- hBrush = CreatePatternBrush(hPattern4);
- InvalidateRect(hWnd, (LPRECT)NULL, TRUE);
- UpdateWindow(hWnd);
- break;
-
- case IDM_BLACKONWHITE:
- wPrevItem = wPrevMode;
- wPrevMode = wParam;
- fStretchMode = BLACKONWHITE;
- break;
-
- case IDM_WHITEONBLACK:
- wPrevItem = wPrevMode;
- wPrevMode = wParam;
- fStretchMode = WHITEONBLACK;
- break;
-
- case IDM_COLORONCOLOR:
- wPrevItem = wPrevMode;
- wPrevMode = wParam;
- fStretchMode = COLORONCOLOR;
- break;
- }
- CheckMenuItem(GetMenu(hWnd), wPrevItem, MF_UNCHECKED);
-
- Windows 3.0/pg/2#3 = 108 =
-
- CheckMenuItem(GetMenu(hWnd), wParam, MF_CHECKED);
- break;
-
-
- 11.6.11 î«ñ¿Σ¿¬áµ¿∩ make-Σá⌐½á.
-
- öá⌐½ αÑßπαß«ó BITMAP.RES ºáó¿ß¿Γ «Γ Σá⌐½«ó DOG.BMP ¿
- CAT.BMP. ä½∩ Γ«ú«, τΓ«íδ íδΓ∞ πóÑαÑ¡¡δ¼¿ ó Γ«¼, τΓ« ¬«¼»¿½∩Γ«α
- αÑßπαß«ó ¼«ñ¿Σ¿µ¿απÑΓ Σá⌐½ αÑßπαß«ó ó ß½πτáÑ ¿º¼Ñ¡Ñ¡¿∩ Σá⌐½á
- CAT.BMP ¿½¿ DOG.BMP, ñ«íáó∞ΓÑ ß½ÑñπεΘ¿⌐ «»ÑαáΓ«α ¬ make-Σá⌐½π:
-
- BITMAP.RES: BITMAP.RC BITMAP.H DOG.BMP CAT.BMP
- RC -r BITMAP.RC
-
- ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞ ¬«¼á¡ñ¡πε ßΓ᫬π link ó Σá⌐½Ñ
- make ñ½∩ ó¬½ετÑ¡¿∩ í¿í½¿«ΓÑτ¡«ú« Σá⌐½á select.lib. ¥Γ«Γ Σá⌐½
- ß«ñÑαª¿Γ «íΩ∩ó½Ñ¡¿∩ ¿¼»«αΓ¿απѼδσ Σπ¡¬µ¿⌐ ñ½∩ óδí«α¬¿, ¬«Γ«αδÑ
- ¿ß»«½∞ºπεΓß∩ ß Σαáú¼Ñ¡ΓἿ WM_LBUTTONUP, WM_MOUSEMOVE ¿
- WM_LBUTTONDOWN. ü¿í½¿«ΓѬá ß«ºñáÑΓß∩ Γá¬, ¬á¬ φΓ« «»¿ßá¡« ó
- ú½áóÑ 20 "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿". ì«óá∩ ¬«¼á¡ñ¡á∩
- ßΓ᫬á link ñ«½ª¡á óδú½∩ñÑΓ∞ Γá¬:
-
- link /NOD bitmap, , , slibcew libw select.lib, bitmap.def
-
- 11.6.12 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- Å«ß½Ñ ó¡ÑßÑ¡¿∩ ¡Ñ«íσ«ñ¿¼δσ ¿º¼Ñ¡Ñ¡¿⌐ «ΓΓαá¡ß½¿απ⌐ΓÑ ¿
- ߬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π Bitmap. çá»πßΓ¿ΓÑ Windows, á
- ºáΓѼ Bitmap.
-
- àß½¿ »ÑαѼÑßΓ¿Γ∞ ¼δΦ∞, ¡áª¿¼á∩ ½Ñóπε ¬¡«»¬π, á ºáΓѼ ÑÑ
- «Γ»πßΓ¿Γ∞, Γ« »«½πτ¿¼ »α∩¼«πú«½∞¡¿¬ ó «¬¡Ñ, ó ¬«Γ«αδ⌐ ¿ íπñÑΓ
- óδóÑñÑ¡á αáßΓα«óá∩ ¬áαΓá.
-
- êß»«½∞ºπ⌐ΓÑ ¼Ñ¡ε ñ½∩ ¿º¼Ñ¡Ñ¡¿∩ Σ«¡á ¿ αѪ¿¼á αáßΓ∩ªÑ¡¿∩.
- äÑ⌐ßΓó¿Ñ αѪ¿¼á αáßΓ∩ªÑ¡¿∩ ¡áí½εñá⌐ΓÑ ¡á »α¿¼ÑαÑ αáßΓα«óδσ ¬áαΓ
- "dog" ¿ "cat".
- 11.7 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ ß«ºñáóáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞
- ¼«¡«σα«¼¡δÑ ¿ µóÑΓ¡δÑ αáßΓα«óδÑ ¬áΓδ. é Windows ¿¼ÑÑΓß∩ ñóá
- Γ¿»á αáßΓα«óδσ ¬áαΓ: á»»áαáΓ¡«-ºáó¿ß¿¼δÑ ¿
- á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ. Åα«ΘÑ óßÑú« ñ½∩ ¿ß»«½∞º«óá¡¿∩ αáßΓα«ó«⌐
- ¬áαΓδ ¡áα¿ß«óáΓ∞ ÑÑ ß »«¼«Θ∞ε SDKPaint, ñ«íáó¿Γ∞ ó Σá⌐½
- «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ ºáΓѼ ºáúαπº¿Γ∞ ÑÑ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ LoadBitmap. ê¼ÑÑΓß∩ ¡Ñ߬«½∞¬« ¼ÑΓ«ñ«ó, ¬«Γ«αδÑ
- óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ó óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ñ½∩
- ß«ºñá¡¿∩ ¿ «Γ«íαáªÑ¡¿∩ αáßΓα«óδσ ¬áαΓ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩
- »α«úαá¼¼δ. Åਪ½áñ¡δÑ »α«úαá¼¼δ ¼«úπΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ GDI
- ñ½∩ óδó«ñá α¿ß«óá¡¿∩ ¬áªñ«ú« í¿Γá. èα«¼Ñ φΓ«ú« ¼«ª¡«
- ¿¡¿µ¿á½¿º¿α«óáΓ∞ αáßΓα«óδÑ ¬áαΓδ ¼áßß¿ó«¼ í¿Γ ¿½¿ ¿ß»«½∞ºπ∩
- ßπΘÑßΓóπεΘπε á»»áαáΓ¡«-ºáó¿ß¿¼πε αáßΓα«óπε ¬áαΓπ.
-
- Windows 3.0/pg/2#3 = 109 =
-
-
- Windows »αÑñ«ßΓáó½∩ÑΓ ¡Ñ߬«½∞¬« Σπ¡¬µ¿⌐ ñ½∩ «Γ«íαáªÑ¡¿∩ ¿
- ¼á¡¿»π½¿α«óá¡¿∩ αáßΓα«ó묨 ¬áαΓἿ. éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞
- αáßΓα«óδÑ ¬áαΓδ ó ¬áτÑßΓóÑ φ½Ñ¼Ñ¡Γ«ó ¼Ñ¡ε ¿½¿ ó ¬áτÑßΓóÑ
- ¬«¡Γα«½∞¡δσ «Γ¼ÑΓ«¬ ó ¼Ñ¡ε.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñπ αáßΓα«óδσ ¬áαΓ óδ
- ¼«ªÑΓÑ »«½πτ¿Γ∞ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- öπ¡¬µ¿¿ óδí«α¬¿ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 6, "èπαß«α,
- ¼δΦ∞ ¿ ¬½áó¿áΓπαá".
-
- Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 20, "ä¿¡á-
- ¼¿τÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
-
- êß»«½∞º«óá¡¿Ñ αáßΓ- Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá: ú½áóá 7, "îÑ¡ε".
- α«óδσ ¬áαΓ ó ¼Ñ¡ε
-
- öπ¡¬µ¿¿ αáßΓα«óδσ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: ú½áóá 2,
- ¬áαΓ "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó",
- ú½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
-
- êß»«½∞º«óá¡¿Ñ "Tools": â½áóá 4, "櫺ñá¡¿Ñ ¿º«íαáªÑ¡¿⌐:
- SDKPaint SDKPaint".
-
-
-
-
- Windows 3.0/pg/2#3 = 110 =
-
- â½áóá 12. éδó«ñ ¡á »ÑτáΓ∞.
- ----------------------------------------------------------------
- ü«½∞Φ¿¡ßΓó« »α¿¬½áñ¡δσ »α«úαá¼¼ »αÑñ«ßΓáó½∩ÑΓ
- »«½∞º«óáΓѽ∩¼ 󫺼«ª¡«ßΓ∞ »«½πτÑ¡¿∩ ¡á »α¿¡ΓÑαÑ ¬«»¿⌐ óáΦ¿σ
- ñá¡¡δσ. é í«½∞Φ¿¡ßΓóÑ »α«úαá¼¼¡δσ ßαÑñ óδΦá »α¿¬½áñ¡á∩
- »α«úαá¼¼á ñ«½ª¡á ¿¼ÑΓ∞ ñѽ« ß αẽ¿τ¡δ¼¿ 󫺼«ª¡«ßΓ∩¼¿ ¿
- ΓαÑí«óá¡¿∩¼¿ αẽ¿τ¡δσ »α¿¡ΓÑα«ó. é Microsoft Windows óáΦá
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ ñ«½ª¡á ¿ß»«½∞º«óáΓ∞ ߻ѵ¿Σ¿τ¡πε ñ½∩
- ñá¡¡«ú« »α¿¡ΓÑαá ¿¡Σ«α¼áµ¿ε, «¡á »α«ßΓá »ÑτáΓáÑΓ ¡á ΓѬπΘѼ
- »α¿¡ΓÑαÑ. Windows, ñαá⌐óÑαδ »α¿¡ΓÑα«ó Windows »αÑ«íαáºπεΓ
- ºá»α«ßδ ¡á óδó«ñ ¡á »α¿¡ΓÑα óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó Γ«Γ
- ó¿ñ, ¬«Γ«αδ⌐ ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ ñá¡¡δ⌐ »α¿¡ΓÑα.
-
- é ñá¡¡«⌐ ú½áóÑ óδ ¡á⌐ñÑΓÑ ß½ÑñπεΘπε ¿¡Σ«α¼áµ¿ε:
-
- - Åα«µÑßß »ÑτáΓ¿ ó ßαÑñÑ Windows.
-
- - Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « »α¿¡ΓÑαÑ.
-
- - ÅÑτáΓ∞ ßΓ᫬¿ ΓѬßΓá.
-
- - ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ.
-
- - Äíαáí«Γ¬á «Φ¿í«¬ »ÑτáΓ¿.
-
- - ÄΓ¼Ñ¡á «»Ñαᵿ⌐ »ÑτáΓ¿.
-
- - ÅÑτáΓ∞ úαáΣ¿τÑ߬¿σ ¿º«íαáªÑ¡¿⌐ »«αµ¿∩¼¿.
-
- é ñá¡¡«⌐ ú½áóÑ Γá¬ªÑ «»¿ßá¡ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- PrintFile, ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ ¼¡«ú«Ñ ¿º «»¿ßá¡¡«ú« ó ñá¡¡«⌐
- ú½áóÑ.
- 12.1 ÅÑτáΓ∞ ó ßαÑñÑ Windows.
-
- é Windows óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ óºá¿¼«ñÑ⌐ßΓóπÑΓ
- ¡á»α∩¼πε ß »α¿¡ΓÑα«¼. é¼ÑßΓ« φΓ«ú« óδ »ÑτáΓáÑΓÑ, »«ßδ½á∩
- ¿¡Σ«α¼áµ¿ε ¬«¡ΓѬßΓπ πßΓα«⌐ßΓóá »ÑτáΓ¿. ¥Γ« «º¡áτáÑΓ, τΓ« óáΦÑ⌐
- »α«úαá¼¼Ñ ¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ßἫ⌐ αáºí¿αáΓ∞ß∩ ó ߻ѵ¿Σ¿¬Ñ
- ¬«¡¬αÑΓ¡δσ »α¿¡ΓÑα«ó.
-
- ÅÑτáΓ∞ε ó Windows π»αáó½∩εΓ Σπ¡¬µ¿¿ GDI. é «íΘѼ, »ÑτáΓ∞ ó
- Windows á¡á½«ú¿τ¡á óδó«ñπ ¡á φ¬αá¡: óδ »«½πτáÑΓÑ ñÑß¬α¿»Γ«α
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá ¿ ºáΓѼ »«ßδ½áÑΓÑ ¿¡Σ«α¼áµ¿ε φΓ«¼π
- ¬«¡ΓѬßΓπ. ä½∩ »ÑτáΓ¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á «íδτ¡« óδ»«½¡∩ÑΓ
- ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1. Åਪ½áñ¡á∩ »α«úαá¼¼á »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε « ΓѬπΘѼ
- »α¿¡ΓÑαÑ, Γá¬πε ¬á¬ Ñú« Γ¿», ñαá⌐óÑα πßΓα«⌐ßΓóá ¿ »«αΓ
- »α¿¡ΓÑαá, ¿º Σá⌐½á ¿¡¿µ¿á½¿ºáµ¿¿ WIN.INI.
-
- ¥Γá ¿¡Σ«α¼áµ¿∩ ¡Ñ«íσ«ñ¿¼á ñ½∩ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá ΓѬπΘÑú« »α¿¡ΓÑαá.
-
- Windows 3.0/pg/2#3 = 111 =
-
-
- 2. è«úñá óδ »«ßδ½áÑΓÑ ¿¡Σ«α¼áµ¿ε ¬«¡ΓѬßΓπ πßΓα«⌐ßΓóá
- »α¿¡ΓÑαá, Windows á¬Γ¿ó¿º¿απÑΓ ß»π½½Ñα »ÑτáΓ¿, «ª¿ñá∩
- óδ»«½¡Ñ¡¿∩ óáΦÑú« ºá»α«ßá ¡á »ÑτáΓ∞.
-
- 3. Åਪ½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ ñ½∩ óºá¿¼«ñÑ⌐ßΓó¿∩ ß
- ñαá⌐óÑα«¼ »α¿¡ΓÑαá π»αáó½∩εΘ¿Ñ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿.
- 12.1.1 êß»«½∞º«óá¡¿Ñ π»αáó½∩εΘ¿σ »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐.
-
- ô»αáó½∩εΘ¿Ñ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ¿ß»«½∞ºπεΓß∩ ñ½∩
- óºá¿¼«ñÑ⌐ßΓó¿∩ ß ñαá⌐óÑα«¼ »α¿¡ΓÑαá. ¥Γ¿ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
- ß««íΘáεΓ ñαá⌐óÑαπ πßΓα«⌐ßΓóá, τΓ« ¡πª¡« ñѽáΓ∞, ¿ »«½πτáεΓ
- ¿¡Σ«α¼áµ¿ε « »α¿¡ΓÑαÑ, Γá¬πε ¬á¬ αẼÑα ßΓαá¡¿µδ. ä½∩ »«ß佬¿
- π»αáó½∩εΘÑ⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ ñαá⌐óÑαπ πßΓα«⌐ßΓóá »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε Escape.
-
- ìá»α¿¼Ñα, τΓ«íδ ß««íΘ¿Γ∞ ñαá⌐óÑαπ »α¿¡ΓÑαá, τΓ« ¡Ñ«íσ«ñ¿¼«
- ¡áτáΓ∞ »ÑτáΓ∞, ¡πª¡« ß »«¼«Θ∞ε Σπ¡¬µ¿¿ Escape »«ß½áΓ∞
- π»αáó½∩εΘπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ STARTDOC. æ½ÑñπεΘ¿⌐ »α¿¼Ñα
- »«ßδ½áÑΓ π»αáó½∩εΘπε »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ STARTDOC ¬«¡ΓѬßΓπ
- »α¿¡ΓÑαá, «»αÑñѽ∩Ѽ«¼π »áαá¼ÑΓα«¼ hPrinterDC. ¥Γá π»αáó½∩εΘá∩
- »«ß½Ññ«óáΓѽ∞¡«ßΓ∞ ºá»π߬áÑΓ ºá»α«ß ¡á óδó«ñ ß ¿¼Ñ¡Ñ¼ "My Print
- Request".
-
- Escape(hPrinterDC, STARTDOC, 0, (LPSTR)"My Print Request",
- 0L);
-
- Åα¿ óδó«ñÑ ¡á »ÑτáΓ∞ óδ ß½ÑñπÑΓÑ ΓѼ ªÑ «ß¡«ó¡δ¼ »αáó¿½á¼,
- τΓ« ¿ »α¿ «ßπΘÑßΓó½Ñ¡¿¿ ñαπú«ú« óδó«ñá ß ¿ß»«½∞º«ó᡿Ѽ GDI.
- àß½¿ óδ »ÑτáΓáÑΓÑ ΓѬßΓ ¿½¿ »α¿¼¿Γ¿óδ Γ¿»á »α∩¼«πú«½∞¡¿¬«ó,
- ñπú, «¬απª¡«ßΓÑ⌐, óδ ¼«ªÑΓÑ »«ßδ½áΓ∞ ¿σ »α∩¼« ¬«¡ΓѬßΓπ
- πßΓα«⌐ßΓóá »ÑτáΓ¿. éδ ¼«ªÑΓÑ Γá¬ªÑ »«ßδ½áΓ∞ ΓѬßΓ ¿ »α¿¼¿Γ¿óδ
- ¬«¡ΓѬßΓπ πßΓα«⌐ßΓóá »á¼∩Γ¿. ¥Γ« »«ºó«½∩ÑΓ ß«ºñáóáΓ∞ ß½«ª¡«Ñ
- ¿º«íαáªÑ¡¿Ñ ¿ ºáΓѼ ¡á»ÑτáΓáΓ∞ Ñú«.
- 12.2 Å«½πτÑ¡¿Ñ ¿¡Σ«α¼áµ¿¿ « ΓѬπΘѼ »α¿¡ΓÑαÑ.
-
- ä½∩ ß«ºñá¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼á
- ¿¡Σ«α¼áµ¿∩ « ¡Ñ¼, Γá¬á∩ ¬á¬ Ñú« Γ¿» ¿ »«αΓ, ¬ ¬«Γ«α«¼π «¡
- »«ñ¬½ετÑ¡. Åα«úαá¼¼á ßαÑñδ Windows ControlPanel ñ«íáó½∩ÑΓ
- ¿¡Σ«α¼áµ¿ε « ΓѬπΘѼ »α¿¡ΓÑαÑ ¬ »«½ε "device=" ó αáºñѽÑ
- [windows] Σá⌐½á win.ini. Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ »«½πτ¿Γ∞
- φΓπ ¿¡Σ«α¼áµ¿ε ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GetProfileString. ê¡Σ«α¼áµ¿∩
- ºáΓѼ ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡á ó Σπ¡¬µ¿¿ CreateDC ñ½∩ ß«ºñá¡¿∩
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »ÑτáΓ¿ ñ½∩ ¬«¡¬αÑΓ¡«ú« »α¿¡ΓÑαá ¡á
- ¬«¡¬αÑΓ¡«¼ »«αΓ𠬫¼»∞εΓÑαá.
-
- ê¡Σ«α¼áµ¿∩ « »α¿¡ΓÑαÑ ó Σá⌐½Ñ win.ini ß«ßΓ«¿Γ ¿º ΓαÑσ
- »«½Ñ⌐:
-
- - Æ¿» ΓѬπΘÑú« »α¿¡ΓÑαá (¡á»α¿¼Ñα, "EPSON").
-
-
- Windows 3.0/pg/2#3 = 112 =
-
- - ê¼∩ ñαá⌐óÑαá ΓѬπΘÑú« »α¿¡ΓÑαá (¡á»α¿¼Ñα, "EPSON
- FX-80").
-
- - Å«αΓ, ¬ ¬«Γ«α«¼π »«ñ¬½ετÑ¡ »α¿¡ΓÑα (¡á»α¿¼Ñα, LPT1:).
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ »«½πτ¿Γ∞
- ¿¡Σ«α¼áµ¿ε « »α¿¡ΓÑαÑ ¿ αáºñѽ¿Γ∞ »«½∩ ¡á «Γñѽ∞¡δÑ ßΓ᫬¿:
-
- char pPrintInfo[80];
- PSTR lpTemp;
- PSTR lpPrintType;
- PSTR lpPrintDriver;
- PSTR lpPrintPort;
- .
- .
- .
- (1) GetProfileString("windows",
- "device",
- pPrintInfo,
- (LPSTR) NULL, 80);
- lpTemp = lpPrintType = lpPrintInfo;
- lpPrintDriver = lpPrintPort = 0;
- (2) while (*lpTemp) {
- (3) if (*lpTemp == ',') {
- *lpTemp++ = 0;
- (4) while (*lpTemp == ' ')
- lpTemp++;
- if (!lpPrintDriver)
- lpPrintDriver = lpTemp;
- else {
- lpPrintPort = lpTemp;
- break;
- }
- }
- else
- lpTemp==AnsiNext(lpText);
- }
- (5) hPr = CreateDC(lpPrintDriver, lpPrintType, lpPrintPort,
- (LPSTR) NULL);
- .
- .
- .
- }
-
- é φΓ«¼ »α¿¼ÑαÑ:
-
- 1) öπ¡¬µ¿∩ GetProfileString »«½πτáÑΓ ß«ñÑন¼«Ñ »«½∩ device=
- ¿º αáºñѽá [windows] Σá⌐½á win.ini. çáΓѼ Σπ¡¬µ¿∩ ¬«»¿απÑΓ
- ßΓ᫬π ó ¼áßß¿ó lpPrintInfo.
-
- 2) Ä»ÑαáΓ«α while ¿ß»«½∞ºπÑΓß∩ ñ½∩ αáºñѽѡ¿∩ ßΓ᫬¿ ¡á Γα¿
- «Γñѽ∞¡δσ »«½∩: Γ¿» »α¿¡ΓÑαá, ¿¼∩ ñαá⌐óÑαá »ÑτáΓ¿ ¿ »«αΓ
- »α¿¡ΓÑαá.
-
- Windows 3.0/pg/2#3 = 113 =
-
-
- 3) Å«½∩ αáºñѽ∩εΓß∩ ºá»∩Γ묨 (¿ß»«½∞ºπÑΓß∩ «»ÑαáΓ«α if ñ½∩
- »α«óÑન ¡á ºá»∩ΓδÑ ¿ ºá¼Ñ¡π ¿σ ¡π½∩¼¿, ºáóÑαΦáεΘ¿¼¿
- »«½Ñ).
-
- 4) äαπú«⌐ «»ÑαáΓ«α, while, »α«»π߬áÑΓ óßÑ ó»ÑαÑñ¿ßΓ«∩Θ¿Ñ
- »α«íѽδ ó ß½ÑñπεΘѼ »«½Ñ.
-
- èáªñδ⌐ π¬áºáΓѽ∞ - pPrintType, pPrintDriver ¿ pPrintPort -
- »«½πτáÑΓ áñαÑß ¡áτá½á ß««ΓóÑΓßΓóπεΘÑú« »«½∩.
-
- 5) ¥Γ¿ π¬áºáΓѽ¿ ºáΓѼ ¿ß»«½∞ºπεΓß∩ ó Σπ¡¬µ¿¿ CreateDC ñ½∩
- ß«ºñá¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »ÑτáΓ¿ ñ½∩ óδíαá¡¡«ú« ó
- ñá¡¡δ⌐ ¼«¼Ñ¡Γ »α¿¡ΓÑαá.
- 12.3 ÅÑτáΓ∞ ßΓ᫬¿ ΓѬßΓá.
-
- ä½∩ Γ«ú«, τΓ«íδ «Γ»ÑτáΓáΓ∞ «ñ¡π ßΓ᫬π ΓѬßΓá, ¡Ñ«íσ«ñ¿¼«
- óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1. 櫺ñáΓ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ñ½∩ »α¿¡ΓÑαá.
-
- 2. æñѽáΓ∞ ºá»α«ß ¡á »ÑτáΓ∞.
-
- 3. ìá»ÑτáΓáΓ∞ ßΓ᫬π.
-
- 4. ìáτáΓ∞ ¡«óπε ßΓαá¡¿µπ.
-
- 5. çáóÑαΦ¿Γ∞ ºá»α«ß ¡á »ÑτáΓ∞.
-
- 6. ôñ὿Γ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ «Γ»ÑτáΓáΓ∞
- Ññ¿¡ßΓóÑ¡¡πε ßΓ᫬π ΓѬßΓá ¡á »ÑτáΓáεΘѼ πßΓα«⌐ßΓóÑ Epson
- FX-80, ¬«Γ«αδ⌐ »α¿ß«Ññ¿¡Ñ¡ ¬ »«αΓπ »α¿¡ΓÑαá lpt1:
-
- (1) hPr = CreateDC("EPSON",
- "EPSON FX-80",
- "LPT1:",
- (LPSTR) NULL);
-
- if (hPr != NULL) {
- (2) Escape(hPr, STARTDOC, 4, (LPSTR) "Test", 0L);
- (3) TextOut(hPr, 10, 10, "àñ¿¡ßΓóÑ¡¡á∩ ßΓ᫬á ΓѬßΓá.", 22);
- (4) Escape(hPr, NEWFRAME, 0, 0L, 0L);
- (5) Escape(hPr, ENDDOC, 0, 0L, 0L);
- (6) DeleteDC(hPr);
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
-
- 1) öπ¡¬µ¿∩ CreateDC ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ñ½∩ »α¿¡ΓÑαá
-
- Windows 3.0/pg/2#3 = 114 =
-
- ¿ ó«ºóαáΘáÑΓ Ñú« ñÑß¬α¿»Γ«α. é ñá¡¡«¼ »α¿¼ÑαÑ φΓ«Γ
- ñÑß¬α¿»Γ«α ß«σαá¡∩ÑΓß∩ ó »ÑαѼѡ¡«⌐ hPr. Åα¿ ó맮óÑ
- Σπ¡¬µ¿¿ CreateDC »α«úαá¼¼á ñ«½ª¡á «»αÑñѽ¿Γ∞ »ÑαóδÑ Γα¿
- »áαá¼ÑΓαá, τÑΓóÑαΓδ⌐ ñ«½ªÑ¡ íδΓ∞ αáóÑ¡ 0. é ñá¡¡«¼ »α¿¼ÑαÑ
- »α«úαá¼¼á «»αÑñѽ¿½á ß½ÑñπεΘ¿Ñ »áαá¼ÑΓαδ:
-
- - ÅÑαóδ⌐ »áαá¼ÑΓα «»αÑñѽ∩ÑΓ ¿¼∩ ñαá⌐óÑαá πßΓα«⌐ßΓóá
- "EPSON".
-
- - éΓ«α«⌐ »áαá¼ÑΓα «»αÑñѽ∩ÑΓ ¿¼∩ ñαá⌐óÑαá πßΓα«⌐ßΓóá
- "EPSON FX-80".
-
- - ÆαÑΓ¿⌐ »áαá¼ÑΓα «»αÑñѽ∩ÑΓ »«αΓ »α¿¡ΓÑαá "LPT1:".
-
- - ū߽Ññ¡¿⌐ »áαá¼ÑΓα «»αÑñѽ∩ÑΓ, ¬á¬ »α¿¡ΓÑα ñ«½ªÑ¡ íδΓ∞
- ¿¡¿µ¿á½¿º¿α«óá¡; NULL ߻ѵ¿Σ¿µ¿απÑΓ ¿¡¿µ¿á½¿ºáµ¿ε »«
- π¼«½τá¡¿ε. (é ú½áóÑ 17 "Åáαá¼ÑΓαδ »α¿¡ΓÑαá" «»¿ßá¡« ¬á¬
- πßΓá¡«ó¿Γ∞ ñαπú¿Ñ »áαá¼ÑΓαδ.)
-
- 2) Åáαá¼ÑΓα STARTDOC, ¿ß»«½∞ºπѼδ⌐ ó Σπ¡¬µ¿¿ Escape, ñѽáÑΓ
- ºá»α«ß ¡á »ÑτáΓ∞. ê¼∩ "Test" ¿ß»«½∞ºπÑΓß∩ »α«úαá¼¼«⌐
- íπΣÑα¿ºáµ¿¿ ñ½∩ ¿ñÑ¡Γ¿Σ¿¬áµ¿¿ ºá»α«ßá. äαπú¿Ñ »áαá¼ÑΓαδ ¡Ñ
- ¿ß»«½∞ºπεΓß∩, ΓᬠτΓ« «¡¿ πßΓá¡áó½¿óáεΓß∩ ó ¡π½∞.
-
- 3) öπ¡¬µ¿∩ TextOut ¬«»¿απÑΓ ßΓ᫬π ΓѬßΓá ¡á »ÑτáΓ∞. æΓ᫬á
- íπñÑΓ αẼÑΘáΓ∞ß∩, ¡áτ¿¡á∩ ß ¬««αñ¿¡áΓ (10, 10) ¡á íπ¼áúÑ
- »ÑτáΓáεΘÑú« πßΓα«⌐ßΓóá (¬««αñ¿¡áΓδ »α¿¡ΓÑαá óßÑúñá íÑαπΓß∩
- «Γ¡«ß¿Γѽ∞¡« óÑασ¡Ñú« ½Ñó«ú« πú½á íπ¼áú¿). àñ¿¡¿µδ
- ¿º¼ÑαÑ¡¿∩ »« π¼«½τá¡¿ε - »¿¬ßѽ¿ »α¿¡ΓÑαá.
-
- 4) Åáαá¼ÑΓα NEWFRAME ºá¬á¡τ¿óáÑΓ ßΓαá¡¿µπ ¿ ß¿ú¡á½¿º¿απÑΓ
- »ÑτáΓáεΘѼπ πßΓα«⌐ßΓóπ »α«ñó¿¡πΓ∞ß∩ ¬ ß½ÑñπεΘÑ⌐ ßΓαá¡¿µÑ.
-
- 5) Åáαá¼ÑΓα ENDDOC ß¿ú¡á½¿º¿απÑΓ « ºáóÑαΦÑ¡¿¿ ºá»α«ßá ¡á
- »ÑτáΓ∞.
-
- 6) öπ¡¬µ¿∩ DeleteDC πñá½∩ÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »ÑτáΓ¿.
-
- Åα¿¼Ñτá¡¿Ñ: ìѽ∞º∩ «ª¿ñáΓ∞, τΓ« ßΓ᫬á ΓѬßΓá íπñÑΓ
- «Γ»ÑτáΓá¡á ¡Ñ¼Ññ½Ñ¡¡«. Åα«úαá¼¼á íπΣÑα¿ºáµ¿¿ ß«íÑαÑΓ óßε
- óδó«ñ¿¼πε ¡á »α¿¡ΓÑα ¿¡Σ«α¼áµ¿ε »ÑαÑñ ÑÑ »«ß佬«⌐ ¡á »ÑτáΓ∞,
- ΓᬠτΓ« Σá¬Γ¿τÑ߬¿ »ÑτáΓ∞ ¡Ñ ¡áτ¡ÑΓß∩ ñ« «íαáí«Γ¬¿ »«ß½Ññ¡Ñú«
- ENDDOC.
- 12.4 ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ.
-
- ÅÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ á¡á½«ú¿τ¡á »ÑτáΓ¿ ßΓ᫬¿ ΓѬßΓá.
- ä½∩ óδó«ñá ¡á »ÑτáΓ∞ αáßΓα«ó«⌐ ¬áαΓδ ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞
- ß½ÑñπεΘÑÑ:
-
- 1. 櫺ñáΓ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬«Γ«αδ⌐ ß«ó¼ÑßΓ¿¼ ß
- αáßΓα«ó«⌐ ¬áαΓ«⌐.
-
-
- Windows 3.0/pg/2#3 = 115 =
-
- 2. çáúαπº¿Γ∞ αáßΓα«óπε ¬áαΓπ ¿ óδíαáΓ∞ ÑÑ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá »á¼∩Γ¿.
-
- 3. çá»πßΓ¿Γ∞ ºá»α«ß ¡á »ÑτáΓ∞.
-
- 4. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε BitBlt ñ½∩ ¬«»¿α«óá¡¿∩ αáßΓα«ó«⌐
- ¬áαΓδ ¿º ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡á »ÑτáΓ∞.
-
- 5. çáóÑαΦ¿Γ∞ ºá»α«ß ¡á »ÑτáΓ∞.
-
- 6. ôñ὿Γ∞ αáßΓα«óπε ¬áαΓπ ¿º óδí«α¬¿ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá
- »á¼∩Γ¿ ¿ πñ὿Γ∞ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ «Γ»ÑτáΓáΓ∞
- αáßΓα«óπε ¬áαΓπ ß ¿¼Ñ¡Ñ¼ "dog", ¬«Γ«αá∩ íδ½á ñ«íáó½Ñ¡á ¬ Σá⌐½π
- αÑßπαß«ó:
-
- HDC hDC;
- HDC hMemoryDC;
- HDC hPr;
- BITMAP Bitmap;
- .
- .
- .
- (1) hDC = GetDC(hWnd);
- hMemoryDC = CreateCompatibleDC(hDC);
- ReleaseDC(hWnd, hDC);
-
- (2) hBitmap = LoadBitmap(hInstance, "dog");
- (3) GetObject(hBitmap, (LPBITMAP) &Bitmap);
- (4) hOldBitmap = SelectObject(hMemoryDC, hBitmap);
-
- (5) hPr = CreateDC("EPSON",
- "EPSON FX-80",
- "LPT1:",
- (LPSTR) NULL);
-
- if (hPr != NULL) {
- Escape(hPr, STARTDOC, 4, (LPSTR) "Dog", 0L);
- (6) BitBlt(hPr, 10, 30,
- Bitmap.bmWidth,
- Bitmap.bmHeigt,
- hMemDC, 0, 0, SRCCOPY);
- (7) Escape(hPr, NEWFRAME, 0, 0L, 0L);
- Escape(hPr, ENDDOC, 0, 0L, 0L);
- DeleteDC(hPr);
- }
-
- (8) SelectObject(hMemoryDC, hOldBitmap);
- DeleteDC(hMemoryDC);
- DeleteObject(hBitmap);
-
- 1) é ñá¡¡«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ CreateCompatibleDC ß«ºñáÑΓ
-
- Windows 3.0/pg/2#3 = 116 =
-
- ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »á¼∩Γ¿, ¬«Γ«αδ⌐ ß«ó¼ÑßΓ¿¼ ß ¬«¡ΓѬßΓ«¼
- «Γ«íαáªÑ¡¿∩ ΓѬπΘÑú« «¬¡á. öπ¡¬µ¿¿ GetDC ¿ ReleaseDC
- ß½πªáΓ ñ½∩ »«½πτÑ¡¿∩ ¿ «ßó«í«ªñÑ¡¿∩ ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩.
-
- 2) öπ¡¬µ¿∩ LoadBitmap ºáúαπªáÑΓ αáßΓα«óπε ¬áαΓπ ¿º Σá⌐½á
- αÑßπαß«ó.
-
- 3) öπ¡¬µ¿∩ GetObject ¡áσ«ñ¿Γ ¿¡Σ«α¼áµ¿ε « αáßΓα«ó«⌐ ¬áαΓÑ,
- Γá¬πε, ¡á»α¿¼Ñα, ¬á¬ ÑÑ óδß«Γá ¿ Φ¿α¿¡á. ¥Γ¿ º¡áτÑ¡¿∩
- ¿ß»«½∞ºπεΓß∩ »«ºªÑ ó Σπ¡¬µ¿¿ BitBlt.
-
- 4) öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ αáßΓα«óπε ¬áαΓπ ó ¬«¡ΓѬßΓÑ
- πßΓα«⌐ßΓóá »á¼∩Γ¿.
-
- 5) Ä»ÑαáΓ«αδ ºá»α«ßá ¡á »ÑτáΓ∞ ¿ñÑ¡Γ¿τ¡δ Γᬫóδ¼ »α¿ ºá»α«ßÑ
- ¡á »ÑτáΓ∞ «ñ¡«⌐ ßΓ᫬¿ ΓѬßΓá.
-
- 6) ä½∩ óδó«ñá αáßΓα«ó«⌐ ¬áαΓδ ¡á »α¿¡ΓÑα ¿ß»«½∞ºπÑΓß∩ Σπ¡¬µ¿∩
- BitBlt. öπ¡¬µ¿∩ BitBlt ¬«»¿απÑΓ αáßΓα«óπε ¬áαΓπ ¿º
- ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »á¼∩Γ¿ ¡á »ÑτáΓ∞, »«¼ÑΘá∩ αáßΓα«óπε
- ¬áαΓπ, ¡áτ¿¡á∩ ß ¬««αñ¿¡áΓδ (10, 30). öπ¡¬µ¿∩ BitBlt
- ¿ß»«½∞ºπÑΓß∩ ó¼ÑßΓ« Σπ¡¬µ¿¿ TextOut ó »αÑñδñπΘѼ »α¿¼ÑαÑ.
-
- 7) Ä»ÑαáΓ«αδ, »«ßδ½áεΘ¿Ñ π»αáó½∩εΘ¿Ñ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿
- NEWFRAME ¿ ENDDOC, ¿ñÑ¡Γ¿τ¡δ ¿ß»«½∞ºπÑ¼δ¼ ó »αÑñδñπΘѼ
- »α¿¼ÑαÑ.
-
- 8) Å«ß½Ñ ºáóÑαΦÑ¡¿∩ ºá»α«ßá ¡á »ÑτáΓ∞ Σπ¡¬µ¿∩ SelectObject ¿
- DeleteDC ¿ß»«½∞ºπεΓß∩ ñ½∩ πñá½Ñ¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ¿º
- óδí«α¬¿ ¿ πñá½Ñ¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »á¼∩Γ¿. ū߬«½∞¬π
- αáßΓα«óá∩ ¬áαΓá í«½∞ΦÑ ¡Ñ ¡πª¡á, Σπ¡¬µ¿∩ DeleteObject
- πñá½∩ÑΓ ÑÑ ¿º »á¼∩Γ¿.
- 12.5 Äíαáí«Γ¬á «Φ¿í«¬ ó« óαѼ∩ »ÑτáΓ¿.
-
- ò«Γ∩ GDI ¿ »α«úαá¼¼á íπΣÑα¿ºáµ¿¿ »δΓáεΓß∩ ß««íΘ¿Γ∞
- »«½∞º«óáΓÑ½ε « óßÑσ «Φ¿í¬áσ »ÑτáΓ¿, ¡Ñ«íσ«ñ¿¼« »«ñú«Γ«ó¿Γ∞
- »α¿¬½áñ¡πε »α«úαá¼¼π ñ½∩ »α¿Ñ¼á ß««íΘÑ¡¿⌐ « »ÑαÑ»«½¡Ñ¡¿¿
- ñ¿ß¬«ó«⌐ ¿½¿ «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿. è«úñá »α«¿ßσ«ñ¿Γ «Φ¿í¬á ó«
- óαѼ∩ «íαáí«Γ¬¿ «Γñѽ∞¡«⌐ π»αáó½∩εΘÑ⌐ »«ß½Ññ«óáΓѽ∞¡«ßΓ¿, Γᬫ⌐
- ¬á¬ STARTDOC ¿½¿ NEWFRAME, Σπ¡¬µ¿∩ Escape ó«ºóαáΘáÑΓ º¡áτÑ¡¿Ñ,
- ¼Ñ¡∞ΦÑÑ ¡π½∩. ÄΦ¿í¬¿ óδσ«ñá ºá »αÑñѽδ ñ¿ß¬«ó«⌐ ¿½¿ «»ÑαáΓ¿ó¡«⌐
- »á¼∩Γ¿ «íδτ¡« »α«¿ßσ«ñ∩Γ »α¿ αáí«ΓÑ π»αáó½∩εΘÑ⌐
- »«ß½Ññ«óáΓѽ∞¡«ßΓ¿ NEWFRAME. é φΓ«¼ ß½πτáÑ ó«ºóαáΘáѼ«Ñ
- º¡áτÑ¡¿Ñ ó¬½ετáÑΓ í¿Γ SP_NOTREPORTED. àß½¿ í¿Γ «τ¿ΘÑ¡, º¡áτ¿Γ
- GDI πªÑ πóÑñ«¼¿½« »«½∞º«óáΓѽ∩. àß½¿ í¿Γ πßΓá¡«ó½Ñ¡, »α«úαá¼¼á
- ñ«½ª¡á πóÑñ«¼¿Γ∞ »«½∞º«óáΓѽ∩. Äíδτ¡« í¿Γ πßΓá¡áó½¿óáÑΓß∩ »α¿
- «íΘÑ⌐ «Φ¿í¬Ñ óδσ«ñá ºá »αÑñÑ½δ »α«ßΓαá¡ßΓóá ñ¿ß¬«ó«⌐ ¿½¿
- «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ß½ÑñπÑΓ
- «íαáíáΓδóáΓ∞ ΓÑ «Φ¿í¬¿ ó« óαѼ∩ »ÑτáΓ¿, « ¬«Γ«αδσ ¡Ñ
- ß««íΘáÑΓß∩:
-
- Windows 3.0/pg/2#3 = 117 =
-
-
- int status;
- .
- .
- .
- status = Escape(hPrDC, NEWFRAME, 0, 0L, 0L);
-
- (1) if (status < 0) { /* «Φ¿í¬á, « ¬«Γ«α«⌐
- ¡Ñ ß««íΘáÑΓß∩? */
- if (status) { /* ñá */
- (2) switch (status) {
- case SP_OUTOFDISK:
- /* ¿¡Σ«α¼¿α«óáΓ∞ »«½∞º«óáΓѽ∩ «
- 󫺡¿¬ΦÑ⌐ ß¿Γπᵿ¿ ¿ óδ»«½¡¿Γ∞
- ¡Ñ«íσ«ñ¿¼δÑ ñÑ⌐ßΓó¿∩ */
- break;
- case SP_OUTOFMEMORY:
- /* ¿¡Σ«α¼¿α«óáΓ∞ »«½∞º«óáΓѽ∩ «
- 󫺡¿¬ΦÑ⌐ ß¿Γπᵿ¿ ¿ óδ»«½¡¿Γ∞
- ¡Ñ«íσ«ñ¿¼δÑ ñÑ⌐ßΓó¿∩ */
- break;
- default:
- /* ¿¡Σ«α¼¿α«óáΓ∞ »«½∞º«óáΓѽ∩ «
- 󫺡¿¬ΦÑ⌐ ß¿Γπᵿ¿ ¿ óδ»«½¡¿Γ∞
- ¡Ñ«íσ«ñ¿¼δÑ ñÑ⌐ßΓó¿∩ */
- break;
- }
- }
- (3) else /* ß««íΘáÑΓß∩, τΓ« ¡Ñíσ«ñ¿¼« ñá½∞¡Ñ⌐ΦÑÑ ñÑ⌐ßΓ-
- ó¿Ñ */
- switch (status | SP_NOTREPORTED) {
- case SP_OUTOFDISK:
- /* óδ»«½¡¿Γ∞ ¡Ñ«íσ«ñ¿¼πε «íαáí«Γ¬π */
- break;
- case SP_OUTOFMEMORY:
- /* óδ»«½¡¿Γ∞ ¡Ñ«íσ«ñ¿¼πε «íαáí«Γ¬π */
- break;
- }
- }
-
- é φΓ«¼ »α¿¼ÑαÑ:
-
- 1) ÅÑαóδ⌐ «»ÑαáΓ«α if »α«óÑα∩ÑΓ ó«ºóαáΘáѼ«Ñ º¡áτÑ¡¿Ñ, ¼Ñ¡∞ΦÑ
- ½¿ «¡« 0 ¿ πßΓá¡«ó½Ñ¡ ½¿ í¿Γ SP_NOTREPORTED. (àß½¿ í¿Γ
- SP_NOTREPORTED πßΓá¡«ó½Ñ¡, Γ« »«½∞º«óáΓѽ∞ ¡Ñ íδ½
- »α«¿¡Σ«α¼¿α«óá¡ «í «Φ¿í¬Ñ. àß½¿ í¿Γ SP_NOTREPORTED ¡Ñ
- πßΓá¡«ó½Ñ¡, Γ« »«½∞º«óáΓѽ∞ »«½πτ¿½ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.)
-
- 2) é ñá¡¡«¼ »α¿¼ÑαÑ «»ÑαáΓ«α switch ¿ß»«½∞ºπÑΓß∩ ñ½∩
- óδ»«½¡Ñ¡¿∩ ߻ѵ¿á½∞¡δσ ñÑ⌐ßΓó¿⌐ ¡á «Φ¿í¬¿ SP_OUTOFDISK ¿
- SPOUTOFMEMORY. ä½∩ óßÑσ «ßΓá½∞¡δσ ¡Ñß««íΘá∩Ѽδσ «Φ¿í«¬
- óδ»«½¡∩ÑΓß∩ «íδτ¡«Ñ ß««íΘÑ¡¿Ñ «í «Φ¿í¬Ñ.
-
-
- Windows 3.0/pg/2#3 = 118 =
-
- 3) àß½¿ í¿Γ SP_NOREPORTED αáóÑ¡ 0, Γ« Windows πªÑ
- »α«¿¡Σ«α¼¿α«óá½á »«½∞º«óáΓѽ∩ « 󫺡¿¬ΦÑ⌐ «Φ¿í¬Ñ. é φΓ«¼
- ß½πτáÑ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ »α«ßΓ« óδ»«½¡¿Γ∞
- ¡Ñ«íσ«ñ¿¼πε «íαáí«Γ¬π «Φ¿í¬¿.
-
- é í«½∞Φ¿¡ßΓóÑ ß½πτáÑó »αáó¿½∞¡δ¼ «ΓóÑΓ«¼ ¡á ¡Ñß««íΘáѼπε
- «Φ¿í¬π íπñÑΓ ¿¡ñ¿µ¿α«óá¡¿Ñ »á¡Ñ½¿ ß««íΘÑ¡¿⌐, »«∩ß¡∩εΘÑ⌐ ß¼δß½
- «Φ¿í¬¿, ¿ ºáóÑαΦÑ¡¿Ñ ºá»α«ßá ¡á »ÑτáΓ∞. àß½¿ «í «Φ¿í¬Ñ πªÑ
- ß««íΘὫß∞, ¼«ª¡« ºáóÑαΦ¿Γ∞ ºá»α«ß, á ºáΓѼ »«óΓ«α¡« óδñáΓ∞ Ñú«
- »«ß½Ñ «ΓóÑñÑ¡¿∩ ñ«»«½¡¿Γѽ∞¡«ú« ¼ÑßΓá ¡á ñ¿ß¬«ó«⌐ ¿½¿
- «»ÑαáΓ¿ó¡«⌐ »á¼∩Γ¿.
- 12.6 ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á óßÑúñá ñ«½ª¡á ñáΓ∞ »«½∞º«óáΓѽε Φá¡ß
- «Γ¼Ñ¡¿Γ∞ ñ½¿Γѽ∞¡πε «»Ñαáµ¿ε »ÑτáΓ¿. ä½∩ φΓ«ú« »α«úαá¼¼á ¼«ªÑΓ
- ß«ºñáΓ∞ ¡Ñ¼«ñá½∞¡πε »á¡Ñ½∞ ñ¿á½«úá Abort, ¬«úñá ¡áτ¿¡áÑΓß∩
- «»Ñαᵿ∩ »ÑτáΓ¿. Åα«úαá¼¼á Γá¬ªÑ ñ«½ª¡á «»αÑñѽ¿Γ∞ Σπ¡¬µ¿ε
- »αÑαδóá¡¿∩, ¬«Γ«αá∩ íπñÑΓ «íαáíáΓδóáΓ∞ ß««íΘÑ¡¿∩ ñ½∩ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ó« óαѼ∩ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ »ÑτáΓ¿.
-
- ä½∩ ß«ºñá¡¿∩ »á¡Ñ½¿ ñ¿á½«úá, ¬«Γ«αá∩ »«ºó«½¿Γ »«½∞º«óáΓѽε
- »αÑαóáΓ∞ «»Ñαáµ¿ε »ÑτáΓ¿, ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1. ä«íáó∞ΓÑ «»αÑñѽѡ¿Ñ Φáí½«¡á »á¡Ñ½¿ ñ¿á½«úá Abort ¬
- Σá⌐½π «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- 2. é ΓѬßΓÑ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ß«ºñá⌐ΓÑ Σπ¡¬µ¿ε
- π»αáó«½Ñ¡¿∩ »á¡Ñ½∞ε ñ¿á½«úá AbortDlg.
-
- 3. é ΓѬßΓÑ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ß«ºñá⌐ΓÑ Σπ¡¬µ¿ε Abort
- ñ½∩ «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »á¡Ñ½¿ ñ¿á½«úá Abort.
-
- 4. î«ñ¿Σ¿µ¿απ⌐ΓÑ »α«µÑñπαπ »ÑτáΓ¿ Γᬿ¼ «íαẫ¼, τΓ«íδ «¡á
- óδó«ñ¿½á »á¡Ñ½∞ ñ¿á½«úá AbortDlg ¿ «íαáíáΓδóá½á
- ß««íΘÑ¡¿∩.
-
- é ß½ÑñπεΘ¿σ αáºñѽáσ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
-
- 12.6.1 Ä»αÑñѽѡ¿Ñ »á¡Ñ½¿ ñ¿á½«úá.
-
- é Σá⌐½ «»¿ßá¡¿∩ αÑßπαß«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ñ«íáó∞ΓÑ
- Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá AbortDlg. ìá»α¿¼Ñα:
-
- AbortDlg DIALOG 20, 20, 90, 64
- STYLE WS_NODALFRAME | WS_SYSMENU | WS_CAPTION
- CAPTION "Print File"
- BEGIN
- DefPushButton "Cancel" IDCANCEL 29, 44, 32, 14,
- WS_GROUP
- Ctext "Sending", -1, 0, 8, 90, 8
- Ctext "text", ID_FILENAME 0, 18, 90, 8
- Ctext "to printer spooler", -1, 0, 28, 90, 8
- END
-
- Windows 3.0/pg/2#3 = 119 =
-
- 12.6.2 Ä»αÑñѽѡ¿Ñ Σπ¡¬µ¿¿ »á¡Ñ½¿ ñ¿á½«úá.
-
- é ΓѬßΓ óáΦÑ⌐ »α«úαá¼¼δ ñ«íáó∞ΓÑ Σπ¡¬µ¿ε Abort ñ½∩
- «íαáí«Γ¬¿ ß««íΘÑ¡¿⌐ »á¡Ñ½¿ ñ¿á½«úá AbortDlg. öπ¡¬µ¿∩ »á¡Ñ½¿
- ñ¿á½«úá Abort ñ«½ª¡á «íαáíáΓδóáΓ∞ ß««íΘÑ¡¿∩ WM_INITDIALOG ¿
- WM_COMMAND. ä½∩ Γ«ú«, τΓ«íδ ñáΓ∞ 󫺼«ª¡«ßΓ∞ »«½∞º«óáΓѽε
- óδíαáΓ∞ ¬½áó¿Φπ ÄΓ¼Ñ¡¿Γ∞, Σπ¡¬µ¿∩ ºáσóáΓδóáÑΓ óó«ñ »α¿
- ¿¡¿µ¿á½¿ºáµ¿¿ »á¡Ñ½¿ ñ¿á½«úá. çáΓѼ «¡á ¿ú¡«α¿απÑΓ óßÑ
- ß««íΘÑ¡¿∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ óßΓαÑΓ¿Γß∩ ß««íΘÑ¡¿Ñ WM_COMMAND.
- éó«ñ ¬«¼á¡ñδ ºáßΓáó½∩ÑΓ Σπ¡¬µ¿ε αáºαπΦ¿Γ∞ «¬¡« ¿ πßΓá¡«ó¿Γ∞
- Σ½áú ßíα«ßá ó º¡áτÑ¡¿Ñ TRUE. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ
- »«¬áºá¡δ «»ÑαáΓ«αδ, ΓαÑíπѼδÑ ñ½∩ Σπ¡¬µ¿¿ ñ¿á½«úá:
-
- BOOL bAbort = FALSE;
- .
- .
- .
- int FAR PASCAL AbortDlg(hWnd, msg, wParam, lParam)
- HWND hWnd;
- unsigned msg;
- WORD wParam;
- LONG lParam;
- {
- /* «Γ߽Ѫ¿óá¡¿Ñ ¼∩ú¬«⌐ ¬½áó¿Φ¿ Cancel ¿ ¬½áó¿Φ
- ESCAPE, RETURN ¿ SPACE BAR */
- if (msg == WM_COMMAND) {
- /* »«½∞º«óáΓѽ∞ »αÑαóá½ «»Ñαᵿε */
- bAbort = TRUE;
- /* αáºαπΦÑ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá Abort */
- DestroyWindow(hWnd);
- return (TRUE);
- }
-
- else if (msg == WM_INITDIALOG) {
- /* ¡Ñ«íσ«ñ¿¼ ºáσóáΓ óó«ñá ñ½∩ ¿¡Σ«α¼áµ¿¿, óó«ñ¿¼«⌐
- »«½∞º«óáΓѽѼ */
- SetFocus(hWnd);
- return (TRUE);
- }
- return (FALSE);
- }
- 12.6.3 öπ¡¬µ¿∩ »αÑαδóá¡¿∩ »ÑτáΓ¿.
-
- é ΓѬßΓÑ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ «»αÑñѽ¿ΓÑ Σπ¡¬µ¿ε «íαáí«Γ¬¿
- ß««íΘÑ¡¿⌐ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá Abort.
-
- öπ¡¬µ¿∩ »αÑαδóá¡¿∩ »«½πτáÑΓ ß««íΘÑ¡¿∩ ¿º «τÑαÑñ¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ «íαáíáΓδóáÑΓ ¿σ, Ñß½¿ «¡¿ ¡á»αáó½Ñ¡δ
- »á¡Ñ½¿ ñ¿á½«úá Abort. öπ¡¬µ¿∩ »α«ñ«½ªáÑΓ µ¿¬½ ñ« ΓÑσ »«α, »«¬á
- «¡á ¡Ñ »«½πτ¿Γ ß««íΘÑ¡¿Ñ WM_DESTROY, ¿½¿ ñ« ºáóÑαΦÑ¡¿∩ «»Ñαᵿ¿
-
- Windows 3.0/pg/2#3 = 120 =
-
- »ÑτáΓ¿.
-
- ìÑ«íσ«ñ¿¼«, τΓ«íδ »α«úαá¼¼á, óδ»«½¡∩εΘá∩ ñ½¿Γѽ∞¡δÑ
- «»Ñαᵿ¿ »ÑτáΓ¿, »ÑαÑñá½á Σπ¡¬µ¿ε »αÑαδóá¡¿∩ ó GDI ñ½∩
- π»αáó½Ñ¡¿∩ ¡Ñ«íδτ¡δ¼¿ ß¿Γπᵿ∩¼¿, »«∩ó½∩εΘ¿¼¿ß∩ ó« óαѼ∩
- «»Ñαᵿ⌐ »ÑτáΓ¿. Äíδτ¡« 󫺡¿¬áÑΓ ß¿Γπᵿ∩, ¬«úñá «»Ñαᵿ∩
- »ÑτáΓ¿ ºá»«½¡∩ÑΓ ñ«ßΓπ»¡«Ñ ñ¿ß¬«ó«Ñ »α«ßΓαá¡ßΓó« »αѪñÑ, τѼ
- »α«úαá¼¼á íπΣÑα¿ºáµ¿¿ ¼«ªÑΓ ß¬«»¿α«óáΓ∞ ñá¡¡δÑ ¡á »ÑτáΓ∞.
- ū߬«½∞¬π »α«úαá¼¼á íπΣÑα¿ºáµ¿¿ ¼«ªÑΓ »α«ñ«½ªáΓ∞ »ÑτáΓáΓ∞ ñáªÑ
- ó Γ«¼ ß½πτáÑ, ¬«úñá ñ¿ß¬«ó«Ñ »α«ßΓαá¡ßΓó« ºá»«½¡Ñ¡«, GDI
- óδºδóáÑΓ Σπ¡¬µ¿ε »αÑαδóá¡¿∩ ñ½∩ »α«óÑન, σ«τÑΓ ½¿ »α¿¬½áñ¡á∩
- »α«úαá¼¼á «Γ¼Ñ¡¿Γ∞ «»Ñαáµ¿ε »ÑτáΓ¿ ¿½¿ »α«ßΓ« «ª¿ñáÑΓ, »«¬á
- «ßó«í«ñ¿Γß∩ ¼ÑßΓ« ¡á ñ¿ß¬Ñ.
-
- ä½∩ «»αÑñѽѡ¿∩ Σπ¡¬µ¿¿ »αÑαδóá¡¿∩ »ÑτáΓ¿ ¿ß»«½∞ºπ⌐ΓÑ
- Σπ¡¬µ¿ε MakeProcInstance ñ½∩ ß«ºñá¡¿∩ áñαÑßá φ¬ºÑ¼»½∩αá
- »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿:
-
- lpAbortProc=MakeProcInstance(AbortProc, hInst);
-
- çáΓѼ ó맮ó¿ΓÑ Σπ¡¬µ¿ε Escape, »ÑαÑñáó Ñ⌐ »áαá¼ÑΓαδ
- SETABORTPROC ¿ áñαÑß Σπ¡¬µ¿¿ Abort:
-
- Escape (hDC, SETABORTPROC, 0, lpAbortProc, 0L)
-
- çáΓѼ GDI íπñÑΓ óδºδóáΓ∞ Σπ¡¬µ¿ε »αÑαδóá¡¿∩ ó« óαѼ∩
- íπΣÑα¿ºáµ¿¿. öπ¡¬µ¿∩ ñ«½ª¡á ¿¼ÑΓ∞ ß½ÑñπεΘÑÑ «»¿ßá¡¿Ñ:
-
- int FAR PASCAL AbortProc(hPr, Code)
- (1) HDC hPr;
- (2) int Code;
-
- úñÑ:
-
- 1) hPr - φΓ« ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »ÑτáΓ¿.
-
- 2) Code «»αÑñѽ∩ÑΓ »α¿α«ñπ ó맮óá. Ä¡ ¼«ªÑΓ »α¿¡¿¼áΓ∞ «ñ¡« ¿º
- ß½ÑñπεΘ¿σ º¡áτÑ¡¿⌐:
-
- ç¡áτÑ¡¿Ñ ÄÑ»¿ßá¡¿Ñ
- ──────────────────────────────────────────────────────────
- SP_OUTOFDISK Åα«úαá¼¼á íπΣÑα¿ºáµ¿¿ ¿ßτÑα»á½á óÑß∞
- ºá»áß ñ¿ß¬«ó«ú« »α«ßΓαá¡ßΓóá ó« óαѼ∩
- íπΣÑα¿ºáµ¿¿ Σá⌐½á ñá¡¡δσ. Ä»Ñαᵿ∩ »Ñ-
- τáΓ¿ íπñÑΓ »α«ñ«½ªÑ¡á, Ñß½¿ »α«úαá¼¼á
- ñ«ªñÑΓß∩ «ßó«í«ªñÑ¡¿∩ »α«ßΓαá¡ßΓóá ¡á
- ñ¿ß¬Ñ.
-
- 0 Åα«úαá¼¼á íπΣÑα¿ºáµ¿¿ »α«ñ«½ªáÑΓß∩ íѺ
- «Φ¿í¬¿.
- ──────────────────────────────────────────────────────────
-
- èá¬ Γ«½∞¬« Σπ¡¬µ¿∩ »αÑαδóá¡¿∩ óδºóá¡á, «¡á ¼«ªÑΓ
-
- Windows 3.0/pg/2#3 = 121 =
-
- ó«ºóαáΓ¿Γ∞ TRUE ñ½∩ ¡Ñ¼Ññ½Ñ¡¡«ú« »α«ñ«½ªÑ¡¿∩ «»Ñαᵿ¿
- íπΣÑα¿ºáµ¿¿ ¿½¿ FALSE ñ½∩ «Γ¼Ñ¡δ «»Ñαᵿ¿ »ÑτáΓ¿. ü«½∞Φ¿¡ßΓó«
- Σπ¡¬µ¿⌐ »αÑαδóá¡¿∩ óδºδóáεΓ Σπ¡¬µ¿ε PeekMessage ñ½∩ óαѼѡ¡«⌐
- »ÑαÑñáτ¿ π»αáó½Ñ¡¿∩, á ºáΓѼ ó«ºóαáΘáεΓ TRUE ñ½∩ »α«ñ«½ªÑ¡¿∩
- «»Ñαᵿ¿ »ÑτáΓ¿. ÅÑαÑñáτá π»αáó½Ñ¡¿∩ «íδτ¡« »αÑñßΓáó½∩ÑΓ
- »α«úαá¼¼Ñ íπΣÑα¿ºáµ¿¿ ñ«ßΓáΓ«τ¡« óαѼѡ¿ ñ½∩ «ßó«í«ªñÑ¡¿∩
- ¡Ñ¬«Γ«α«ú« »α«ßΓαá¡ßΓóá ¡á ñ¿ß¬Ñ.
-
- àß½¿ Σπ¡¬µ¿∩ »αÑαδóá¡¿∩ ó«ºóαáΓ¿Γ FALSE, «»Ñαᵿ∩ »ÑτáΓ¿
- «Γ¼Ñ¡∩ÑΓß∩, ¿ »α¿ ß½ÑñπεΘѼ ó맮óÑ Σπ¡¬µ¿¿ Escape ¿º »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ íπñÑΓ ó«ºóαáΘÑ¡« º¡áτÑ¡¿Ñ «Φ¿í¬¿.
-
- é᪡«. àß½¿ »α«úαá¼¼á óßΓαÑτáÑΓ «Φ¿í¬π »ÑτáΓ¿ ¿½¿ «»Ñαᵿε
- »« »αÑαδóá¡¿ε »ÑτáΓ¿, «¡á ¡Ñ ñ«½ª¡á »δΓáΓ∞ß∩ ºáóÑαΦ¿Γ∞
- «»Ñαᵿε, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε Escape ß π¬áºá¡¿Ñ¼ ENDDOC ¿½¿
- ABORTDOC. GDI áóΓ«¼áΓ¿τÑ߬¿ ºáóÑαΦáÑΓ «»Ñαáµ¿ε »ÑαÑñ ó«ºóαáΓ«¼
- º¡áτÑ¡¿∩ «Φ¿í¬¿.
-
- ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα¡δ⌐ ó¿ñ Σπ¡¬µ¿¿ »αÑαδóá¡¿∩ »ÑτáΓ¿:
-
- int FAR PASCAL AbortProc(hPr, Code)
- HDC hPr; /*ñ½∩ ¼¡«ªÑßΓóá ¬«¡ΓѬßΓ«ó «Γ«íαáªÑ¡¿∩ »α¿¡ΓÑαá*/
- int Code; /*ñ½∩ ß«ßΓ«∩¡¿∩ »ÑτáΓ¿ */
- {
- MSG msg;
- /* «íαáí«Γ¬á ß««íΘÑ¡¿⌐, »αÑñ¡áº¡áτÑ¡¡δσ ñ½∩ »á¡Ñ½¿ ñ¿á½«úá
- »αÑαδóá¡¿∩ */
- while (PeekMessage((LPMSG) &msg, NULL, NULL, NULL,
- PM_REMOVE))
- if (!IsDialogMessage(hAbortDlgWnd, (LPMSG) &msg)) {
- TranslateMessage((LPMSG) &msg);
- DispatchMessage((LPMSG) &msg);
- }
- /* bAbort - TRUE, Ñß½¿ »«½∞º«óáΓѽ∞ »αÑαóá½ «»Ñαᵿε */
- return (!Abort);
- }
- 12.6.4 éδ»«½¡Ñ¡¿Ñ »αÑαδóáѼδσ «»Ñαᵿ⌐ »ÑτáΓ¿.
-
- ä½∩ Γ«ú«, τΓ«íδ ñáΓ∞ »«½∞º«óáΓѽε 󫺼«ª¡«ßΓ∞ »αÑαδóáΓ∞
- «»Ñαáµ¿ε »ÑτáΓ¿, óáΦá »α«úαá¼¼á »ÑαÑñ ºá»π߬«¼ «»Ñαᵿ¿ »ÑτáΓ¿
- ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ñÑ⌐ßΓó¿∩:
-
- 1. Ä»αÑñѽ¿Γ∞ Σπ¡¬µ¿ε »αÑαδóá¡¿∩, ¬á¬ »«¬áºá¡« ó
- »αÑñΦÑßΓóπεΘѼ αáºñѽÑ.
-
- 2. æ »«¼«Θ∞ε Σπ¡¬µ¿¿ MakeProcInstance »«½πτ¿Γ∞ áñαÑß
- φ¬ºÑ¼»½∩αá »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿ »αÑαδóá¡¿∩.
-
- 3. æ »«¼«Θ∞ε Σπ¡¬µ¿¿ EnableWindow ¡Ñ«íσ«ñ¿¼« ßñѽáΓ∞
- ¡Ññ«ßΓπ»¡δ¼ α«ñ¿Γѽ∞߬«Ñ «¬¡«.
-
- 4. çá»πßΓ¿ΓÑ «íδτ¡πε «»Ñαáµ¿ε »ÑτáΓ¿, ¡« ¬«¡Γα«½¿απ⌐ΓÑ
-
- Windows 3.0/pg/2#3 = 122 =
-
- ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿Ñ⌐ Escape º¡áτÑ¡¿Ñ »«ß½Ñ ¬áªñ«ú«
- ó맮óá NEWFRAME. àß½¿ º¡áτÑ¡¿Ñ ¼Ñ¡∞ΦÑ ¡π½∩,
- »«½∞º«óáΓѽ∞ «Γ¼Ñ¡¿½ «»Ñαáµ¿ε ¿½¿ »α«¿º«Φ½á «Φ¿í¬á.
-
- 5. êß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε DestroyWindow ñ½∩ αáºαπΦÑ¡¿∩ »á¡Ñ½¿
- ñ¿á½«úá Abort, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«. (Windows αáºαπΦáÑΓ
- »á¡Ñ½∞ áóΓ«¼áΓ¿τÑ߬¿, Ñß½¿ »«½∞º«óáΓѽ∞ «Γ¼Ñ¡¿½
- «»Ñαáµ¿ε »ÑτáΓ¿.)
-
- 6. æ »«¼«Θ∞ε Σπ¡¬µ¿¿ EnableWindow ¡Ñ«íσ«ñ¿¼« ßñѽáΓ∞
- ñ«ßΓπ»¡δ¼ α«ñ¿Γѽ∞߬«Ñ «¬¡«.
-
- 漫Γα¿ΓÑ »α¿¼Ñα »α«úαá¼¼δ PrntFile, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ
- ¬á¬ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ óδ»«½¡∩Γ∞ φΓ¿ ñÑ⌐ßΓó¿∩.
-
- 12.6.5 ÄΓ¼Ñ¡á «»Ñαᵿ¿ »ÑτáΓ¿ ß »«¼«Θ∞ε ABORTDOC.
-
- ¡« ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓα ABORTDOC ñ½∩ «Γ¼Ñ¡δ «»Ñαᵿ¿
- »ÑτáΓ¿, ñáªÑ Ñß½¿ «ΓßπΓßΓóπÑΓ Σπ¡¬µ¿∩ »αÑαδóá¡¿∩ ¿½¿ »á¡Ñ½∞
- ñ¿á½«úá Abort. é »α¿¬½áñ¡δσ »α«úαá¼¼áσ, ¬«Γ«αδÑ ¡Ñ ¿¼ÑεΓ
- Σπ¡¬µ¿ε »αÑαδóá¡¿∩, »áαá¼ÑΓα ABORTDOC ¼«ªÑΓ íδΓ∞ ¿ß»«½∞º«óá¡
- Γ«½∞¬« »ÑαÑñ »Ñαóδ¼ óδº«ó«¼ π»αáó½∩εΘÑ⌐ Σπ¡¬µ¿¿ ß NEWFRAME ¿½¿
- NEXTBAND.
- 12.7 ÅÑτáΓ∞ »«αµ¿∩¼¿.
-
- Éáºí¿ó¬á ¡á »«αµ¿¿ - Γá¬á∩ ΓÑσ¡¿¬á »ÑτáΓ¿, »α¿ ¬«Γ«α«⌐
- »ÑτáΓáѼδ⌐ «íαẠαáºí¿óáÑΓß∩ ¡á ¡Ñ߬«½∞¬« »«αµ¿⌐ (¿½¿ óδαѺ«¬),
- ¿ ¬áªñá∩ »«αµ¿∩ »«ßδ½áÑΓß∩ ¡á »ÑτáΓ∞ ßἫßΓ«∩Γѽ∞¡«. Éáºí¿ó¬á
- ¡á »«αµ¿¿ ñáÑΓ ó«º¼«ª¡«ßΓ∞ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ »ÑτáΓáΓ∞
- ß½«ª¡δÑ úαáΣ¿τÑ߬¿Ñ «íαáºδ íѺ »Ñαó«¡áτá½∞¡«ú« Σ«α¼¿α«óá¡¿∩
- »«½¡«ú« «íαáºá ó »á¼∩Γ¿. ¥Γ« ¼«ªÑΓ π¼Ñ¡∞Φ¿Γ∞ ΓαÑí«óá¡¿∩ ¬
- »á¼∩Γ¿ ñ½∩ »ÑτáΓ¿ ¿ π½πτΦ¿Γ∞ Σπ¡¬µ¿«¡¿α«óá¡¿Ñ ß¿ßΓѼδ ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ »ÑτáΓ¿. Äñ¡á¬«, αáºí¿ó¬á ¡á »«αµ¿¿ ¼«ªÑΓ
- ¿ß»«½∞º«óáΓ∞ß∩ Γ«½∞¬« ñ½∩ »α¿¡ΓÑα«ó, ¿¼ÑεΘ¿σ φΓπ 󫺼«ª¡«ßΓ∞.
-
- ä½∩ »ÑτáΓ¿ ¿º«íαáªÑ¡¿∩ ß αáºí¿ó¬«⌐ ¡á »«αµ¿¿ ¡Ñ«íσ«ñ¿¼«
- óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε CreateDC ñ½∩ »«½πτÑ¡¿∩ ¬«¡ΓѬßΓá
- πßΓα«⌐ßΓóá »ÑτáΓ¿.
-
- 2. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε GetDeviceCaps ñ½∩ »α«óÑન Γ«ú«,
- τΓ« »α¿¡ΓÑα »«ºó«½∩ÑΓ αáºí¿ó¬π ¡á »«αµ¿¿:
-
- if(GetDeviceCaps(hPrinterDC, RASTERCAPS) & RC_BANDING);
-
- 3. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε Escape ß »áαá¼ÑΓα«¼ NEXTBAND ñ½∩
- »«½πτÑ¡¿∩ ¬««αñ¿¡áΓ »«αµ¿¿:
-
- Escape(hPrinterDC,NEXTBAND,0,(LPSTR)NULL,(LPRECT)&rcRect);
-
- öπ¡¬µ¿∩ ºá¡«ß¿Γ ó ßΓαπ¬Γπαπ rcRect ¬««αñ¿¡áΓδ ΓѬπΘÑ⌐
-
- Windows 3.0/pg/2#3 = 123 =
-
- »«αµ¿¿. è««αñ¿¡áΓδ ºáñáεΓß∩ ó Ññ¿¡¿µáσ πßΓα«⌐ßΓóá ¿ óßÑ
- »«ß½ÑñπεΘ¿Ñ ó맮óδ GDI «ΓßѬáεΓß∩ ñ« αẼÑα«ó ñá¡¡«ú«
- »α∩¼«πú«½∞¡¿¬á.
-
- 4. Åα«óÑα¿Γ∞ ßΓαπ¬Γπαπ rcRect (»πßΓ ½¿ »α∩¼«πú«½∞¡¿¬).
- ÅπßΓ«⌐ »α∩¼«πú«½∞¡¿¬ «Γ¼ÑτáÑΓ ¬«¡Ñµ «»Ñαᵿ¿ αáºí¿ó¬¿
- ¡á »«αµ¿¿. àß½¿ «¡ »πßΓ, ºá¬«¡τ¿Γ∞ «»Ñαáµ¿ε »« αáºí¿ó¬Ñ
- ¡á »«αµ¿¿.
-
- 5. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε DPtoLP ñ½∩ »αÑ«íαẫóá¡¿∩ Γ«τѬ
- rcRect ¿º Ññ¿¡¿µ πßΓα«⌐ßΓóá ó ½«ú¿τÑ߬¿Ñ Ññ¿¡¿µδ:
-
- DPtoLP (hPr, (LPRECT) & rcRect, 2);
-
- 6. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ óδó«ñá GDI ¿½¿ ñαπú¿Ñ Σπ¡¬µ¿¿ ñ½∩
- α¿ß«óá¡¿∩ ó¡πΓα¿ »«αµ¿¿. ä½∩ φ¬«¡«¼¿¿ óαѼѡ¿
- »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á óδ»«½¡¿Γ∞ Γ«½∞¬« ΓÑ ó맮óδ
- GDI, ¬«Γ«αδÑ ó½¿∩εΓ ¡á ΓѬπΘπε »«αµ¿ε. àß½¿ ÅÅ ¡Ñ σ«τÑΓ
- φ¬«¡«¼¿Γ∞ óαѼ∩, GDI íπñÑΓ «ΓßѬáΓ∞ óÑß∞ óδó«ñ, ¬«Γ«αδ⌐
- ¡Ñ óßΓαÑτáÑΓß∩ ó ñá¡¡«⌐ »«αµ¿¿, ΓᬠτΓ« ¡Ñ ΓαÑíπÑΓß∩
- ߻ѵ¿á½∞¡δσ ñÑ⌐ßΓó¿⌐.
-
- 7. Å«óΓ«α¿Γ∞ Φáú¿ ß 4 »« 6.
-
- Å«ß½Ñ «¬«¡τá¡¿∩ «»Ñαᵿ¿ αáºí¿ó¬¿ ¡á »«αµ¿¿ ¿ß»«½∞ºπ⌐ΓÑ
- Σπ¡¬µ¿ε DeleteDC ñ½∩ πñá½Ñ¡¿∩ ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá »ÑτáΓ¿.
-
- é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ »ÑτáΓáΓ∞ ß
- »«¼«Θ∞ε αáºí¿ó¬¿ ¡á »«αµ¿¿:
-
- hPr = CreateDC("EPSON",
- "EPSON FX-80",
- "LPT1:",
- (LPSTR) NULL);
-
- if (hPr != NULL) {
- if (GetDeviceCaps(hPr, RASTERCAPS) & RC_BANDING) {
- Escape(hPr, STARTDOC, 4, (LPSTR) "Dog", (LPSTR)NULL);
- Escape(hPr, NEXTBAND, 0, (LPSTR)NULL, (LPSTR) &rcRect);
- while (!IsRectEmpty(&rcRect)) {
- DPtoLP(hPr, (LPRECT) &rcRect, 2);
- /* »«¼ÑßΓ¿ΓÑ ºñÑß∞ ßó«ε Σπ¡¬µ¿ε óδó«ñá. ä½∩ φ¬«-
- ¡«¼¿¿ óαѼѡ¿ ¿ß»«½∞ºπ⌐ΓÑ rcRect ñ½∩ «»αÑñÑ-
- ½Ñ¡¿∩, ¬á¬¿Ñ Σπ¡¬µ¿¿ ñ«½ª¡δ íδΓ∞ óδºóá¡δ ñ½∩
- φΓ«⌐ »«αµ¿¿ */
- Escape(hPr, NEXTBAND, 0, (LPSTR)NULL, (LPRECT) &rcRect);
- }
- Escape(hPr, NEWFRAME, 0, (LPSTR)NULL, (LPSTR)NULL);
- Escape(hPr, ENDDOC, 0, (LPSTR)NULL, (LPSTR)NULL);
- }
- DeleteDC(hPr);
- }
-
-
- Windows 3.0/pg/2#3 = 124 =
-
- 12.8 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ PrntFile.
-
- é ñá¡¡«¼ αáºñÑ½Ñ «»¿ßá¡«, ¬á¬ ¼«ª¡« ñ«íáó¿Γ∞ 󫺼«ª¡«ßΓ∞
- »ÑτáΓ¿ ¬ »α«úαá¼¼Ñ EditFile, «»¿ßá¡¡«⌐ ó ú½áóÑ 10 "éó«ñ ¿ óδó«ñ
- ó Σá⌐½", ߬«»¿α«óáó ΓѬπΘ¿⌐ ΓѬßΓ ¿º αÑñá¬Γ¿απѼ«ú« í½«¬á
- π»αáó½Ñ¡¿∩ ¿ «Γ»ÑτáΓáó Ñú« ß »«¼«Θ∞ε ß»«ß«í«ó, «»¿ßá¡¡δσ ó
- ñá¡¡«⌐ ú½áóÑ. ä½∩ Γ«ú«, τΓ«íδ ñ«íáó¿Γ∞ »ÑτáΓ∞, ߬«»¿απ⌐ΓÑ ¿
- »ÑαÑ¿¼Ñ¡π⌐ΓÑ »α«úαá¼¼π EditFile ó PrntFile, á ºáΓѼ
- ¼«ñ¿Σ¿µ¿απ⌐ΓÑ φΓπ »α«úαá¼¼π ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- 1. ä«íáó∞ΓÑ Φáí½«¡ »á¡Ñ½¿ ñ¿á½«úá AbortDlg ó Σá⌐½ «»¿ßá¡¿∩
- αÑßπαß«ó.
-
- 2. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ, ¡Ñ«íσ«ñ¿¼δÑ »α¿ »ÑτáΓ¿.
-
- 3. ä«íáó∞ΓÑ ó Σαáú¼Ñ¡Γ WM_COMMAND «»ÑαáΓ«αδ ñ½∩ «íαáí«Γ¬¿
- IDM_PRINT.
-
- 4. 櫺ñá⌐ΓÑ Σπ¡¬µ¿ε ñ¿á½«úá AbortDlg ¿ Σπ¡¬µ¿ε »αÑαδóá¡¿∩
- AbortProc.
-
- 5. ä«íáó∞ΓÑ Σπ¡¬µ¿ε GetPrinterDC.
-
- 6. ¥¬ß»«αΓ¿απ⌐ΓÑ Σπ¡¬µ¿ε AbortDlg ¿ AbortProc.
-
- 7. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π.
-
- ¥Γ«Γ »α¿¼Ñα »«¬áºδóáÑΓ, ¬á¬ αáß»ÑτáΓáΓ∞ ß«ñÑন¼«Ñ
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩, ¿ ó¬½ετáÑΓ «»ÑαáΓ«αδ,
- ¡Ñ«íσ«ñ¿¼δÑ ñ½∩ »«ññÑ᪬¿ Σπ¡¬µ¿¿ »αÑαδóá¡¿∩ ¿ Σπ¡¬µ¿¿ »á¡Ñ½¿
- ñ¿á½«úá Abort.
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
-
- 12.8.1 ä«íáó½Ñ¡¿Ñ »á¡Ñ½¿ ñ¿á½«úá AbortDlg.
-
- ä½∩ »«ññÑ᪬¿ »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼á ¡«óá∩ »á¡Ñ½∞ ñ¿á½«úá.
- Åá¡Ñ½∞ ñ¿á½«úá AbortDlg ñáÑΓ ó«º¼«ª¡«ßΓ∞ »«½∞º«óáΓÑ½ε «Γ¼Ñ¡¿Γ∞
- «»Ñαáµ¿ε »ÑτáΓ¿, óδíαáó ¬½áó¿Φπ Cancel. ä«íáó∞ΓÑ ß½ÑñπεΘ¿⌐
- «»ÑαáΓ«α DIALOG ¬ Σá⌐½π αÑßπαß«ó:
-
- AbortDlg DIALOG 20, 20, 90, 64
- STYLE WS_NODALFRAME | WS_SYSMENU | WS_CAPTION
- CAPTION "Print File"
- BEGIN
- DefPushButton "Cancel" IDCANCEL 29, 44, 32, 14,
- WS_GROUP
- Ctext "Sending", -1, 0, 8, 90, 8
- Ctext "text", ID_FILENAME 0, 18, 90, 8
- Ctext "to printer spooler", -1, 0, 28, 90, 8
- END
-
- Windows 3.0/pg/2#3 = 125 =
-
- 12.8.2 ä«íáó½Ñ¡¿Ñ »ÑαѼѡ¡δσ ñ½∩ »ÑτáΓ¿.
-
- ä½∩ »«ññÑ᪬¿ »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼« «íΩ∩ó¿Γ∞ ¡«óδÑ »ÑαѼѡ¡δÑ.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «íΩ∩ó½Ñ¡¿∩ ó ¡áτὫ Σá⌐½á αÑßπαß«ó:
-
- HDC hPr; /* ñÑß¬α¿»Γ«α èÄ »α¿¡ΓÑαá */
- int LineSpace; /* αáßßΓ«∩¡¿Ñ ¼Ñªñπ ßΓα«¬á¼¿ */
- int LinesPerPage; /* τ¿ß½« ßΓ᫬ ¡á ßΓαá¡¿µÑ */
- int CurrentLine; /* ΓѬπΘá∩ ßΓ᫬á */
- int LineLenght; /* ñ½¿¡á ßΓ᫬¿ */
- DWORD dwLines; /* τ¿ß½« »ÑτáΓáѼδσ ßΓ᫬ */
- DWORD dwIndex; /* ¿¡ñÑ¬ß »ÑτáΓáѼ«⌐ ßΓ᫬¿ */
- char pLine[128]; /* íπΣÑα ñ½∩ σαá¡Ñ¡¿∩ ßΓ᫬ »ÑαÑñ
- »ÑτáΓ∞ε */
- TEXTMETRIC TextMetric; /* ¿¡Σ«α¼áµ¿∩ « αẼÑαÑ ß¿¼ó«½á */
- POINT PhysPageSize; /* ¿¡Σ«α¼áµ¿∩ « ßΓαá¡¿µÑ */
- BOOL bAbort; /* FALSE, Ñß½¿ »«½∞º«óáΓѽ∞ «Γ¼Ñ¡¿½
- «»Ñαáµ¿ε »ÑτáΓ¿ */
- HWND hAbortDlgWnd;
- FARPROC lpAbortDlg, lpAbortProc;
-
- ÅÑαѼѡ¡á∩ hPr - φΓ« ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá πßΓα«⌐ßΓóá
- »ÑτáΓ¿. Ä¡á »«½πτáÑΓ º¡áτÑ¡¿Ñ, ó«ºóαáΘáѼ«Ñ Σπ¡¬µ¿¿ CreateDC.
- ÅÑαѼѡ¡δÑ LineSpace ¿ LinesPerPage ß«ñÑαªáΓ, ß««ΓóÑΓßΓóÑ¡¡«,
- ¿¡ΓÑαóá½ ¼Ñªñπ ßΓα«¬á¼¿ ¿ τ¿ß½« ßΓ᫬, ¬«Γ«α«Ñ ¼«ªÑΓ íδΓ∞
- ¡á»ÑτáΓá¡« ¡á ßΓαá¡¿µÑ. ÅÑαѼѡ¡á∩ CurrentLine - φΓ« ßτÑΓτ¿¬,
- σαá¡∩Θ¿⌐ ¡«¼Ñα ßΓ᫬¿ ¡á ΓѬπΘÑ⌐ ßΓαá¡¿µÑ. æΓ᫬¿ ΓѬßΓá
- »ÑτáΓáεΓß∩ »« «ñ¡«⌐. ÅÑαѼѡ¡á∩ dwLines ß«ñÑαª¿Γ τ¿ß½« ßΓ᫬ ó
- αÑñá¬Γ¿απѼ«¼ í½«¬Ñ π»αáó½Ñ¡¿∩. æΓαπ¬Γπαá TextMetric »«½πτáÑΓ
- ¿¡Σ«α¼áµ¿ε « Φα¿ΣΓÑ, ¿ß»«½∞ºπѼ«¼ ñ½∩ »ÑτáΓ¿. é ñá¡¡«¼ »α¿¼ÑαÑ
- ¿ß»«½∞ºπεΓß∩ Γ«½∞¬« »«½∩ tmHeight ¿ tmExternalLeading φΓ«⌐
- ßΓαπ¬Γπαδ. æΓαπ¬Γπαá PhysPageSize »«½πτáÑΓ Σ¿º¿τÑ߬¿Ñ Φ¿α¿¡π ¿
- óδß«Γπ íπ¼áú¿, ¿ß»«½∞ºπѼ«⌐ »α¿ »ÑτáΓ¿. éδß«Γá ¿ß»«½∞ºπÑΓß∩ ñ½∩
- «»αÑñѽѡ¿∩ τ¿ß½á ßΓ᫬, ¬«Γ«αδÑ ¼«úπΓ íδΓ∞ «Γ»ÑτáΓá¡δ ¡á
- ßΓαá¡¿µÑ.
- 12.8.3 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá IDM_PRINT.
-
- ä½∩ óδ»«½¡Ñ¡¿∩ «»Ñαᵿ¿ »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞
- Σαáú¼Ñ¡Γ IDM_PRINT ¬ «íαáí«Γ¬Ñ WM_COMMAND ó «ß¡«ó¡«⌐ Σπ¡¬µ¿¿
- «¬¡á. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- case IDM_PRINT:
- hPr = GetPrinterDC();
- if (!hPr) {
- sprintf(str, "ìѽ∞º∩ αáß»ÑτáΓáΓ∞ &s.", FileName);
- MessageBox(hWnd, str, NULL, MB_OK | MB_ICONHAND);
- break;
- }
- lpAbortDlg = MakeProcInstance(AbortDlg, hInst);
- lpAbortProc = MakeProcInstance(AbortProc, hInst);
- Escape(hPr, SETABORTPROC, NULL,
-
- Windows 3.0/pg/2#3 = 126 =
-
- (LPSTR) (long) lpAbortProc, (LPSTR) NULL);
- if (Escape(hPr, STARTDOC, 15, "ÆÑ¬ßΓ PrntFile",
- (LPSTR) NULL < 0) {
- MessageBox(hWnd, "ìÑ󫺼«ª¡« ¡áτáΓ∞ »ÑτáΓ∞",
- NULL, MB_OK | MB_ICONHAND);
- FreeProcInstance(AbortDlg);
- FreeProcInstance(AbortProc);
- DeleteDC(hPr);
- return (NULL);
- }
-
- bAbort = FALSE; /* ßíα«ß¿Γ∞ Σ½áú »αÑαδóá¡¿∩ */
- hAbortDlgWnd = CreateDialog(hInst, "AbortDlg", hWnd,
- lpAbortDlg);
- ShowWindow(hAbortDlgWnd,SW_NORMAL);
- UpdateWindow(hAbortDlgWnd);
- EnableWindow(hWnd, FALSE);
- GetTextMetrics(hPr, &TextMetrics);
- LineSpace = TextMetric.tmHeight
- + TextMetric.tmExternalLeading;
- Escape(hPr, GETPHYSPAGESIZE, NULL, (LPSTR) NULL,
- (LPSTR) &PhysPageSize);
- LinesPerPage = PhysPageSize.y / LineSpace;
- dwLines = SendMessage(hEditWnd, EM_GETLINECOUNT, 0, 0L);
- CurrentLine = 1;
- for (dwindex = IOStatus = 0; dwIndex < dwLines;
- dwIndex++) {
- pLine[0] = 128; /* ¼á¬ß¿¼á½∞¡δ⌐ αẼÑα íπΣÑαá */
- pLine[1] = 0;
- LineLength = SendMessage(hEditWnd, EM_GETLINE,
- (WORD) dwIndex, (LONG) ((LPSTR) pLine));
- TextOut(hPr, 0, CurrentLine*LineSpace,
- (LPSTR) pLine, LineLength);
- if (++CurrentLine > LinesPerPage) {
- Escape(hPr,NEWFRAME,0,0L,0L);
- CurrentLine = 1;
- IOStatus = Escape(hPr, NEWFRAME, 0, 0L, 0L);
- if (IOStatus < 0) || bAbort)
- break;
- }
- }
-
- if (IOStatus >= 0 && !bAbort) {
- Escape(hPr, NEWFRAME, 0, 0L, 0L);
- Escape(hPr, ENDDOC, 0, 0L, 0L);
- }
- EnableWindow(hWnd, TRUE);
- DestroyWindow(hAbortDlgWnd);
- FreeProcInstance(AbortDlg);
- FreeProcInstance(AbortProc);
- DeleteDC(hPr);
- break;
-
-
- Windows 3.0/pg/2#3 = 127 =
-
- 﫬á½∞¡« «»αÑñѽѡ¡á∩ Σπ¡¬µ¿∩ GetPrinterDC »α«óÑα∩ÑΓ Σá⌐½
- win.ini ¡á ¡á½¿τ¿Ñ ñá¡¡δσ « ΓѬπΘѼ »α¿¡ΓÑαÑ ¿ ß«ºñáÑΓ ¬«¡ΓѬßΓ
- πßΓα«⌐ßΓóá »ÑτáΓ¿. àß½¿ ΓѬπΘÑú« »α¿¡ΓÑαá ¡Ñ ßπΘÑßΓóπÑΓ, ¿½¿
- ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá ¡Ñ ¼«ªÑΓ íδΓ∞ ß«ºñá¡, Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ
- NULL ¿ «íαáí«Γ¬á ºá¬á¡τ¿óáÑΓß∩ ß óδñáτÑ⌐ »αÑñπ»αѪñÑ¡¿∩. é
- »α«Γ¿ó¡«¼ ß½πτáÑ Σπ¡¬µ¿∩ MakeProcInstance ß«ºñáÑΓ áñαÑßá
- φ¬ºÑ¼»½∩αá »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿ ñ¿á½«úá AbortDlg ¿ Σπ¡¬µ¿¿
- AbortProc. Åáαá¼ÑΓα SETABORTPROC, ¿ß»«½∞ºπѼδ⌐ ó Σπ¡¬µ¿¿
- Escape, πßΓá¡áó½¿óáÑΓ Σπ¡¬µ¿ε »αÑαδóá¡¿∩. Åáαá¼ÑΓα STARTDOC
- «º¡áτáÑΓ ¡áτὫ «»Ñαᵿ¿ »ÑτáΓ¿ ¿ πßΓá¡áó½¿óáÑΓ »ÑτáΓáѼδ⌐
- ºáú«½«ó«¬ («Γ«íαáªáÑΓß∩ ó »α«úαá¼¼Ñ PrintManager). àß½¿ »α¿
- φΓ«¼ »α«¿ßσ«ñ¿Γ «Φ¿í¬á, Σπ¡¬µ¿∩ FreeProcInstance «ßó«í«ªñáÑΓ
- φ¬ºÑ¼»½∩αδ »α«µÑñπα AbortDlg ¿ AbortProc, á Σπ¡¬µ¿∩ DeleteDC
- πñá½∩ÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »ÑαÑñ «¬«¡τ᡿Ѽ «íαáí«Γ¬¿.
-
- öπ¡¬µ¿∩ CreateDialog ß«ºñáÑΓ »á¡Ñ½∞ ñ¿á½«úá AbortDlg, á
- Σπ¡¬µ¿∩ Enable Window ñѽáÑΓ ¡Ññ«ßΓπ»¡δ¼ «ß¡«ó¡«Ñ «¬¡«. ¥Γ«
- πñÑনóáÑΓ »«½∞º«óáΓѽ∩ «Γ »«»δΓ«¬ αáí«ΓáΓ∞ ó «ß¡«ó¡«¼ «¬¡Ñ ó«
- óαѼ∩ »ÑτáΓ¿. Äñ¡á¬«, «¡ ¼«ªÑΓ »α«ñ«½ªáΓ∞ αáí«ΓáΓ∞ ß ¡Ñ¬«Γ«α«⌐
- ñαπú«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐.
-
- ū߬«½∞¬π αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ¼«ªÑΓ ß«ñÑαªáΓ∞
- í«½ÑÑ «ñ¡«⌐ ßΓ᫬¿, ó᪡« «íÑß»Ñτ¿Γ∞ ß««ΓóÑΓßΓóπεΘ¿⌐ ¿¡ΓÑαóá½
- ¼Ñªñπ ßΓα«¬á¼¿, τΓ«íδ «ñ¡á ßΓα«¬á ¡Ñ ¡á»«½ºá½á ¡á ñαπúπε.
- öπ¡¬µ¿∩ GetTextMetrics »«½πτáÑΓ ¿¡Σ«α¼áµ¿ε « ΓѬπΘѼ Φα¿ΣΓÑ
- Γá¬πε, ¡á»α¿¼Ñα, ¬á¬ óδß«Γá ¿ ó¡ÑΦ¡¿⌐ αáºαδó, ¬«Γ«αá∩ ¼«ªÑΓ
- íδΓ∞ ¿ß»«½∞º«óá¡á ñ½∩ óδτ¿ß½Ñ¡¿∩ »αáó¿½∞¡«ú« ¿¡ΓÑαóá½á ¼Ñªñπ
- ßΓα«¬á¼¿. éδß«Γá - φΓ« ¼á¬ß¿¼á½∞¡á∩ óδß«Γá ß¿¼ó«½á Φα¿ΣΓá.
- é¡ÑΦ¡¿⌐ αáºαδó - φΓ« αѬ«¼Ñ¡ñπѼδ⌐ »α«¼ÑªπΓ«¬, ñ«»«½¡∩εΘ¿⌐
- óδß«Γπ ¿ ß½πªáΘ¿⌐ ñ½∩ αáºñѽѡ¿∩ ßΓ᫬ ΓѬßΓá, ¬«Γ«αδÑ
- ¿ß»«½∞ºπεΓ ñá¡¡δ⌐ Φα¿ΣΓ. îѪßΓα«τ¡δ⌐ ¿¡ΓÑαóá½, óѽ¿τ¿¡π
- ¬«Γ«α«ú« ß«ñÑαª¿Γ »ÑαѼѡ¡á∩ LineSpace, - φΓ« ßπ¼¼á »«½Ñ⌐
- óδß«Γδ ¿ ó¡ÑΦ¡Ñú« αáºαδóá (TextMetric.tmHeight ¿
- TextMetric.tmExternalLeading).
-
- ū߬«½∞¬π αÑñá¬Γ¿απѼδ⌐ í½«¬ π»αáó½Ñ¡¿∩ ¼«ªÑΓ ß«ñÑαªáΓ∞
- í«½∞ΦÑ ßΓ᫬, τѼ ó¼ÑΘáÑΓß∩ ¡á «ñ¡«⌐ ßΓαá¡¿µÑ, ó᪡«
- «»αÑñѽ¿Γ∞, ߬«½∞¬« ßΓ᫬ ¼«ªÑΓ αẼÑΘáΓ∞ß∩ ¡á ßΓαá¡¿µÑ. è«úñá
- φΓ« ¬«½¿τÑßΓó« ßΓ᫬ íπñÑΓ ¡á»ÑτáΓá¡«, »α«¿º«⌐ñÑΓ »ÑαÑσ«ñ ¬
- ß½ÑñπεΘÑ⌐ ßΓαá¡¿µÑ. ô»αáó½∩εΘá∩ Σπ¡¬µ¿∩ ß »áαá¼ÑΓα«¼
- GETPHYSPAGESIZE »«½πτáÑΓ Σ¿º¿τÑ߬¿Ñ αẼÑαδ ßΓαá¡¿µδ ¿ ¬«»¿απÑΓ
- ¿σ ó ßΓαπ¬Γπαπ PhysPageSize, ß«ñÑαªáΘπε Φ¿α¿¡π ¿ óδß«Γπ
- ßΓαá¡¿µδ. ù¿ß½« ßΓ᫬ ¡á ßΓαá¡¿µÑ, »α¿ßó«Ñ¡¡«Ñ »ÑαѼѡ¡«⌐
- LinesPerPage, - φΓ« τáßΓ¡«Ñ «Γ ñѽѡ¿∩ Σ¿º¿τÑ߬«⌐ óδß«Γδ
- ßΓαá¡¿µδ PhysPageSize.y ¡á ¼ÑªßΓα«τ¡δ⌐ ¿¡ΓÑαóá½ LineSpace.
-
- öπ¡¬µ¿∩ TextOut ¼«ªÑΓ »ÑτáΓáΓ∞ ºá «ñ¡« «íαáΘÑ¡¿Ñ Γ«½∞¬«
- «ñ¡π ßΓ᫬π, ΓᬠτΓ« ñ½∩ »ÑτáΓ¿ ¡Ñ߬«½∞¬¿σ ßΓ᫬ ¡Ñ«íσ«ñ¿¼«
- «αúá¡¿º«óáΓ∞ µ¿¬½ ß «»ÑαáΓ«α«¼ for. æ««íΘÑ¡¿Ñ EM_GETLINECOUNT,
- »«ß½á¡¡«Ñ αÑñá¬Γ¿απѼ«¼π í½«¬π π»αáó½Ñ¡¿∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SendMessage, ó«ºóαáΘáÑΓ τ¿ß½« ßΓ᫬, ¬«Γ«α«Ñ ñ«½ª¡« íδΓ∞
- «Γ»ÑτáΓá¡«, ¿ «»αÑñѽ∩ÑΓ τ¿ß½« »α«σ«ªñÑ¡¿⌐ µ¿¬½á. Åα¿ ¬áªñ«¼
- óδ»«½¡Ñ¡¿¿ µ¿¬½á ß««íΘÑ¡¿Ñ EM_GETLINE ¬«»¿απÑΓ ß«ñÑαªá¡¿Ñ
-
- Windows 3.0/pg/2#3 = 128 =
-
- ßΓ᫬¿ ¿º αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩ ó íπΣÑα pLine.
- æτÑΓτ¿¬ µ¿¬½á index ¿ß»«½∞ºπÑΓß∩ ß ß««íΘÑ¡¿Ñ¼ EM_GETLINE ñ½∩
- «»αÑñѽѡ¿∩ ßΓ᫬¿, ¬«Γ«αá∩ ñ«½ª¡á íδΓ∞ »«½πτÑ¡á ¿º
- αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩. æ««íΘÑ¡¿Ñ EM_GETLINE ΓᬪÑ
- ºáßΓáó½∩ÑΓ Σπ¡¬µ¿ε SendMessage óÑα¡πΓ∞ ñ½¿¡π ßΓ᫬¿. 使¡á
- »α¿ßóá¿óáÑΓß∩ »ÑαѼѡ¡«⌐ LineLength.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ ßΓ᫬á ߬«»¿α«óá¡á ¿º αÑñá¬Γ¿απѼ«ú« í½«¬á
- π»αáó½Ñ¡¿∩, «¡á »ÑτáΓáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ TextOut.
- Åα«¿ºóÑñÑ¡¿Ñ »ÑαѼѡ¡δσ CurrentLine ¿ LineSpacing «»αÑñѽ∩ÑΓ
- ¬««αñ¿¡áΓπ ßΓ᫬¿ ¡á ßΓαá¡¿µÑ »« «ß¿ π. è««αñ¿¡áΓá ò
- πßΓá¡áó½¿óáÑΓß∩ ó ¡π½∞. Å«ß½Ñ óδó«ñá ßΓ᫬¿ º¡áτÑ¡¿Ñ »ÑαѼѡ¡«⌐
- CurrentLine πóѽ¿τ¿óáÑΓß∩ ¡á 1. àß½¿ óѽ¿τ¿¡á CurrentLine
- ßΓá¡«ó¿Γß∩ í«½∞ΦÑ LinesPerPage, ¡Ñ«íσ«ñ¿¼« »ÑαÑ⌐Γ¿ ¬ ß½ÑñπεΘÑ⌐
- ßΓαá¡¿µÑ. ÆÑ¬ßΓ, «Γ»ÑτáΓá¡¡δ⌐ ºá Σ¿º¿τÑ߬«⌐ úαá¡¿µÑ⌐ ßΓαá¡¿µδ,
- «íαѺáÑΓß∩. ÇóΓ«¼áΓ¿τÑ߬«Ñ »α«ñó¿ªÑ¡¿Ñ ßΓαá¡¿µδ ¡Ñ
- »«ññÑনóáÑΓß∩, ΓᬠτΓ« ó᪡« σαá¡¿Γ∞ τ¿ß½« «Γ»ÑτáΓá¡¡δσ ßΓ᫬
- ¡á ßΓαá¡¿µÑ ¿ ¿ß»«½∞º«óáΓ∞ π»αáó½∩εΘπε Σπ¡¬µ¿ε ß »áαá¼ÑΓα«¼
- NEWFRAME ñ½∩ »α«ñó¿ªÑ¡¿∩ ¬ ¡«ó«⌐ ßΓαá¡¿µÑ, ¬«úñá φΓ«
- ¡Ñ«íσ«ñ¿¼«. àß½¿ ó« óαѼ∩ »ÑτáΓ¿ »α«¿º«⌐ñÑΓ «Φ¿í¬á, π»αáó½∩εΘá∩
- Σπ¡¬µ¿∩ ß »áαá¼ÑΓα«¼ NEWFRAME ó«ºóαáΓ¿Γ ¡«¼Ñα «Φ¿í¬¿ ¿
- «íαáí«Γ¬á ºá¬«¡τ¿Γß∩.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ ßΓ᫬¿ αÑñá¬Γ¿απѼ«ú« í½«¬á π»αáó½Ñ¡¿∩
- «Γ»ÑτáΓá¡δ, π»αáó½∩εΘá∩ Σπ¡¬µ¿∩ ß NEWFRAME »α«ñó¿¡ÑΓ »«ß½Ññ¡εε
- ßΓαá¡¿µπ, á π»αáó½∩εΘá∩ Σπ¡¬µ¿∩ ß π¬áºá¡¿Ñ¼ ENDDOC ºáóÑαΦ¿Γ
- ºá»α«ß ¡á »ÑτáΓ∞. öπ¡¬µ¿∩ DeleteDC πñá½¿Γ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá
- »ÑτáΓ¿, »«ß¬«½∞¬π «¡ í«½∞ΦÑ ¡Ñ ¡πªÑ¡, á Σπ¡¬µ¿∩ DestroyWindow
- αáºαπΦ¿Γ »á¡Ñ½∞ ñ¿á½«úá AbortDlg.
- 12.8.4 櫺ñá¡¿Ñ Σπ¡¬µ¿⌐ AbortDlg ¿ AbortProc.
-
- ä½∩ »«ññÑ᪬¿ »α«µÑßßá »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ Σπ¡¬µ¿¿
- AbortDlg ¿ AbortProc. öπ¡¬µ¿∩ ñ¿á½«úá AbortDlg «íÑß»Ñτ¿óáÑΓ
- »«ññÑ᪬π »á¡Ñ½¿ ñ¿á½«úá AbortDlg, ¬«Γ«αá∩ »«∩ó½∩ÑΓß∩, ¬«úñá
- ¡áτ¿¡áÑΓß∩ »ÑτáΓ∞. Åá¡Ñ½∞ ñ¿á½«úá ñáÑΓ ó«º¼«ª¡«ßΓ∞ »«½∞º«óáΓѽε
- «Γ¼Ñ¡¿Γ∞ «»Ñαáµ¿ε »ÑτáΓ¿, Ñß½¿ φΓ« ¡Ñ«íσ«ñ¿¼«. öπ¡¬µ¿∩
- AbortProc «íαáíáΓδóáÑΓ ß««íΘÑ¡¿∩, »αÑñ¡áº¡áτÑ¡¡δÑ ñ½∩ »á¡Ñ½¿
- ñ¿á½«úá AbortDlg, ¿ ºáóÑαΦáÑΓ «»Ñαáµ¿ε »ÑτáΓ¿, Ñß½¿
- »«½∞º«óáΓѽ∞ ºá»α«ß¿½ ÑÑ «Γ¼Ñ¡π.
-
- öπ¡¬µ¿∩ ñ¿á½«úá AbortDlg πßΓá¡áó½¿óáÑΓ ºáσóáΓ óó«ñá ¿ ¿¼∩
- »ÑτáΓáѼ«ú« Σá⌐½á. Ä¡á Γá¬ªÑ πßΓá¡áó½¿óáÑΓ »ÑαѼѡ¡πε bAbort ó
- º¡áτÑ¡¿Ñ TRUE, Ñß½¿ »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬½áó¿Φπ Cancel.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
-
- int FAR PASCAL AbortDlg(hDlg, msg, wParam, lParam)
- HWND hDlg;
- unsigned msg;
- WORD wParam;
- LONG lParam;
- {
- switch (msg) {
-
- Windows 3.0/pg/2#3 = 129 =
-
- case WM_COMMAND:
- return (bAbort = TRUE);
-
- case WM_INITDIALOG:
- SetFocus(GetDlgItem(hDlg, IDCANCEL));
- SetDlgItemText(hDlg, ID_FILENAME, FileName);
- return (TRUE);
- }
- return (FALSE);
- }
-
- öπ¡¬µ¿∩ AbortProc »α«óÑα∩ÑΓ ¡á½¿τ¿Ñ ß««íΘÑ¡¿⌐ ó «τÑαÑñ¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿ ¡á»αáó½∩ÑΓ ¿σ Σπ¡¬µ¿¿ ñ¿á½«úá AbortDlg
- ¿½¿ ñαπú¿¼ «¬¡á¼ »α«úαá¼¼δ. àß½¿ «ñ¡« ¿º φΓ¿σ ß««íΘÑ¡¿⌐
- π¬áºδóáÑΓ Σπ¡¬µ¿¿ ñ¿á½«úá AbortDlg πßΓá¡«ó¿Γ∞ »ÑαѼѡ¡πε bAbort
- ó TRUE, Σπ¡¬µ¿∩ AbortProc ó«ºóαáΘáÑΓ φΓ« º¡áτÑ¡¿Ñ, ºáßΓáó½∩∩
- Windows «ßΓá¡«ó¿Γ∞ Σπ¡¬µ¿ε »ÑτáΓ¿. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ
- ¬ ¿ßσ«ñ¡«¼π æ¿-Σá⌐½π:
-
- int FAR PASCAL AbortProc(hPr, Code)
- HDC hPr; /* ñ½∩ ¼¡«ªÑßΓóá èÄ »α¿¡ΓÑαá */
- int Code; /* ñ½∩ ß«ßΓ«∩¡¿∩ »ÑτáΓ¿ */
- {
- MSG msg;
-
- while (!bAbort && PeekMessage(&msg, NULL, NULL, NULL,
- TRUE))
- if (!IsDialogMessage(hAbortDlgWnd, &msg)) {
- TranslateMessage(&msg);
- DispatchMessage(&msg);
- }
- return (!bAbort);
- }
- 12.8.5 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ GetPrinterDC.
-
- ä½∩ »«ññÑ᪬¿ «»Ñαᵿ¿ »ÑτáΓ¿ ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞ φΓπ
- Σπ¡¬µ¿ε ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π. öπ¡¬µ¿∩ GetPrinterDC »«½πτáÑΓ
- ß«ñÑন¼«Ñ »«½∩ "device" ¿º αáºñѽá [windows] Σá⌐½á win.ini,
- αáºñѽ∩ÑΓ φΓ« ß«ñÑন¼«Ñ ¡á «Γñѽ∞¡δÑ ¬«¼»«¡Ñ¡Γδ ¿ ºáΓѼ
- ß«ºñáÑΓ ¬«¡ΓѬßΓ πßΓα«⌐ßΓóá »ÑτáΓ¿, ¿ß»«½∞ºπ∩ ¿¼∩ πßΓα«⌐ßΓóá ¿
- Γ¿» »α¿¡ΓÑαá, ºáñá¡¡δ⌐ ó ß«ñÑন¼«¼ »«½∩. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ ¬ ¿ßσ«ñ¡«¼π æ-Σá⌐½π:
-
- HANDLE GetPrinterDC()
- {
- char pPrintInfo[80];
- LPSTR lpTemp;
- LPSTR lpPrintType;
- LPSTR lpPrintDriver;
- LPSTR lpPrintPort;
-
- if (!GetProfileString("windows", "device",
-
- Windows 3.0/pg/2#3 = 130 =
-
- (LPSTR) "", pPrintInfo, 80))
- return (NULL);
- lpTemp = lpPrintType = lpPrintInfo;
- lpPrintDriver = lpPrintPort = 0;
- while (*lpTemp) {
- if (*lpTemp == ',') {
- *lpTemp++ = 0;
- while (*lpTemp == ' ')
- lpTemp = AnsiNext(lpTemp);
- if (!lpPrintDriver)
- lpPrintDriver = lpTemp;
- else {
- lpPrintPort = lpTemp;
- break;
- }
- }
- else
- lpTemp = AnsiNext(lpTemp);
- }
- return (CreateDC(lpPrintDriver, lpPrintType,
-
- lpPrintPort, (LPSTR) NULL));
- }
-
- ä½∩ αáºñѽѡ¿∩ »«½∩ "device" ¡á Γα¿ ¬«¼»«¡Ñ¡Γδ, Σπ¡¬µ¿∩
- AnsiNext óδí¿αáÑΓ ¿º ¡Ñú« »« «ñ¡«¼π ß¿¼ó«½π ºá «íαáΘÑ¡¿Ñ.
-
- 12.8.6 ¥¬ß»«αΓ¿α«óá¡¿Ñ Σπ¡¬µ¿¿ AbortDlg ¿ AbortProc.
-
- ìÑ«íσ«ñ¿¼« ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ óáΦÑ⌐ »α«úαá¼¼δ
- «»¿ßáΓ∞ Σπ¡¬µ¿¿ AbortDlg ¿ AbortProc ¬á¬ φ¬ß»«αΓ¿απѼδÑ. ä½∩
- φΓ«ú« ñ«íáó∞ΓÑ ó Σá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩ ß½ÑñπεΘ¿Ñ ßΓ᫬¿ ó
- αáºñѽ EXPORTS:
-
- AbortDlg @5; éδºδóáÑΓß∩, ¬«úñá »«½∞º«óáΓѽ∞ »αÑαδ-
- ; óáÑΓ «»Ñαáµ¿ε »ÑτáΓ¿.
- AbortProc @6; ÄíαáíáΓδóáÑΓ ß««íΘÑ¡¿∩, »αÑñ¡áº¡áτÑ¡¡δÑ
- ; ñ½∩ »á¡Ñ½¿ ñ¿á½«úá Abort.
-
- 12.6.7 諼»¿½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- é Σá⌐½Ñ make ¡Ñ ΓαÑíπÑΓß∩ »α«ó«ñ¿Γ∞ ¿º¼Ñ¡Ñ¡¿⌐.
- ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α¿¬½áñ¡πε »α«úαá¼¼π, ºá»πßΓ¿ΓÑ
- Windows ¿ »α«úαá¼¼π PrntFile, óδ πó¿ñ¿ΓÑ, τΓ« ¬ ¼Ñ¡ε File
- ñ«íáó½Ñ¡á ¬«¼á¡ñá Print. éδ ¼«ªÑΓÑ »ÑτáΓáΓ∞ ß¡áτá½á «Γ¬αδó
- Σá⌐½ ¿½¿ »α«ßΓ« ¡áíαáΓ∞ ΓѬßΓ ß ¬½áó¿áΓπαδ ¿ ºáΓѼ óδíαáΓ∞
- ¬«¼á¡ñπ Print.
- 12.9 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ «ßπΘÑßΓó½∩Γ∞ óδó«ñ ¡á »ÑτáΓ∞
- »α¿ αáí«ΓÑ ó ßαÑñÑ Windows. é ßαÑñÑ Windows óáΦá »α«úαá¼¼á ¡Ñ
- ¿¼ÑÑΓ ñѽ« ß ßἿ¼ »α¿¡ΓÑα«¼. ÅÑτáΓ∞ «ßπΘÑßΓó½∩ÑΓß∩ »πΓѼ
-
- Windows 3.0/pg/2#3 = 131 =
-
- »«ß佬¿ ¿¡Σ«α¼áµ¿¿ ¬«¡ΓѬßΓπ πßΓα«⌐ßΓóá »ÑτáΓ¿. Åਪ½áñ¡á∩
- »α«úαá¼¼á óºá¿¼«ñÑ⌐ßΓóπÑΓ ß »α¿¡ΓÑα«¼ ß »«¼«Θ∞ε π»αáó½∩εΘ¿σ
- »«ß½Ññ«óáΓѽ∞¡«ßΓÑ⌐.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« »ÑτáΓ¿ óδ ¡á⌐ñÑΓÑ
- ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- è«¡ΓѬßΓ πßΓα«⌐ßΓóá Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 3, "éδó«ñ
- ó «¬¡«".
-
- ô»αáó½Ñ¡¿Ñ »áαá¼ÑΓ- Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 17, "Åáαá-
- αἿ »α¿¡ΓÑαá ¼ÑΓαδ »α¿¡ΓÑαá".
-
- êß»«½∞º«óá¡¿Ñ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 18,
- Φα¿ΣΓ«ó "ÿα¿ΣΓδ".
-
- öπ¡¬µ¿¿ αáí«Γδ ß æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1: â½áóá 2,
- ¬«¡ΓѬßΓἿ "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó"
- πßΓα«⌐ßΓó ¿ ú½áóá 4, "滿߫¬ Σπ¡¬µ¿⌐".
-
-
-
- Windows 3.0/pg/2#3 = 132 =
-
- â½áóá 13. æ¿ßΓѼ¡δ⌐ íπΣÑα.
- ----------------------------------------------------------------
- æ¿ßΓѼ¡δ⌐ íπΣÑα »αÑñßΓáó½∩ÑΓ ß«í«⌐ ßαÑñßΓó« «í¼Ñ¡á ñá¡¡δ¼¿
- ó ßαÑñÑ Windows. ¥Γ« «íΘá∩ «í½áßΓ∞ ñ½∩ σαá¡Ñ¡¿∩ ñÑß¬α¿»Γ«α«ó
- ñá¡¡δσ, τÑαѺ ¬«Γ«απε »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¼«úπΓ «í¼Ñ¡¿óáΓ∞ß∩
- Σ«α¼áΓ¿α«óá¡¡δ¼¿ ñá¡¡δ¼¿. æ¿ßΓѼ¡δ⌐ íπΣÑα ß«ñÑαª¿Γ ¡Ñ¬«Γ«α«Ñ
- τ¿ß½« Σ«α¼áΓ«ó ñá¡¡δσ ¿ ß««ΓóÑΓßΓóπεΘ¿σ ñÑß¬α¿»Γ«α«ó,
- »αÑñßΓáó½∩εΘ¿σ φΓ¿ ñá¡¡δÑ, ¡« ó αẽ¿τ¡δσ Σ«α¼áΓáσ,
- »«ññÑনóáѼδσ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐. ìá»α¿¼Ñα, ¬απú«óá∩
- ñ¿áúαá¼¼á ¼«ªÑΓ σαá¡¿Γ∞ß∩ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ ¬á¬ ó ó¿ñÑ
- ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á, Γᬠ¿ ó ó¿ñÑ αáßΓα«ó«⌐ ¬áαΓδ. Åਪ½áñ¡á∩
- »α«úαá¼¼á, ó¬½ετáεΘá∩ ¬απú«óπε ñ¿áúαá¼¼π, ñ«½ª¡á «»αÑñѽ¿Γ∞ Γ¿»
- »αÑñßΓáó½Ñ¡¿∩. ÄíΘ¿¼ »αá󿽫¼ ∩ó½∩ÑΓß∩ ¿ß»«½∞º«óá¡¿Ñ
- »αÑñßΓáó½Ñ¡¿∩ ß í«½∞ΦÑ⌐ ¿¡Σ«α¼áΓ¿ó¡«ßΓ∞ε, Ñß½¿ »α¿¬½áñ¡á∩
- »α«úαá¼¼á »«ññÑনóáÑΓ Γᬫ⌐ Σ«α¼áΓ.
-
- é ñá¡¡«¼ αáºñÑ½Ñ »«∩ß¡∩ÑΓß∩, ¬á¬ ¿ß»«½∞º«óáΓ∞ ß¿ßΓѼ¡δ⌐
- íπΣÑα ñ½∩ Γ«ú«, τΓ«íδ:
-
- - 欫»¿α«óáΓ∞ ΓѬßΓ ó ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- - éßΓáó¿Γ∞ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- - 欫»¿α«óáΓ∞ αáßΓα«óπε ¬áαΓπ ó ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- - éßΓáó¿Γ∞ αáßΓα«óπε ¬áαΓπ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- - êß»«½∞º«óáΓ∞ µÑ»«τ¬π ¡áí½εñÑ¡¿∩ ºá ß¿ßΓѼ¡δ¼ íπΣÑα«¼.
-
- é ñá¡¡«⌐ ú½áóÑ Γá¬ªÑ «»¿ßá¡ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ,
- ClipText, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ «»¿ßá¡¡δσ ó ñá¡¡«⌐
- ú½áóÑ ¼ÑΓ«ñ«ó.
- 13.1 êß»«½∞º«óá¡¿Ñ ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- ä½∩ ¬«»¿α«óá¡¿∩ ñá¡¡δσ ó ß¿ßΓѼ¡δ⌐ íπΣÑα ¡Ñ«íσ«ñ¿¼«
- ßΣ«α¼áΓ¿α«óáΓ∞ óδíαá¡¡δÑ ñá¡¡δÑ, ¿ß»«½∞ºπ∩ ¿½¿ óßΓα«Ñ¡¡δ⌐, ¿½¿
- ß«íßΓóÑ¡¡δ⌐ Σ«α¼áΓ. ä½∩ í«½∞Φ¿¡ßΓóá Σ«α¼áΓ«ó ¡Ñ«íσ«ñ¿¼« «ΓóÑßΓ¿
- ú½«íá½∞¡πε »á¼∩Γ∞ ¿ ߬«»¿α«óáΓ∞ ó ¡ÑÑ ñá¡¡δÑ. çáΓѼ ¡πª¡«
- ߬«»¿α«óáΓ∞ ñÑß¬α¿»Γ«α »á¼∩Γ¿ ó ß¿ßΓѼ¡δ⌐ íπΣÑα, ¿ß»«½∞ºπ∩
- Σπ¡¬µ¿ε SetClipboardData.
-
- é »α¿¬½áñ¡δσ »α«úαá¼¼áσ Windows ¬«»¿α«óá¡¿Ñ ¿ óßΓáó¬á
- «ßπΘÑßΓó½∩εΓß∩ ß »«¼«Θ∞ε ¬«¼á¡ñ ¼Ñ¡ε Edit. ¡« ñ«íáó¿Γ∞ ¼Ñ¡ε
- Edit ¬ »α«úαá¼¼Ñ Γá¬, ¬á¬ φΓ« «»¿ßá¡« ó ú½áóÑ 7 "îÑ¡ε".
-
- Windows »«ññÑনóáÑΓ ¡Ñ߬«½∞¬« óßΓα«Ñ¡¡δσ Σ«α¼áΓ«ó ñá¡¡δσ,
- ¿ß»«½∞ºπѼδσ »α¿ «í¼Ñ¡Ñ. Äß¡«ó¡δÑ Σ«α¼áΓδ:
-
-
- Windows 3.0/pg/2#3 = 133 =
-
-
- ö«α¼áΓ æ«ñÑন¼«Ñ
- ──────────────────────────────────────────────────────────────
- CF_TEXT Ĭá¡τ¿óáεΘ¿⌐ß∩ ¡π½Ñ¼ ΓѬßΓ.
-
- CF_OEMTEXT Ĭá¡τ¿óáεΘ¿⌐ß∩ ¡π½Ñ¼ ΓѬßΓ ó ¡áí«αÑ ß¿¼-
- 󫽫ó OEM.
-
- CF_METAFILEPICT æΓαπ¬Γπαá ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á.
-
- CF_BITMAP Ç»»áαáΓ¡«-ºáó¿ß¿¼á∩ αáßΓα«óá∩ ¬áαΓá.
-
- CF_DIB Ç»»áαáΓ¡«-¡Ñºáó¿ß¿¼á∩ αáßΓα«óá∩ ¬áαΓá.
-
- CF_SYLK æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ «í¼Ñ¡á ñá¡¡δ¼¿ SYLK.
-
- CF_DIF æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ «í¼Ñ¡á ñá¡¡δ¼¿ DIF.
-
- CF_TIFF æΓá¡ñáαΓ¡δ⌐ Σ«α¼áΓ «í¼Ñ¡á ñá¡¡δ¼¿ TIFF.
- ──────────────────────────────────────────────────────────────
-
- è«úñá ñá¡¡δÑ óßΓáó½∩εΓß∩ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ GetClipboardData, ¡πª¡« ߻ѵ¿Σ¿µ¿α«óáΓ∞ ñ«íáó½∩Ѽδ⌐
- Σ«α¼áΓ. æ¿ßΓѼ¡δ⌐ íπΣÑα »αÑñ«ßΓáó½∩ÑΓ ñá¡¡δÑ Γ«½∞¬« ó Γ«¼
- ß½πτáÑ, Ñß½¿ «¡¿ í뫨 ߬«»¿α«óá¡δ ó φΓ«¼ Σ«α¼áΓÑ.
-
- Windows »«ññÑনóáÑΓ ñóá Σ«α¼áΓá ñ½∩ ΓѬßΓá - CF_TEXT ¿
- CF_OEMTEXT. ö«α¼áΓ CF_TEXT ¿ß»«½∞ºπÑΓß∩ »« π¼«½τá¡¿ε. Windows
- ¿ß»«½∞ºπÑΓ Σ«α¼áΓ CF_OEMTEXT ñ½∩ ΓѬßΓá ¿º »α¿¬½áñ¡δσ »α«úαá¼¼,
- ¡Ñ »αÑñ¡áº¡áτÑ¡¡δσ ñ½∩ Windows. àß½¿ óδ óδºδóáÑΓÑ Σπ¡¬µ¿ε
- GetClipboardData ñ½∩ »«½πτÑ¡¿∩ ñá¡¡δσ ó «ñ¡«¼ Σ«α¼áΓÑ, ó Γ«
- óαѼ∩ ¬á¬ ñ«ßΓπ»Ñ¡ Γ«½∞¬« ñαπú«⌐ ΓѬßΓ«óδ⌐ Σ«α¼áΓ, Γ« Windows
- áóΓ«¼áΓ¿τÑ߬¿ »αÑ«íαáºπÑΓ ΓѬßΓ ó Σ«α¼áΓ, ¡Ñ«íσ«ñ¿¼δ⌐ óáΦÑ⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ.
-
- çá¼Ñτá¡¿Ñ: ÄíΩѬΓδ ñá¡¡δσ ß¿ßΓѼ¡«ú« íπΣÑαá ¼«úπΓ íδΓ∞
- ½εí«ú« αẼÑαá. éáΦá »α«úαá¼¼á ß»«ß«í¡á αáí«ΓáΓ∞ ß «íΩѬΓἿ
- αẼÑα«¼ í«½∞ΦÑ 64è. ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε »« »«ó«ñπ αáí«Γδ
- ß í«½∞Φ¿¼¿ «íΩѬΓἿ óδ ¡á⌐ñÑΓÑ ó ú½áóÑ 16, "àΘÑ «í π»αáó½Ñ¡¿¿
- »á¼∩Γ∞ε".
- 13.1.1 è«»¿α«óá¡¿Ñ ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- é ß¿ßΓѼ¡δ⌐ íπΣÑα ¼«ª¡« ߬«»¿α«óáΓ∞ ¡Ñí«½∞Φπε ßΓ᫬π
- ΓѬßΓá. ä½∩ φΓ«ú« ¡Ñ«íσ«ñ¿¼«:
-
- 1. 欫»¿α«óáΓ∞ ßΓ᫬π ó ú½«íá½∞¡πε »á¼∩Γ∞.
-
- 2. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- 3. Äτ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- 4. Å«¼ÑßΓ¿Γ∞ ó ß¿ßΓѼ¡δ⌐ íπΣÑα ñÑß¬α¿»Γ«α ú½«íá½∞¡«⌐
-
- Windows 3.0/pg/2#3 = 134 =
-
- »á¼∩Γ¿.
-
- 5. çá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- è«»¿α«óá¡¿Ñ ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα »α«¿ßσ«ñ¿Γ ó «ΓóÑΓ ¡á
- óδí«α ¬«¼á¡ñδ Copy ¿º ¼Ñ¡ε Edit. ä½∩ «íαáí«Γ¬¿ óδíαá¡¡«⌐
- ¬«¼á¡ñδ ¿ ¬«»¿α«óá¡¿∩ ßΓ᫬¿ ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα
- ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ WM_COMMAND ¬ Σπ¡¬µ¿¿ «¬¡á.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ:
-
- case WM_COMMAND:
- switch (wParam) {
- case IDM_COPY:
- if(!(hData = GlobalAlloc(GMEM_MOVEABLE,
- GlobalSize(hText)))) {
- }
- if(!(lpData = GlobalLock(hData))) {
- GlobalFree(hData);
- OutOfMemory();
- return(TRUE);
- }
- if(!(lpszText = GlobalLock(hText))) {
- OutOfMemory();
- return(TRUE);
- }
- lstrcpy(lpData,lpszText);
- GlobalUnlock(hData);
- GlobalUnlock(hText);
-
- /* «τ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα ¿ πßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α
- ¡á ¡«óπε ßΓ᫬π */
-
- if (OpenClipboard(hWnd)) {
- EmptyClipboard();
- SetClipboardData(CF_TEXT, hData);
- CloseClipboard();
- }
- hData = 0;
- break;
- }
-
- öπ¡¬µ¿∩ GlobalAlloc «Γó«ñ¿Γ ¡Ñ«íσ«ñ¿¼δ⌐ ñ½∩ αẼÑΘÑ¡¿∩
- ßΓ᫬¿ «íΩѼ »á¼∩Γ¿. ö½áú GMEM_MOVEABLE ߻ѵ¿Σ¿µ¿απÑΓ
- »ÑαѼÑΘáѼπε »á¼∩Γ∞. æ¿ßΓѼ¡δ⌐ íπΣÑα ¼«ªÑΓ ¿ß»«½∞º«óáΓ∞ ¿½¿
- Σ¿¬ß¿α«óá¡¡πε ¿½¿ »ÑαѼÑΘáѼπε »á¼∩Γ∞, ¡« ¡Ñ ß½ÑñπÑΓ Ñ¼π
- ºáñáóáΓ∞ ßíαáßδóáѼπε »á¼∩Γ∞. ìá¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡« ¿ß»«½∞º«óá¡¿Ñ
- »ÑαѼÑΘáѼ«⌐ »á¼∩Γ¿.
-
- Åα¿¼Ñτá¡¿Ñ: æ½ÑñπÑΓ óßÑúñá ¬«¡Γα«½¿α«óáΓ∞ ó«ºóαáΘáѼ«Ñ
- º¡áτÑ¡¿Ñ »α¿ óδñѽѡ¿¿ ¿½¿ í½«¬¿α«óá¡¿¿ »á¼∩Γ¿. ç¡áτÑ¡¿Ñ,
- αáó¡«Ñ 0, ú«ó«α¿Γ « Γ«¼, τΓ« ¡Ñ σóáΓáÑΓ »á¼∩Γ¿.
-
- àß½¿ ¿ß»«½∞ºπÑΓß∩ »ÑαѼÑΘáѼá∩ »á¼∩Γ∞, ÑÑ ¡Ñ«íσ«ñ¿¼«
-
- Windows 3.0/pg/2#3 = 135 =
-
- ºáí½«¬¿α«óáΓ∞ ñ½∩ ¡áσ«ªñÑ¡¿∩ áñαÑßá »á¼∩Γ¿. é¼ÑßΓ« Σπ¡¬µ¿¿
- ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ strcpy ¿ß»«½∞ºπÑΓß∩ ½«¬á½∞¡« «»αÑñѽѡ¡á∩
- Σπ¡¬µ¿∩ lstrcpy, »«ß¬«½∞¬π »Ñαóá∩ ¡Ñ ¼«ªÑΓ αáí«ΓáΓ∞ ß«
- ß¼ÑΦá¡¡δ¼¿ π¬áºáΓѽ∩¼¿ (string - ¬«α«Γ¬¿⌐ π¬áºáΓѽ∞, á lpData -
- ñ½¿¡¡δ⌐ π¬áºáΓѽ∞). ä½∩ ß¿ßΓѼ¡«ú« íπΣÑαá ¡Ñ«íσ«ñ¿¼«, τΓ«íδ
- ßΓα«¬á «¬á¡τ¿óá½áß∞ ¡π½Ñóδ¼ ß¿¼ó«½«¼. ìᬫ¡Ñµ, »á¼∩Γ∞ ñ«½ª¡á
- íδΓ∞ αáºí½«¬¿α«óá¡á »ÑαÑñ ¬«»¿α«ó᡿Ѽ ÑÑ ß«ñÑন¼«ú« ó
- ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- èáªñδ⌐ αẠ»α¿ ¬«»¿α«óá¡¿¿ ßΓ᫬¿ ó ß¿ßΓѼ¡δ⌐ íπΣÑα íπñÑΓ
- «Γó«ñ¿Γ∞ß∩ ¡«óδ⌐ í½«¬ ú½«íá½∞¡«⌐ »á¼∩Γ¿. Åα¿τ¿¡á ºá¬½ετáÑΓß∩ ó
- Γ«¼, τΓ« Ñß½¿ «ñ¡áªñδ ñÑß¬α¿»Γ«α ñá¡¡δσ íδ½ »ÑαÑñá¡ ó ß¿ßΓѼ¡δ⌐
- íπΣÑα, «¡ ßΓá¡«ó¿Γß∩ Ñú« ß«íßΓóÑ¡¡«ßΓ∞ε. ¥Γ« «º¡áτáÑΓ, τΓ«
- ¡Ñ½∞º∩ í«½∞ΦÑ ¿ß»«½∞º«óáΓ∞ ñÑß¬α¿»Γ«α (¬α«¼Ñ »α«ß¼«Γαá Ñú«
- ß«ñÑন¼«ú«), ¿ ¡Ñ ß½ÑñπÑΓ »δΓáΓ∞ß∩ «ßó«í«ñ¿Γ∞ ñÑß¬α¿»Γ«α ¿½¿
- ¿º¼Ñ¡¿Γ∞ Ñú« ß«ñÑন¼«Ñ.
-
- ä½∩ ¬«»¿α«óá¡¿∩ ñÑß¬α¿»Γ«αá ú½«íá½∞¡«⌐ »á¼∩Γ¿ ó ß¿ßΓѼ¡δ⌐
- íπΣÑα ¡Ñ«íσ«ñ¿¼« óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ ñÑ⌐ßΓó¿∩:
-
- 1. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- 2. Äτ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- 3. ôßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ.
-
- 4. çá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- Åα¿óÑñÑ¡¡δÑ ¡¿ªÑ «»ÑαáΓ«αδ óδ»«½¡∩εΓ φΓ¿ Φáú¿:
-
- (1) if (OpenClipboard(hWnd)) {
- (2) EmptyClipboard();
- (3) SetClipboardData(CF_TEXT, hData);
- CloseClipboard();
- }
- (4) hData = NULL;
-
- 1) öπ¡¬µ¿∩ OpenClipboard «Γ¬αδóáÑΓ ß¿ßΓѼ¡δ⌐ íπΣÑα ñ½∩
- π¬áºá¡¡«ú« «¬¡á. àß½¿ ñαπú«Ñ «¬¡« πªÑ «Γ¬α佫 ß¿ßΓѼ¡δ⌐
- íπΣÑα, Γ« φΓá Σπ¡¬µ¿∩ ¼«ªÑΓ ºá¬«¡τ¿Γß∩ ¡Ñπñáτ¡«.
-
- 2) öπ¡¬µ¿∩ EmptyClipboard «τ¿ΘáÑΓ ßπΘÑßΓóπεΘ¿Ñ ó ß¿ßΓѼ¡«¼
- íπΣÑαÑ ñÑß¬α¿»Γ«αδ ¿ ñѽáÑΓ ó½áñѽ∞µÑ¼ ß¿ßΓѼ¡«ú« íπΣÑαá
- «¬¡«, ¬«Γ«α«Ñ Ñú« «Γ¬α佫. Åਪ½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á
- «τ¿ßΓ¿Γ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα »ÑαÑñ ¬«»¿α«ó᡿Ѽ ó ¡Ñú« ñá¡¡δσ.
-
- 3) öπ¡¬µ¿∩ SetClipboardData ¬«»¿απÑΓ ñÑß¬α¿»Γ«α »á¼∩Γ¿ ó
- ß¿ßΓѼ¡δ⌐ íπΣÑα ¿ ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ Σ«α¼áΓ ñá¡¡δσ CF_TEXT.
- çáΓѼ ß¿ßΓѼ¡δ⌐ íπΣÑα ºá¬αδóáÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- CloseClipboard.
-
- 4) ū߬«½∞¬π ß¿ßΓѼ¡δ⌐ íπΣÑα ΓÑ»Ñα∞ ∩ó½∩ÑΓß∩ ó½áñѽ∞µÑ¼
- ú½«íá½∞¡«⌐ »á¼∩Γ¿, ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡«⌐ hData, πñ«í¡«
-
- Windows 3.0/pg/2#3 = 136 =
-
- πßΓá¡«ó¿Γ∞ φΓπ »á¼∩Γ∞ ó ¡π½∞ ñ½∩ »αÑñ«ΓóαáΘÑ¡¿∩ »«»δΓ«¬
- «ßó«í«ñ¿Γ∞ ¿½¿ ¿º¼Ñ¡¿Γ∞ ÑÑ.
- 13.1.2 éßΓáó¬á ΓѬßΓá ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- ¡« óßΓáó¿Γ∞ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá ó «í½áßΓ∞
- »«½∞º«óáΓѽ∩; Γ.Ñ. ¼«ª¡« »«½πτ¿Γ∞ ñÑß¬α¿»Γ«α ΓѬßΓá ¿º
- ß¿ßΓѼ¡«ú« íπΣÑαá ¿ ¿¡ñ¿µ¿α«óáΓ∞ Ñú« ó «í½áßΓ¿ »«½∞º«óáΓѽ∩,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε TextOut. ìÑ«íσ«ñ¿¼« ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
-
- 1. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- 2. Å«½πτ¿Γ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ, ßó∩ºá¡¡δ⌐ ß CF_TEXT ¿½¿ ß
- CF_OEMTEXT.
-
- 3. çá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα.
-
- ¥Γá «»Ñαᵿ∩ αáºαÑΦÑ¡á Γ«½∞¬« ó Γ«¼ ß½πτáÑ, Ñß½¿ ó
- ß¿ßΓѼ¡«¼ íπΣÑαÑ ßπΘÑßΓóπÑΓ ΓѬßΓ. àß½¿ ΓѬßΓá ¡Ñ ßπΘÑßΓóπÑΓ,
- Γ« ñ½∩ »αÑñ«ΓóαáΘÑ¡¿∩ »«»δΓ«¬ Ñú« óßΓáó¿Γ∞ ¼«ª¡« »α«óÑα¿Γ∞
- ß¿ßΓѼ¡δ⌐ íπΣÑα »ÑαÑñ ΓѼ, ¬á¬ Windows ¿¡ñ¿µ¿απÑΓ ¼Ñ¡ε
- Edit, «íαáí«Γáó ß««íΘÑ¡¿Ñ WM_INITMENU. àß½¿ ß¿ßΓѼ¡δ⌐ íπΣÑα
- »πßΓ, ¼«ª¡« ßñѽáΓ∞ ¡Ññ«ßΓπ»¡«⌐ ¬«¼á¡ñπ Paste; Ñß½¿ ΓѬßΓ
- ¿¼ÑÑΓß∩, ¼«ª¡« ßñѽáΓ∞ ÑÑ ñ«ßΓπ»¡«⌐. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_INITMENU:
- (1) if (wParam == GetMenu(hWnd)) {
- if(OpenClipboard(hWnd)) {
- (2) if(IsClipboardFormatAvailable(CF_TEXT) |
- IsClipboardFormatAvailable(CF_OEMTEXT))
- (3) EnableMenuItem(wParam, ID_PASTE, MF_ENABLED);
- else
- EnableMenuItem(wParam, ID_PASTE, MF_GRAYED);
- CloseClipboard();
- return(TRUE);
- }
- else
- return(FALSE);
- }
-
- 1) ū߬«½∞¬π ¼¡«ú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¿¼ÑεΓ »« ¬αá⌐¡Ñ⌐
- ¼ÑαÑ ñóá ¼Ñ¡ε (ó¬½ετá∩ ß¿ßΓѼ¡«Ñ ¼Ñ¡ε), ó᪡« íδΓ∞
- πóÑαÑ¡¡δ¼, τΓ« ß««íΘÑ¡¿Ñ «Γ¡«ß¿Γß∩ ¬ ¼Ñ¡ε Edit. ¥Γ« ¼«ª¡«
- ßñѽáΓ∞, ¿ß»«½∞º«óáó Σπ¡¬µ¿ε GetMenu ¿ ßαáó¡¿ó wParam ß
- ñÑß¬α¿»Γ«α«¼, ¬«Γ«αδ⌐ ó«ºóαáΘáÑΓ φΓá Σπ¡¬µ¿∩.
-
- 2) äóá ó맮óá Σπ¡¬µ¿¿ IsClipboardFormatAvailable »α«óÑα∩εΓ
- ñ«ßΓπ»¡«ßΓ∞ Σ«α¼áΓ«ó CF_TEXT ¿ CF_OEMTEXT.
-
- 3) öπ¡¬µ¿∩ EnableMenuItem ñѽáÑΓ ñ«ßΓπ»¡«⌐ ¿½¿ ¡Ññ«ßΓπ»¡«⌐
- ¬«¼á¡ñπ Paste, «ß¡«óδóá∩ß∞ ¡á Γ«¼, ¡á⌐ñÑ¡ ½¿ Σ«α¼áΓ
- CF_TEXT.
-
- Windows 3.0/pg/2#3 = 137 =
-
-
- ¡« óßΓáó¿Γ∞ ñá¡¡δÑ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá, ¬«úñá
- »«½∞º«óáΓѽ∞ óδí¿αáÑΓ ¬«¼á¡ñπ Paste ¿º ¼Ñ¡ε Edit. ä½∩ «íαáí«Γ¬¿
- ¬«¼á¡ñδ ¼Ñ¡ε ¿ »«½πτÑ¡¿∩ ΓѬßΓá ¿º ß¿ßΓѼ¡«ú« íπΣÑαá ¡Ñ«íσ«ñ¿¼«
- ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ IDM_PASTE ¬ Σαáú¼Ñ¡Γπ WM_COMMAND ó Σπ¡¬µ¿¿
- «¬¡á. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ßαáºπ »«ß½Ñ Σαáú¼Ñ¡Γá
- IDM_COPY:
-
- case IDM_PASTE:
- (1) if (OpenClipboard(hWnd)) {
- /* óº∩Γ∞ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá */
- (2) hClipData = GetClipboardData(CF_TEXT);
- CloseClipboard();
- break;
- }
- (3) if(!(lpClipData = GlobalLock(hClipData))) {
- OutOfMemory();
- CloseClipboard();
- break;
- }
- (4) hDC = GetDC(hWnd);
- TextOut(hDC, 10, 10, lpClipData);
- GlobalUnlock(hClipData);
- ReleaseDC(hWnd, hDC);
- CloseClipboard();
- }
- break;
-
- é φΓ«¼ »α¿¼ÑαÑ:
-
- 1) öπ¡¬µ¿∩ OpenClipboard «Γ¬αδóáÑΓ ß¿ßΓѼ¡δ⌐ íπΣÑα ñ½∩
- π¬áºá¡¡«ú« «¬¡á, Ñß½¿ «¡ ÑΘÑ ¡Ñ «Γ¬αδΓ.
-
- 2) öπ¡¬µ¿∩ GetClipboardData ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ñá¡¡δσ ñ½∩
- ΓѬßΓá ¿½¿ ¡π½∞, Ñß½¿ Γᬿσ ñá¡¡δσ ¡ÑΓ. ¥Γ«Γ ñÑß¬α¿»Γ«α
- ß½ÑñπÑΓ »α«óÑα∩Γ∞ »ÑαÑñ ¿ß»«½∞º«ó᡿Ѽ.
-
- 3) öπ¡¬µ¿∩ GetClipboardData ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ú½«íá½∞¡«⌐
- »á¼∩Γ¿. ū߬«½∞¬π ¿ß»«½∞ºπÑΓß∩ Σ«α¼áΓ CF_TEXT, Γ«
- »αÑñ»«½áúáÑΓß∩, τΓ« ú½«íá½∞¡á∩ »á¼∩Γ∞ ß«ñÑনΓ
- «¬á¡τ¿óáεΘπεß∩ ¡π½Ñ¼ ANSI-ßΓ᫬π. ¥Γ« «º¡áτáÑΓ, τΓ«
- ú½«íá½∞¡á∩ »á¼∩Γ∞ ¼«ªÑΓ íδΓ∞ ºáí½«¬¿α«óá¡á ß »«¼«Θ∞ε
- Σπ¡¬µ¿¿ GlobalLock, á ß«ñÑন¼«Ñ ¼«ªÑΓ íδΓ∞ ¿¡ñ¿µ¿α«óá¡« ó
- «í½áßΓ¿ »«½∞º«óáΓѽ∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ TextOut.
-
- 4) ä½∩ Γ«ú«, τΓ«íδ ¿¼ÑΓ∞ 󫺼«ª¡«ßΓ∞ ó¿ñÑΓ∞, τΓ« »α«úαá¼¼á
- ߬«»¿α«óá½á ß«ñÑন¼«Ñ ß¿ßΓѼ¡«ú« íπΣÑαá, Σπ¡¬µ¿∩ TextOut
- ºá»¿ßδóáÑΓ, ¡áτ¿¡á∩ ß Γ«τ¬¿ ß ¬««αñ¿¡áΓἿ (10,10) «í½áßΓ¿
- »«½∞º«óáΓѽ∩. ä½∩ ¿ß»«½∞º«óá¡¿∩ Σπ¡¬µ¿¿ TextOut ¡Ñ«íσ«ñ¿¼
- ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩ ¿, ß½Ññ«óáΓѽ∞¡«, ¡πª¡« ¿ß»«½∞º«óáΓ∞
- GetDC. ū߬«½∞¬π ¡Ñ«íσ«ñ¿¼« «ßó«í«ñ¿Γ∞ ¬«¡ΓѬßΓ
- «Γ«íαáªÑ¡¿∩ ßαáºπ »«ß½Ñ Ñú« ¿ß»«½∞º«óá¡¿∩, ΓαÑíπÑΓß∩
- Σπ¡¬µ¿∩ ReleaseDC.
-
- Windows 3.0/pg/2#3 = 138 =
-
-
- äá¡¡δ⌐ ß»«ß«í ¿¡ñ¿µ¿α«óá¡¿∩ ΓѬßΓá ó «í½áßΓ¿ »«½∞º«óáΓѽ∩
- »α¿¼Ñ¡Ñ¡ Γ«½∞¬« ñ½∩ ¿½½εßΓαᵿ¿. ū߬«½∞¬π ß«ñÑন¼«Ñ ßΓ᫬¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ¡Ñ ß«σαá¡∩ÑΓß∩, ¡Ñ ßπΘÑßΓóπÑΓ ß»«ß«íá
- »ÑαÑα¿ß«óáΓ∞ ΓѬßΓ, Ñß½¿ íπñÑΓ ßΓÑαΓ Σ«¡ «í½áßΓ¿ »«½∞º«óáΓѽ∩,
- ¬á¬ φΓ« »α«¿ßσ«ñ¿Γ ó« óαѼ∩ «íαáí«Γ¬¿ ß««íΘÑ¡¿∩ WM_PAINT.
- (Åα¿¼Ñα »α«úαá¼¼δ ClipText, «»¿ßá¡¡¡δ⌐ ñá½ÑÑ ó ñá¡¡«⌐ ú½áóÑ,
- ñѼ«¡ßΓα¿απÑΓ, ¬á¬ ¼«ª¡« ß«σαá¡¿Γ∞ ΓѬßΓ, ß ΓѼ, τΓ«íδ ó
- ñá½∞¡Ñ⌐ΦѼ ¼«ª¡« í佫 «ßπΘÑßΓó½∩Γ∞ »ÑαÑα¿ß«ó¬π «¬¡á.)
-
- ìѽ∞º∩ ¼«ñ¿Σ¿µ¿α«óáΓ∞ ¿½¿ πñ὿Γ∞ ñá¡¡δÑ, »«½πτÑ¡¡δÑ ¿º
- ß¿ßΓѼ¡«ú« íπΣÑαá. ¡« »α«óÑα¿Γ∞ ¿σ ¿½¿ ßñѽáΓ∞ ¬«»¿ε, ¡«
- ¡Ñ½∞º∩ ¿σ ¿º¼Ñ¡¿Γ∞. ä½∩ »α«óÑન ñá¡¡δσ ¡Ñ«íσ«ñ¿¼«
- ºáí½«¬¿α«óáΓ∞ ñÑß¬α¿»Γ«α, ¬á¬ ó ¡áΦѼ »α¿¼ÑαÑ, ¡« «ßΓáó½∩Γ∞
- ñÑß¬α¿»Γ«α ñá¡¡δσ ºáí½«¬¿α«óá¡¡δ¼ ¡Ñ½∞º∩. Éáºí½«¬¿απ⌐ΓÑ Ñú«
- ßαáºπ »«ß½Ñ ¿ß»«½∞º«óá¡¿∩.
-
- äÑß¬α¿»Γ«αδ ñá¡¡δσ, ó«ºóαáΘáѼδÑ Σπ¡¬µ¿Ñ⌐
- GetClipboardData, »αÑñ¡áº¡áτÑ¡δ Γ«½∞¬« ñ½∩ óαѼѡ¡«ú«
- ¿ß»«½∞º«óá¡¿∩. äÑß¬α¿»Γ«αδ »α¿¡áñ½ÑªáΓ ß¿ßΓѼ¡«¼π íπΣÑαπ, á ¡Ñ
- »α«úαá¼¼Ñ, ºá»α«ß¿óΦÑ⌐ ñá¡¡δÑ. æ««ΓóÑΓßΓóÑ¡¡«, ñÑß¬α¿»Γ«αδ ¡Ñ
- ñ«½ª¡δ «ßó«í«ªñáΓ∞ß∩ ¿ ñ«½ª¡δ íδΓ∞ αáºí½«¬¿α«óá¡δ ßαáºπ »«ß½Ñ
- ¿ß»«½∞º«óá¡¿∩. Åਪ½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á ߬«»¿α«óáΓ∞ ñá¡¡δÑ,
- ßó∩ºá¡¡δÑ ß ñÑß¬α¿»Γ«α«¼, á ºáΓѼ «ßó«í«ñ¿Γ∞ Ñú« íѺ ¿º¼Ñ¡Ñ¡¿⌐.
-
- öπ¡¬µ¿∩ CloseClipboard ºá¬αδóáÑΓ ß¿ßΓѼ¡δ⌐ íπΣÑα; óδ
- ñ«½ª¡δ ºá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα ßαáºπ ªÑ »«ß½Ñ Ñú«
- ¿ß»«½∞º«óá¡¿∩, Γ.¬. ¡Ñ«íσ«ñ¿¼« ñáΓ∞ 󫺼«ª¡«ßΓ∞ ó«ß»«½∞º«óáΓ∞ß∩
- ß¿ßΓѼ¡δ¼ íπΣÑα«¼ ñαπú¿¼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼. ÅÑαÑñ ΓѼ, ¬á¬
- ºá¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα, ¡Ñ«íσ«ñ¿¼« αáºí½«¬¿α«óáΓ∞ ñá¡¡δÑ,
- »«½πτÑ¡¡δÑ Σπ¡¬µ¿Ñ⌐ GetClipboardData.
- 13.1.3 éßΓáó¬á αáßΓα«óδσ ¬áαΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- êº ß¿ßΓѼ¡«ú« íπΣÑαá ¼«ª¡« óßΓáó¿Γ∞ ó «í½áßΓ∞ »«½∞º«óáΓѽ∩
- ¡Ñ Γ«½∞¬« ΓѬßΓ. ÉáßΓα«óπε ¬áαΓπ Γá¬ªÑ ¼«ª¡« »«½πτ¿Γ∞ ¿º
- ß¿ßΓѼ¡«ú« íπΣÑαá ¿ ¿¡ñ¿µ¿α«óáΓ∞ ÑÑ ó «í½áßΓ¿ »«½∞º«óáΓѽ∩. ä½∩
- »«½πτÑ¡¿∩ ¿ ¿¡ñ¿µ¿α«óá¡¿∩ αáßΓα«ó«⌐ ¬áαΓδ ¡Ñ«íσ«ñ¿¼«
- ¿ß»«½∞º«óáΓ∞ ëà ªÑ ß»«ß«í, τΓ« ¿ »α¿ óßΓáó¬Ñ ΓѬßΓá, ¡«
- »α¿¼Ñ¡¿Γѽ∞¡« ¬ αáßΓα«óδ¼ ¬áαΓá¼ ¡πª¡« ßñѽáΓ∞ ¡Ñí«½∞Φ¿Ñ
- ¿º¼Ñ¡Ñ¡¿∩.
-
- æ¡áτá½á ¡Ñ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σαáú¼Ñ¡Γ WM_INITMENU ó
- Σπ¡¬µ¿¿ «¬¡á, τΓ«íδ «¡ αáß»«º¡áóá½ Σ«α¼áΓ CF_BITMAP ó¼ÑßΓ«
- CF_TEXT. Å«ß½Ñ Ñú« ¿º¼Ñ¡Ñ¡¿∩ Σαáú¼Ñ¡Γ WM_INITMENU íπñÑΓ
- óδú½∩ñÑΓ∞ Γá¬:
-
- case WM_INITMENU:
- if (wParam == GetMenu(hWnd)) {
- if(OpenClipboard(hWnd)) {
- if(IsClipboardFormatAvailable(CF_BITMAP))
- EnableMenuItem(wParam, ID_PASTE, MF_ENABLED);
- else
-
- Windows 3.0/pg/2#3 = 139 =
-
- EnableMenuItem(wParam, ID_PASTE, MF_GRAYED);
- CloseClipboard();
- return(TRUE);
- }
- else
- return(FALSE);
- }
-
- Å«½πτ¿Γ∞ αáßΓα«óπε ¬áαΓπ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá Γá¬ªÑ ½Ñú¬«,
- ¬á¬ ¿ ΓѬßΓ, ¡« ¿¡ñ¿µ¿α«óá¡¿Ñ αáßΓα«ó«⌐ ¬áαΓδ ΓαÑíπÑΓ í«½∞ΦÑ⌐
- αáí«Γδ. é «íΘѼ, ¡Ñ«íσ«ñ¿¼« ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
-
- 1. Å«½πτ¿Γ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ αáßΓα«ó«⌐ ¬áαΓδ ¿º
- ß¿ßΓѼ¡«ú« íπΣÑαá. äÑß¬α¿»Γ«αδ ñá¡¡δσ αáßΓα«ó«⌐ ¬áαΓδ
- ¿º ß¿ßΓѼ¡«ú« íπΣÑαá - φΓ« ñÑß¬α¿»Γ«αδ αáßΓα«ó«⌐ ¬áαΓδ
- GDI (ß«ºñá¡¡δÑ ß »«¼«Θ∞ε Σπ¡¬µ¿⌐, ¡á»α¿¼Ñα, Γᬿσ ¬á¬
- CreateBitmap).
-
- 2. 櫺ñáΓ∞ ß«ó¼ÑßΓ¿¼δ⌐ ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩ ¿ óδíαáΓ∞ ó
- ¡Ñ¼ ñÑß¬α¿»Γ«α ñá¡¡δσ.
-
- 3. êß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε BitBlt ñ½∩ ¬«»¿α«óá¡¿∩ αáßΓα«ó«⌐
- ¬áαΓδ ó «í½áßΓ∞ »«½∞º«óáΓѽ∩.
-
- 4. Äßó«í«ñ¿Γ∞ ñÑß¬α¿»Γ«α αáßΓα«ó«⌐ ¬áαΓδ ¿º ΓѬπΘÑ⌐
- óδí«α¬¿.
-
- Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿∩ Σαáú¼Ñ¡Γ IDM_PASTE ñ«½ªÑ¡ óδú½∩ñÑΓ∞ Γá¬:
-
- case IDM_PASTE:
- if (OpenClipboard(hWnd)) {
-
- /* óº∩Γ∞ ΓѬßΓ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá */
-
- hClipData = GetClipboardData(CF_BITMAP);
- CloseClipboard();
- break;
- }
- if(!(lpClipData = GlobalLock(hClipData))) {
- OutOfMemory();
- CloseClipboard();
- break;
- }
- hDC = GetDC(hWnd);
- (1) hMemoryDC = CreateCompatibleDC(hDC);
- if (hMemoryDC != NULL) {
- (2) GetObject(hClipData, sizeof(BITMAP),
- (LPSTR) &PasteBitmap);
- (3) hOldBitmap = SelectObject(hMemoryDC, hClipData);
- if (hOldBitmap != NULL)
- BitBlt(hDC, 10, 10,
- PasteBitmap.bmWidth,
- PasteBitmap.bmHeight,
-
- Windows 3.0/pg/2#3 = 140 =
-
- hMemoryDC, 0, 0, SRCCOPY);
- SelectObject(hMemoryDC, hOldBitmap);
- }
- (4) DeleteDC(hMemoryDC);
- }
- ReleaseDC(hWnd, hDC);
- GlobalUnlock(hClipData);
- CloseClipboard();
- GlobalUnlock(hText);
- }
- break;
-
- é ñá¡¡«¼ »α¿¼ÑαÑ:
-
- 1) öπ¡¬µ¿∩ CreateCompatableDC ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α ¬«¡ΓѬßΓá
- «Γ«íαáªÑ¡¿∩ ó »á¼∩Γ¿, ¬«Γ«αδ⌐ ß«ó¼ÑßΓ¿¼ ß ñ¿ß»½ÑѼ óáΦÑú«
- ¬«¼»∞εΓÑαá. ¥Γ« «º¡áτáÑΓ, τΓ« αáßΓα«óδÑ ¬áαΓδ, óδíαá¡¡δÑ ó
- ñá¡¡«¼ ¬«¡ΓѬßΓÑ «Γ«íαáªÑ¡¿∩, ¼«úπΓ íδΓ∞ ߬«»¿α«óá¡δ
- ¡Ñ»«ßαÑñßΓóÑ¡¡« ó «í½áßΓ∞ »«½∞º«óáΓѽ∩. àß½¿ Σπ¡¬µ¿∩
- CreateCompatibleDC ºá¬á¡τ¿óáÑΓß∩ ¡Ñπñáτ¡« (ó«ºóαáΘáÑΓ
- NULL), αáßΓα«óá∩ ¬áαΓá ¡Ñ ¼«ªÑΓ íδΓ∞ ¿¡ñ¿µ¿α«óá¡á.
-
- 2) öπ¡¬µ¿∩ GetObject ó«ºóαáΘáÑΓ Φ¿α¿¡π ¿ óδß«Γπ αáßΓα«ó«⌐
- ¬áαΓδ, á Γá¬ªÑ «»¿ßá¡¿Ñ Σ«α¼áΓá αáßΓα«ó«⌐ ¬áαΓδ. Ä¡á
- ¬«»¿απÑΓ φΓπ ¿¡Σ«α¼áµ¿ε ó ßΓαπ¬Γπαπ PasteBitmap, αẼÑα
- ¬«Γ«α«⌐ «»αÑñѽ∩ÑΓß∩ Σπ¡¬µ¿Ñ⌐ sizeof. é ñá¡¡«¼ »α¿¼ÑαÑ
- ¿ß»«½∞ºπεΓß∩ Γ«½∞¬« Φ¿α¿¡á ¿ óδß«Γá ¿ Γ«½∞¬« ó Σπ¡¬µ¿¿
- BitBlt.
-
- 3) öπ¡¬µ¿∩ SelectObject óδí¿αáÑΓ αáßΓα«óπε ¬áαΓπ ó
- ß«ó¼ÑßΓ¿¼«¼ ¬«¡ΓѬßΓÑ «Γ«íαáªÑ¡¿∩. àß½¿ «¡á ºá¬á¡τ¿óáÑΓß∩
- ¡Ñπñáτ¡« (ó«ºóαáΘáÑΓ NULL), αáßΓα«óá∩ ¬áαΓá ¡Ñ ¼«ªÑΓ íδΓ∞
- ¿¡ñ¿µ¿α«óá¡á. öπ¡¬µ¿∩ SelectObject ¼«ªÑΓ ºá¬«¡τ¿Γ∞ß∩
- ¡Ñπñáτ¡«, Ñß½¿ αáßΓα«óá∩ ¬áαΓá ¿¼ÑÑΓ Σ«α¼áΓ, «Γ½¿τáεΘ¿⌐ß∩
- «Γ ß«ó¼ÑßΓ¿¼«ú« ¬«¡ΓѬßΓá «Γ«íαáªÑ¡¿∩. ¥Γ« ¼«ªÑΓ
- ß½πτ¿Γ∞ß∩, ¡á»α¿¼Ñα, Ñß½¿ αáßΓα«óá∩ ¬áαΓá íδ½á ß«ºñá¡á ñ½∩
- ¿¡ñ¿¬áµ¿¿ ¡á ñαπú«¼ ¬«¼»∞εΓÑαÑ.
-
- 4) öπ¡¬µ¿∩ DeleteDC πñá½∩ÑΓ ß«ó¼ÑßΓ¿¼δ⌐ ¬«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩.
- ÅÑαÑñ πñá½Ñ¡¿Ñ¼ Ñú« »Ñαó«¡áτá½∞¡á∩ αáßΓα«óá∩ ¬áαΓá ñ«½ª¡á
- íδΓ∞ ó«ßßΓá¡«ó½Ñ¡á ß »«¼«Θ∞ε Σπ¡¬µ¿¿ SelectObject.
-
- 13.1.4 ê¡ßΓαπ¼Ñ¡Γá½∞¡á∩ »α«úαá¼¼á Clipboard.
-
- ê¡ßΓαπ¼Ñ¡Γá½∞¡á∩ »α«úαá¼¼á Clipboard - clipbrd.exe ñáÑΓ
- »«½∞º«óáΓѽε ß»«ß«í »α«ß¼«ΓαÑΓ∞ ß«ñÑন¼«Ñ ß¿ßΓѼ¡«ú« íπΣÑαá;
- »« φΓ«⌐ »α¿τ¿¡Ñ «¡á Γá¬ªÑ ¡áºδóáÑΓß∩ "Åα«úαá¼¼á »α«ß¼«Γαá
- ß¿ßΓѼ¡«ú« íπΣÑαá". Ä¡á »ÑαÑτ¿ß½∩ÑΓ ¿¼Ñ¡á óßÑσ Σ«α¼áΓ«ó, ñ½∩
- ¬«Γ«αδσ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ ßπΘÑßΓóπÑΓ ñÑß¬α¿»Γ«α (¿½¿ NULL), ¿
- ¿¡ñ¿µ¿απÑΓ ß«ñÑন¼«Ñ ß¿ßΓѼ¡«ú« íπΣÑαá ó «ñ¡«¼ ¿º φΓ¿σ
- Σ«α¼áΓ«ó.
-
- Åα«úαá¼¼á »α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá ¼«ªÑΓ ¿¡ñ¿µ¿α«óáΓ∞
-
- Windows 3.0/pg/2#3 = 141 =
-
- óßÑ ßΓá¡ñáαΓ¡δÑ Σ«α¼áΓδ ñá¡¡δσ. àß½¿ ßπΘÑßΓóπεΓ ñÑß¬α¿»Γ«αδ
- í«½ÑÑ, τѼ ñ½∩ «ñ¡«ú« ßΓá¡ñáαΓ¡«ú« Σ«α¼áΓá ñá¡¡δσ, »α«úαá¼¼á
- ¿¡ñ¿µ¿απÑΓ Γ«½∞¬« «ñ¿¡ Σ«α¼áΓ, óδí¿αá∩ ¿º »α¿óÑñÑ¡¡«ú« ¡¿ªÑ
- ß»¿ß¬á ó »«α∩ñ¬Ñ π¼Ñ¡∞ΦÑ¡¿∩ »α¿«α¿ΓÑΓá: CF_TEXT,
- CF_OEMTEXT, CF_METAFILEPICT, CF_BITMAP, CF_SYLK ¿ CF_DIF.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε « Σ«α¼áΓáσ ß¿ßΓѼ¡«ú« íπΣÑαá óδ
- ¼«ªÑΓÑ »«½πτ¿Γ∞ ó æ»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ, Γ«¼ 1.
-
- 13.2 êß»«½∞º«óá¡¿Ñ ß»Ñµ¿á½∞¡δσ 󫺼«ª¡«ßΓÑ⌐ ß¿ßΓѼ¡«ú«
- íπΣÑαá.
-
- æ¿ßΓѼ¡δ⌐ íπΣÑα «íÑß»Ñτ¿óáÑΓ α∩ñ ߻ѵ¿á½∞¡δσ 󫺼«ª¡«ßΓÑ⌐,
-
- ¬«Γ«αδÑ »«ºó«½∩εΓ π¼Ñ¡∞Φ¿Γ∞ ¡Ñ«íσ«ñ¿¼«Ñ ¬«½¿τÑßó« αáí«Γδ ¿
- ßñѽáΓ∞ αáí«Γπ í«½ÑÑ πñ«í¡«⌐. ¥Γ« ß½ÑñπεΘ¿Ñ ó«º¼«ª¡«ßΓ¿:
-
- - æ¿ßΓѼ¡δ⌐ íπΣÑα ñáÑΓ ó«º¼«ª¡«ßΓ∞ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼
- «Γ½«ª¿Γ∞ Σ«α¼áΓ¿α«óá¡¿Ñ ñá¡¡δσ, »ÑαÑñáóáѼδσ ó ß¿ßΓѼ¡δ⌐
- íπΣÑα, ñ« ΓÑσ »«α, »«¬á φΓ¿ ñá¡¡δÑ ¡Ñ »«ΓαÑíπεΓß∩. àß½¿
- ¿ß»«½∞ºπÑΓß∩ ß½«ª¡δ⌐ Σ«α¼áΓ ñá¡¡δσ ¿ ñαπú¿Ñ »α«úαá¼¼δ
- 󫺼«ª¡« ¡Ñ íπñπΓ Ñú« ¿ß»«½∞º«óáΓ∞, »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ªÑΓ ß«σαá¡¿Γ∞ óαѼ∩, ¡Ñ Σ«α¼áΓ¿απ∩ φΓ¿ ñá¡¡δÑ ñ« ΓÑσ
- »«α, »«¬á ó ¡¿σ ¡Ñ 󫺡¿¬¡ÑΓ ¡Ñ«íσ«ñ¿¼«ßΓ∞.
-
- - Å«ºó«½∩ÑΓ α¿ß«óáΓ∞ ó¡πΓα¿ «í½áßΓ¿ »«½∞º«óáΓѽ∩
- »α«úαá¼¼δ Clipboard. ɿ߫óá¡¿Ñ ó «¬¡Ñ »α«úαá¼¼δ
- Clipboard ñáÑΓ ó«º¼«ª¡«ßΓ∞ ¿¡ñ¿µ¿α«óáΓ∞ Σ«α¼áΓδ ñá¡¡δσ,
- ¬«Γ«αδÑ φΓá »α«úαá¼¼á ¡Ñ º¡áÑΓ ¬á¬ «Γ«íαáªáΓ∞.
-
- é »«ß½ÑñπεΘ¿σ »«ñαáºñѽáσ φΓ¿ ßó«⌐ßΓóá «»¿ßδóáεΓß∩ í«½ÑÑ
- »«ñα«í¡«.
- 13.2.1 ÅαÑñßΓáó½Ñ¡¿Ñ ñá¡¡δσ »« ºá»α«ßπ.
-
- àß½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿ß»«½∞ºπÑΓ ¼¡«ú« Σ«α¼áΓ«ó
- ñá¡¡δσ, «¡á ¼«ªÑΓ ßíÑαÑτ∞ óαѼ∩ Σ«α¼áΓ¿α«óá¡¿∩, »ÑαÑñáóá∩
- ¡π½ÑóδÑ ñÑß¬α¿»Γ«αδ ñá¡¡δσ Σπ¡¬µ¿¿ SetClipboardData ó¼ÑßΓ«
- Γ«ú«, τΓ«íδ úÑ¡Ñα¿α«óáΓ∞ óßÑ ñÑß¬α¿»Γ«αδ ñá¡¡δσ »α¿
- ¿ß»«½∞º«óá¡¿¿ ¬«¼á¡ñ Cut ¿ Copy. Åਪ½áñ¡á∩ »α«úαá¼¼á
- Σá¬Γ¿τÑ߬¿ ¡Ñ ñ«½ª¡á úÑ¡Ñα¿α«óáΓ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ ñ« ΓÑσ »«α,
- »«¬á ñαπúá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¡Ñ ºá»α«ß¿Γ ñÑß¬α¿»Γ«α, óδºóáó
- Σπ¡¬µ¿ε GetClipboardData.
-
- è«úñá óδºóá¡á Σπ¡¬µ¿∩ GetClipboardData ß ºá»α«ß«¼ ¡á
- Σ«α¼áΓ, ñ½∩ ¬«Γ«α«ú« íδ½ πßΓá¡«ó½Ñ¡ ¡π½Ñó«⌐ ñÑß¬α¿»Γ«α ñá¡¡δσ,
- ó½áñѽ∞µπ ß¿ßΓѼ¡«ú« íπΣÑαá »«ßδ½áÑΓß∩ ß««íΘÑ¡¿Ñ
- WM_RENDERFORMAT. è«úñá »α¿¬½áñ¡á∩ »α«úαá¼¼á »«½πτáÑΓ φΓ«
- ß««íΘÑ¡¿Ñ, «¡á ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘÑÑ:
-
- 1. ÄΓΣ«α¼áΓ¿α«óáΓ∞ ñá¡¡δÑ, ¬«Γ«αδÑ í뫨 ߬«»¿α«óá¡δ
- »«ß½Ññ¡¿¼¿ ó ß¿ßΓѼ¡δ⌐ íπΣÑα (º¡áτÑ¡¿Ñ wParam ß««íΘÑ¡¿∩
- WM_RENDERFORMAT ߻ѵ¿Σ¿µ¿απÑΓ ºá»α«ΦÑ¡¡δ⌐ Σ«α¼áΓ).
-
- Windows 3.0/pg/2#3 = 142 =
-
-
- 2. ÄΓóÑßΓ¿ í½«¬ ú½«íá½∞¡«⌐ »á¼∩Γ¿ ¿ ߬«»¿α«óáΓ∞ ó ¡Ñú«
- ßΣ«α¼áΓ¿α«óá¡¡δÑ ñá¡¡δÑ.
-
- 3. ÅÑαÑñáΓ∞ ñÑß¬α¿»Γ«α ú½«íá½∞¡«⌐ »á¼∩Γ¿ ¿ ¡«¼Ñα Σ«α¼áΓá ó
- ß¿ßΓѼ¡δ⌐ íπΣÑα, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε SetClipboardData.
-
- ä½∩ óδ»«½¡Ñ¡¿∩ π¬áºá¡¡δσ Φáú«ó »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á
- σαá¡¿Γ∞ ºá»¿ß∞ « »«ß½Ññ¡¿σ ñá¡¡δσ, ߬«»¿α«óá¡¡δσ ó ß¿ßΓѼ¡δ⌐
- íπΣÑα. Åα«úαá¼¼á ¼«ªÑΓ ¿ºíáó¿Γ∞ß∩ «Γ φΓ«⌐ ¿¡Σ«α¼áµ¿¿, ¬«úñá «¡á
- »«½πτáÑΓ ß««íΘÑ¡¿Ñ WM_DESTROYCLIPBOARD, ¬«Γ«α«Ñ »«ßδ½áÑΓß∩
- ó½áñѽ∞µπ ß¿ßΓѼ¡«ú« íπΣÑαá ¬áªñδ⌐ αáº, ¬«úñá «¡ «τ¿ΘáÑΓß∩ ß
- »«¼«Θ∞ε ó맮óá Σπ¡¬µ¿¿ EmptyClipboard.
-
- 13.2.2 ÅαÑñßΓáó½Ñ¡¿Ñ Σ«α¼áΓ«ó »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ αáí«Γδ.
-
- Åα¿ αáºαπΦÑ¡¿¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ αáºαπΦáεΓß∩ ΓᬪÑ
- ßóÑñÑ¡¿∩ « »αÑñßΓáó½Ñ¡¿¿ ñá¡¡δσ »α¿ ¿σ ¬«»¿α«óá¡¿¿ ó ß¿ßΓѼ¡δ⌐
- íπΣÑα. æ««ΓóÑΓßΓóÑ¡¡«, ¬«úñá αáºαπΦáÑΓß∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á,
- ó½áñÑεΘá∩ ß¿ßΓÑ¼δ¼ íπΣÑα«¼, »«ßδ½áÑΓß∩ ߻ѵ¿á½∞¡«Ñ ß««íΘÑ¡¿Ñ
- WM_RENDERALLFORMATS. Åα¿ »«½πτÑ¡¿¿ φΓ«ú« ß««íΘÑ¡¿∩ »α«úαá¼¼á
- ñ«½ª¡á ß½Ññ«óáΓ∞ Φáúá¼, «»¿ßá¡¡δ¼ ó »αÑñδñπΘѼ αáºñѽÑ.
- 13.2.3 ÉÑú¿ßΓαᵿ∩ ß«íßΓóÑ¡¡δσ Σ«α¼áΓ«ó.
-
- èα«¼Ñ Γ«ú«, »α«úαá¼¼á ¼«ªÑΓ ß«ºñáΓ∞ ¿ ¿ß»«½∞º«óáΓ∞
- ß«íßΓóÑ¡¡δÑ Σ«α¼áΓδ ¿½¿ ñáªÑ ¡«óδÑ Σ«α¼áΓδ «íΘÑú«
- ¿ß»«½∞º«óá¡¿∩. ä½∩ ß«ºñá¡¿∩ ¿ ¿ß»«½∞º«óá¡¿∩ ¡«óδσ Σ«α¼áΓ«ó
- «í¼Ñ¡á ñá¡¡δ¼¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á óδ»«½¡¿Γ∞ ß½ÑñπεΘÑÑ:
-
- 1. éδºóáΓ∞ Σπ¡¬µ¿ε RegisterClipboardFormat ñ½∩ αÑú¿ßΓαᵿ¿
- ¿¼Ñ¡¿ ¡«ó«ú« Σ«α¼áΓá.
-
- 2. êß»«½∞º«óáΓ∞ º¡áτÑ¡¿Ñ, ó«ºóαáΘÑ¡¡«Ñ φΓ«⌐ Σπ¡¬µ¿Ñ⌐, ¬á¬
- ¬«ñ ¡«ó«ú« Σ«α¼áΓá »α¿ ó맮óÑ Σπ¡¬µ¿¿ SetClipboardData.
-
- ÉÑú¿ßΓαᵿ∩ ¿¼Ñ¡¿ Σ«α¼áΓá ñáÑΓ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ«
- »α«úαá¼¼á ¿ß»«½∞ºπÑΓ π¡¿¬á½∞¡δ⌐ ¡«¼Ñα Σ«α¼áΓá. èα«¼Ñ Γ«ú«, «¡
- »«ºó«½∩ÑΓ »α«úαá¼¼Ñ Clipboard ¿¡ñ¿µ¿α«óáΓ∞ »αáó¿½∞¡«Ñ ¿¼∩
- ñá¡¡δσ, σαá¡∩Θ¿σß∩ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ. ü«½ÑÑ »«ñα«í¡« «í
- ¿¡ñ¿¬áµ¿¿ ß«íßΓóÑ¡¡δσ Γ¿»«ó ñá¡¡δσ ß¼. αáºñѽ 13.2.4
- "ô»αáó½Ñ¡¿Ñ «Γ«íαáªÑ¡¿Ñ¼ ñá¡¡δσ ó Clipboard".
-
- àß½¿ ¡Ñ߬«½∞¬« »α«úαá¼¼ ºáαÑú¿ßΓα¿α«ó὿ Σ«α¼áΓδ ß «ñ¡¿¼ ¿
- ΓѼ ªÑ ¿¼Ñ¡Ñ¼, óßÑ «¡¿ »«½πτáΓ «ñ¿¡ ¿ ëà ªÑ ¬«ñ Σ«α¼áΓá. ¥Γ«
- ñáÑΓ ó«º¼«ª¡«ßΓ∞ »α¿¬½áñ¡δ¼ »α«úαἼἠ߫ºñáΓ∞ ß«íßΓóÑ¡¡δÑ
- «íΘ¿Ñ Γ¿»δ ñá¡¡δσ. ìá»α¿¼Ñα, Ñß½¿ ¡Ñ߬«½∞¬« »α«úαá¼¼
- ºáαÑú¿ßΓα¿α«ó὿ Σ«α¼áΓ ß ¿¼Ñ¡Ñ¼ WORKSHEET, óßÑ «¡¿ íπñπΓ ¿¼ÑΓ∞
- «ñ¿¡ ¿ ëà ªÑ ¡«¼Ñα Σ«α¼áΓá »α¿ ó맮óÑ Σπ¡¬µ¿⌐ SetClipboardData
- ¿ GetClipboardData ¿ «íΘ¿⌐ íáº¿ß ñ½∩ »ÑαÑñáτ¿ ñá¡¡δσ Γ¿»á
- WORKSHEET ¼Ñªñπ ¡¿¼¿.
-
-
- Windows 3.0/pg/2#3 = 143 =
-
- 13.2.4 ô»αáó½Ñ¡¿Ñ «Γ«íαáªÑ¡¿Ñ¼ ñá¡¡δσ Clipboard.
-
- æπΘÑßΓóπεΓ ñóÑ »α¿τ¿¡δ, »« ¬«Γ«αδ¼ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ
- ¼«ªÑΓ »«ΓαÑí«óáΓ∞ß∩ π»αáó½∩Γ∞ óδó«ñ«¼ ¿¡Σ«α¼áµ¿¿ ó Clipboard:
-
- - Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ ¿¼ÑΓ∞ ß«íßΓóÑ¡¡δÑ Γ¿»δ
- ñá¡¡δσ, ¬«Γ«αδÑ Γαπñ¡« ¿½¿ ¡Ñ󫺼«ª¡« ¿¡ñ¿µ¿α«óáΓ∞
- αáºπ¼¡δ¼ ß»«ß«í«¼.
-
- - Åα«úαá¼¼á ¼«ªÑΓ ¿¼ÑΓ∞ ß«íßΓóÑ¡¡δÑ Γ¿»δ ñá¡¡δσ, ¬«Γ«αδÑ
- ΓαÑíπεΓ ß»Ñµ¿á½∞¡δσ º¡á¡¿⌐ ñ½∩ ¿σ «Γ«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ.
-
- êß»«½∞º«óá¡¿Ñ Σ«α¼áΓá «Γ«íαáªÑ¡¿∩ ñ½∩ ß«íßΓóÑ¡¡δσ ñá¡¡δσ.
-
- ¡« ¿ß»«½∞º«óáΓ∞ "Σ«α¼áΓ «Γ«íαáªÑ¡¿∩" ñ½∩ »αÑñßΓáó½Ñ¡¿∩
- ß«íßΓóÑ¡¡«ú« Σ«α¼áΓá ñá¡¡δσ, ¬«Γ«αδ⌐ ó »α«Γ¿ó¡«¼ ß½πτáÑ Γαπñ¡«
- ¿½¿ ¡Ñ󫺼«ª¡« ¿¡ñ¿µ¿α«óáΓ∞. äá¡¡δÑ, ßó∩ºá¡¡δÑ ß Σ«α¼áΓ«¼
- «Γ«íαáªÑ¡¿∩, - φΓ« ΓѬßΓ, αáßΓα«óá∩ ¬áαΓá ¿½¿ ¿º«íαáªÑ¡¿∩
- ¼ÑΓáΣá⌐½á, ¬«Γ«αδÑ »α«úαá¼¼á »α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá ¼«ªÑΓ
- ¿¡ñ¿µ¿α«óáΓ∞ ¬á¬ ºá¼Ñ¡¿Γѽ¿ ß««ΓóÑΓßΓóπεΘ¿σ ß«íßΓóÑ¡¡δσ ñá¡¡δσ.
- ä½∩ ¿ß»«½∞º«óá¡¿∩ Σ«α¼áΓá «Γ«íαáªÑ¡¿∩ ¡Ñ«íσ«ñ¿¼« ߬«»¿α«óáΓ∞ ó
- ß¿ßΓѼ¡δ⌐ íπΣÑα ¬á¬ ß«íßΓóÑ¡¡δÑ, Γᬠ¿ ¿¡ñ¿µ¿απѼδÑ ñá¡¡δÑ.
- è«úñá »α«úαá¼¼á »α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá óδí¿αáÑΓ Σ«α¼áΓ ñ½∩
- ¿¡ñ¿µ¿α«óá¡¿∩, «¡á óδí¿αáÑΓ Σ«α¼áΓ «Γ«íαáªÑ¡¿∩ ó¼ÑßΓ«
- ß«íßΓóÑ¡δσ ñá¡¡δσ.
-
- æπΘÑßΓóπεΓ Γα¿ Σ«α¼áΓá «Γ«íαáªÑ¡¿∩: CF_DSPTEXT,
- CF_DSPBITMAP ¿ CF_DSPMETAFILEPICT. äá¡¡δÑ, ßó∩ºá¡¡δÑ ß φΓ¿¼¿
- Σ«α¼áΓἿ, ¿ñÑ¡Γ¿τ¡δ Σ«α¼áΓá¼ ΓѬßΓá, αáßΓα«ó«⌐ ¬áαΓδ ¿
- ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á. ū߬«½∞¬π π¬áºá¡¡δÑ Σ«α¼áΓδ ∩ó½∩εΓß∩
- Γá¬ªÑ ßΓá¡ñáαΓ¡δ¼¿ Σ«α¼áΓἿ, »α«úαá¼¼á »α«ß¼«Γαá ß¿ßΓѼ¡«ú«
- íπΣÑαá ¼«ªÑΓ ¿¡ñ¿µ¿α«óáΓ∞ ¿σ íѺ »«¼«Θ¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- ū߽ÑñπεΘÑÑ «»¿ßá¡¿Ñ »αÑñ»«½áúáÑΓ, τΓ« »α¿¬½áñ¡á∩
- »α«úαá¼¼á ß½ÑñπÑΓ Φáúá¼, «»¿ßá¡¡δ¼ ó »π¡¬ΓÑ 13.1.1 "è«»¿α«óá¡¿Ñ
- ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα" ñ½∩ πßΓá¡«ó¬¿ ó½áñѽ∞µá ß¿ßΓѼ¡«ú«
- íπΣÑαá ¿ ñÑß¬α¿»Γ«α«ó ñá¡¡δσ.
-
- ä½∩ Σ«αß¿α«óá¡¿∩ «Γ«íαáªÑ¡¿∩ ¡á φ¬αá¡Ñ ß«íßΓóÑ¡¡δσ Γ¿»«ó
- ñá¡¡δσ ó ßΓá¡ñáαΓ¡«¼ Σ«α¼áΓÑ ñá¡¡δσ »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á
- óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα ñ½∩ ¿º¼Ñ¡Ñ¡¿⌐, óδºóáó Σπ¡¬µ¿ε
- OpenClipboard.
-
- 2. 櫺ñáΓ∞ ú½«íá½∞¡δ⌐ ñÑß¬α¿»Γ«α, ¬«Γ«αδ⌐ ß«ñÑαª¿Γ ΓѬßΓ,
- αáßΓα«óπε ¬áαΓπ ¿½¿ ¿º«íαáªÑ¡¿Ñ ¼ÑΓáΣá⌐½á, «»αÑñѽ¿ó
- ¿¡Σ«α¼áµ¿ε, ¬«Γ«αá∩ ñ«½ª¡á íδΓ∞ «Γ«íαáªÑ¡á ó »α«úαá¼¼Ñ
- »α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- 3. ôßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α ß¿ßΓѼ¡«ú« íπΣÑαá, óδºóáó Σπ¡¬µ¿ε
- SetClipboardData. ÅÑαÑñá¡¡δ⌐ ¬«ñ Σ«α¼áΓá ñ«½ªÑ¡ íδΓ∞
- CF_DSPTEXT ñ½∩ ñÑß¬α¿»Γ«αá ΓѬßΓá, CF_DSPBITMAP - ñ½∩
- ñÑß¬α¿»Γ«αá αáßΓα«ó«⌐ ¬áαΓδ ¿ CF_DSPMETAFILEPICT - ñ½∩
-
- Windows 3.0/pg/2#3 = 144 =
-
- ñÑß¬α¿»Γ«αá ¿º«íαáªÑ¡¿∩ ¼ÑΓáΣá⌐½á.
-
- 4. æ««íΘ¿Γ∞, τΓ« ¿º¼Ñ¡Ñ¡¿∩ ó ß¿ßΓѼ¡δ⌐ íπΣÑα πªÑ ó¡ÑßÑ¡δ,
- óδºóáó Σπ¡¬µ¿ε CloseClipboard.
-
- Å«½¡«Ñ π»αáó½Ñ¡¿Ñ ¿¡ñ¿µ¿α«ó᡿Ѽ ó »α«úαá¼¼Ñ »α«ß¼«Γαá
- ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ »«½¡«ßΓ∞ε π»αáó½∩Γ∞
- «Γ«íαáªÑ¡¿Ñ¼ ¿ »α«¬απΓ¬«⌐ ¿¡Σ«α¼áµ¿¿ ó »α«úαá¼¼Ñ »α«ß¼«Γαá
- ß¿ßΓѼ¡«ú« íπΣÑαá. Æá¬«Ñ π»αáó½Ñ¡¿Ñ »«½Ñº¡«, ¬«úñá »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¿¼ÑÑΓ ß½«ª¡δÑ ß«íßΓóÑ¡¡δÑ Γ¿»δ ñá¡¡δσ, ¬«Γ«αδÑ Γ«½∞¬«
- «¡á º¡áÑΓ, ¬á¬ ¿¡ñ¿µ¿α«óáΓ∞. Microsoft Write ¿ß»«½∞ºπÑΓ φΓ«
- ßó«⌐ßΓó« ñ½∩ «Γ«íαáªÑ¡¿∩ ßΣ«α¼áΓ¿α«óá¡¡«ú« ΓѬßΓá.
-
- ū߽ÑñπεΘÑÑ «»¿ßá¡¿Ñ »αÑñ»«½áúáÑΓ, τΓ« »α¿¬½áñ¡á∩
- »α«úαá¼¼á ß½ÑñπÑΓ Φáúá¼, «»¿ßá¡¡δ¼ ó »π¡¬ΓÑ 13.1.1 "è«»¿α«óá¡¿Ñ
- ΓѬßΓá ó ß¿ßΓѼ¡δ⌐ íπΣÑα" ñ½∩ πßΓá¡«ó¬¿ ó½áñѽ∞µá ß¿ßΓѼ¡«ú«
- íπΣÑαá ¿ ñÑß¬α¿»Γ«α«ó ñá¡¡δσ.
-
- ä½∩ π»αáó½Ñ¡¿∩ ¿¡ñ¿µ¿α«ó᡿Ѽ ¿¡Σ«α¼áµ¿¿ ó »α«úαá¼¼Ñ
- »α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá »α¿¬½áñ¡á∩ »α«úαá¼¼á ñ«½ª¡á
- óδ»«½¡¿Γ∞ ß½ÑñπεΘ¿Ñ Φáú¿:
-
- 1. ÄΓ¬αδΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα ñ½∩ ¿º¼Ñ¡Ñ¡¿⌐, óδºóáó Σπ¡¬-
- µ¿ε OpenClipboard.
-
- 2. éδºóáΓ∞ Σπ¡¬µ¿ε SetClipboardData, ¿ß»«½∞ºπ∩ ó ¬áτÑßΓóÑ
- Σ«α¼áΓá ñá¡¡δσ CF_OWNERDISPLAY ß ¡π½Ñóδ¼ ñÑß¬α¿»Γ«α«¼.
-
- 3. æ««íΘ¿Γ∞, τΓ« óδ»«½¡Ñ¡« ¿º¼Ñ¡Ñ¡¿Ñ ß¿ßΓѼ¡«ú« íπΣÑαá,
- óδºóáó Σπ¡¬µ¿ε CloseClipboard.
-
- çáΓѼ ó½áñѽѵ ß¿ßΓѼ¡«ú« íπΣÑαá íπñÑΓ »«½πτáΓ∞
- ߻ѵ¿á½∞¡δÑ ß««íΘÑ¡¿∩, ßó∩ºá¡¡δÑ ß ¿¡ñ¿µ¿α«ó᡿Ѽ ¿¡Σ«α¼áµ¿¿ ó
- »α«úαá¼¼Ñ »α«ß¼«Γαá ß¿ßΓѼ¡«ú« íπΣÑαá. ¥Γ« ß½ÑñπεΘ¿Ñ ß««íΘÑ¡¿∩:
-
- æ««íΘÑ¡¿Ñ äÑ⌐ßΓó¿Ñ
- ───────────────────────────────────────────────────────────────
- WM_PAINTCLIPBOARD ìáα¿ß«óáΓ∞ π¬áºá¡¡πε τáßΓ∞ «¬¡á.
-
- WM_SIZECLIPBOARD æ««íΘ¿Γ∞ «í ¿º¼Ñ¡Ñ¡¿¿ αẼÑαá «¬¡á.
-
- WM_VSCROLLCLIPBOARD Å᫬απΓ¿Γ∞ «¬¡« ó óÑαΓ¿¬á½∞¡«¼ ¡á»αáó-
- ½Ñ¡¿¿.
-
- WM_HSCROLLCLIPBOARD Å᫬απΓ¿Γ∞ «¬¡« ó ú«α¿º«¡Γá½∞¡«¼
- ¡á»αáó½Ñ¡¿¿.
-
- WM_ASKCBFORMATNAME çáñáΓ∞ ¿¼∩ ¿¡ñ¿µ¿απѼ«ú« Σ«α¼áΓá
- ───────────────────────────────────────────────────────────────
-
- Å«½¡«Ñ «»¿ßá¡¿Ñ φΓ¿σ ß««íΘÑ¡¿⌐ ¼«ª¡« ¡á⌐Γ¿ ó æ»αáó«τ¡«¼
-
- Windows 3.0/pg/2#3 = 145 =
-
- απ¬«ó«ñßΓóÑ, Γ«¼ 1.
-
- êß»«½∞º«óá¡¿Ñ µÑ»«τ¬¿ ¡áí½εñÑ¡¿∩ ºá ß¿ßΓѼ¡δ¼ íπΣÑα«¼.
-
- êß»«½∞º«óá¡¿Ñ φΓ«⌐ µÑ»«τ¬¿ ¿ «¬«¡ »α«ß¼«Γαá ß¿ßΓѼ¡«ú«
- íπΣÑαá «íÑß»Ñτ¿óáεΓ ß»«ß«í πóÑñ«¼½Ñ¡¿∩ »α¿¬½áñ¡δσ »α«úαá¼¼ «í
- ¿º¼Ñ¡Ñ¡¿∩σ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ. ôóÑñ«¼½Ñ¡¿Ñ ó ó¿ñÑ ß««íΘÑ¡¿∩
- WM_DRAWCLIPBOARD »ÑαÑñáÑΓß∩ 󡿺 »« µÑ»«τ¬Ñ ¡áí½εñÑ¡¿∩ ¬áªñδ⌐
- αáº, ¬«úñá óδºδóáÑΓß∩ Σπ¡¬µ¿∩ CloseClipboard. Å«½πτáΓѽ∞ φΓ«ú«
- ß««íΘÑ¡¿∩ ñ«½ªÑ¡ «»αÑñѽ¿Γ∞ »α¿α«ñπ ¿º¼Ñ¡Ñ¡¿⌐ (»πßΓ«,
- πßΓá¡«ó½Ñ¡ ¿ Γ.ñ.) óδºóáó Σπ¡¬µ¿¿ GetClipboardData,
- EnumClipboardFormats ¿ ñαπú¿Ñ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿.
-
- ïεí«Ñ «¬¡«, ¬«Γ«α«Ñ «íÑß»Ñτ¿½« ßÑíÑ ßó∩º∞ ó µÑ»«τ¬Ñ
- ¡áí½εñÑ¡¿∩, ñ«½ª¡« íδΓ∞ ú«Γ«ó« ßñѽáΓ∞ ß½ÑñπεΘÑÑ:
-
- 1. ôñ὿Γ∞ ßÑí∩ ¿º µÑ»«τ¬¿ »ÑαÑñ αáºαπΦÑ¡¿Ñ¼.
-
- 2. ÅÑαÑñáΓ∞ ß««íΘÑ¡¿∩ WM_DRAWCLIPBOARD ß½ÑñπεΘÑ⌐ ßó∩º¿ ó
- µÑ»«τ¬Ñ.
-
- Åα«úαá¼¼á ñ½∩ φΓ¿σ ñÑ⌐ßΓó¿⌐ óδú½∩ñ¿Γ Γá¬:
-
- case WM_DESTROY:
- ChangeClipboardChain(hWnd, my_save_next);
-
- /* «ßΓá½∞¡δÑ «»ÑαáΓ«αδ ñ½∩ «íαáí«Γ¬¿ WM_DESTROY */
-
- break;
-
- case WM_DRAWCLIPBOARD:
- if (my_save_next != NULL)
- SendMessage(my_save_next, WM_DRAWCLIPBOARD,
- wParam, lParam);
-
- /* «ßΓá½∞¡δÑ «»ÑαáΓ«αδ ñ½∩ «íαáí«Γ¬¿ WM_DRAWCLIPBOARD */
-
- break;
-
- æΓ᫬á my_save_next - φΓ« º¡áτÑ¡¿Ñ, ó«ºóαáΘÑ¡¡«Ñ Σπ¡¬µ¿Ñ⌐
- SetClipboardViewer. ¥Γ¿ ñÑ⌐ßΓó¿∩ ¡áñ µÑ»«τ¬«⌐ ¡áí½εñÑ¡¿∩ ºá
- ß¿ßΓѼ¡δ¼ íπΣÑα«¼ ñ«½ª¡δ íδΓ∞ »Ñαó묨 ΦáúἿ, óδ»«½¡∩Ñ¼δ¼¿
- óÑΓó∩¼¿ «»ÑαáΓ«αá switch, ¬«Γ«αδÑ «íαáíáΓδóáεΓ ß««íΘÑ¡¿∩
- WM_DESTROY ¿ WM_DRAWCLIPBOARD.
- 13.3. Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ClipText.
-
- ¥Γ«Γ »α¿¼Ñα ¿½½εßΓα¿απÑΓ ¬á¬ ¬«»¿α«óáΓ∞ ¿ óßΓáó½∩Γ∞ ñá¡¡δÑ
- ß »«¼«Θ∞ε ß¿ßΓѼ¡«ú« íπΣÑαá. ä½∩ ß«ºñá¡¿∩ »α«úαá¼¼δ ClipText
- ߬«»¿απ⌐ΓÑ ¿ »ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿ßσ«ñ¡δÑ Σá⌐½δ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ
- EditMenu, á ºáΓѼ ßñѽá⌐ΓÑ ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
-
- 1. ä«íáó∞ΓÑ ¡«óδÑ »ÑαѼѡ¡δÑ.
-
- Windows 3.0/pg/2#3 = 146 =
-
-
- 2. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σπ¡¬µ¿ε ¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá.
-
- 3. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_INITMENU.
-
- 4. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σαáú¼Ñ¡Γ WM_COMMAND ñ½∩ «íαáí«Γ¬¿
- IDM_CUT, IDM_COPY ¿ IDM_PASTE.
-
- 5. ä«íáó∞ΓÑ Σαáú¼Ñ¡Γ WM_PAINT.
-
- 6. ä«íáó∞ΓÑ Σπ¡¬µ¿ε OutOfMemory.
-
- 7. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
-
- é φΓ«¼ »α¿¼ÑαÑ ¿ß»«½∞ºπÑΓß∩ ú½«íá½∞¡á∩ »á¼∩Γ∞ ñ½∩
- ºá»«¼¿¡á¡¿∩ ¬«»¿απѼ«ú« ΓѬßΓá. ü«½ÑÑ »«ñα«í¡πε ¿¡Σ«α¼áµ¿ε «
- ú½«íá½∞¡«⌐ »á¼∩Γ¿ ß¼«Γα¿ΓÑ ó ú½áóÑ 15, "ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε".
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
-
- 13.3.1 ä«íáó½Ñ¡¿Ñ ¡«óδσ »ÑαѼѡ¡δσ.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ ¡Ñ߬«½∞¬« ¡«óδσ ú½«íá½∞¡δσ »ÑαѼѡ¡δσ
- ñ½∩ σαá¡Ñ¡¿∩ ñÑß¬α¿»Γ«α«ó, ¿ß»«½∞ºπѼδσ ó «»Ñαᵿ∩σ ¬«»¿α«óá¡¿∩
- ¿ óßΓáó¬¿, á Γá¬ªÑ ñ½∩ σαá¡Ñ¡¿∩ áñαÑß«ó ßΓ᫬ ΓѬßΓá. ä«íáó∞ΓÑ
- ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ó ¡áτὫ ¿ßσ«ñ¡«ú« æ-Σá⌐½á:
-
- HANDLE hText = NULL;
- char szInitialClientAreaText[] = "This Program demonstrates..."
- HANDLE hData, hClipData; /* ñÑß¬α¿»Γ«αδ ñ½∩ óδαѺ᡿∩ ñá¡¡δσ */
- LPSTR lpData, lpClipData; /* π¬áºáΓѽ¿ ¡á óδαѺáѼδÑ ñá¡¡δÑ */
-
- ìÑ«íσ«ñ¿¼« Γá¬ªÑ ñ«íáó¿Γ∞ »ÑαѼѡ¡δÑ ñ½∩ α¿ß«óá¡¿∩ ¿
- ¼á¡¿»π½∩µ¿¿ ß ß¿ßΓѼ¡δ¼ íπΣÑα«¼. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ »ÑαѼѡ¡δÑ
- ó ¡áτὫ Σπ¡¬µ¿¿ «ß¡«ó¡«ú« «¬¡á MainWndProc:
-
- HDC hDC;
- PAINTSTRUCT ps;
- RECT rectClient;
- LPSTR lpszText;
-
- 13.3.2 î«ñ¿Σ¿¬áµ¿∩ »α«úαá¼¼δ ¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá.
-
- Åα¿ ºá»π᪥ φ¬ºÑ¼»½∩αá »α«úαá¼¼δ ClipText, «¡á ñ«½ª¡á
- óδñѽ¿Γ∞ «í½áßΓ∞ ó ú½«íá½∞¡«⌐ »á¼∩Γ¿ ¿ ºá»«½¡¿Γ∞ ÑÑ ñá¡¡δ¼¿ ¿º
- ßΓ᫬¿. ä«íáó∞ΓÑ ó Σπ¡¬µ¿ε ¿¡¿µ¿á½¿ºáµ¿¿ φ¬ºÑ¼»½∩αá ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ:
-
- if (!(hText = GlobalAlloc(GMEM_MOVEABLE,
- (DWORD)sizeof(szInitialClientAreaText)))) {
- OutOfMemory();
-
- Windows 3.0/pg/2#3 = 147 =
-
- return (FALSE);
- }
-
- if (!(lpszText = GlobalLock(hText))) {
- OutOfMemory();
- return (FALSE);
- }
-
- lstrcpy(lpszText, szInitialClientAreaText);
- GlobalUnlock(hText);
- 13.3.3 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_INITMENU.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σαáú¼Ñ¡Γ WM_INITMENU ¬ Σπ¡¬µ¿¿ «¬¡á ß
- µÑ½∞ε »«ñú«Γ«ó¬¿ ¼Ñ¡ε Edit ¬ óßΓáó¬Ñ. é««íΘÑ ú«ó«α∩, ¬«¼á¡ñá
- Paste ¡Ñ ñ«½ª¡á íδΓ∞ ñ«ßΓπ»¡á ñ« ΓÑσ »«α, »«¬á ó ß¿ßΓѼ¡«¼
- íπΣÑαÑ ¡Ñ ßπΘÑßΓóπÑΓ óδíαá¡¡δ⌐ ΓѬßΓ, »«ñ½ÑªáΘ¿⌐ óßΓáó¬Ñ.
- ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_INITMENU:
- if (wParam == GetMenu(hWnd)) {
- if (OpenClipboard(hWnd)) {
- if (IsClipboardFormatAvailable(CF_TEXT)
- || IsClipboardFormatAvailable(CF_OEMTEXT))
- EnableMenuItem(wParam, IDM_PASTE, MF_ENABLED);
- else
- EnableMenuItem(wParam, IDM_PASTE, MF_GRAYED);
- CloseClipboard();
- return (TRUE);
- }
- else /* æ¿ßΓѼ¡δ⌐ íπΣÑα ¡Ññ«ßΓπ»Ñ¡ */
- return (FALSE);
-
- }
-
- ¥Γ¿ «»ÑαáΓ«αδ «íαáíáΓδóáεΓ ß««íΘÑ¡¿Ñ WM_INITMENU Γ«½∞¬« ó
- Γ«¼ ß½πτáÑ, Ñß½¿ π¬áºá¡¡«Ñ ¼Ñ¡ε - φΓ« ¼Ñ¡ε-ßΓ᫬á. öπ¡¬µ¿∩
- IsClipboardFormatAvailable «»αÑñѽ∩ÑΓ, ÑßΓ∞ ½¿ ΓѬßΓ ó
- ß¿ßΓѼ¡«¼ íπΣÑαÑ. àß½¿ ÑßΓ∞, Σπ¡¬µ¿∩ EnableMenuItem ñѽáÑΓ
- ¬«¼á¡ñπ ñ«ßΓπ»¡«⌐. é »α«Γ¿ó¡«¼ ß½πτáÑ ¬«¼á¡ñá Paste ¡Ññ«ßΓπ»¡á.
- 13.3.4 î«ñ¿Σ¿¬áµ¿∩ Σαáú¼Ñ¡Γá WM_COMMAND.
-
- ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σαáú¼Ñ¡Γδ IDM_CUT, IDM_COPY ¿
- IDM_PASTE ó Σαáú¼Ñ¡ΓÑ WM_COMMAND ñ½∩ «íαáí«Γ¬¿ ¬«¼á¡ñ ¼Ñ¡ε
- Edit. Å« IDM_COPY ¿ IDM_CUT ¡Ñ«íσ«ñ¿¼« ß«ºñáΓ∞ í½«¬ ú½«íá½∞¡«⌐
- »á¼∩Γ¿, ºá»«½¡¿Γ∞ Ñú« ΓѬßΓ«¼ ¿ ߬«»¿α«óáΓ∞ ñÑß¬α¿»Γ«α í½«¬á ó
- ß¿ßΓѼ¡δ⌐ íπΣÑα, á ó IDM_CUT ¡Ñ«íσ«ñ¿¼« πñ὿Γ∞ ¿¼ÑεΘ¿⌐ß∩ ó
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ΓѬßΓ. öαáú¼Ñ¡Γ IDM_PASTE ñ«½ªÑ¡ »«½πτ¿Γ∞
- ¿º ß¿ßΓѼ¡«ú« íπΣÑαá ñÑß¬α¿»Γ«α ¿ ºá»¿ßáΓ∞ ΓѬßΓ ó «í½áßΓ∞
- »«½∞º«óáΓѽ∩.
-
- çá¼Ñ¡¿ΓÑ ßπΘÑßΓóπεΘ¿⌐ «»ÑαáΓ«α IDM_COPY ß½ÑñπεΘ¿¼¿
-
- Windows 3.0/pg/2#3 = 148 =
-
- «»ÑαáΓ«αἿ:
-
- case IDM_CUT:
- case IDM_COPY:
-
- if (hText != NULL) {
-
- /* éδñѽ¿Γ∞ »á¼∩Γ∞ ¿ ߬«»¿α«óáΓ∞ ó ¡ÑÑ ßΓ᫬π. */
-
- if (!(hData
- = GlobalAlloc(GMEM_MOVEABLE, GlobalSize (hText)))) {
- OutOfMemory();
- return (TRUE);
- }
- if (!(lpData = GlobalLock(hData))) {
- OutOfMemory();
- return (TRUE);
- }
- if (!(lpszText = GlobalLock (hText))) {
- OutOfMemory();
- return (TRUE);
- }
- lstrcpy(lpData, lpszText);
- GlobalUnlock(hData);
- GlobalUnlock (hText);
-
- /* Äτ¿ßΓ¿Γ∞ ΓѬπΘÑÑ ß«ñÑন¼«Ñ ß¿ßΓѼ¡«ú« íπΣÑαá ¿
- * πßΓá¡«ó¿Γ∞ ñÑß¬α¿»Γ«α ñá¡¡δσ ¡á ¡«óπε ßΓ᫬π. */
-
- if (OpenClipboard(hWnd)) {
- EmptyClipboard();
- SetClipboardData(CF_TEXT, hData);
- CloseClipboard();
- }
- hData = NULL;
-
- if (wParam == IDM_CUT) {
- GlobalFree (hText);
- hText = NULL;
- EnableMenuItem(GetMenu (hWnd), IDM_CUT, MF_GRAYED);
- EnableMenuItem(GetMenu(hWnd), IDM_COPY, MF_GRAYED);
- InvalidateRect (hWnd, NULL, TRUE);
- UpdateWindow (hWnd);
- }
- }
-
- return (TRUE);
-
- öπ¡¬µ¿∩ GlobalAlloc «Γó«ñ¿Γ í½«¬ ú½«íá½∞¡«⌐ »á¼∩Γ¿,
- ¿ß»«½∞ºπѼδ⌐ ñ½∩ ºá»«¼¿¡á¡¿∩ ßΓ᫬¿ ΓѬßΓá. öπ¡¬µ¿∩ lstrcpy
- ¬«»¿απÑΓ ßΓα«¬π ¿º «í½áßΓ¿ »«½∞º«óáΓѽ∩ «¬¡á ó í½«¬ »«ß½Ñ Γ«ú«,
- ¬á¬ ñÑß¬α¿»Γ«α íδ½ ºáí½«¬¿α«óá¡ Σπ¡¬µ¿Ñ⌐ GlobalLock. äÑß¬α¿»Γ«α
- ñ«½ªÑ¡ íδΓ∞ αáºí½«¬¿α«óá¡ »ÑαÑñ Ñú« ¬«»¿α«ó᡿Ѽ ó ß¿ßΓѼ¡δ⌐
-
- Windows 3.0/pg/2#3 = 149 =
-
- íπΣÑα. öπ¡¬µ¿∩ EmptyClipboard ¿ß»«½∞ºπÑΓß∩ ñ½∩ πñá½Ñ¡¿∩ ½εíδσ
- ßπΘÑßΓóπεΘ¿σ ñá¡¡δσ ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
-
- çá¼Ñ¡¿ΓÑ «»ÑαáΓ«α IDM_PASTE ß½ÑñπεΘ¿¼¿ «»ÑαáΓ«αἿ:
-
-
- case IDM_PASTE:
- if (OpenClipboard(hWnd)) {
-
- /* get text from the clipboard */
-
- if (!(hClipData = GetClipboardData(CF_TEXT))) {
- CloseClipboard();
- break;
- }
- if (hText != NULL) {
- GlobalFree(hText);
- }
- if (!(hText = GlobalAlloc(GMEM_MOVEABLE
- , GlobalSize(hClipData)))) {
- OutOfMemory();
- CloseClipboard();
- break;
- }
- if (!(lpClipData = GlobalLock(hClipData))) {
- OutOfMemory();
- CloseClipboard();
- break;
- }
- if (!(lpszText = GlobalLock(hText))) {
- OutOfMemory();
- CloseClipboard();
- break;
- }
- lstrcpy(lpszText, lpClipData);
- GlobalUnlock(hClipData);
- CloseClipboard();
- GlobalUnlock(hText);
- EnableMenuItem(GetMenu(hWnd), IDM_CUT, MF_ENABLED);
- EnableMenuItem(GetMenu(hWnd), IDM_COPY, MF_ENABLED);
-
- /* ¬«»¿α«óá¡¿Ñ ΓѬßΓá ó «¬¡« »α¿¬½áñ¡«⌐ »α«úαá¼¼δ */
-
- InvalidateRect(hWnd, NULL, TRUE);
- UpdateWindow(hWnd);
- return (TRUE);
- }
- else
- return (FALSE);
- }
- break;
-
- öπ¡¬µ¿∩ GetClipboardData ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α í½«¬á
-
- Windows 3.0/pg/2#3 = 150 =
-
- ú½«íá½∞¡«⌐ »á¼∩Γ¿. öπ¡¬µ¿∩ GlobalLock í½«¬¿απÑΓ φΓ«Γ
- ñÑß¬α¿»Γ«α, ó«ºóαáΘá∩ áñαÑß í½«¬á, ¬«Γ«αδ⌐ ¿ß»«½∞ºπÑΓß∩ ó
- Σπ¡¬µ¿¿ TextOut ñ½∩ ºá»¿ß¿ ΓѬßΓá.
-
- 13.3.5 ä«íáó½Ñ¡¿Ñ Σαáú¼Ñ¡Γá WM_PAINT.
-
- öαáú¼Ñ¡Γ WM_PAINT ¡Ñ«íσ«ñ¿¼ ñ½∩ óδó«ñá ΓѬπΘÑú« ΓѬßΓá ¡á
- φ¬αá¡ »α¿ ¿º¼Ñ¡Ñ¡¿∩σ ß«ßΓ«∩¡¿∩ «¬¡á. ä«íáó∞ΓÑ ß½ÑñπεΘ¿Ñ
- «»ÑαáΓ«αδ ¬ Σπ¡¬µ¿¿ «¬¡á:
-
- case WM_PAINT:
- hDC = BeginPaint (hWnd, &ps);
- if (hText != NULL) {
- if (!(lpszText = GlobalLock (hText))) {
- OutOfMemory();
- } else {
- GetClientRect (hWnd, &rectClient);
- DrawText (hDC, lpszText, -1, &rectClient
- ,DT_EXTERNALLEADING | DT_NOPREFIX |
- DT_WORDBREAK);
- GlobalUnlock (hText);
- }
- }
- EndPaint (hWnd, &ps);
- break;
-
- 13.3.6 ä«íáó½Ñ¡¿Ñ Σπ¡¬µ¿¿ OutOfMemory.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ Σπ¡¬µ¿ε, ¬«Γ«αá∩ íπñÑΓ «Γ«íαáªáΓ∞
- »á¡Ñ½∞ ß««íΘÑ¡¿∩, ¬«úñá »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¡Ñ íπñÑΓ σóáΓáΓ∞
- »á¼∩Γ¿. ä«íáó∞ΓÑ ß½ÑñπεΘπε Σπ¡¬µ¿ε ó Σá⌐½ ß ¿ßσ«ñ¡δ¼ ΓѬßΓ«¼
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ:
-
- void OutOfMemory(void)
- {
- MessageBox(
- GetFocus(),
- "Out of Memory",
- NULL,
- MB_ICONHAND | MB_SYSTEMMODAL);
- return;
- }
-
- é« ó¬½ετáѼδ⌐ Σá⌐á½ ñ«íáó∞ΓÑ ÑÑ »αÑñóáα¿Γѽ∞¡«Ñ «»¿ßá¡¿Ñ:
-
- void OutOfMemory(void);
-
- 13.3.7 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- ä½∩ »ÑαÑΓαá¡ß½∩µ¿¿ ¿ »ÑαѬ«¼»«¡«ó¬¿ ÅÅ ClipText ¡Ñ
- ΓαÑíπÑΓß∩ ó¡«ß¿Γ∞ ¬á¬¿σ-½¿í« ¿º¼Ñ¡Ñ¡¿⌐ ó Σá⌐½ make. ū߽Ñ
- Γαá¡ß½∩µ¿¿ ¿ ¬«¼»«¡«ó¬¿ ºá»πßΓ¿ΓÑ Windows, »α«úαá¼¼π Clipboard
- ¿ »α«úαá¼¼π ClipText. çáΓѼ óδíÑα¿ΓÑ ¬«¼á¡ñπ Copy ó ¼Ñ¡ε
-
- Windows 3.0/pg/2#3 = 151 =
-
- Edit. ìá φ¬αá¡Ñ »«∩ó¿Γß∩ ¬áαΓ¿¡¬á, »αÑñßΓáó½Ñ¡¡á∩ ¡á α¿ß.13.1.
-
- É¿ßπ¡«¬ 13.1 éßΓáó¬á ΓѬßΓá ó ClipText ¿º Clipboard.
- 1. ÆÑ¬ßΓ ó ß¿ßΓѼ¡«¼ íπΣÑαÑ (Clipboard).
- 2. ÆÑ¬ßΓ, óßΓáó½Ñ¡¡δ⌐ ó ClipText ¿º ß¿ßΓѼ¡«ú« íπΣÑαá.
- 13.4 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞ ß¿ßΓѼ¡δ⌐ íπΣÑα
- ñ½∩ «í¼Ñ¡á ñá¡¡δ¼¿ ¼Ñªñπ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. æ¿ßΓѼ¡δ⌐
- íπΣÑα - φΓ« «í½áßΓ∞ »á¼∩Γ¿, ó ¬«Γ«α«⌐ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ªÑΓ ß«σαá¡¿Γ∞ ñÑß¬α¿»Γ«αδ ñá¡¡δσ, ñαπúá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á
- ¼«ªÑΓ ºáΓѼ »«½πτ¿Γ∞ ñá¡¡δÑ, ßó∩ºá¡¡δÑ ß φΓ¿¼ ñÑß¬α¿»Γ«α«¼.
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¼«ªÑΓ »«¼ÑßΓ¿Γ∞ ó ß¿ßΓѼ¡δ⌐ íπΣÑα
- αẽ¿τ¡ΣÑ ñá¡¡δÑ «ñ¡«óαѼѡ¡«, »α¿ πß½«ó¿¿, Ñß½¿ «¡¿ ¿ß»«½∞ºπεΓ
- αạδÑ Σ«α¼áΓδ. ¥Γ« «íÑß»Ñτ¿óáÑΓ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ« ñá¡¡δÑ
- íπñπΓ »«ññÑনóáΓ∞ß∩ αẽ¿τ¡δ¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ.
- Åα«ßΓ«Ñ ¿ß»«½∞º«óá¡¿Ñ ß¿ßΓѼ¡«ú« íπΣÑαá ß«ßΓ«¿Γ ó ¬«»¿α«óá¡¿¿
- ΓѬßΓá ¿½¿ αáßΓα«óδσ ¬áαΓ ó ¿ ¿º »α¿¬½áñ¡δσ »α«úαá¼¼. ü«½ÑÑ
- ß½«ª¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ó¬½ετáÑΓ π»αáó½Ñ¡¿Ñ «Γ«íαáªÑ¡¿Ñ¼ ñá¡¡δσ ¿
- αÑú¿ßΓαᵿε ß«íßΓóÑ¡¡δσ Σ«α¼áΓ«ó ñá¡¡δσ.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« ß¿ßΓѼ¡«ú« íπΣÑαá
- óδ ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- è«¡ΓѬßΓ «Γ«íαáªÑ¡¿∩ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 3, "éδó«ñ ó
- «¬¡«".
-
- Éáí«Γá ß αáßΓα«ó묨 Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 11, "ÉáßΓ-
- ¬áαΓἿ α«óδÑ ¬áαΓδ".
-
- ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 15, "ô»αáó-
- ½Ñ¡¿Ñ »á¼∩Γ∞ε", ¿ ú½áóá 16, "àΘÑ «í π»αáó-
- ½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- Äí¼Ñ¡ ñá¡¡δ¼¿ ß ¿ß- Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 22, "ä¿¡á-
- »«½∞º«ó᡿Ѽ »α«Γ«- ¼¿τÑ߬¿⌐ «í¼Ñ¡ ñá¡¡δ¼¿".
- ¬«½á Windows DDE
- ó¼ÑßΓ« ß¿ßΓѼ¡«ú«
- íπΣÑαá
-
- öπ¡¬µ¿¿ π»αáó½Ñ¡¿∩ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 1,
- ß¿ßΓѼ¡δ¼ íπΣÑα«¼ "öπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá ß πßΓα«⌐ßΓó«¼ π»αáó-
- ½Ñ¡¿∩ «¬¡á¼¿".
-
- ö«α¼áΓδ ß¿ßΓѼ¡«ú« æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 4,
- íπΣÑαá "滿߫¬ Σπ¡¬µ¿⌐".
-
- ö«α¼áΓδ Σá⌐½«ó ß¿ß- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 9,
- ΓѼ¡«ú« íπΣÑαá "ö«α¼áΓδ Σá⌐½«ó".
-
-
- Windows 3.0/pg/2#3 = 152 =
-
- ùÇæÆ£ 3. üÄïàà æïÄåì¢à ÉÇçäàï¢.
- ----------------------------------------------------------------
- Microsoft Windows »αÑñ«ßΓáó½∩ÑΓ ¼¡«ú« ßαÑñßΓóá, ¬«Γ«αδÑ
- »«ºó«½∩εΓ »¿ßáΓ∞ ¬αáß¿óδÑ ¿ πñ«í¡δÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ.
- Äñ¡á¬«, «Γ½¿τ¿Ñ ¼Ñªñπ σ«α«ΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ¿
- »αѬαáß¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ß«ßΓ«¿Γ ó Γ«¼, τΓ« σ«α«Φá∩
- »α¿¬½áñ¡á∩ »α«úαá¼¼á »α«ßΓ« αáí«ΓáÑΓ, á »αѬαáß¡á∩ »α¿¬½áñ¡á∩
- »α«úαá¼¼á αáí«ΓáÑΓ íδßΓα« ¿ φΣΣÑ¬Γ¿ó¡«, ¿¼ÑÑΓ ñ«»«½¡¿Γѽ∞¡δÑ
- 󫺼«ªÑ¡«ßΓ¿ ¿¡ΓÑαΣÑ⌐ßá ß »«½∞º«óáΓѽѼ, Γá¬¿Ñ ¬á¬ µóÑΓ¡δÑ ¿
- ¬αáß¿óδÑ Φα¿ΣΓδ, ¿ »αÑñ«ßΓáó½∩ÑΓ »«½∞º«óáΓÑ½ε ¼«Θ¡δÑ ¿ ú¿í¬¿Ñ
- ßαÑñßΓóá ñ½∩ αÑΦÑ¡¿∩ ß½«ª¡δσ ¿½¿ í«½∞Φ¿σ ºáñáτ.
-
- â½áóδ ¿º óΓ«α«⌐ τáßΓ¿ ñáεΓ óá¼ σ«α«Φπε íáºπ, τΓ«íδ óδ
- ¼«ú½¿ ¡áτáΓ∞ αáºαáíáΓδóáΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ »α«úαá¼¼δ. Äñ¡á¬«,
- Ñß½¿ óδ πªÑ »α«úαá¼¼¿α«ó὿ ó Windows, Γ« óδ, 󫺼«ª¡«,
- ºáσ«Γ¿ΓÑ αáßΦ¿α¿Γ∞ ¿½¿ π½πτΦ¿Γ∞ ßó«¿ »α«úαá¼¼δ, ¡á»α¿¼Ñα,
- ñ«í¿Γ∞ß∩ í«½ÑÑ φΣΣÑ¬Γ¿ó¡«ú« ¿ß»«½∞º«óá¡¿∩ »á¼∩Γ¿ ¿½¿
- »αÑñ«ßΓáó¿Γ∞ í«½ÑÑ ¼«Θ¡δÑ ßαÑñßΓóá ñ½∩ »ÑτáΓ¿.
-
- é ΓαÑΓ∞Ñ⌐ τáßΓ¿ ¼δ αáß߬áªÑ¼ « ¡Ñ¬«Γ«αδσ í«½ÑÑ ß½«ª¡δσ
- ó«»α«ßáσ »α«úαá¼¼¿α«óá¡¿∩ ó ßαÑñÑ Windows. îδ »αÑñ»«½áúáѼ, τΓ«
- óδ »α«τ½¿ τáßΓ¿ 1 ¿ 2 ñá¡¡«ú« απ¬«ó«ñßΓóá ¿ º¡á¬«¼δ ß« ßαÑñ«⌐
- Windows. é ¬áªñ«⌐ ú½áóÑ ºáΓαáú¿óáÑΓß∩ «ñ¡á ΓѼá. ū߬«½∞¬π
- »α¿¼Ñαδ »α«úαá¼¼ ¿º ú½áó ΓαÑΓ∞Ñ⌐ τáßΓ¿ í«½ÑÑ ß½«ª¡δÑ, τѼ ó«
- óΓ«α«⌐, Γ« ó ú½áóáσ τáßΓ¿ 3 ¡Ñ »α¿ó«ñ∩Γß∩ »«½¡δÑ ΓѬßΓδ
- »α«úαá¼¼. ÆÑ¬ßΓδ óßÑσ »α«úαá¼¼ óδ ¡á⌐ñÑΓÑ ¡á ñ¿ß¬Ñ "SDK Sample
- Source Disk", ¬«Γ«αδ⌐ »«ßΓáó½∩ÑΓß∩ ó¼ÑßΓÑ ß SDK.
-
-
-
- Windows 3.0/pg/2#3 = 153 =
-
- â½áóá 14. ƒºδ¬ æ ¿ ∩ºδ¬ ÇßßѼí½Ñαá.
- ----------------------------------------------------------------
- é »Ñαó«⌐ ¿ óΓ«α«⌐ τáßΓ∩σ óó«ñ∩Γß∩ Σπ¡¬µ¿¿ Microsoft
- Windows, ¬«Γ«αδÑ óδ ¿ß»«½∞ºπÑΓÑ ó »α«úαá¼¼áσ ¡á æ ¿½¿
- áßßѼí½ÑαÑ, »α¿ ß«ºñá¡¿¿ »α¿¬½áñ¡δσ »α«úαá¼¼ ñ½∩ Windows. é
- φΓ¿σ τáßΓ∩σ «ß¡«ó¡«Ñ ó¡¿¼á¡¿Ñ πñѽ∩½«ß∞ φ½Ñ¼Ñ¡Γá¼ »α¿¬½áñ¡δσ
- »α«úαá¼¼, ¬«Γ«αδÑ «Γ¡«ß∩Γß∩ ¬ Windows.
-
- Äñ¡á¬« ºáóÑαΦÑ¡¡δÑ »α«úαá¼¼δ ñ½∩ Windows ¡Ñ óßÑúñá
- ¿ß»«½∞ºπεΓ Γ«½∞¬« Σπ¡¬µ¿¿ Windows. é¼ÑßΓ« φΓ«ú« óáΦá »α«úαá¼¼á,
- 󫺼«ª¡«, ¿ß»«½∞ºπÑΓ Σπ¡¬µ¿¿ ßΓá¡ñáαΓ¡δσ í¿í½¿«ΓѬ æ ¿ óáΦ¿
- ß«íßΓóÑ¡¡δÑ Σπ¡¬µ¿¿, ¬«Γ«αδÑ ó ßó«ε «τÑαÑñ∞ óδºδóáεΓß∩ Windows
- ¿½¿ ñαπú¿¼¿ ¼«ñπ½∩¼¿ óáΦÑ⌐ »α«úαá¼¼δ. Äñ¡á¬« ó᪡«, τΓ«íδ óδ
- º¡á½¿ ¬á¬ ó¬½ετáΓ∞ φΓ¿ »α«µÑñπαδ ó óáΦπ »α«úαá¼¼π.
-
- é ñá¡¡«⌐ ú½áóÑ «íßπªñáεΓß∩ ß½ÑñπεΘ¿Ñ ó«»α«ßδ:
-
- - éδí«α ¼«ñѽ¿ »á¼∩Γ¿.
-
- - êß»«½∞º«óá¡¿Ñ NULL.
-
- - êß»«½∞º«óá¡¿Ñ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ DOS.
-
- - ìỿßá¡¿Ñ φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐.
-
- - êß»«½∞º«óá¡¿Ñ ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ.
-
- - ìỿßá¡¿Ñ »α«úαá¼¼ ¡á áßßѼí½ÑαÑ.
- 14.1 éδí«α ¼«ñѽ¿ »á¼∩Γ¿.
-
- èᬠ¿ «íδτ¡δÑ »α«úαá¼¼δ DOS, »α«úαá¼¼δ ó ßαÑñÑ Windows
- ¼«úπΓ ß«ñÑαªáΓ∞ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« ßÑú¼Ñ¡Γ«ó ¬«ñá ¿ «ñ¿¡ ¿½¿
- ¡Ñ߬«½∞¬« ßÑú¼Ñ¡Γ«ó ñá¡¡δσ, ó ºáó¿ß¿¼«ßΓ¿ «Γ ¿ß»«½∞ºπѼ«⌐ »α¿
- ¬«¼»¿½∩µ¿¿ ¼«ñѽ¿ »á¼∩Γ¿. é ú½áóÑ 16 "àΘÑ «í π»αáó½Ñ¡¿¿
- »á¼∩Γ∞ε" «íßπªñáεΓß∩ ñ«ßΓπ»¡δÑ »áαá¼ÑΓαδ ¼«ñѽÑ⌐ »á¼∩Γ¿.
-
- éδí¿αáѼá∩ óἿ ¼«ñѽ∞ »á¼∩Γ¿ ó½¿∩ÑΓ ¡á φΣΣÑ¬Γ¿ó¡«ßΓ∞
- αáí«Γδ »α«úαá¼¼δ ó ßαÑñÑ Windows. é í«½∞Φ¿¡ßΓóÑ ß½πτáÑó ½πτΦÑ⌐
- ∩ó½∩ÑΓß∩ ß¼ÑΦá¡¡á∩. Åα¿ ¿ß»«½∞º«óá¡¿¿ ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ óδ
- ¬«¼»¿½¿απÑΓÑ ¼«ñπ½¿ ß ¿ß»«½∞ºπÑ¼δ¼¿ »« π¼«½τá¡¿ε ¼á½«⌐ ¿½¿
- ßαÑñ¡Ñ⌐ ¼«ñѽ∩¼¿ »á¼∩Γ¿ ¿ ¿¼Ñ¡á¼¿ ßÑú¼Ñ¡Γ«ó. çáΓѼ óδ ß »«¼«Θ∞ε
- ∩ó¡δσ ó맮ó«ó FAR (ó ¼«ñπ½∩σ ß ¼á½«⌐ ¼«ñѽ∞ε »á¼∩Γ¿) ¿½¿ NEAR
- (ó ¼«ñπ½∩σ ß« ßαÑñ¡Ñ⌐ ¼«ñѽ∞ε »á¼∩Γ¿) ¿º¼Ñ¡∩ÑΓÑ φΓ¿ »áαá¼ÑΓαδ
- »α¿ ó맮óÑ Σπ¡¬µ¿⌐ ¿º ñαπú¿σ ßÑú¼Ñ¡Γ«ó.
-
- ÅαÑ¿¼πΘÑßΓóá ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿:
-
- - ü½¿ª¡¿Ñ ó맮óδ π¼Ñ¡∞ΦáεΓ «íΩѼ ¬«ñá, úÑ¡Ñα¿απѼ«ú«
- ¬«¼»¿½∩Γ«α«¼, ¿ Γᬫ⌐ ó맮ó Σπ¡¬µ¿¿ óδ»«½¡∩ÑΓß∩ íδßΓαÑÑ.
-
- - 諼»¿½¿α«óá¡¿Ñ ¼«ñπ½Ñ⌐ ß ¡áºóá¡¡δ¼¿ ¿¼Ñ¡á¼¿ ßÑú¼Ñ¡Γ«ó
- αáºñѽ∩ÑΓ ßÑú¼Ñ¡Γδ ¡á ¡Ñí«½∞Φ¿Ñ τáßΓ¿, ¬«Γ«αδÑ ñѽáεΓ
-
- Windows 3.0/pg/2#3 = 154 =
-
- »α«ΘÑ ñ½∩ Windows »α«µÑßß »ÑαѼÑΘÑ¡¿∩ ßÑú¼Ñ¡Γ«ó ó
- »á¼∩Γ¿.
-
- ä½∩ ß«ºñá¡¿∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘÑ⌐ ß¼ÑΦá¡¡πε
- ¼«ñѽ∞ (ß ¼á½«⌐ ¼«ñѽ∞ε »« π¼«½τá¡¿ε), óδ»«½¡¿ΓÑ ß½ÑñπεΘÑÑ:
-
- 1. 櫺ñá⌐ΓÑ »α«Γ«Γ¿»δ ñ½∩ óßÑσ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ óδºδóáεΓß∩
- ¿º ó¡Ñ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá, ó ¬«Γ«α«¼ «¡á «»αÑñѽѡá. ä½∩
- πñ«íßΓóá φΓ¿ «»¿ßá¡¿∩ ¼«ª¡« »«¼ÑßΓ¿Γ∞ ó« ó¬½ετáѼδ⌐
- Σá⌐½. éδ ñ«½ª¡δ «»¿ßáΓ∞ ¬á¬ ñá½∞¡¿Ñ (¿ß»«½∞ºπ∩ ¬½ετÑó«Ñ
- ß½«ó« FAR) óßÑ ó맮óδ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ ß«óÑαΦáεΓß∩ ¿º
- ñαπú¿σ ßÑú¼Ñ¡Γ«ó. ì¿ªÑ »α¿ó«ñ¿Γß∩ »α¿¼Ñα Γᬫú«
- «»¿ßá¡¿∩:
-
- int FAR MyCalculation(int,int);
-
- 2. ÄΓ¬«¼»¿½¿απ⌐ΓÑ ¼«ñ㫨 ¡á æ ß ¬½ετѼ -AS ñ½∩ ß«ºñá¡¿∩
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿.
-
- 3. ÄΓ¬«¼»¿½¿απ⌐ΓÑ ¼«ñ㫨 ¡á æ ß ¬½ετѼ -NT ñ½∩ π¬áºá¡¿∩
- ¿¼Ñ¡ ßÑú¼Ñ¡Γ«ó.
-
- è½ετ¿ ¬«¼»¿½∩Γ«αá ¿ ¼¡«ú«Ñ ñαπú«Ñ «»¿ßá¡δ ó "Tools".
-
- 櫺ñá¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó ß¼ÑΦá¡¡«⌐ ¼«ñѽ¿ »á¼∩Γ¿,
- ¿ß»«½∞ºπ∩ ßαÑñ¡εε ¼«ñѽ∞ »« π¼«½τá¡¿ε, á¡á½«ú¿τ¡«
- óδΦÑ«»¿ßá¡¡«¼π ºá ¿ß¬½ετÑ¡¿Ñ¼ Γ«ú«, τΓ« óδ ñ«½ª¡δ ∩ó¡« «»¿ßáΓ∞
- ¬á¬ NEAR Σπ¡¬µ¿¿, ¬«Γ«αδÑ óδºδóáεΓß∩ Γ«½∞¬« ó¡πΓα¿ Γ«ú«
- ßÑú¼Ñ¡Γá, ó ¬«Γ«α«¼ «¡¿ «»αÑñѽ∩εΓß∩. 諼»¿½¿α«óáΓ∞ ΓᬿÑ
- ¼«ñ㫨 ¡áñ« ß »«¼«Θ∞ε ¬½ετá -AM ñ½∩ πßΓá¡«ó¬¿ ßαÑñ¡Ñ⌐ ¼«ñѽ¿
- »á¼∩Γ¿ »« π¼«½τá¡¿ε.
- 14.2 êß»«½∞º«óá¡¿Ñ NULL.
-
- 濼󫽿τÑ߬á∩ ¬«¡ßΓá¡Γá NULL »« αạ«¼π «»αÑñѽѡá ó
- Windows ¿ ó Microsoft C Compiller óÑαß¿¿ 6.0. é Windows
- ¬«¡ßΓá¡Γá NULL «»αÑñѽѡá ó Σá⌐½Ñ windows.h ß½ÑñπεΘ¿⌐ «íαẫ¼:
-
- #define NULL 0
-
- æ ñαπú«⌐ ßΓ«α«¡δ, ó« ó¬½ετáѼδσ Σá⌐½áσ í¿í½¿«ΓѬ æ 6.0
- (Γᬫ¼ ¬á¬ STDDEF.H) ¬«¡ßΓá¡Γá «»αÑñѽ∩ÑΓß∩ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- #ifndef NULL
- #define NULL ((void *)0)
- #endif
-
- ä½∩ ¿ß¬½ετÑ¡¿∩ ß««íΘÑ¡¿⌐ ¬«¼»¿½∩Γ«αá ½πτΦÑ ¿ß»«½∞º«óáΓ∞
- NULL Γ«½∞¬« ñ½∩ π¬áºáΓѽÑ⌐, Γᬿσ ¬á¬ »áαá¼ÑΓαδ Σπ¡¬µ¿⌐ Windows
- ß Γ¿»«¼ LPSTR. éδ ¡Ñ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ NULL ñ½∩ »ÑαѼѡ¡δσ,
- ¬«Γ«αδÑ «íΩ∩ó½Ñ¡δ ß «ß¡«ó¡δ¼ Γ¿»«¼, Γᬿ¼ ¬á¬ int, WORD,
- HANDLE, ¿ Γ.». HANDLE «»αÑñѽѡ ó WINDOWS.H ¬á¬ WORD.
-
-
- Windows 3.0/pg/2#3 = 155 =
-
- éδ ¼«ªÑΓÑ ¿ß¬½ετ¿Γ∞ óδñáτπ ß««íΘÑ¡¿⌐, »«ßΓáó¿ó ñ¿αÑ¬Γ¿óπ
- ó¬½ετÑ¡¿∩ Windows.H »ÑαÑñ ó¬½ετÑ¡¿Ñ¼ óßÑσ «ßΓá½∞¡δσ ó¬½ετáѼδσ
- Σá⌐½«ó, ¬«Γ«αδÑ «»αÑñѽ∩εΓ NULL, ¬á¬ φΓ« »«¬áºá¡« ¡¿ªÑ:
-
- #include <windows.h>
- #include <stddef.h>
-
- ū߬«½∞¬π ó¬½ετáѼδÑ Σá⌐½δ ó ßΓá¡ñáαΓ¡δσ í¿í½¿«ΓѬáσ æ ¡Ñ
- «»αÑñѽ∩εΓ NULL, Ñß½¿ «¡ πªÑ «»αÑñѽѡ, »αÑ»α«µÑßß«α ¡Ñ ¿º¼Ñ¡¿Γ
- ¡áτá½∞¡«ú« «»αÑñѽѡ¿∩ ó WINDOWS.H.
- 14.3 êß»«½∞º«óá¡¿Ñ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ ¿
- »ÑαѼѡ¡δσ ßαÑñδ DOS.
-
- é »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¼«ª¡« »«½πτ¿Γ∞ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐
- ßΓ᫬¿, ¬«Γ«αδÑ í뫨 ¿ß»«½∞º«óá¡δ »α¿ ºá»π᪥ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ ΓᬠªÑ, ¬á¬ ¿ »ÑαѼѡ¡δÑ ßαÑñδ DOS.
-
- Åα¿ ºá»π᪥ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ó ßαÑñÑ Windows ßΓáαΓ«óá∩
- »α«µÑñπαá Windows ¬«»¿απÑΓ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ ó
- »ÑαѼѡ¡δÑ _argc ¿ _argv. èᬠ¿ ß««ΓóÑΓßΓóπεΘ¿Ñ »ÑαѼѡ¡δÑ ó
- ßΓá¡ñáαΓ¡δσ »α«úαá¼¼áσ æ, φΓ¿ »ÑαѼѡ¡δÑ »αÑñßΓáó½∩εΓ ß«í«⌐
- τ¿ß½« áαúπ¼Ñ¡Γ«ó ¿ ¼áßß¿ó ßΓ᫬, ß«ñÑαªáΘ¿⌐ ßἿ φΓ¿ áαúπ¼Ñ¡Γδ.
- èα«¼Ñ φΓ«ú«, »ÑαѼѡ¡á∩ environ »«½πτáÑΓ π¬áºáΓѽ∞ ¡á ¼áßß¿ó
- ßΓ᫬, ß«ñÑαªáΘ¿σ º¡áτÑ¡¿∩ »ÑαѼѡ¡δσ ßαÑñδ DOS, ¡á ¼«¼Ñ¡Γ
- ºá»πß¬á »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
-
- ùΓ«íδ ó«ß»«½∞º«óáΓ∞ß∩ φΓ¿¼¿ »ÑαѼѡ¡δ¼¿ óδ ñ«½ª¡δ «íΩ∩ó¿Γ∞
- ¿σ ¬á¬ ó¡ÑΦ¡¿Ñ ñ½∩ óáΦÑ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¬á¬ »«¬áºá¡«
- ¡¿ªÑ:
-
- extern int _argc;
- extern char * _argv[];
- extern char * _environ[];
-
- àß½¿ σ«Γ¿ΓÑ, Γ« ¼«ª¡« »α«óÑα¿Γ∞ »áαá¼ÑΓα lpCommandLine,
- »ÑαÑñáóáѼδ⌐ ó Σπ¡¬µ¿ε WinMain Windows.
-
- àß½¿ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¡Ñ ΓαÑíπÑΓß∩ ñ«ßΓπ» ¬
- áαúπ¼Ñ¡Γá¼ ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ ¿½¿ ¬ »ÑαѼѡ¡δ¼ ßαÑñδ DOS, óδ
- ¼«ªÑΓÑ π¼Ñ¡∞Φ¿Γ∞ «íΩѼ »á¼∩Γ¿ "¬πτ¿" ¿ «íΩѼ ¬«ñá óáΦÑ⌐
- »α«úαá¼¼δ ¿ß¬½ετ¿ó ¿º ¡ÑÑ ¬«ñ ¿¡¿µ¿á½¿ºáµ¿¿. ¥Γ«Γ »α«µÑßß
- «»¿ßá¡ ó αáºñÑ½Ñ 14.5.10, "ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ".
-
- 信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿ (DLL) ¡Ñ ¿¼ÑεΓ ñ«ßΓπ»á
- ¬ »áαá¼ÑΓαá¼ _argc, _argv ¿ environ. é¼ÑßΓ« φΓ«ú« ñ½∩ »«½πτÑ¡¿∩
- áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ «¡¿ ¼«úπΓ »α«óÑα¿Γ∞ »áαá¼ÑΓα
- lpCommandLine, »ÑαÑñáóáѼδ⌐ Windows Σπ¡¬µ¿¿ LibEntry. 漫Γα¿ΓÑ
- ú½áóπ 20, "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
-
- ū߬«½∞¬π ñ¿¡á¼¿τÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿ ¡Ñ ¿¼ÑεΓ
- ñ«ßΓπ»á ¬ »ÑαѼѡ¡«⌐ -environ, Γ« ñ½∩ »«½πτÑ¡¿∩ º¡áτÑ¡¿⌐
- »ÑαѼѡ¡δσ ßαÑñδ DOS «¡¿ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿ε
- GetDOSEnvironment.
-
- Windows 3.0/pg/2#3 = 156 =
-
- 14.4 ìỿßá¡¿Ñ φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐.
-
- èᬠ»αá󿽫, Σπ¡¬µ¿¿, ¬«Γ«αδÑ óδ «»αÑñѽ∩ÑΓÑ ó óáΦÑ⌐
- »α«úαá¼¼Ñ, ¡Ñ ΓαÑíπεΓ ß»Ñµ¿á½∞¡«⌐ «íαáí«Γ¬¿. Äñ¡á¬« ¿¼ÑÑΓß∩ ñóá
- ¿ß¬½ετÑ¡¿∩ ¿º φΓ«ú« »αáó¿½á:
-
- - öπ¡¬µ¿¿ ó DLL, ¬«Γ«αδÑ óδºδóáεΓß∩ ¿º ó¡Ñ í¿í½¿«ΓѬ¿.
-
- - öπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá.
-
- ê¡Σ«α¼áµ¿ε « Σπ¡¬µ¿∩σ DLL óδ ¡á⌐ñÑΓÑ ó ú½áóÑ 20,
- "信ἿτÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
-
- öπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá - φΓ« Σπ¡¬µ¿¿ óáΦÑ⌐
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ¬«Γ«αδÑ óδºδóáεΓß∩ ¡Ñ ¿º »α«úαá¼¼δ, á ¿º
- Windows. ì¿ªÑ »α¿óÑñÑ¡ ß»¿ß«¬ «ß¡«ó¡δσ Γ¿»«ó Σπ¡¬µ¿⌐
- ¼¡«ú«¬αáΓ¡«ú« ó맮óá:
-
- - öπ¡¬µ¿∩ WinMain. ¥Γ« Γ«τ¬á óσ«ñá óáΦÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ.
-
- - öπ¡¬µ¿¿ «¬«¡ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. ¥Γ¿ Σπ¡¬µ¿¿
- «íαáíáΓδóáεΓ ß««íΘÑ¡¿∩, »«ßδ½áѼδÑ «¬¡π.
-
- - öπ¡¬µ¿¿ ñ¿á½«úá. ¥Γ¿ Σπ¡¬µ¿¿ «íαáíáΓδóáεΓ ß««íΘÑ¡¿∩,
- »«ßδ½áѼδÑ »á¡Ñ½¿ ñ¿á½«úá.
-
- - öπ¡¬µ¿¿ »ÑαÑτ¿ß½Ñ¡¿∩. ¥Γ¿ Σπ¡¬µ¿¿ «íαáíáΓδóáεΓ
- αѺπ½∞ΓáΓδ Σπ¡¬µ¿⌐ »ÑαÑτ¿ß½Ñ¡¿∩ Windows.
-
- - öπ¡¬µ¿¿ πóÑñ«¼½Ñ¡¿∩ «í «ßó«í«ªñÑ¡¿¿ »á¼∩Γ¿. ¥Γ¿ Σπ¡¬µ¿¿
- óδºδóáεΓß∩ Windows ñ½∩ πóÑñ«¼½Ñ¡¿∩ óáΦÑ⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ, τΓ« ¡Ñ«íσ«ñ¿¼« ßíα«ß¿Γ∞ í½«¬ »á¼∩Γ¿.
-
- - öπ¡¬µ¿¿ ½«óπΦѬ (Σ¿½∞Γαδ). ¥Γ¿ Σπ¡¬µ¿¿ «íαáíáΓδóáεΓ
- ß««íΘÑ¡¿∩, »«ßδ½áѼδÑ «¬¡á¼¿ ñαπú¿¼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼.
- ü«½∞Φ¿¡ßΓó« Σπ¡¬µ¿⌐ ½«óπΦѬ ñ«½ª¡δ αáß»«½áúáΓ∞ß∩ ó í¿íñΓ«ΓѬáσ.
- 14.4.1 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá.
-
- ä½∩ óßÑσ Σπ¡¬µ¿⌐ ¼¡«ú«¬αáΓ¡«ú« ó맮óá óδ ñ«½ª¡δ ß½Ññ«óáΓ∞
- ß½ÑñπεΘ¿¼ Φáúá¼:
-
- 1. Ä»αÑñѽ¿Γ∞ Σπ¡¬µ¿ε ¼¡«ú«¬αáΓ¡«ú« ó맮óá ß »«¼«Θ∞ε
- ¬½ετÑó«ú« ß½«óá PASCAL. ¥Γ« »α¿óÑñÑΓ ¬ Γ«¼π, τΓ«
- »áαá¼ÑΓαδ Σπ¡¬µ¿¿ íπñπΓ »«¼ÑΘáΓ∞ß∩ ó ßΓѬ "ß»αáóá
- ¡á½Ñó«", á ¡Ñ ¬á¬ ó ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿∩σ æ.
-
- 2. Ä»αÑñѽ¿Γ∞ Σπ¡¬µ¿ε ¼¡«ú«¬αáΓ¡«ú« ó맮óá ß
- ¿ß»«½∞º«áó᡿Ѽ ¬½ετÑó«ú« ß½«óá FAR. ¥Γ« »«ºó«½∩ÑΓ
- «ßπΘÑßΓó½∩Γ∞ ó맮ó Σπ¡¬µ¿¿ ¿º ó¡Ñ ßÑú¼Ñ¡Γá, ó ¬«Γ«α«¼
-
- Windows 3.0/pg/2#3 = 157 =
-
- «¡á «»αÑñѽѡá. ¥Γ« »αá󿽫 ¡Ñ »α¿¼Ñ¡∩ÑΓß∩ Γ«½∞¬« ¬
- Σπ¡¬µ¿¿ WinMain.
-
- 3. ÄΓ¬«¼»¿½¿απ⌐ΓÑ ¼«ñπ½¿, ß«ñÑαªáΘ¿Ñ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú«
- ó맮óá ß ¬½ετѼ -Gw (¡Ñ »πΓá⌐ΓÑ ß -GW). ¥Γ«Γ ¬½ετ
- π¬áºδóáÑΓ ¬«¼»¿½∩Γ«απ, τΓ« ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞ ¬
- Σπ¡¬µ¿¿ ¬«ñ "»α«½«úá" ¿ "φ»¿½«úá", ¬«Γ«αδÑ ºáßΓáó½∩εΓ
- ¿ß»«½∞º«óáΓ∞ »αáó¿½∞¡δ⌐ ßÑú¼Ñ¡Γ ñá¡¡δσ »α¿ ó맮óÑ
- Σπ¡¬µ¿¿.
-
- 4. ÅÑαÑτ¿ß½¿ΓÑ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá ó «»ÑαáΓ«αÑ
- EXPORTS Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ (.DEF). ¥Γ« »«ºó«½¿Γ
- «»αÑñѽ¿Γ∞ º¡áτÑ¡¿Ñ ¿ áΓα¿íπΓδ Σπ¡¬µ¿⌐ ¼¡«ú«¬αáΓ¡«ú«
- ó맮óá.
-
- ä½∩ óßÑσ Σπ¡¬µ¿⌐ ¼¡«ú«¬αáΓ¡«ú« ó맮óá, ¿ß¬½ετá∩ WinMain,
- óáΦá »α«úαá¼¼á »ÑαÑñáÑΓ Windows áñαÑß φ¬ºÑ¼»½∩αá »α«µÑñπαδ
- Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá, ¬«úñá Windows óδºδóáÑΓ Σπ¡¬µ¿ε
- ¼¡«ú«¬αáΓ¡«ú« ó맮óá. ìá»α¿¼Ñα, ¬«úñá óδ ß«ºñáÑΓÑ »á¡Ñ½∞
- ñ¿á½«úá, «ñ¡¿¼ ¿º »áαá¼ÑΓα«ó Σπ¡¬µ¿¿, ß«ºñáεΘÑ⌐ »á¡Ñ½∞ ñ¿á½«úá,
- ∩ó½∩ÑΓß∩ áñαÑß φ¬ºÑ¼»½∩αá »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿, ¬«Γ«αá∩ íπñÑΓ
- «íαáíáΓδóáΓ∞ ß««íΘÑ¡¿∩, »«ßδ½áѼδÑ »á¡Ñ½∞ε ñ¿á½«úá.
-
- ä½∩ ß«ºñá¡¿∩ áñαÑßá φ¬ºÑ¼»½∩αá »α«µÑñπαδ ¿ß»«½∞ºπÑΓß∩
- Σπ¡¬µ¿∩ MakeProcInstance. ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ áñαÑß
- φ¬ºÑ¼»½∩αá »α«µÑñπαδ, ¬«Γ«αδ⌐ π¬áºδóáÑΓ ¡á ¬«ñ »α«½«úá, ¬«Γ«αδ⌐
- óδ»«½¡∩ÑΓß∩ »ÑαÑñ óδº«ó«¼ ßἫ⌐ Σπ¡¬µ¿¿. ¥Γ«Γ »α«½«ú »«ñ¬½ετáÑΓ
- ßÑú¼Ñ¡Γ ñá¡¡δσ φ¬ºÑ¼»½∩αá »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¬ Σπ¡¬µ¿¿
- ¼¡«ú«¬αáΓ¡«ú« ó맮óá. Æá¬¿¼ «íαẫ¼, »α¿ ó맮óÑ Σπ¡¬µ¿¿ «¡á
- »«½πτáÑΓ ñ«ßΓπ» ¬ »ÑαѼѡ¡δ¼ ¿ ñá¡¡δ¼ ßÑú¼Ñ¡Γá ñá¡¡δσ
- φ¬ºÑ¼»½∩αá »α«µÑñπαδ. éá¼ ¡Ñ ¡πª¡« ß«ºñáóáΓ∞ áñαÑß φ¬ºÑ¼»½∩αá
- »α«µÑñπαδ ñ½∩ Σπ¡¬µ¿¿ WinMain ¿½¿ ñ½∩ ½εí«⌐ Σπ¡¬µ¿¿ «¬¡á, τÑ⌐
- ¬½áßß óáΦá »α«úαá¼¼ ºáαÑú¿ßΓα¿α«óá½á ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- RegisterClass.
-
- Å«ß½Ñ Γ«ú«, ¬á¬ Σπ¡¬µ¿∩ ¼¡«ú«¬αáΓ¡«ú« ó맮óá í«½∞ΦÑ ¡Ñ
- ¡πª¡á (φΓ« »α«¿ßσ«ñ¿Γ, ¬«úñá óδ º¡áÑΓÑ, τΓ« «¡á ¡Ñ íπñÑΓ
- óδºóá¡á), óδ ¼«ªÑΓÑ «Γ¬½ετ¿Γ∞ Σπ¡¬µ¿ε «Γ ßÑú¼Ñ¡Γá ñá¡¡δσ ß
- »«¼«Θ∞ε Σπ¡¬µ¿¿ FreeProcInstance.
- 14.4.2 櫺ñá¡¿Ñ Σπ¡¬µ¿¿ WinMain.
-
- èáªñá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á Windows ñ«½ª¡á ¿¼ÑΓ∞ Σπ¡¬µ¿ε
- WinMain. èᬠ¿ Σπ¡¬µ¿∩ main ó ßΓá¡ñáαΓ¡«¼ æ, Σπ¡¬µ¿∩ WinMain
- óδ»«½¡∩ÑΓ α«½∞ Γ«τ¬¿ óσ«ñá ó »α«úαá¼¼π. Ä¡á ß«ñÑαª¿Γ «»ÑαáΓ«αδ
- ¿ ó맮óδ Σπ¡¬µ¿⌐ Windows, ¬«Γ«αδÑ ß«ºñáεΓ «¬¡á ¿ ßτ¿ΓδóáεΓ ¿
- «íαáíáΓδóáεΓ ß««íΘÑ¡¿∩ óó«ñá, »αÑñ¡áº¡áτÑ¡¡δÑ ñá¡¡«⌐ »α¿¬½áñ¡«⌐
- »α«úαá¼¼Ñ. ÄíΩ∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿ óδú½∩ñ¿Γ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- int PASCAL WinMain(hInst,hPrevInst,lpCmdLine,nCmdShow);
- HANDLE hInst;
- HANDLE hPrevInst;
- LPSTR lpCmdLine;
-
- Windows 3.0/pg/2#3 = 158 =
-
- int nCmdShow;
- {
- .
- .
- .
- }
-
- èᬠ¿ óßÑ Σπ¡¬µ¿¿ Windows, Σπ¡¬µ¿∩ WinMain «íΩ∩ó½Ñ¡á ß
- ¬½ετÑóδ¼ ß½«ó«¼ PASCAL. é αѺπ½∞ΓáΓÑ, óáΦÑ «íΩ∩ó½Ñ¡¿Ñ Σπ¡¬µ¿¿
- WinMain ñ«½ª¡« ß«ñÑαªáΓ∞ τÑΓδαÑ »áαá¼ÑΓαá, ñáªÑ Ñß½¿ ó
- »α«úαá¼¼Ñ «¡¿ ¡Ñ ¿ß»«½∞ºπεΓß∩.
-
- ò«Γ∩ Windows óδºδóáÑΓ Σπ¡¬µ¿ε WinMain ¡á»α∩¼πε, «¡á ¡Ñ
- ñ«½ª¡δ íδΓ∞ «íΩ∩ó½Ñ¡á ¬á¬ FAR ¿½¿ ¬á¬ φ¬ß»«αΓ¿απѼá∩ ó Σá⌐½Ñ
- «»¿ßá¡¿∩ ¼«ñπ½∩, »«ß¬«½∞¬π «¡á óδºδóáÑΓß∩ ¿º ßΓáαΓ«ó«ú« ¬«ñá,
- ¬«Γ«αδ⌐ ñ«íáó½∩ÑΓß∩ ¬«¼»¿½∩Γ«α«¼ ¬ ßÑú¼Ñ¡Γπ ñá¡¡δσ. WinMain
- ¡Ñ∩ó¡« «íΩ∩ó½∩ÑΓß∩ NEAR ¿½¿ FAR ó ºáó¿ß¿¼«ßΓ¿ «Γ ¿ß»«½∞ºπѼ«⌐
- »α¿ ¬«¼»¿½∩µ¿¿ ¼«ñπ½∩, ß«ñÑαªáΘÑú« WinMain, ¼«ñѽ¿ »á¼∩Γ¿.
-
- 14.5 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ.
-
- SDK ß«ñÑαª¿Γ ß»Ñµ¿á½∞¡δÑ óÑαß¿¿ Σπ¡¬µ¿⌐ í¿í½¿«ΓѬ
- ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ, ¬«Γ«αδÑ «Γ½¿τáεΓß∩ «Γ Σπ¡¬µ¿⌐,
- »«ßΓáó½∩Ѽδσ ß ¬«¼»¿½∩Γ«α«¼ æ. é ß½ÑñπεΘ¿σ αáºñѽáσ «»¿ßá¡δ
- αẽ¿τ¡δÑ «Γ½¿τ¿∩ Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ó Windows ¿ ó
- ¬«¼»¿½∩Γ«αÑ æ.
- 14.5.1 êß»«½∞º«óá¡¿Ñ í¿í½¿«ΓѬ æ.
-
- éδ ¼«ªÑΓÑ »«½∞º«óáΓ∞ß∩ í¿í½¿«ΓѬἿ Σπ¡¬µ¿⌐, »«ßΓáó½∩Ѽδσ
- ß Microsoftt C Compiller óÑαß¿¿ 5.1 ¿ óδΦÑ. æ»Ñµ¿á½∞¡δÑ óÑαß¿¿
- φΓ¿σ í¿í½¿«ΓѬ áñá»Γ¿α«óá¡δ ¬ ßαÑñÑ Windows. è«ñ »α«½«úá ¿
- φ»¿½«úá Windows ñ«íáó½∩ÑΓß∩ ¬« óßѼ Σπ¡¬µ¿∩¼ ¿ß»«½¡∩εΘÑ⌐
- ß¿ßΓÑ¼δ æ, ¬«Γ«αδ¼ φΓ« ΓαÑíπÑΓß∩. ¥Γ« »αÑñ«ΓóαáΘáÑΓ »α«í½Ñ¼δ,
- ¬«Γ«αδÑ ¼«úπΓ ó«º¡¿¬¡πΓ∞ »α¿ »ÑαѼÑΘÑ¡¿¿ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ó
- »á¼∩Γ¿, ó ß¿Γπᵿ¿, ¬«úñá ÑÑ ¡Ñ σóáΓáÑΓ. î¡«ú¿Ñ Σπ¡¬µ¿¿ í뫨
- »ÑαÑ»¿ßá¡δ, τΓ«íδ ¿ß¬½ετ¿Γ∞ »αÑñ»«½«ªÑ¡¿Ñ, τΓ« DS αáóÑ¡ SS, τΓ«
- ¡Ñ óÑα¡« ñ½∩ Windows DLL. ÄíßπªñÑ¡¿Ñ Γ«ú«, ¬á¬ óδºδóáΓ∞ ¿º DLL
- Σπ¡¬µ¿¿, ¬«Γ«αδÑ »«ñαáºπ¼ÑóáεΓ, τΓ« DS αáóÑ¡ SS, óδ ¡á⌐ñÑΓÑ ó
- ú½áóÑ 20, "信ἿτÑÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
-
- SDK ß«ñÑαª¿Γ ñóá ¡áí«αá í¿í½¿«ΓѬ. Äñ¿¡ ¡áí«α ¿ß»«½∞ºπÑΓß∩
- »α¿ ¬«¼»¿½∩µ¿¿ »α¿¬½áñ¡δσ »α«úαá¼¼, á ñαπú«⌐ »α¿ ¬«¼»¿½∩µ¿¿
- Windows DLL. ¥Γ¿ íáí὿«ΓѬ¿ ß«ñÑαªáΓ ßΓáαΓ«óδ⌐ ¬«ñ DLL ¿½¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ, ó¬½ετá∩
- Σπ¡¬µ¿¿ ºá¼Ñ¡¿Γѽ¿ ºáó¿ß¿¼«ßΓ¿ «Γ ¼«ñѽ¿ »á¼∩Γ¿. é αѺπ½∞ΓáΓÑ
- SDK ΓαÑíπÑΓ Γ«½∞¬« «ñ¡π ¿¼»«αΓ¿απѼπε í¿í½¿«ΓѬπ, LIBW.LIB. ¥Γá
- í¿í½¿«ΓÑ¬á ¡Ñ ºáó¿ß¿Γ «Γ ¼«ñѽ¿ »á¼∩Γ¿.
-
- Åα«úαá¼¼á SDK 3.0 Install «íδτ¡« »α¿ßóá¿óáÑΓ ¿¼Ñ¡á
- í¿í½¿«ΓѬá¼, ß«ñÑαªáΘ¿¼ óÑαß¿¿ ñ½∩ Windows ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐
- æ ó ß««ΓóÑΓßΓó¿¿ ß« ß½ÑñπεΘ¿¼ ß«ú½áóΦÑ¡¿Ñ¼:
-
-
- Windows 3.0/pg/2#3 = 159 =
-
- { S | M | C | L }{ LIB | DLL } C { A | E }W.LIB
-
- üπ¬óδ S, M, C ¿ L »αÑñßΓáó½∩εΓ ß««ΓóÑΓßΓóÑ¡¡« ¼á½πε,
- ßαÑñ¡εε, ¬«¼»á¬Γ¡πε ¿ í«½∞Φπε ¼«ñѽ¿ »á¼∩Γ¿. LIB ¿ DLL
- «»αÑñѽ∩εΓ, τΓ« ñ«½ª¡δ »«ñ¬½ετáΓ∞ß∩ í¿í½¿«ΓѬ¿ ¿½¿ ¼«ñ㫨 DLL.
- A ¿ E «»αÑñѽ∩εΓ á½∞ΓÑα¡áΓ¿ó¡πε í¿í½¿«ΓÑ¬π ¿½¿ í¿í¿½¿«ΓѬπ
- φ¼π½∩Γ«αá. êß»«½∞ºπ∩ φΓ« ß«ú½áΦÑ¡¿Ñ óδ ñ«½ª¡δ ∩ó¡« π¬áºáΓ∞
- óÑαß¿¿ Windows ßΓá¡ñáαΓ¡δσ í¿í½¿«ΓѬ æ »α¿ ¬«¼»«¡«ó¬Ñ óáΦÑ⌐
- »α«úαá¼¼δ. ì¿ªÑ »α¿óÑñÑ¡ »α¿¼Ñα ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ DOS ñ½∩
- ¬«¼»«¡«ó¬¿ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Windows ß« ßΓá¡ñáαΓ¡δ¼¿
- í¿í½¿«ΓѬἿ æ:
-
- LINK GENERIC,,, /NOD SLIBCEW LIBW, GENERIC.DEF
-
- è½ετ /NOD (¡Ñ ¿ß»«½∞º«óáΓ∞ »«¿ß¬ ñ¿αÑ¬Γ«α¿⌐ »« π¼«½τá¡¿ε)
- αѬ«¼Ñ¡ñπÑΓß∩ ñ½∩ ¿ß¬½ετÑ¡¿∩ Γ«ú«, τΓ« ¬«¼»«¡«óΘ¿¬ ¡á⌐ñÑΓ ¿
- »«ñ¬½ετ¿Γ í¿í½¿«ΓѬ¿ æ, á ¡Ñ óÑαß¿¿ φΓ¿σ í¿í½¿«ΓѬ ñ½∩ Windows.
- àß½¿ óδ π¬áªÑΓÑ φëà ¬½ετ, Γ« ¡Ñ íπñπΓ ¬«¼»«¡«óáΓ∞ß∩ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ, ¬«Γ«αδÑ ¿ß»«½∞ºπεΓ Σπ¡¬µ¿¿ æ, ¡Ñ »«ññÑনóáѼδÑ
- í¿í½¿«ΓѬἿ Windows.
-
- SDK Γá¬ªÑ ß«ñÑαª¿Γ ß»Ñµ¿á½∞¡δÑ óÑαß¿¿ ñ½∩ Windows
- ó¬½ετáѼδσ Σá⌐½«ó. ¥Γ¿ Σá⌐½δ »«¼«úπΓ óá¼ «»αÑñѽ¿Γ∞, τΓ« óδ
- ß½πτá⌐¡« óδºδóáÑΓÑ ó ßó«Ñ⌐ »α«úαá¼¼Ñ Σπ¡¬µ¿¿ æ, ¬«Γ«αδÑ ¡Ñ
- »«ññÑনóáεΓß∩ ó ßαÑñÑ Windows. ä½∩ óδ»«½¡Ñ¡¿∩ Γᬫ⌐ »α«óÑન
- ñ«íáó∞ΓÑ ß½ÑñπεΘπε ñ¿αÑ¬Γ¿óπ ó« ó¬½ετáѼδ⌐ Σá⌐½ óáΦÑú« ¼«ñπ½∩
- »ÑαÑñ óßѼ¿ ñ¿αÑ¬Γ¿óἿ ó¬½ετÑ¡¿∩ Σá⌐½á:
-
- #define _WINDOWS
-
- ìáí«α Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ, ¬«Γ«αδÑ »«ññÑনóáεΓ
- óδº«ó ¿º »α¿¬½áñ¡δσ »α«úαá¼¼ Windows, ó¬½ετáÑΓ »«ñ¼¡«ªÑßΓó«
- Σπ¡¬µ¿⌐, ¬«Γ«αδÑ »«ññÑনóáεΓ óδº«ó ¿º Windows DLL. 鬽ετáѼδÑ
- Σá⌐½δ Windows αáß»«º¡áεΓ φΓ« »«ñ¼¡«ªÑßΓó«. àß½¿ óδ ß«ºñáÑΓÑ
- DLL, óδ ñ«½ª¡δ ó¬½ετ¿Γ∞ «íÑ ñ¿αÑ¬Γ¿óδ »ÑαÑñ ñ¿αÑ¬Γ¿óἿ
- ó¬½ετÑ¡¿∩ Σá⌐½«ó ºáú«½«ó¬«ó ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ:
-
- #define _WINDOWS
- #define _WINDLL
-
- 14.5.2 éδñѽѡ¿Ñ »á¼∩Γ¿.
-
- ò«Γ∩ óÑαß¿¿ ñ½∩ Windows í¿í½¿«ΓѬ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ
- »«ññÑনóáεΓ ºá¼Ñ¡¿Γѽ¿ ñ½∩ Σπ¡¬¿µ¿⌐ óδñѽѡ¿∩ »á¼∩Γ¿, Γᬿσ
- ¬á¬ malloc ¿ free, ½πτΦÑ óßÑ ªÑ »«½∞º«óáΓ∞ß∩ Σπ¡¬µ¿∩¼¿ Windows.
- ìá»α¿¼Ñα, Σπ¡¬µ¿∩ malloc »«ºó«½∩ÑΓ óá¼ óδñѽ¿Γ∞ Σ¿¬ß¿α«óá¡¡δ⌐
- í½«¬ ó ½«¬á½∞¡«⌐ "¬πτÑ", á Σπ¡¬µ¿∩ LocalAlloc »«ºó«½∩ÑΓ óá¼
- «»αÑñѽ¿Γ∞ »ÑαѼÑΘáѼδ⌐ í½«¬ »á¼∩Γ¿.
- 14.5.3 Éáí«Γá ß« ßΓα«¬á¼¿.
-
- ä½∩ αáí«Γδ ß« ßΓα«¬á¼¿ óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿
- ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ. Äñ¡á¬« ó ¼á½«⌐ ¿ ßαÑñ¡Ñ⌐ ¼«ñѽ∩σ »á¼∩Γ¿
-
- Windows 3.0/pg/2#3 = 160 =
-
- φΓ¿ Σπ¡¬µ¿¿ ¡Ñ ¼«úπΓ αáí«ΓáΓ∞ ß« ßΓα«¬á¼¿, «íΩ∩ó½Ñ¡¡δ¼¿ ¬á¬
- ñá½∞¡¿Ñ π¬áºáΓѽ¿ ¿½¿ ¼áßß¿óδ, Γᬿ¼¿ ¬á¬ ß«ºñá¡¡δÑ ó
- ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ GlobalAlloc. ìá
- Σπ¡¬µ¿¿ αáí«Γδ ß íπΣÑαἿ (Γᬿ¼¿ ¬á¬ memcpy ¿ memset)
- ¡á¬½áñδóáεΓß∩ ΓÑ ªÑ «úαá¡¿τÑ¡¿∩ »α¿ αáí«ΓÑ ó ¼á½«⌐ ¿ ßαÑñ¡Ñ⌐
- ¼«ñѽ¿ »á¼∩Γ¿.
-
- Windows »αÑñ«ßΓáó½∩ÑΓ ñ½∩ αáí«Γδ ß« ñá½∞¡¿¼¿ ßΓα«¬á¼¿
- ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿:
-
- - lstrcat
-
- - lstrcmp
-
- - lstrcmpi
-
- - lstrcpy
-
- - lstrlen
-
- ä½∩ ßαáó¡Ñ¡¿∩ ¿½¿ »α«óÑન ß¿¼ó«½«ó ¿º ¡áí«αá ß¿¼ó«½«ó
- ANSI ½πτΦÑ ¿ß»«½∞º«óáΓ∞ ß½ÑñπεΘ¿Ñ Σπ¡¬µ¿¿ ó¼ÑßΓ« Σπ¡¬µ¿⌐
- ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ:
-
- - AnsiLower
-
- - AnsiLowerBuff
-
- - AnsiNext
-
- - AnsiPrev
-
- - AnsiUpperBuff
-
- - IsCharAlpha
-
- - IsCharAlfaNumeric
-
- - IsCharLower
-
- - IsCharUpper
-
- Windows Γá¬ªÑ ß«ñÑαª¿Γ Σπ¡¬µ¿¿ wsprintf ¿ wvsprintf ñ½∩
- ºá¼Ñ¡δ Σπ¡¬µ¿⌐ æ sprintf ¿ vsprintf. Ä¡¿ ¿¼ÑεΓ ß½ÑñπεΘ¿Ñ
- »αÑ¿¼πΘÑßΓóá:
-
- - éÑαß¿¿ ñ½∩ Windows ¿ß»«½∞ºπεΓ ñá½∞¡¿Ñ íπΣÑαá ó¼ÑßΓ«
- í½¿ª¡¿σ.
-
- - éÑαß¿¿ ñ½∩ Windows ¡á¼¡«ú« ¼Ñ¡∞ΦÑ.
-
- - éÑαß¿¿ ñ½∩ Windows »«ºó«½∩εΓ óá¼ ¿ß¬½ετ¿Γ∞ ¿º »α«úαá¼¼δ
- ßΓáαΓ«óδ⌐ ¬«ñ æ, Ñß½¿ óδ ¡Ñ ¿ß»«½∞ºπÑΓÑ Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐
-
- Windows 3.0/pg/2#3 = 161 =
-
- ß¿ßΓÑ¼δ æ. 漫Γα¿ΓÑ αáºñѽ 14.5.10, "ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá
- æ".
-
- Äñ¡á¬« óÑαß¿¿ φΓ¿σ Σπ¡¬µ¿⌐ ñ½∩ Windows »«ññÑনóáεΓ ¡Ñ
- »«½¡δ⌐ ¡áí«α ߻ѵ¿Σ¿¬áµ¿⌐ Σ«α¼áΓá. é τáßΓ¡«ßΓ¿, Σ«α¼áΓ ß
- »½áóáεΘÑ⌐ Γ«τ¬«⌐, π¬áºáΓѽ∩ ¿ ó«ß∞¼Ñα¿τ¡δσ τ¿ßѽ.
-
- é᪡«. àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ó¼ÑßΓ« sprintf ¿½¿ vsprintf
- ß««ΓóÑΓßΓóπεΘ¿Ñ Σπ¡¬µ¿¿ Windows πíÑñ¿ΓÑß∞, τΓ« óßÑ ßΓ᫬¿,
- »ÑαÑñáóáѼδÑ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γ«ó ¬ ߻ѵ¿Σ¿¬áΓ«απ Σ«α¼áΓá %s,
- í뫨 FAR.
-
- char buffer[100];
- char *str1; /* í½¿ª¡¿⌐ π¬áºáΓѽ∞ ó ¼á½«⌐ ¿½¿ ßαÑñ¡Ñ⌐
- ¼«ñѽ¿ »á¼∩Γ¿ */
- .
- .
- .
- sprintf(buffer,"Str1 = %s",str1); /* ñ«»πßΓ¿¼« */
- wsprintf(buffer,"Str1 = %s",(LPSTR)str1); /* ñ«»πßΓ¿¼« */
- wsprintf(buffer,"Str1 = %s",str1); /* ¡ÑóÑα¡« */
- 14.5.4 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ Σá⌐½«ó«ú« óó«ñá/óδó«ñá.
-
- ä½∩ ß«ºñá¡¿∩, «Γ¬αδΓ¿∩, »«óΓ«α¡«ú« «Γ¬αδΓ¿∩ ¿ πñá½Ñ¡¿∩
- ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿ε OpenFile. öπ¡¬µ¿∩ OpenFile ó«ºóαáΘáÑΓ
- ñÑß¬α¿»Γ«α Σá⌐½á DOS, ¬«Γ«αδ⌐ óδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ ß Γᬿ¼¿
- Σπ¡¬µ¿∩¼¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¬á¬ read, write, lseek ¿ close.
- àß½¿ óδ ¬«¼»¿½¿απÑΓÑ ¼«ñπ½∞ ó ¼á½«⌐ ¿½¿ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿,
- »áαá¼ÑΓα buffer Σπ¡¬µ¿⌐ read ¿ write ∩ó½∩ÑΓß∩ í½¿ª¡¿¼
- π¬áºáΓѽѼ (char near *). àß½¿ óδ σ«Γ¿ΓÑ ßτ¿ΓδóáΓ∞ ¿½¿
- ºá»¿ßδóáΓ∞ ñá¡¡δÑ ó íπΣÑα, «íΩ∩ó½Ñ¡¡δ⌐ ó óáΦÑ⌐ »α«úαá¼¼Ñ ¬á¬
- ñá½∞¡¿⌐ π¬áºáΓѽ∞ ¿½¿ ¼áßß¿ó, ¿ß»«½∞ºπ⌐ΓÑ Σπ¡¬µ¿¿ Windows
- _lread ¿ _lwrite. Ä¡¿ Γá¬ªÑ ¿ß»«½∞ºπεΓß∩ ñ½∩ ºá»¿ß¿ ¿½¿ τΓÑ¡¿∩
- ¿º íπΣÑα«ó, ñ¿¡á¼¿τÑ߬¿ óδñѽѡ¡δσ ó ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿.
- éδ ¼«ªÑΓÑ Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ íπΣÑਧ«óá¡¡δ⌐ óó«ñ ¿ óδó«ñ ó
- Σá⌐½, Γ.Ñ. Σπ¡¬µ¿¿ fopen, fread ¿ fwrite.
-
- éδ ¼«ªÑΓÑ Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ Windows _lopen ¿
- _lcreat ñ½∩ «Γ¬αδΓ¿∩ ¿ ß«ºñá¡¿∩ Σá⌐½«ó.
-
- ū߬«½∞¬π Windows - ¼π½∞Γ¿ºáñáτ¡á∩ ßαÑñá, ñαπú¿Ñ »α«úαá¼¼δ
- ¼«úπΓ »«»δΓáΓ∞ß∩ »«½πτ¿Γ∞ ñ«ßΓπ» ¬ Γ«¼π Σá⌐½π, ó ¬«Γ«αδ⌐
- ºá»¿ßδóáÑΓ ¿½¿ ¿º ¬«Γ«α«ú« τ¿ΓáÑΓ óáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á. éδ
- ¼«ªÑΓÑ π»αáó½∩Γ∞ ñ«ßΓπ»«¼ ñαπú¿σ »α«úαá¼¼ ¬ Σá⌐½π ß »«¼«Θ∞ε
- í¿Γá αáºñѽѡ¿∩ ó »áαá¼ÑΓαÑ wStyle »α¿ «Γ¬αδΓ¿¿ Σá⌐½á.
- ÄßΓáó½∩⌐ΓÑ Σá⌐½δ «Γ¬αδΓ묨 Γ«½∞¬« ¬«úñá óδ »α«¿ºó«ñ¿ΓÑ «»Ñαᵿ¿
- τΓÑ¡¿∩ ¿½¿ ºá»¿ß¿, Ñß½¿ óáΦá »α«úαá¼¼ ¡Ñ ñ«½ª¡á π»αáó½∩Γ∞
- ñ«ßΓπ»«¼ ¬ Σá⌐½π ó ñαπú«Ñ óαѼ∩.
-
- Åα¿¼Ñτá¡¿Ñ: àß½¿ DLL «Γ¬αδóáÑΓ Σá⌐½, ñÑß¬α¿»Γ«α Σá⌐½á
- »α¿¡áñ½Ñª¿Γ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, ¬«Γ«αá∩ óδºóá½á DLL. àß½¿ DLL
- «Γ¬αδóáÑΓ ¡Ñ «ñ¿¡ Σá⌐½ ¿ αáºñѽ∩ÑΓß∩ ¡Ñ߬«½∞¬¿¼¿ »α¿¬½áñ¡δ¼¿
-
- Windows 3.0/pg/2#3 = 162 =
-
- »α«úαἼἿ, Γ« 󫺼«ª¡á ß¿Γπᵿ∩, ¬«úñá «ñ¿¡ ¿ ëà ªÑ
- ñÑß¬α¿»Γ«α íπñÑΓ ßó∩ºá¡ DOS ¡Ñ߬«½∞¬« αáº.
- 14.5.5 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ óó«ñá ¿ óδó«ñá ¡á ¬«¡ß«½∞.
-
- éáΦá »α«úαá¼¼á ñ«½ª¡á αáºñѽ∩Γ∞ ß¿ßΓѼ¡πε ¬«¡ß«½∞ ß
- ñαπú¿¼¿ »α¿¬½áñ¡δ¼¿ »α«úαἼἿ. æ½Ññ«óáΓѽ∞¡«, óÑαß¿¿ Windows
- í¿í½¿«ΓѬ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¡Ñ ß«ñÑαªáΓ Σπ¡¬µ¿⌐ óó«ñá ¿
- óδó«ñá ¡á ¬«¡ß«½∞:
-
- - cgets
-
- - cprintf
-
- - cputs
-
- - getch
-
- - getche
-
- - kbhit
-
- - putch
-
- - ungetc
-
- é¼ÑßΓ« φΓ«ú«, óáΦá »α«úαá¼¼á ñ«½ª¡δ »«½πτáΓ∞ óó«ñ ß
- ¬«¡ß«½¿ τÑαѺ ß««íΘÑ¡¿∩ WM_KEYDOWN, WM_KEYUP ¿ WM_CHAR. àß½¿
- ΓαÑíπÑΓß∩ í«½ÑÑ ß½«ª¡á∩ ΓÑσ¡¿¬á, óδ ¼«ªÑΓÑ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- PeekMessage ºáú½∩¡πΓ∞ ó»ÑαÑñ ¡á óó«ñ ¬½áó¿áΓπαδ, ¿½¿ óδ ¼«ªÑΓÑ
- πßΓá¡«ó¿Γ∞ Σπ¡¬µ¿ε ½«óπΦ¬¿ ó DLL ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- SetWindowHook.
-
- 14.5.6 êß»«½∞º«óá¡¿Ñ úαáΣ¿τÑ߬¿σ Σπ¡¬µ¿⌐.
-
- ê¡ΓÑαΣÑ⌐ß úαáΣ¿τÑ߬¿σ πßΓα«⌐ßΓó Windows (GDI)
- »αÑñ«ßΓáó½∩ÑΓ á»»áαáΓ¡«-¡Ñºáó¿ß¿¼δÑ úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿.
- æ½Ññ«óáΓѽ∞¡«, úαáΣ¿τÑ߬¿Ñ Σπ¡¬µ¿¿ í¿í½¿«ΓѬ ¿ß»«½¡∩εΘÑ⌐
- ß¿ßΓÑ¼δ æ ¡Ñ ó¬½ετáεΓß∩ ó óÑαß¿ε í¿í½¿«ΓѬ Windows.
- 14.5.7 êß»«½∞º«óá¡¿Ñ óδτ¿ß½Ñ¡¿⌐ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐.
-
- àß½¿ ó óáΦÑ⌐ »α«úαá¼¼Ñ ¿ß»«½∞ºπεΓß∩ »ÑαѼѡ¡δÑ ß »½áóáεΘÑ⌐
- Γ«τ¬«⌐ óδ ñ«½ª¡δ ¬«¼»«¡«óáΓ∞ óáΦπ »α«úαá¼¼π ß ¬½ετἿ: -FPi,
- -FPc ¿½¿ FPa.
-
- Åਪ½áñ¡δÑ »α«úαá¼¼δ, ߬«¼»«¡«óá¡¡δÑ ß ¬½ετѼ -FPi,
- ¿ß»«½∞ºπεΓ áα¿Σ¼ÑΓ¿τÑ߬¿⌐ ß«»α«µÑßß«α 80σ87, Ñß½¿ ó ¼«¼Ñ¡Γ
- óδ»«½¡Ñ¡¿∩ «¡ πßΓá¡«ó½Ñ¡. é »α«Γ¿ó¡«¼ ß½πτáÑ, »α¿¬½áñ¡á∩
- »α«úαá¼¼á ¿ß»«½∞ºπÑΓ φ¼π½∩Γ«α.
-
- Åα«úαá¼¼δ, ߬«¼»¿½¿α«óá¡¡δÑ ß ¬½ετѼ -FPc, á¡á½«ú¿τ¡δ
- »α«úαá¼¼á¼, ߬«¼»¿½¿α«óá¡¡δ¼ ß ¬½ετѼ -FPi, ºá ¿ß¬½ετÑ¡¿Ñ¼
-
- Windows 3.0/pg/2#3 = 163 =
-
- Γ«ú«, τΓ« »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ «¡¿ ¼«úπΓ íδΓ∞ ߬«¼»«¡«óá¡δ ß
- á½∞ΓÑα¡áΓ¿ó¡«⌐ ¼áΓѼáΓ¿τÑ߬«⌐ í¿í½¿«ΓѬ«⌐.
-
- Åα«úαá¼¼δ, ߬«¼»¿½¿α«óá¡¡δÑ ß ¬½ετѼ -FPa, ¿ß»«½∞ºπεΓ
- á½∞ΓÑα¡áΓ¿ó¡πε ¼áΓѼáΓ¿τÑ߬πε í¿í½¿«ΓѬπ, Ñß½¿ ó ¼«¼Ñ¡Γ
- óδ»«½¡Ñ¡¿∩ ß«»α«µÑßß«α ¡Ñ πßΓá¡«ó½Ñ¡. ¥Γ« ¡á¿í«½ÑÑ ¼á½Ñ¡∞¬á∩ ¿
- íδßΓαá∩ «»µ¿∩, ñ«ßΓπ»¡á∩ íѺ ß«»α«µÑßß«αá, «ñ¡á¬« «¡á »α¿¡«ß¿Γ
- ó ªÑαΓóπ ߬«α«ßΓ¿ Γ«τ¡«ßΓ∞ »« ßαáó¡Ñ¡¿ε ß í¿í½¿«ΓѬ«⌐
- φ¼π½∩Γ«αá.
-
- àß½¿ óδ ¿ß»«½∞ºπÑΓÑ ¬½ετ¿ -FPi ¿½¿ -FPc, óδ ñ«½ª¡δ
- »«ñ¬½ετ¿Γ∞ í¿í½¿«ΓѬπ WIN87EM.LIB ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ LINK:
-
- LINK SAMPLE,,,SLIBCEW WIN87EM LIBW, SAMPLE.DEF
-
- é Windows 3.0 »α«úαá¼¼á SETUP áóΓ«¼áΓ¿τÑ߬¿ »«¼ÑΘáÑΓ
- WIN87EM.DLL ó ß¿ßΓѼ¡πε ñ¿αÑ¬Γ«α¿ε Windows.
-
- éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ »áαá¼ÑΓα SIGFPE («Φ¿í¬á óδτ¿ß½Ñ¡¿⌐
- ß »½áóáεΘÑ⌐ Γ«τ¬«⌐) Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ñ½∩
- «Γ߽Ѫ¿óá¡¿∩ «Φ¿í«¬ óδτ¿ß½Ñ¡¿⌐ ß »½áóáεΘÑ⌐ Γ«τ¬«⌐, Γᬿσ ¬á¬
- »ÑαÑ»«½¡Ñ¡¿Ñ ¿½¿ ñѽѡ¿Ñ ¡á 0. ä½∩ φΓ«ú« áñαÑß »α«µÑñπαδ
- «íαáí«Γ¬¿ «Φ¿í«¬ ¡Ñ«íσ«ñ¿¼« »«ñú«Γ«ó¿Γ∞ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- MakeProcInstance.
-
- é »α¿¬½áñ¡δσ »α«úαá¼¼áσ Windows ó¼ÑßΓ« Σπ¡¬µ¿⌐ setjmp ¿
- longjmp óδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ Catch ¿ Throw.
-
- 14.5.8 çá»π߬ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼.
-
- ä½∩ ºá»πß¬á »α¿¬½áñ¡δσ »α«úαá¼¼ Windows ß«ñÑαª¿Γ Σπ¡¬µ¿¿
- WinExec ¿ LoadModule. LoadModule ºá»π߬áÑΓ Γ«½∞¬« »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ Windows, á WinExec »«ºó«½∩ÑΓ ºá»π߬áΓ∞ ¬á¬ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ Windows, Γᬠ¿ «íδτ¡δÑ »α«úαá¼¼δ. éδ ñ«½ª¡δ
- ¿ß»«½∞º«óáΓ∞ φΓ¿ Σπ¡¬µ¿¿ ó¼ÑßΓ« Σπ¡¬µ¿⌐ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ
- exec ¿ spawn. èᬠ¿ Σπ¡¬µ¿¿ ßѼÑ⌐ßΓóá spawn Σπ¡¬µ¿¿ LoadModule
- ¿ WinExec »«ºó«½∩εΓ óáΦÑ⌐ »α«úαá¼¼Ñ »α«ñ«½ªáΓ∞ αáí«Γπ ó« óαѼ∩
- óδ»«½¡Ñ¡¿∩ ºá»πΘÑ¡¡«⌐ ¿¼¿ »α«úαá¼¼δ.
-
- WinExec »αÑñ«ßΓáó½∩ÑΓ »α«ßΓ«⌐ ¿¡ΓÑαΣÑ⌐ß ñ½∩ ºá»π߬á
- ñ«τÑα¡Ñú« »α«µÑßßá. LoadModule í«½ÑÑ ß½«ª¡á, »«ß¬«½∞¬π ΓαÑíπÑΓ
- «Γ óáΦÑ⌐ »α«úαá¼¼δ í½«¬ »áαá¼ÑΓα«ó, «ñ¡á¬« »«ºó«½∩ÑΓ π»αáó½∩Γ∞
- ßαÑñ«⌐, ó ¬«Γ«α«⌐ íπñÑΓ ºá»πΘÑ¡ ñ«τÑα¡¿⌐ »α«µÑßß.
-
- 14.5.9 êß»«½∞º«óá¡¿Ñ Σπ¡¬µ¿⌐ ¿¡ΓÑαΣÑ⌐ßá ß MS-DOS ¿ BIOS.
-
- ìÑ ¿ß»«½∞ºπÑ⌐ΓÑ Σπ¡¬µ¿¿ ¿¡ΓÑαΣÑ⌐ßá ß BIOS »α¿ αáí«ΓÑ ó
- Windows.
-
- éδ ¼«ªÑΓÑ ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ñ½∩
- αáí«Γδ ß »αÑαδó᡿Ѽ 21H, Γᬿ¼¿ ¬á¬ intdos, intdosx ¿ ñαπú¿¼¿
- Σπ¡µ¿∩¼¿ _dos, ¡á»α¿¼Ñα, _dos_getdrive. éδ ¼«ªÑΓÑ ΓᬪÑ
- ¿ß»«½∞º«óáΓ∞ Σπ¡¬µ¿¿ int86 ¿ int86x ñ½∩ ó맮óá »αÑαδóá¡¿⌐,
-
- Windows 3.0/pg/2#3 = 164 =
-
- «Γ½¿τ¡δσ «Γ 21H. Äñ¡á¬« óδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ »αÑαδóá¡¿∩ ß
- ¿ß¬½ετ¿Γѽ∞¡«⌐ «ßë᫪¡«ßΓ∞ε ¿ Γ«½∞¬« Γ«úñá, ¬«úñá «¡¿
- ¡Ñ«íσ«ñ¿¼δ.
- 14.5.10 ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ.
-
- Äíδτ¡« »α¿ ¬«¼»«¡«ó¬Ñ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows ¿½¿ DLL
- ¬«¼»«¡«óΘ¿¬ ñ«íáó½∩ÑΓ ¬ ¬«ñ«ó«¼π ßÑú¼Ñ¡Γπ _TEXT ßΓáαΓ«óδ⌐ ¬«ñ
- æ. ä½∩ »α¿¬½áñ¡δσ »α«úαá¼¼ Windows (¡« ¡Ñ ñ½∩ DLL) φëà ¬«ñ ó
- ßó«ε «τÑαÑñ∞ óδñѽ∩ÑΓ ¼ÑßΓ« ó áóΓ«¼áΓ¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
- »α«úαá¼¼δ ñ½∩ »ÑαѼѡ¡δσ óαѼѡ¿ óδ»«½¡Ñ¡¿∩.
-
- SDK óÑαß¿¿ 3.0 »«ºó«½∩ÑΓ óá¼ πíαáΓ∞ φëà ¬«ñ ¿ ñá¡¡δÑ,
- ΓαÑíπѼδÑ ñ½∩ í¿í½¿«ΓѬ æ. éδ ¼«ªÑΓÑ φΓ« ßñѽáΓ∞ ó ß½ÑñπεΘ¿σ
- ß½πτá∩σ:
-
- - éáΦá »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿½¿ DLL ¡Ñ ß«ñÑαª¿Γ ∩ó¡«ú«
- ó맮óá ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ æ.
-
- - é óáΦÑ⌐ »α«úαá¼¼Ñ ¡Ñ ¿ß»«½∞ºπεΓß∩ áαúπ¼Ñ¡Γδ ¬«¼á¡ñ¡«⌐
- ßΓ᫬¿ _argc ¿ _argv ¿½¿ »ÑαѼѡ¡á∩ _environ. 漫Γα¿ΓÑ
- αáºñѽ 14.3 "êß»«½∞º«óá¡¿Ñ áαúπ¼Ñ¡Γ«ó ¬«¼á¡ñ¡«⌐ ßΓ᫬¿
- DOS", ó ¬«Γ«α«¼ «»¿ßá¡«, ¬á¬ ¼«ª¡« »«½πτ¿Γ∞ ¬«¼á¡ñ¡πε
- ßΓப㠨 «¬απªÑ¡¿Ñ DOS. é DLL »ÑαѼѡ¡δÑ _argc, _argv ¿
- _environ ¡Ñ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞ß∩ ¡¿¬á¬¿¼ «íαẫ¼.
-
- - é óáΦÑ⌐ »α«úαá¼¼Ñ ¿½¿ DLL ¡Ñ óδºδóáεß∩ ∩ó¡« Σπ¡¬µ¿¿
- í¿í½¿«ΓѬ æ, Γá¬¿Ñ ¬á¬ »α«óÑα¬á ßΓÑ¬á ¿½¿ ñѽѡ¿Ñ
- ñ½¿¡¡δσ µÑ½δσ. Å« π¼«½τá¡¿ε »α«óÑα¬á ßΓѬá ó¬½ετÑ¡á, ¡«
- óδ ¼«ªÑΓÑ ÑÑ «Γ¬½ετ¿Γ∞ ß »«¼«Θ∞ε ¬½ετá -Gs ó ¬«¼á¡ñ¡«⌐
- ßΓα«¬Ñ ¬«¼»¿½∩Γ«αá.
-
- ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ ¿º »α¿¬½áñ¡δσ »α«úαá¼¼
- Windows.
-
- ä½∩ Γ«ú«, τΓ«íδ ¿ß¬½ετ¿Γ∞ ßΓáαΓ«óδ⌐ ¬«ñ æ ¿º »α¿¬½áñ¡«⌐
- »α«úαá¼¼δ, ¬«¼»«¡π⌐ΓÑ »α«úαá¼¼π ß í¿í½¿«ΓѬ«⌐ ß ¿¼Ñ¡Ñ¼
- xNOCRT.LIB ó¼ÑßΓ« «íδτ¡δσ í¿í½¿«ΓѬ C xLIBCAW.LIB ¿½¿
- xLIBCEW.LIB (ó¼ÑßΓ« x ¡Ñ«íσ«ñ¿¼« »«ñßΓáó¿Γ∞ ΓαÑíπѼπε ¼«ñѽ∞
- »á¼∩Γ¿: S, M, C, L).
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ »α¿óÑñÑ¡á ¬«¼á¡ñ¡á∩ ßΓ᫬á
- ¬«¼»«¡«óΘ¿¬á ñ½∩ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ SAMPLE, ó ¬«Γ«α«⌐ ¡Ñ
- óδ»«½¡∩εΓß∩ ∩ó¡δÑ ¿½¿ ¡Ñ∩ó¡δÑ ó맮óδ ßΓá¡ñáαΓ¡δσ Σπ¡¬µ¿⌐ æ:
-
- link /nod sample,,, snocrt libw sample.def
-
- ü¿í½¿«ΓѬá SNOCRT.LIB ó¬½ετáÑΓ ßΓáαΓ«óδ⌐ ¬«ñ Windows,
- ¬«Γ«αδ⌐ óδºδóáÑΓ Σπ¡¬µ¿ε WinMain.
-
- àß½¿ óδ ¬«¼»«¡πÑΓÑ »α«úαá¼¼π ß í¿í½¿«ΓѬ«⌐ xNOCRT.LIB
- ó¼ÑßΓ« xLIBCAW ¿½¿ xLIBCEW, ¿ ¬«¼»«¡«óΘ¿¬ ß««íΘáÑΓ «í
- «í¡áαπªÑ¡¿¿ ¡ÑαáºαÑΦ¿¼δσ ó¡ÑΦ¡¿σ ß¿¼ó«½«ó, ¬«Γ«αδÑ ¡Ñ
-
- Windows 3.0/pg/2#3 = 165 =
-
- »α¿¡áñ½ÑªáΓ ¬ óáΦÑ⌐ »α«úαá¼¼Ñ, Γ«, 󫺼«ª¡«, óδ ¡Ñ∩ó¡«
- óδºδóáÑΓÑ í¿í½¿«ΓѬ¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ. é φΓ«¼ ß½πτáÑ óδ
- ¼«ªÑΓÑ ¿ß¬½ετ¿Γ∞ ßΓáαΓ«óδ⌐ ¬«ñ æ, ΓαÑíπѼδ⌐ ñ½∩ ∩ó¡δσ ó맮ó«ó
- Σπ¡¬µ¿⌐ æ ¿ ¿ß»«½∞º«óá¡¿∩ »ÑαѼѡ¡δσ _argv, _argc ¿ _environ.
- ä½∩ φΓ«ú« »«ñ¬½ετ¿ΓÑ í¿í½¿«ΓѬπ xNOCRT.LIB »ÑαÑñ, á ¡Ñ ó¼ÑßΓ«
- í¿í½¿«ΓѬ¿ xLIBCEW.LIB ¿½¿ xLIBCAW.LIB. ìÑ«íσ«ñ¿¼« ΓᬪÑ
- π¬áºáΓ∞ ó ¬«¼á¡ñ¡«⌐ ßΓα«¬Ñ ¬«¼»«¡«óΘ¿¬á ¬½ετ /NOE.
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡á ¬«¼á¡ñ¡á∩ ßΓα«¬á ¬«¼»«¡«óΘ¿¬á
- ñ½∩ »α«úαá¼¼δ SAMPLE, ¬«Γ«αá∩ ¡Ñ∩ó¡« óδ»«½¡∩ÑΓ ó맮óδ Σπ¡¬µ¿⌐
- æ, ¡« ¡Ñ óδ»«½¡∩ÑΓ ∩ó¡δσ ó맮ó«ó:
-
- link /nod /noe sample,,, snocrt slibcew libw, sample.def
-
- ê߬½ετÑ¡¿Ñ ßΓáαΓ«ó«ú« ¬«ñá æ ¿º Windows DLL.
-
- ä½∩ ¿ß¬½ετÑ¡¿∩ ßΓáαΓ«ó«ú« ¬«ñá æ ¿º Windows DLL »«ñ¬½ετ¿ΓÑ
- ó¼ÑßΓ« í¿í½¿«ΓѬ¿ xDLLCEW.LIB ¿½¿ xDLLCAV.LIB ßΓáΓ¿τÑ߬πε
- í¿í½¿«ΓѬπ xNOCRT.LIB.
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ »«¬áºá¡á ¬«¼á¡ñ¡á∩ ßΓα«¬á ¬«¼»«¡«óΘ¿¬á
- ñ½∩ DLL ß ¿¼Ñ¡Ñ¼ SAMPDLL, ¬«Γ«αá∩ ¡Ñ óδ»«½¡∩ÑΓ ∩ó¡« ¿½¿ ¡Ñ∩ó¡«
- ó맮óδ Σπ¡¬µ¿⌐ æ:
-
- link /nod sampdll libentry, sampdll.dll,, snocrtd libw,
- sampdll.def
-
- ü¿í½¿«ΓѬá xNOCRTD.LIB ó¬½ετáÑΓ ßΓáαΓ«óδ⌐ ¬«ñ Windows,
- ¬«Γ«αδ⌐ óδºδóáÑΓ Σπ¡¬µ¿ε LibMain í¿í½¿«ΓѬ¿ DLL.
-
- èᬠ¿ ó ß½πτáÑ ß »α¿¬½áñ¡δ¼¿ »α«úαἼἿ, ó ß½πτáÑ
- »α¿ßπΓßΓó¿∩ ó í¿í½¿«ΓÑ¬Ñ ∩ó¡«ú« ¿½¿ ¡Ñ∩ó¡«ú« ó맮óá
- í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐ æ ¬«¼»«¡«óΘ¿¬ ß««íΘáÑΓ « »«∩ó½Ñ¡¿¿
- ¡ÑαáºαÑΦ¿¼δσ ßß佫¬, ¬«Γ«αδÑ ¡Ñ »α¿¡áñ½ÑªáΓ óáΦÑ⌐ DLL. é φΓ«¼
- ß½πτáÑ óδ ¼«ªÑΓÑ ¿ß¬½ετ¿Γ∞ ßΓáαΓ«óδ⌐ ¬«ñ æ, ΓαÑíπѼδ⌐ ñ½∩ ∩ó¡δσ
- ó맮ó«ó í¿í½¿«ΓÑτ¡δσ Σπ¡¬µ¿⌐, »«ñ¬½ετ¿ó í¿í½¿«ΓѬπ xNOCRTD.LIB
- ó¼ÑßΓÑ ß xDLLCAW.LIB ¿½¿ xDLLCEW.LIB. ìá»α¿¼Ñα:
-
- link /nod /noe sampdll libentry, sampdll.dll,, snocrt
- sdllcew, sampdll.def
-
- ìÑ ºáíπñ∞ΓÑ π¬áºáΓ∞ ¬½ετ /NOE.
- 14.6 ìỿßá¡¿Ñ »α«úαá¼¼ ¡á ∩ºδ¬Ñ áßßѼí½Ñαá.
-
- Åα«úαá¼¼δ ñ½∩ Windows, ¡á»¿ßá¡¡δÑ ¡á áßßѼí½ÑαÑ, - φΓ«
- óδß«¬«ßΓαπ¬Γπα¿α«óá¡¡δÑ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ ß«ú½áΦÑ¡¿∩ »«
- ó맮óπ óδß«¬«πα«ó¡Ñóδσ ∩ºδ¬«ó, á Γá¬ªÑ Σπ¡¬µ¿¿, Γ¿»δ ñá¡¡δσ ¿
- ß«ú½áΦÑ¡¿∩ Windows. ò«Γ∩ óδ áßßÑ¼í½¿απÑΓÑ ßó«¿ »α«úαá¼¼δ ß
- »«¼«Θ∞ε Microsoft Macro Assempler, óáΦá µÑ½∞ ß«ßΓ«¿Γ ó Γ«¼,
- τΓ«íδ »«½πτ¿Γ∞ «íΩÑ¬Γ¡δ⌐ Σá⌐½, á¡á½«ú¿τ¡δ⌐ úÑ¡Ñα¿απѼ«¼π
- ¬«¼»¿½∩Γ«α«¼ æ. ì¿ªÑ »α¿óÑñÑ¡δ ¡Ñ¬«Γ«αδÑ ß«óÑΓδ, ¬«Γ«αδÑ
- »«¼«úπΓ óá¼ ó ñ«ßΓ¿ªÑ¡¿¿ φΓ«⌐ µÑ½¿ ¿ ó ß«ºñá¡¿¿ »α¿¬½áñ¡δσ
-
- Windows 3.0/pg/2#3 = 166 =
-
- »α«úαá¼¼ ß ¿ß»«½∞º«ó᡿Ѽ áßßѼí½Ñαá:
-
- 1. 鬽ετ¿ΓÑ ó ¿ßσ«ñ¡δσ Σá⌐½ CMACROS.INC. ¥Γ«Γ Σá⌐½
- ß«ñÑαª¿Γ ¼á¬α«¬«¼á¡ñδ ∩ºδ¬á óδß«¬«ú« πα«ó¡∩,
- «»αÑñѽ∩εΘ¿Ñ ßÑú¼Ñ¡Γδ, »α«úαá¼¼¡δÑ ¼«ñѽ¿, ¿¡ΓÑαΣÑ⌐ß ß
- Σπ¡¬µ¿∩¼¿ ¿ Γ¿»δ ñá¡¡δσ, ¡Ñ«íσ«ñ¿¼δÑ ñ½∩ ß«ºñá¡¿∩
- »α¿¬½áñ¡δσ »α«úαá¼¼ ñ½∩ Windows. ¥Γ¿ ¼á¬α«¬«¼á¡ñδ
- «»¿ßá¡δ ó« óΓ«α«¼ Γ«¼Ñ æ»αáó«τ¡«ú« απ¬«ó«ñßΓóá.
-
- 2. Ä»αÑñѽ¿ΓÑ ¼«ñѽ∞ »á¼∩Γ¿, πßΓá¡«ó¿ó ó Ññ¿¡¿µπ «ñ¿¡ ¿º
- ¬½ετÑ⌐ memS, memMm, memC ¿½¿ memL. ¥Γ«Γ ¬½ετ ñ«½ªÑ¡
- íδΓ∞ πßΓá¡«ó½Ñ¡ »ÑαÑñ «»ÑαáΓ«α«¼ ó¬½ετÑ¡¿∩ Σá⌐½á
- CMACROS.INC.
-
- 3. ôßΓá¡«ó¿ΓÑ ¬½ετ ?PLM αáó¡δ¼ 1, τΓ«íδ π¬áºáΓ∞, τΓ« ñ«½ª¡«
- ¿ß»«½∞º«óáΓ∞ß∩ ß«ú½áΦÑ¡¿Ñ »« ó맮óπ ∩ºδ¬á Pascal. ¥Γ«Γ
- ¬½ετ ñ«½ªÑ¡ íδΓ∞ πßΓá¡«ó½Ñ¡ »ÑαÑñ «»ÑαáΓ«α«¼ ó¬½ετÑ¡¿∩
- Σá⌐½á CMACROS.INC. æ«ú½áΦÑ¡¿Ñ »« ó맮óπ ∩ºδ¬á Pascal
- ΓαÑíπÑΓß∩ Γ«½∞¬« ñ½∩ Σπ¡¬µ¿⌐, ¬«Γ«αδÑ óδºδóáÑΓ Windows.
-
- 4. ôßΓá¡«ó¿ΓÑ ¬½ετ ?WIN αáó¡δ¼ 1, τΓ«íδ π¬áºáΓ∞, τΓ«
- ¡Ñ«íσ«ñ¿¼« ñ«íáó½∩Γ∞ ¬«ñ »α«½«úá ¿ φ»¿½«úá Windows.
- ¥Γ«Γ ¬½ετ ñ«½ªÑ¡ íδΓ∞ πßΓá¡«ó½Ñ¡ »ÑαÑñ «»ÑαáΓ«α«¼
- ó¬½ετÑ¡¿∩ Σá⌐½á CMACROS.INC. ¥Γ«Γ ¬½ετ ΓαÑíπÑΓß∩ Γ«½∞¬«
- ñ½∩ Σπ¡¬µ¿⌐ ¼¡«ú«¬αáΓ¡«ú« ó맮óá (¿½¿ ñ½∩
- φ¬ß»«αΓ¿απѼδσ Σπ¡¬µ¿⌐ ñ½∩ í¿í½¿«ΓѬ Windows).
-
- 5. 櫺ñá⌐ΓÑ Γ«τ¬π óσ«ñá ó óáΦπ »α«úαá¼¼π, WinMain, ¿
- πíÑñ¿ΓÑß∞, τΓ« «¡á «íΩ∩ó½Ñ¡á ¬á¬ PUBLIC. Ä¡á ñ«½ª¡δ
- ¿¼ÑΓ∞ ß½ÑñπεΘ¿⌐ ó¿ñ:
-
- cProc WinMain, <PUBLIC>, <si,di>
- parmW hInstance
- parmW hPrevInstance
- parmD lpCmdLine
- parmW nCmdShow
- cBegin WinMain
- .
- .
- .
- cEnd WinMain
-
- öπ¡¬µ¿∩ WinMain ñ«½ª¡á íδΓ∞ «»αÑñѽѡá ó¡πΓα¿
- ßΓá¡ñáαΓ¡«ú« ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá CODE.
-
- 6. ôíÑñ¿ΓÑß∞, τΓ« óáΦ¿ Σπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá
- «íΩ∩ó½Ñ¡δ ß½ÑñπεΘ¿¼ «íαẫ¼:
-
- cProc TestWndProc, <FAR,PUBLIC>, <si,di>
- parmW hWnd
- parmW message
- parmW wParam
- parmD lParam
-
- Windows 3.0/pg/2#3 = 167 =
-
- cBegin TestWndProc
- .
- .
- .
- cEnd TestWndProc
-
- öπ¡¬µ¿¿ ¼¡«ú«¬αáΓ¡«ú« ó맮óá ñ«½ª¡δ «»αÑñѽ∩Γ∞ß∩ ó
- ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ.
-
- 7. 欫¼»«¡π⌐ΓÑ óáΦπ »α«úαá¼¼π ó¼ÑßΓÑ ß ß««ΓóÑΓßΓóπεΘ¿¼¿
- í¿í½¿«ΓѬἿ Windows ñ½∩ æ ¿ ß í¿í½¿«ΓѬἿ ¿ß»«½¡∩εΘÑ⌐
- ß¿ßΓÑ¼δ æ. ä½∩ »αáó¿½∞¡«⌐ ¬«¼»«¡«ó¬¿ óδ ñ«½ª¡δ ó
- ¿ßσ«ñ¡δ⌐ Σá⌐½ ñ«íáó¿Γ∞ ó¡ÑΦ¡ÑÑ «»αÑñѽѡ¿Ñ ß¿¼ó«½á
- __acrtuses.
-
- Åα¿¼Ñτá¡¿Ñ: öπ¡¬µ¿¿ Windows αáºαπΦáεΓ ß«ñÑন¼«Ñ óßÑσ
- αÑú¿ßΓα«ó, ºá ¿ß¬½ετÑ¡¿Ñ¼ DI, SI, BP ¿ DS.
- 14.6.1 꺼ѡѡ¿Ñ ß«ßΓ«∩¡¿∩ Σ½áúá »αÑαδóá¡¿∩.
-
- è«úñá Windows αáí«ΓáÑΓ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ »α«µÑßß«αá
- 386, Γ« «¡á óδ»«½¡∩ÑΓß∩ ¡á πα«ó¡Ñ I/O Privilege Level 0
- (IOPL0). ìá φΓ«¼ πα«ó¡Ñ ¬«¼á¡ñδ POPF ¿ IRET ¡Ñ ¿º¼Ñ¡∩εΓ
- ß«ßΓ«∩¡¿Ñ Σ½áúá »αÑαδóá¡¿⌐. (äαπú¿Ñ Σ½áú¿ ß«σαá¡∩εΓß∩ ¿
- ó«ßßΓá¡áó½¿óáεΓß∩.) ¥Γ« «º¡áτáÑΓ, τΓ« »«ß½Ñ ºáóÑαΦÑ¡¿∩ ñá¡¡«ú«
- »α¿¼Ñαá »αÑαδóá¡¿∩ «ßΓá¡πΓß∩ ºá»αÑΘÑ¡δ:
-
- pushf;
- cli
- .
- .
- .
- popf; »αÑαδóá¡¿∩ «ßΓ὿ß∞ ºá»αÑΘÑ¡¡δ¼¿
-
- ìá IOPL0 ¿º¼Ñ¡¿Γ∞ ß«ßΓ«∩¡¿Ñ Σ½áúá ¼«ª¡« Γ«½∞¬« ß »«¼«Θ∞ε
- ¬«¼á¡ñ STI ¿ CLI. ÅÑαÑñ óδσ«ñ«¼ ¿º ¬α¿Γ¿τÑ߬«⌐ τáßΓ¿, ó ¬«Γ«α«⌐
- óδ ºá»αÑΓ¿½¿ »αÑαδóá¡¿∩, óδ ¡Ñ ¼«ªÑΓÑ »«½áúáΓ∞ß∩ ¡á Γ«, τΓ«
- ¬«¼á¡ñá POPF ó«ßßΓá¡«ó¿Γ ß«ßΓ«∩¡¿Ñ Σ½áúá »αÑαδóá¡¿⌐. é¼ÑßΓ«
- φΓ«ú« óδ ñ«½ª¡δ ∩ó¡« πßΓá¡«ó¿Γ∞ ß«ßΓ«∩¡¿Ñ Σ½áúá ó ß««ΓóÑΓßΓó¿¿
- ß ß«σαá¡Ñ¡¡δ¼ »αÑñδñπΘÑ⌐ ¬«¼á¡ñ«⌐ PUSHF ß«ßΓ«∩¡¿Ñ¼. 쿪Ñ
- »α¿ó«ñ¿Γß∩ »α¿¼Ñα Γ«ú«, ¬á¬ φΓ« ¼«ª¡« ßñѽáΓ∞:
-
- pushf; ¿½½εßΓα¿απÑΓ ñ«»πßΓ¿¼δ⌐ ¼ÑΓ«ñ
- cli
- .
- .
- .
- pop ax
- test ah,2
- jz SkipSTI
- sti
- SkipSTI:
- .
-
- Windows 3.0/pg/2#3 = 168 =
-
- .
- .
-
- àß½¿ óδ πßΓᡫ󿽿 ½«óπΦ¬π ¡á »αÑαδóá¡¿Ñ, ¬«Γ«αá∩ óδºδóáÑΓ
- ß½ÑñπεΘπε »α«úαá¼¼π «íαáí«Γ¬¿ »αÑαδóá¡¿∩ ó µÑ»«τ¬Ñ, óδ Γá¬ªÑ ¡Ñ
- ¼«ªÑΓÑ »«½áúáΓ∞ß∩ ¡á Γ«, τΓ« ¬«¼á¡ñá IRET ó«ßßΓá¡«ó¿Γ ß«ßΓ«∩¡¿Ñ
- Σ½áúá. ì¿ªÑ »α¿óÑñÑ¡ ¡Ñ»αáó¿½∞¡δ⌐ ¬«ñ:
-
- My_SW_Int_Hook; ¡ÑóÑα¡δ⌐ ¬«ñ
- sti;
- .
- .
- .
- pushf ; φ¼π½¿απÑΓ ó맮ó »αÑαδóá¡¿∩
- cli ; ¿ cli
- call [ß½ÑñπεΘπε »α«úαá¼¼π «íαáí«Γ¬¿ »αÑαδóá¡¿∩]
- ; ¬«¼á¡ñá IRET ß½ÑñπεΘÑ⌐ »α«úαá¼¼δ «íαáí«Γ¬¿
- ; »αÑαδóá¡¿∩ ¼«ªÑΓ ¡Ñ ó«ßßΓá¡«ó¿Γ∞ Σ½áú »αÑαδóá¡¿⌐, ¿
- ; «¡ «ßΓá¡ÑΓß∩ ßíα«ΦÑ¡¡δ¼ (»αÑαδóá¡¿∩ íπñπΓ
- ; ºá»αÑΘÑ¡δ).
- .
- .
- .
- iret
-
- ä½∩ ¿ß¬½ετÑ¡¿∩ Γᬫ⌐ 󫺼«ª¡«ßΓ¿ ¼«ª¡« »«¼ÑßΓ¿Γ∞ STI
- ßΓαáºπ ªÑ »«ß½Ñ ó맮óá ß½ÑñπεΘÑ⌐ »α«úαá¼¼δ «íαáí«Γ¬¿
- »αÑαδóá¡¿∩, τΓ«íδ αáºαÑΦ¿Γ∞ »αÑαδóá¡¿∩ ó ß½πτáÑ, Ñß½¿ ß½ÑñπεΘá∩
- ó µÑ»«τ¬Ñ »α«úαá¼¼á «íαáí«Γ¬¿ »αÑαδóá¡¿⌐ «ßΓáó¿Γ Σ½áú
- ßíα«ΦÑ¡¡δ¼. ì¿ªÑ »α¿ó«ñ¿Γß∩ »α¿¼Ñα, ¿½½εßΓα¿απεΘ¿⌐ »αáó¿½∞¡δ⌐
- ¼ÑΓ«ñ:
-
- My_SW_Int_Hook; ¡¿ªÑ óÑα¡«
- sti;
- .
- .
- .
- pushf ; φ¼π½¿απÑΓ ó맮ó »αÑαδóá¡¿∩
- cli ; ¿ cli
- call [ß½ÑñπεΘπε »α«úαá¼¼π «íαáí«Γ¬¿ »αÑαδóá¡¿∩]
- sti ; αáºαÑΦ¿Γ∞ »αÑαδóá¡¿∩, ñáªÑ Ñß½¿ ß½ÑñπεΘá∩ »α«ú-
- ; αá¼á «íαáí«Γ¬¿ »αÑαδóá¡¿∩ «ßΓáó¿½á Ñú« ßíα«ΦÑ¡¡δ¼.
- .
- .
- .
- iret
-
- 14.6.2 èᬠ¡á áßßѼí½ÑαÑ ¡á»¿ßáΓ∞ φ¬ß»«αΓ¿απѼπε Σπ¡¬µ¿ε.
-
- è«úñá óδ »¿ΦÑΓÑ ¡á áßßѼí½ÑαÑ φ¬ß»«αΓ¿απѼπε Σπ¡¬µ¿ε, ¡Ñ
- ¡áñ« ¡áτ¿¡áΓ∞ ÑÑ ß:
-
- mov ax,xxxx
-
- Windows 3.0/pg/2#3 = 169 =
-
-
- é ñá¡¡«¼ »α¿¼ÑαÑ xxxx «í«º¡áτáÑΓ ¬«¡ßΓá¡Γπ.
-
- ¥Γ«Γ ¬«ñ ó ¡áτá½Ñ φ¬ß»«αΓ¿απѼ«⌐ Σπ¡¬µ¿¿ ¿ñÑ¡Γ¿τÑ¡ ¡áτá½π
- ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá í¿í½¿«ΓѬ¿, ¬«Γ«αδ⌐ Windows »«¼ÑΘáÑΓ ó
- αáßΦ¿αÑ¡¡πε »á¼∩Γ∞ »α¿ αáí«ΓÑ ó αÑá½∞¡«¼ αѪ¿¼Ñ. è«úñá Windows
- »δΓáÑΓß∩ »ÑαѺáúαπº¿Γ∞ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ, «¡á »«ñαáºπ¼ÑóáÑΓ τΓ«
- ¬«¡ßΓá¡Γá ß«ñÑαª¿Γ áñαÑß ßÑú¼Ñ¡Γá ñá¡¡δσ í¿í½¿«ΓѬ¿ ¿ Σ¿¬ß¿απÑΓ
- φΓ« º¡áτÑ¡¿Ñ ó ¬áτÑßΓóÑ ¡«ó«ú« áñαÑßá ßÑú¼Ñ¡Γá ñá¡¡δσ
- í¿í½¿«ΓѬ¿.
-
- ùΓ«íδ ¿ß¬½ετ¿Γ∞ Γá¬πε ß¿Γπᵿε, »α«ßΓ« »«ßΓáóΓÑ »ÑαÑñ
- ¬«¼á¡ñ«⌐ MOV ¬«¼á¡ñπ NOP, ¬á¬ »«¬áºá¡« ¡¿ªÑ:
-
- nop
- mov ax,xxxx
- 14.6.3 êß»«½∞º«óá¡¿Ñ αÑú¿ßΓαá ES.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ αÑú¿ßΓαá ES ó »α«úαá¼¼áσ ¡á ∩ºδ¬Ñ
- áßßѼí½Ñαá ¡Ñ«íσ«ñ¿¼« »α«∩ó½∩Γ∞ «ß«íπε «ßë᫪¡«ßΓ∞. é
- ¡Ñ¬«Γ«αδσ πß½«ó¿∩σ, Ñß½¿ ñá¡¡δ⌐ αÑú¿ßΓα ß«ñÑαª¿Γ π¬áºáΓѽ∞
- ßíα«ΦÑ¡¡δ⌐ «íΩѬΓ, Γ« φΓ« ¼«ªÑΓ óδºóáΓ∞ ¡ÑπßΓαá¡¿¼πε «Φ¿í¬π
- ºáΘ¿Γδ »á¼∩Γ¿ (general-protection failure GP) »α¿ αáí«ΓÑ ó
- ßΓá¡ñáαΓ¡«¼ αѪ¿¼Ñ ¿½¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ 386 »α«µÑßß«αá. Åα¿
- ¡Ñ¬«Γ«α«¼ αÑñ¬«¼ ßΓÑτÑ¡¿¿ «íßΓ«∩Γѽ∞ßΓó φΓ« ¼«ªÑΓ »α¿óÑßΓ¿ ¬
- Γ«¼π, τΓ« Windows ó«⌐ñÑΓ ó íÑ߬«¡Ñτ¡δ⌐ µ¿¬½.
-
- ÄΦ¿í¬á GP 󫺡¿¬áÑΓ, ¬«úñá »α«úαá¼¼á óδ¡¿¼áÑΓ ¿º ßΓѬá
- º¡áτÑ¡¿Ñ ó ES ¿ φΓ« º¡áτÑ¡¿Ñ ßßδ½áÑΓß∩ ¡á ßÑú¼Ñ¡Γ, ¬«Γ«αδ⌐ íδ½
- ßíα«ΦÑ¡.
-
- ìá»α¿¼Ñα, ó ß½ÑñπεΘѼ »α¿¼ÑαÑ ES ßßδ½áÑΓß∩ ¡á ñ¿¡á¼¿τÑ߬¿
- óδñѽѡ¡δ⌐ ó ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿ «íΩѬΓ. Äßó«í«ªñÑ¡¿Ñ
- «íΩѬΓá, ¬«úñá Ñú« ßÑ½Ñ¬Γ«α óαѼѡ¡« »«¼ÑΘáÑΓß∩ ó ßΓѬ,
- »α¿ó«ñ¿Γ ¬ Γ«¼π, τΓ« «¡ ßΓá¡«ó¿Γß∩ ¡ÑóÑα¡δ¼:
-
- push es
- .
- .
- .
- cCall GlobalFree <es>
- .
- .
- .
- pop es
-
- éáΦá »α«úαá¼¼á ¡Ñ ñ«½ª¡á ∩ó¡« ßíαáßδóáΓ∞ ßÑú¼Ñ¡Γ.
- æ½ÑñπεΘ¿⌐ »α¿¼Ñα »«¬áºδóáÑΓ, ¬á¬ φΓ« ¼«ªÑΓ íδΓ∞ ßñѽᡫ ¡Ñ∩ó¡«:
-
- push es; ES «»αÑñѽ∩ÑΓ ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ
- .
- .
-
- Windows 3.0/pg/2#3 = 170 =
-
- .
- call far Proc1 ; Proc1 ∩ó¡« ¿½¿ ¡Ñ∩ó¡« ßíαáßδóáÑΓ «íΩѬΓ,
- ; «»αÑñѽ∩Ѽδ⌐ ES
- .
- .
- .
- pop es
-
- Windows «íαáíáΓδóáÑΓ «Φ¿í¬¿ ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá ó
- ßΓá¡ñáαΓ¡«¼ ¿ ó αáßΦ¿αÑ¡¡«¼ αѪ¿¼Ñ 386 »α«µÑßß«αá. Äñ¡á¬« «¡á
- ¡Ñ «íαáíáΓδóáÑΓ «Φ¿í«¬ ßÑú¼Ñ¡Γ«ó ñá¡¡δσ, »«φΓ«¼π «íá »α¿¼Ñαá
- »α¿óÑñπΓ ¬ 󫺡¿¬¡«óÑ¡¿ε «Φ¿í¬¿ GP.
-
- æ¿Γπᵿ∩, ¬«Γ«αá∩ ¼«ªÑΓ »α¿óÑßΓ¿ ¬ Γ«¼π, τΓ« Windows
- ó«⌐ñÑΓ ó íÑ߬«¡Ñτ¡δ⌐ µ¿¬½, 󫺡¿¬áÑΓ, Ñß½¿ ES ß«ñÑনΓ
- π¬áºáΓѽ∞ ¡á ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ. é Γᬿσ ß½πτá∩ó óδ ñ«½ª¡δ
- «τ¿ßΓ¿Γ∞ Ñú«, »ÑαÑñ ΓѼ, ¬á¬ ß«óÑαΦáΓ∞ ó맮ó «ñ¡«ú«
- ßíαáßδóáѼ«ú« ßÑú¼Ñ¡Γá ¿º ñαπú«ú«.
-
- ì¿ªÑ »«¬áΘá¡«, ¬á¬ φΓ« ßñѽáΓ∞:
-
- mov es, _CODESEG1 ; ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ
- .
- .
- .
- xor ax, ax ; é ñá¡¡«¼ »α¿¼ÑαÑ ES «τ¿ΘáÑΓß∩ »ÑαÑñ
- mov es, ax ; «ßπΘÑßΓó½Ñ¡¿Ñ¼ ó맮óá ßíαáßδóáѼ«ú«
- call far Proc1 ; ßÑú¼ÑΓá ¿º ßíαáßδóáѼ«ú« ßÑú¼Ñ¡Γá
-
- àß½¿ ó Γᬫ⌐ ß¿Γπᵿ¿ óδ ¡Ñ «τ¿ßΓ¿ΓÑ ES, Γ« »α«úαá¼¼á
- π»αáó½Ñ¡¿∩ ßÑú¼Ñ¡ΓἿ Windows ó«⌐ñÑΓ ó íÑ߬«¡Ñτ¡δ⌐ µ¿¬½,
- ßíαáßδóá∩ ¿ ºáúαπªá∩ Γα¿ ßíαáßδóáѼδσ ¬«ñ«óδσ ßÑú¼Ñ¡Γá, ó
- ß½πτáÑ ¡áñ«ßΓáΓ¬á »á¼∩Γ¿. é« óαѼ∩ φΓ«ú« »α«µÑßßá ES íπñÑΓ
- »«¼ÑΘáΓ∞ß∩ ¿ óδ¡¿¼áΓ∞ß∩ ¿º ßΓѬá, τΓ« íπñÑΓ »α¿ó«ñ¿Γ∞ ¬
- íѺ߼δ߽ѡ¡«⌐ »ÑαѺáúαπº¬Ñ ßÑú¼Ñ¡Γá CODESEG1, ¬«úñá ¿¼ÑÑΓß∩
- ¼ÑßΓ« Γ«½∞¬« ñ½∩ ñóπσ ñαπú¿σ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
- 14.7 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «íßπªñὫß∞, ¬á¬ »¿ßáΓ∞ »α¿¬½áñ¡δÑ
- »α«úαá¼¼δ ñ½∩ Windows ¿ß»«½∞ºπ∩ æ ¿ ∩ºδ¬ áßßѼí½Ñαá. Æá¬ªÑ
- «»¿ßδóáÑΓß∩, ¬á¬ óδí¿αáΓ∞ ¼«ñѽ∞ »á¼∩Γ¿, ¿ß»«½∞º«óáΓ∞ ó
- »α«úαá¼¼Ñ ¬«¡ßΓá¡Γπ NULL ¿ ¬á¬ »«½πτ¿Γ∞ ó »α«úαá¼¼Ñ áαúπ¼Ñ¡Γδ
- ¬«¼á¡ñ¡«⌐ ßΓ᫬¿ DOS ¿ º¡áτÑ¡¿∩ »ÑαѼѡ¡δσ ßαÑñδ DOS. èα«¼Ñ
- φΓ«ú«, ó ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ »¿ßáΓ∞ φ¬ß»«αΓ¿απѼδÑ
- Σπ¡¬µ¿¿, ¿ »α¿óÑñÑ¡δ ߻ѵ¿á½∞¡δÑ »αáó¿½á, ¬«Γ«αδÑ »«¼«úáεΓ
- »¿ßáΓ∞ »α«úαá¼¼δ ß ¿ß»«½∞º«ó᡿Ѽ »α«úαá¼¼ ¿º í¿í½¿«ΓѬ
- ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ ¿ »α«úαá¼¼ ¡á áßßѼí½ÑαÑ.
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« ß«ºñá¡¿∩ »α¿¬½áñ¡δσ
- »α«úαá¼¼ Windows ¡á æ ¿ áßßѼí½ÑαÑ óδ ¡á⌐ñÑΓÑ ó:
-
-
- Windows 3.0/pg/2#3 = 171 =
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- ô»αá½Ñ¡¿Ñ »á¼∩Γ∞ε Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 15, "ô»αáó-
- ½Ñ¡¿Ñ »á¼∩Γ∞ε", ¿ ú½áóá 16, "àΘÑ «í π»αáó-
- ½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- 櫺ñá¡¿Ñ ñ¿¡á¼¿τÑ߬¿ Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 20, "ä¿¡á-
- »«ñ¬½ετáѼδσ í¿í½¿«- ¼¿τÑ߬¿ »«ñ¬½ετáѼδÑ í¿í½¿«ΓѬ¿".
- ⥪
-
- îá¬α«¬«¼á¡ñδ áßßѼí- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2, ú½áóá 14,
- ½Ñαá ñ½∩ Windows "滿߫¬ ¼á¬α«¬«¼á¡ñ áßßѼí½Ñαá", ¿ ú½áóá
- 13, "Äíº«α ¼á¬α«¬«¼á¡ñ áßßѼí½Ñαá".
-
- 諼»¿½∩µ¿∩ ¿ ¬«¼»«- "Tools", ú½áóá 1, "諼»¿½∩µ¿∩ »α¿¬½áñ¡δσ
- ¡«ó¬á »α«úαá¼¼ »α«úαá¼¼: ¬«¼»¿½∩Γ«α æ", ¿ ú½áóá 2, "諼-
- »«¡«ó¬á »α¿¬½áñ¡δσ »α«úαá¼¼: ¬«¼»«¡«óΘ¿¬".
-
-
-
-
- Windows 3.0/pg/2#3 = 172 =
-
-
- â½áóá 15. ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε.
- ----------------------------------------------------------------
- éßÑ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ñ½∩ αáí«Γδ ñ«½ª¡δ ¿ß»«½∞º«óáΓ∞
- »á¼∩Γ∞. ū߬«½∞¬π Microsoft Windows - ¼¡«ú«ºáñáτ¡á∩ ßαÑñá, Γ« ó
- ¡Ñ⌐ ¡Ñ߬«½∞¬« »α¿¬½áñ¡δσ »α«úαá¼¼ ¼«úπΓ «ñ¡«óαѼѡ¡«
- ¿ß»«½∞º«óáΓ∞ »á¼∩Γ∞. Windows π»αáó½∩ÑΓ ¿ß»«½∞º«ó᡿Ѽ »á¼∩Γ¿
- ñ½∩ Γ«ú«, τΓ«íδ ñáΓ∞ 󫺼«ª¡«ßΓ∞ óßѼ »α¿¬½áñ¡δ¼ »α«úαá¼¼á¼
- ¿ß»«½∞º«óáΓ∞ ÑÑ, á Γá¬ªÑ ñ½∩ Γ«ú«, τΓ«íδ ßñѽáΓ∞ φΓ«
- ¿ß»«½∞º«óá¡¿Ñ ¡á¿í«½ÑÑ φΣΣÑ¬Γ¿ó¡δ¼.
-
- é ñá¡¡«⌐ ú½áóÑ ñáÑΓß∩ ¬«α«Γ¬«Ñ óóÑñÑ¡¿Ñ ó ß¿ßΓѼπ
- π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows.
-
- Åα¿ó«ñ¿Γß∩ ß½ÑñπεΘá∩ ¿¡Σ«α¼áµ¿∩:
-
- - êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó ßαÑñÑ Windows.
-
- - ¥ΣΣÑ¬Γ¿ó¡«Ñ ¿ß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ«ó ß ¬«ñ«¼ ¿ ñá¡¡δ¼¿.
-
- èα«¼Ñ φΓ«ú«, ó ñá¡¡«⌐ ú½áóÑ »α¿ó«ñ¿Γß∩ «»¿ßá¡¿Ñ »α«ßΓ«⌐
- »α«úαá¼¼δ MEMORY, ¬«Γ«αá∩ ¿½½εßΓα¿απÑΓ ¿ß»«½∞º«óá¡¿Ñ »á¼∩Γ¿
- Windows.
- 15.1 êß»«½∞º«óá¡¿Ñ »á¼∩Γ¿.
-
- æ¿ßΓѼá π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε Windows »«ºó«½∩ÑΓ «Γó«ñ¿Γ∞
- í½«¬¿ »á¼∩Γ¿ ñ½∩ ¿σ ¿ß»«½∞º«óá¡¿∩ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. ü½«¬¿
- »á¼∩Γ¿ ¼«ª¡« «Γó«ñ¿Γ∞ ¿º ú½«íá½∞¡«⌐ ¿½¿ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ »á¼∩Γ¿. ⽫íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ - φΓ«
- »π½ ßó«í«ñ¡«⌐ »á¼∩Γ¿, ñ«ßΓπ»¡δ⌐ ñ½∩ óßÑσ »α¿¬½áñ¡δσ »α«úαá¼¼.
- 﫬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ - φΓ« »π½ ßó«í«ñ¡«⌐
- »á¼∩Γ¿, ñ«ßΓπ»¡δ⌐ Γ«½∞¬« ñá¡¡«⌐ »α«úαá¼¼Ñ. Windows ΓᬪÑ
- π»αáó½∩ÑΓ ßÑú¼Ñ¡ΓἿ ¬«ñá ¿ ßÑú¼Ñ¡ΓἿ ñá¡¡δσ óáΦÑ⌐ »α«úαá¼¼δ.
-
- é ¡Ñ¬«Γ«αδσ ß¿ßΓѼáσ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε «ΓóÑñÑ¡¡á∩ »á¼∩Γ∞
- «ßΓáÑΓß∩ Σ¿¬ß¿α«óá¡¡«⌐ ó «»αÑñѽѡ¡«¼ ¼ÑßΓÑ ñ« ΓÑσ »«α, »«¬á ¡Ñ
- íπñÑΓ «ßó«í«ªñÑ¡á. é Windows «Γó«ñ¿¼á∩ »á¼∩Γ∞ ¼«ªÑΓ íδΓ∞
- »ÑαѼÑΘáѼ«⌐, ßíαáßδóáѼ«⌐, á Γá¬ªÑ Σ¿¬ß¿α«óá¡¡«⌐. ü½«¬
- »ÑαѼÑΘáѼ«⌐ »á¼∩Γ¿ ¡Ñ ¿¼ÑÑΓ Σ¿¬ß¿α«óá¡¡«ú« áñαÑßá; Windows
- ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ Ñú« ó ½εí«⌐ ¼«¼Ñ¡Γ »« ¡«ó«¼π áñαÑßπ. ü½«¬¿
- »ÑαѼÑΘáѼ«⌐ »á¼∩Γ¿ ñáεΓ ó«º¼«ª¡«ßΓ∞ Windows ½πτΦÑ ¿ß»«½∞º«óáΓ∞
- ßó«í«ñ¡πε »á¼∩Γ∞. ìá»α¿¼Ñα, Ñß½¿ »ÑαѼÑΘáѼδ⌐ í½«¬ »á¼∩Γ¿
- αáºñѽ∩ÑΓ ñóá ßó«í«ñ¡δσ í½«¬á »á¼∩Γ¿, Windows ¼«ªÑΓ »ÑαÑñó¿¡πΓ∞
- Ñú« ¡á ¡«ó«Ñ ¼ÑßΓ«, τΓ«íδ «íΩÑñ¿¡¿Γ∞ ñóá ßó«í«ñ¡δσ í½«¬á ó «ñ¿¡
- ¡Ñ»αÑαδó¡δ⌐. ü½«¬ ßíαáßδóáѼ«⌐ »á¼∩Γ¿ á¡á½«ú¿τÑ¡ »ÑαѼÑΘáѼ«⌐
- »á¼∩Γ¿ ó Γ«¼, τΓ« Windows ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ Ñú«. èα«¼Ñ Γ«ú«,
- Ñú« ¼«ª¡« »«óΓ«α¡« óδñѽ¿Γ∞ ß ¡π½Ñó«⌐ ñ½¿¡«⌐, Ñß½¿ ¡Ñ«íσ«ñ¿¼«
- ¼ÑßΓ« ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá ¡á «ΓóÑñÑ¡¿Ñ »á¼∩Γ¿. Å«óΓ«α¡«Ñ
- óδñѽѡ¿Ñ í½«¬á »á¼∩Γ¿ ß ¡π½Ñó«⌐ ñ½¿¡«⌐ αáºαπΦáÑΓ ñá¡¡δÑ,
- ¬«Γ«αδÑ ß«ñÑαª¿Γ í½«¬, ¡« »α¿¬½áñ¡á∩ »α«úαá¼¼á óßÑúñá ¿¼ÑÑΓ
- 󫺼«ª¡«ßΓ∞ »«óΓ«α¡« ºáúαπº¿Γ∞ ßíα«ΦÑ¡¡δÑ ñá¡¡δÑ »α¿
- ¡Ñ«íσ«ñ¿¼«ßΓ¿.
-
-
- Windows 3.0/pg/2#3 = 173 =
-
- Åα¿ «ΓóÑñÑ¡¿¿ í½«¬á »á¼∩Γ¿ óδñáÑΓß∩ ñÑß¬α¿»Γ«α φΓ«ú«
- í½«¬á, á ¡Ñ π¬áºáΓѽ∞. äÑß¬α¿»Γ«α »á¼∩Γ¿ ¿ñÑ¡Γ¿Σ¿µ¿απÑΓ
- «ΓóÑñÑ¡¡δ⌐ í½«¬. Ä¡ ¿ß»«½∞ºπÑΓß∩ ñ½∩ »«½πτÑ¡¿∩ ΓѬπΘÑú« áñαÑßá
- í½«¬á, ¬«úñá ¡Ñ«íσ«ñ¿¼« ¿¼ÑΓ∞ ñ«ßΓπ» ¬ »á¼∩Γ¿.
-
- ä½∩ ñ«ßΓπ»á ¬ í½«¬π »á¼∩Γ¿ ¡Ñ«íσ«ñ¿¼« ºáí½«¬¿α«óáΓ∞
- ñÑß¬α¿»Γ«α »á¼∩Γ¿. Åα¿ φΓ«¼ í½«¬ »á¼∩Γ¿ óαѼѡ¡« Σ¿¬ß¿απÑΓß∩ ¿
- ó«ºóαáΘáÑΓß∩ π¬áºáΓѽ∞ ¡á Ñú« ¡áτὫ. Å«¬á ñÑß¬α¿»Γ«α »á¼∩Γ¿
- ºáí½«¬¿α«óá¡, Windows ¡Ñ ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ ¿½¿ ßíα«ß¿Γ∞ í½«¬.
- æ½Ññ«óáΓѽ∞¡«, »«ß½Ñ «¬«¡τá¡¿∩ ¿ß»«½∞º«óá¡¿∩ í½«¬á ¡Ñ«íσ«ñ¿¼«
- ßαáºπ ªÑ αáºí½«¬¿α«óáΓ∞ ñÑß¬α¿»Γ«α. æ«σαá¡Ñ¡¿Ñ ñÑß¬α¿»Γ«αá
- »á¼∩Γ¿ ºáí½«¬¿α«óá¡¡δ¼ »α¿ó«ñ¿Γ ¬ »«ΓÑαÑ φΣΣÑ¬Γ¿ó¡«ßΓ¿ αáí«Γδ
- ß¿ßΓѼδ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε ¿ ¼«ªÑΓ óδºóáΓ∞ ßí«⌐ »α¿ »«ß½ÑñπεΘ¿σ
- ºá»α«ßáσ ¡á óδñѽѡ¿Ñ »á¼∩Γ¿.
-
- Windows »«ºó«½∩ÑΓ í«½ÑÑ ¬«¼»á¬Γ¡« ¿ß»«½∞º«óáΓ∞ »á¼∩Γ∞.
- ÄíΩÑñ¿¡∩∩ ßó«í«ñ¡δÑ πτáßΓ¬¿ »á¼∩Γ¿ ¼Ñªñπ «ΓóÑñÑ¡¡δ¼¿ í½«¬á¼¿
- Windows Σ«α¼¿απÑΓ ¡Ñ»αÑαδó¡δ⌐ í½«¬ ßó«í«ñ¡«⌐ »á¼∩Γ¿, ¿º
- ¬«Γ«α«ú« ¼«úπΓ íδΓ∞ «ΓóÑñÑ¡δ ñ«»«½¡¿Γѽ∞¡δÑ í½«¬¿ »á¼∩Γ¿. ¥Γ«
- «íΩÑñ¿¡Ñ¡¿Ñ ∩ó½∩ÑΓß∩ αѺπ½∞ΓáΓ«¼ »ÑαѼÑΘÑ¡¿∩ ¿ (Ñß½¿
- ¡Ñ«íσ«ñ¿¼«) ßíα«ßá í½«¬«ó »á¼∩Γ¿. Windows Γá¬ªÑ »«ºó«½∩ÑΓ
- ßíα«ß¿Γ∞ «Γñѽ∞¡δÑ í½«¬¿ »á¼∩Γ¿, Ñß½¿ óαѼѡ¡« ó ¡¿σ ¡ÑΓ ¡πªñδ.
- 15.1.1 êß»«½∞º«óá¡¿Ñ ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- ⽫íá½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ »á¼∩Γ¿ ß«ñÑαª¿Γ óßε »á¼∩Γ∞
- ßαÑñδ. Åα¿ ºá»π᪥ Windows «Γó«ñ¿Γ »á¼∩Γ∞, ¡Ñ«íσ«ñ¿¼πε ñ½∩
- »α«úαá¼¼ ¿ ñá¡¡δσ, ¿º φΓ«⌐ «í½áßΓ¿. ÄßΓáεΘá∩ß∩ ßó«í«ñ¡á∩ »á¼∩Γ∞
- ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ñ«ßΓπ»¡á »α¿¬½áñ¡δ¼
- »α«úαἼἠ¿ í¿í½¿«ΓѬἠWindows.
-
- Åਪ½áñ¡δÑ »α«úαá¼¼δ «íδτ¡« ¿ß»«½∞ºπεΓ ú½«íá½∞¡πε
- ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞ »á¼∩Γ¿ ñ½∩ óδñѽѡ¿∩ í«½∞Φ¿σ í½«¬«ó
- (í«½∞ΦÑ ¬¿½«íá⌐Γá). ò«Γ∩ ó ú½«íá½∞¡«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¼«ª¡«
- óδñѽ∩Γ∞ í«½∞ΦÑ »á¼∩Γ¿, «ñ¡á¬« ÑßΓ∞ «ñ¡« ¡Ñπñ«íßΓó«: »«ß¬«½∞¬π
- »α«ΘÑ αáí«ΓáΓ∞ ß ñá¡¡δ¼¿ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿
- »á¼∩Γ¿, τѼ ß ú½«íá½∞¡«⌐ »á¼∩Γ∞ε, Γ« »α«úαá¼¼Ñ πñ«í¡ÑÑ
- »«½∞º«óáΓ∞ß∩ ½«¬á½∞¡δ¼¿ ñá¡¡δ¼¿.
-
- êº ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿ ¼«ª¡« »«½πτ¿Γ∞
- í½«¬ »á¼∩Γ¿ ½εí«ú« αẼÑαá. Åα«úαá¼¼á «íδτ¡« «Γó«ñ¿Γ »á¼∩Γ∞
- í«½∞Φ¿¼¿ í½«¬á¼¿. ¥Γ¿ í½«¬¿ ¼«úπΓ »αÑóδΦáΓ∞ 64 è, Ñß½¿
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ¡Ñ«íσ«ñ¿¼ í«½∞Φ«⌐ ¡Ñ»αÑαδó¡δ⌐ «íΩѼ
- »á¼∩Γ¿. Windows »αÑñ«ßΓáó½∩ÑΓ ß»Ñµ¿á½∞¡δÑ ßαÑñßΓóá ñ½∩ ñ«ßΓπ»á
- ¬ ñá¡¡δ¼ ñá½ÑÑ 64K. êσ ¿ß»«½∞º«óá¡¿Ñ «»¿ßá¡« ó ú½áóÑ 16, "àΘÑ
- «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- ¡« «ΓóÑßΓ¿ í½«¬ ú½«íá½∞¡«⌐ »á¼∩Γ¿, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- GlobalAlloc. ìÑ«íσ«ñ¿¼« π¬áºáΓ∞ αẼÑα ¿ Γ¿» »á¼∩Γ¿
- (Σ¿¬ß¿α«óá¡¡á∩, »ÑαѼÑΘáѼá∩ ¿½¿ ßíαáßδóáѼá∩) ¿ Σπ¡¬µ¿∩
- GlobalAlloc ó«ºóαáΓ¿Γ ñÑß¬α¿»Γ«α í½«¬á. ÅÑαÑñ ¿ß»«½∞º«ó᡿Ѽ
- í½«¬á »á¼∩Γ¿ ¡Ñ«íσ«ñ¿¼« ºáí½«¬¿α«óáΓ∞ Ñú« ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- GlobalLock, ¬«Γ«αá∩ ó«ºóαáΓ¿Γ »«½¡δ⌐ 32-í¿Γ«óδ⌐ áñαÑß »Ñαó«ú«
-
- Windows 3.0/pg/2#3 = 174 =
-
- íá⌐Γá í½«¬á »á¼∩Γ¿. çáΓѼ ¼«ª¡« ¿ß»«½∞º«óáΓ∞ φëà ñ½¿¡¡δ⌐
- π¬áºáΓѽ∞ ñ½∩ ñ«ßΓπ»á ¬ í½«¬π.
-
- é »α¿óÑñÑ¡¡«¼ »α¿¼ÑαÑ Σπ¡¬µ¿∩ GlobalAlloc «Γó«ñ¿Γ 4096
- íá⌐Γ »ÑαѼÑΘáѼ«⌐ »á¼∩Γ¿, á Σπ¡¬µ¿∩ GlobalLock í½«¬¿απÑΓ ÑÑ,
- ΓᬠτΓ« »ÑαóδÑ 256 íá⌐Γ ¼«úπΓ íδΓ∞ πßΓá¡«ó½Ñ¡δ ó º¡áτÑ¡¿Ñ 0xFF:
-
- HANDLE hMem;
- LPSTR lpMem;
- int i;
-
- if ((hMem = GlobalAlloc(GMEM_MOVEABLE, 4096)) != NULL){
- if ((lpMem = GlobalLock(hMem)) != (LPSTR) NULL) {
- for (i = 0; i < 256; i++)
- lpMem[i] = 0xFF;
- GlobalUnlock(hMem);
- }
- }
-
- é ñá¡¡«¼ »α¿¼ÑαÑ »α«úαá¼¼á αáºí½«¬¿απÑΓ ñÑß¬α¿»Γ«α »á¼∩Γ¿
- ßαáºπ ªÑ »«ß½Ñ ÑÑ ¿ß»«½∞º«óá¡¿∩ »α¿ »«¼«Θ¿ Σπ¡¬µ¿¿
- GlobalUnlock. Åα¿ í½«¬¿α«óá¡¿¿ »ÑαѼÑΘáѼ«⌐ ¿½¿ ßíαáßδóáѼ«⌐
- »á¼∩Γ¿ Windows úáαá¡Γ¿απÑΓ, τΓ« í½«¬ «ßΓáÑΓß∩ Σ¿¬ß¿α«óá¡¡δ¼ ó
- »á¼∩Γ¿ ñ« αáºí½«¬¿α«óá¡¿∩. ¥Γ« «º¡áτáÑΓ, τΓ« »«¬á »á¼∩Γ∞
- ºáí½«¬¿α«óá¡á, áñαÑß «ßΓáÑΓß∩ ¬«ααÑ¬Γ¡δ¼. æ½ÑñπÑΓ πτÑßΓ∞, τΓ«
- »α¿ Γᬫ¼ ß»«ß«íÑ ¡á½áúáεΓß∩ «úαá¡¿τÑ¡¿∩ ¡á ½πτΦÑÑ
- ¿ß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó ß½πτáÑ ñαπú¿σ ºá»α«ß«ó ¡á ÑÑ óδñѽѡ¿Ñ.
-
- öπ¡¬µ¿∩ GlobalAlloc ó«ºóαáΘáÑΓ NULL, Ñß½¿ ºá»α«ß ¡á »á¼∩Γ∞
- ¡Ñ óδ»«½¡Ñ¡. ìÑ«íσ«ñ¿¼« óßÑúñá ¬«¡Γα«½¿α«óáΓ∞ ó«ºóαáΘáѼ«Ñ
- º¡áτÑ¡¿Ñ ñ½∩ πóÑαÑ¡¡«ßΓ¿ ó Γ«¼ τΓ« ¬«ααÑ¬Γ¡δ⌐ ñÑß¬α¿»Γ«α
- ßπΘÑßΓóπÑΓ. Åα¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¼«ª¡« »α«óÑα¿Γ∞, ߬«½∞¬« »á¼∩Γ¿
- «ßΓὫß∞ ó ú½«íá½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- GlobalCompact. ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ ó ¡á¿í«½∞ΦѼ
- ¡Ñ»αÑαδó¡«¼ ßó«í«ñ¡«¼ í½«¬Ñ »á¼∩Γ¿.
-
- ìÑ«íσ«ñ¿¼« Γá¬ªÑ »α«óÑα¿Γ∞ áñαÑß, ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐
- GlobalLock. ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡π½Ñó«⌐ π¬áºáΓѽ∞, Ñß½¿
- ñÑß¬α¿»Γ«α »á¼∩Γ¿ ¡Ñ¬«ααѬΓÑ¡, ¿½¿ ß«ñÑন¼«Ñ í½«¬á »á¼∩Γ¿
- ßíα«ΦÑ¡«.
-
- ¡« «ßó«í«ñ¿Γ∞ ¡Ñ¡πª¡πε í«½∞ΦÑ ú½«íá½∞¡πε »á¼∩Γ∞,
- ¿ß»«½∞º«óáó Σπ¡¬µ¿ε GlobalFree. é««íΘÑ ú«ó«α∩, ¡Ñ«íσ«ñ¿¼«
- «ßó«í«ªñáΓ∞ »á¼∩Γ∞ ßαáºπ ªÑ, ¬á¬ Γ«½∞¬« «¡á ßΓá¡«ó¿Γß∩ í«½∞ΦÑ
- ¡Ñ ¡πª¡á, ß ΓѼ τΓ«íδ ñαπú¿Ñ »α¿¬½áñ¡δÑ »α«úαá¼¼δ ¼«ú½¿ ÑÑ
- ¿ß»«½∞º«óáΓ∞. éδ ñ«½ª¡δ óßÑúñá «ßó«í«ªñáΓ∞ ú½«íá½∞¡πε »á¼∩Γ∞
- »ÑαÑñ ºáóÑαΦÑ¡¿Ñ¼ óδ»«½¡Ñ¡¿∩ »α«úαá¼¼δ.
- 15.1.2 êß»«½∞º«óá¡¿Ñ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿.
-
- 﫬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ß«ñÑαª¿Γ ßó«í«ñ¡πε »á¼∩Γ∞,
- ¬«Γ«αá∩ ¼«ªÑΓ íδΓ∞ «ΓóÑñÑ¡á »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ñ½∩
- ß«íßΓóÑ¡¡δσ ¡πªñ. 﫬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ¡áσ«ñ¿Γß∩ ó
-
- Windows 3.0/pg/2#3 = 175 =
-
- ßÑú¼Ñ¡ΓÑ ñá¡¡δσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿, ß½Ññ«óáΓѽ∞¡«, ñ«ßΓπ»¡á
- Γ«½∞¬« «»αÑñѽѡ¡«¼π φ¬ºÑ¼»½∩απ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. êº
- ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ¼«ª¡« »«½πτáΓ∞ »á¼∩Γ∞ í½«¬á¼¿ ñ«
- 64 è (»á¼∩Γ∞ ¼«ªÑΓ íδΓ∞ »« ºá»α«ßπ Σ¿¬ß¿α«óá¡¡«⌐, »ÑαѼÑΘáѼ«⌐
- ¿½¿ ßíαáßδóáѼ«⌐).
-
- Åਪ½áñ¡á∩ »α«úαá¼¼á ¡Ñ »«½πτáÑΓ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐
- «í½áßΓ¿ áóΓ«¼áΓ¿τÑ߬¿. àÑ ¡Ñ«íσ«ñ¿¼« «»αÑñѽ¿Γ∞ ñ½∩ ñá¡¡«⌐
- »α«úαá¼¼δ, ¿ß»«½∞ºπ∩ «»ÑαáΓ«α HEAPSIZE ó Σá⌐½Ñ «»αÑñѽѡ¿∩
- ¼«ñπ½∩. ¥Γ«Γ «»ÑαáΓ«α πßΓá¡áó½¿óáÑΓ »Ñαó«¡áτá½∞¡δ⌐ αẼÑα ó
- íá⌐Γáσ ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿. (Ä»¿ßá¡¿Ñ «»ÑαáΓ«α«ó
- Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ óδ ¡á⌐ñÑΓÑ ó æ»αáó«τ¡«¼ απ¬«ó«ñßΓóÑ,
- Γ«¼ 2). àß½¿ φΓá «í½áßΓ∞ αáß»«½«ªÑ¡á ó Σ¿¬ß¿α«óá¡¡«¼ ßÑú¼Ñ¡ΓÑ
- ñá¡¡δσ, ¼«ª¡« «Γó«ñ¿Γ∞ »á¼∩Γ∞ ¡Ñ ßóδΦÑ ºáñá¡¡«ú« ó «»ÑαáΓ«αÑ
- αẼÑαá. àß½¿ φΓá «í½áßΓ∞ αáß»«½«ªÑ¡á ó »ÑαѼÑΘáѼ«¼ ßÑú¼Ñ¡ΓÑ
- ñá¡¡δσ, ¼«ª¡« «Γó«ñ¿Γ∞ »á¼∩Γ∞ ßóÑασ ºá∩ó½Ñ¡¡«ú« αẼÑαá, ¡« ñ«
- 64 è (»«ß¬«½∞¬π Windows áóΓ«¼áΓ¿τÑ߬¿ «Γó«ñ¿Γ ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ∞ ñ« ΓÑσ »«α, »«¬á ßÑú¼Ñ¡Γ ñá¡¡δσ ¡Ñ
- ñ«ßΓ¿ú¡ÑΓ 64 è). Äñ¡á¬«, ¡áñ« »«¼¡¿Γ∞, τΓ« ó φΓ«¼ ß½πτáÑ
- Windows ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ ßÑú¼Ñ¡Γ ñá¡¡δσ, ¿ ñ½¿¡¡δÑ π¬áºáΓѽ¿
- ¡á ½«¬á½∞¡πε »á¼∩Γ∞ ¼«úπΓ ßΓáΓ∞ ¡Ñ»αáó¿½∞¡δ¼¿.
-
- îá¬ß¿¼á½∞¡δ⌐ αẼÑα ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ »á¼∩Γ¿
- ºáó¿ß¿Γ «Γ αẼÑαá ßΓÑ¬á »α«úαá¼¼δ, á Γá¬ªÑ «Γ αẼÑαá
- ßΓáΓ¿τÑ߬¿σ ¿ ú½«íá½∞¡δσ ñá¡¡δσ. 﫬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞
- αáºñѽ∩ÑΓ ßÑú¼Ñ¡Γ ñá¡¡δσ ß« ßΓѬ«¼ ¿ π¬áºá¡¡δ¼¿ ñá¡¡δ¼¿, ¡«
- »«ß¬«½∞¬π ßÑú¼Ñ¡Γ ñá¡¡δσ ¡Ñ ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ, τѼ 64 è,
- ½«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩ «í½áßΓ∞ ¼«ªÑΓ íδΓ∞ ¡Ñ í«½∞ΦÑ, τѼ 64 è
- ¼¿¡πß αẼÑα ßΓÑ¬á ¿ αẼÑα ú½«íá½∞¡δσ ¿ ßΓáΓ¿τÑ߬¿σ ñá¡¡δσ.
- ÉẼÑα ßΓÑ¬á »α¿¬½áñ¡«⌐ »α«úαá¼¼δ «»αÑñѽ∩ÑΓß∩ «»ÑαáΓ«α«¼
- STACKSIZE, ºáñáóáÑ¼δ¼ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩. (Ä»¿ßá¡¿Ñ
- «»ÑαáΓ«α«ó Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ óδ ¡á⌐ñÑΓÑ ó æ»αáó«τ¡«¼
- απ¬«ó«ñßΓóÑ, Γ«¼ 2). ÉẼÑα ú½«íá½∞¡δσ ¿ ßΓáΓ¿τÑ߬¿σ ñá¡¡δσ
- ºáó¿ß¿Γ «Γ Γ«ú«, ߬«½∞¬« ó »α«úαá¼¼Ñ «íΩ∩ó½Ñ¡« ßΓ᫬, á ΓᬪÑ
- ú½«íá½∞¡δσ ¿ ßΓáΓ¿τÑ߬¿σ »ÑαѼѡ¡δσ. Windows «Γó«ñ¿Γ »«ñ ßΓѬ
- ¡Ñ ¼Ñ¡∞ΦÑ 5è. àß½¿ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩ π¬áºá¡á ¼Ñ¡∞Φá∩
- óѽ¿τ¿¡á, Windows óßÑ αáó¡« π¬áªÑΓ 5è.
-
- 﫬á½∞¡πε »á¼∩Γ∞ ¼«ª¡« «ΓóÑßΓ¿ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- LocalAlloc. öπ¡¬µ¿∩ «Γó«ñ¿Γ í½«¬ »á¼∩Γ¿ ó ½«¬á½∞¡«⌐
- ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿ ¿ ó«ºóαáΘáÑΓ ñÑß¬α¿»Γ«α »á¼∩Γ¿. 﫬á½∞¡δ⌐
- í½«¬ »á¼∩Γ¿ í½«¬¿απÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿ LocalLock. Ä¡á
- ó«ºóαáΘáÑΓ 16-í¿Γ«ó«Ñ ß¼ÑΘÑ¡¿Ñ ¡á »Ñαóδ⌐ íá⌐Γ ó í½«¬Ñ »á¼∩Γ¿.
- æ¼ÑΘÑ¡¿Ñ íÑαÑΓß∩ «Γ¡«ß¿Γѽ∞¡« ¡áτá½á ßÑú¼Ñ¡Γá ñá¡¡δσ. é ñá¡¡«¼
- »α¿¼ÑαÑ Σπ¡¬µ¿∩ LocalAlloc «Γó«ñ¿Γ 256 íá⌐Γ »ÑαѼÑΘáѼ«⌐
- »á¼∩Γ¿, á Σπ¡¬µ¿∩ LocalLock í½«¬¿απÑΓ Ñú«, ΓᬠτΓ« »ÑαóδÑ 256
- íá⌐Γ ¼«úπΓ íδΓ∞ πßΓá¡«ó½Ñ¡δ ó º¡áτÑ¡¿Ñ 0xFF:
-
- HANDLE hMem;
- PSTR pMem;
- int i;
- if ((hMem = LocalAlloc(LMEM_MOVEABLE, 256)) != NULL) {
- if (pMem = LocalLock(hMem)) != NULL) {
-
- Windows 3.0/pg/2#3 = 176 =
-
- for ( i = 0; i < 256; i++)
- pMem[1] = 0xFF;
- LocalUnlock(hMem);
- }
- }
-
- é φΓ«¼ »α¿¼ÑαÑ »α¿¬½áñ¡á∩ »α«úαá¼¼á αáºí½«¬¿απÑΓ
- ñÑß¬α¿»Γ«α »á¼∩Γ¿, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε LocalUnlock, ßαáºπ ªÑ
- »«ß½Ñ ñ«ßΓπ»á ¬ í½«¬π »á¼∩Γ¿. Åα¿ í½«¬¿α«óá¡¿¿ »ÑαѼÑΘáѼ«⌐ ¿½¿
- ßíαáßδóáѼ«⌐ »á¼∩Γ¿ Windows úáαá¡Γ¿απÑΓ, τΓ« í½«¬ «ßΓáÑΓß∩
- Σ¿¬ß¿α«óá¡¡δ¼ ó »á¼∩Γ¿ ñ« αáºí½«¬¿α«óá¡¿∩. ¥Γ« «º¡áτáÑΓ, τΓ«
- »«¬á »á¼∩Γ∞ ºáí½«¬¿α«óá¡á, áñαÑß «ßΓáÑΓß∩ ¬«ααÑ¬Γ¡δ¼. æ½ÑñπÑΓ
- πτÑßΓ∞, τΓ« »α¿ Γᬫ¼ ß»«ß«íÑ ¡á½áúáεΓß∩ «úαá¡¿τÑ¡¿∩ ¡á ½πτΦÑÑ
- ¿ß»«½∞º«óá¡¿Ñ »á¼∩Γ¿ ó ß½πτáÑ ñαπú¿σ ºá»α«ß«ó ¡á ÑÑ óδñѽѡ¿Ñ.
- àß½¿ ¡Ñ«íσ«ñ¿¼« íδΓ∞ πóÑαÑ¡¡δ¼, τΓ« ½«¬á½∞¡á∩ ñ¿¡á¼¿τÑ߬á∩
- «í½áßΓ∞ »á¼∩Γ¿ íπñÑΓ φΣΣÑ¬Γ¿ó¡« ¿ß»«½∞º«óáΓ∞ß∩, ¡Ñ ¡πª¡«
- ºáíδóáΓ∞ αáºí½«¬¿α«óáΓ∞ »á¼∩Γ∞ »«ß½Ñ ÑÑ ¿ß»«½∞º«óá¡¿∩.
-
- öπ¡¬µ¿∩ LocalAlloc ó«ºóαáΘáÑΓ NULL, Ñß½¿ ºá»α«ß ¡á »á¼∩Γ∞
- ¡Ñ óδ»«½¡Ñ¡. ìÑ«íσ«ñ¿¼« óßÑúñá ¬«¡Γα«½¿α«óáΓ∞ ó«ºóαáΘáѼ«Ñ
- º¡áτÑ¡¿Ñ ñ½∩ πóÑαÑ¡¡«ßΓ¿ ó Γ«¼, τΓ« ¬«ααÑ¬Γ¡δ⌐ ñÑß¬α¿»Γ«α
- ßπΘÑßΓóπÑΓ. Åα¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ¼«ª¡« »α«óÑα¿Γ∞, ߬«½∞¬« »á¼∩Γ¿
- «ßΓὫß∞ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- LocalCompact. ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ τ¿ß½« íá⌐Γ ó ¡á¿í«½∞ΦѼ
- ¡Ñ»αÑαδó¡«¼ ßó«í«ñ¡«¼ í½«¬Ñ »á¼∩Γ¿.
-
- ìÑ«íσ«ñ¿¼« Γá¬ªÑ »α«óÑα¿Γ∞ áñαÑß, ó«ºóαáΘáѼδ⌐ Σπ¡¬µ¿Ñ⌐
- LocalLock. ¥Γá Σπ¡¬µ¿∩ ó«ºóαáΘáÑΓ ¡π½Ñó«⌐ π¬áºáΓѽ∞, Ñß½¿
- ñÑß¬α¿»Γ«α »á¼∩Γ¿ ¡Ññ«»πßΓ¿¼ ¿½¿ ß«ñÑন¼«Ñ í½«¬á »á¼∩Γ¿
- ßíα«ΦÑ¡«.
- 15.1.3 Éáí«Γá ß« ßíαáßδóáѼ«⌐ »á¼∩Γ∞ε.
-
- ü½«¬ ßíαáßδóáѼ«⌐ »á¼∩Γ¿ ß«ºñáÑΓß∩ ß «ñ¡«óαѼѡ¡δ¼
- ¿ß»«½∞º«ó᡿Ѽ ñóπσ »áαá¼ÑΓα«ó - GMEM_DISCARDABLE ¿
- GMEM_MOVEABLE. ¥Γ«Γ í½«¬ íπñÑΓ »ÑαѼÑΘÑ¡ ó ß½πτáÑ ¡Ñ«íσ«ñ¿¼«ßΓ¿
- ñ½∩ «ßó«í«ªñÑ¡¿∩ ¼ÑßΓá »«ñ ñαπú¿Ñ ºá»α«ßδ »á¼∩Γ¿ ¿½¿, Ñß½¿ ¡ÑΓ
- ñ«ßΓáΓ«τ¡«ú« «íΩÑ¼á »á¼∩Γ¿ ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá, í½«¬
- »á¼∩Γ¿ íπñÑΓ ßíα«ΦÑ¡. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »α«¿ßσ«ñ¿Γ
- óδñѽѡ¿Ñ ßíαáßδóáѼ«ú« í½«¬á ¿º ú½«íá½∞¡«⌐ »á¼∩Γ¿:
-
- hMem=GlobalAlloc(GMEM_MOVEABLE | GMEM_DISCARDABLE, 4096L);
-
- Windows ßíαáßδóáÑΓ í½«¬ »á¼∩Γ¿ »«ßαÑñßΓó«¼ »«óΓ«α¡«ú«
- óδñѽѡ¿∩ Ñú« ß ¡«óδ¼ αẼÑα«¼ ó ¡π½∞ íá⌐Γ. æ«ñÑন¼«Ñ í½«¬á
- ΓÑα∩ÑΓß∩, ¡« Ñú« ñÑß¬α¿»Γ«α «ßΓáÑΓß∩ ¬«ααÑ¬Γ¡δ¼. Äñ¡á¬«, ½εíá∩
- »«»δΓ¬á ºáí½«¬¿α«óáΓ∞ ñÑß¬α¿»Γ«α ¿ »«½πτ¿Γ∞ ñ«ßΓπ» ¬ í½«¬π
- íπñÑΓ ¡Ñπñáτ¡«⌐.
-
- Windows «»αÑñѽ∩ÑΓ, ¬á¬«⌐ ¿º í½«¬«ó »á¼∩Γ¿ ßíα«ß¿Γ∞, ß
- »«¼«Θ∞ε á½ú«α¿Γ¼á "»«ß½Ññ¡¿⌐ ¡á¿¼Ñ¡ÑÑ ¿ß»«½∞ºπѼδ⌐" (LRU).
- ü½«¬¿ »á¼∩Γ¿ íπñπΓ ßíαáßδóáΓ∞ß∩ ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ
- ñ«ßΓáΓ«τ¡« ¼ÑßΓá ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ßá ¡á óδñѽѡ¿Ñ
-
- Windows 3.0/pg/2#3 = 177 =
-
- »á¼∩Γ¿. é «íΘѼ, Ñß½¿ ó ΓÑτÑ¡¿Ñ ¡Ñ¬«Γ«α«ú« óαѼѡ¿ ¬
- ßíαáßδóáѼ«¼π í½«¬π »á¼∩Γ¿ ¡Ñ í佫 ñ«ßΓπ»á, «¡ ∩ó½∩ÑΓß∩
- ¬á¡ñ¿ñáΓ«¼ ¡á ßíαáßδóá¡¿Ñ. çáí½«¬¿α«óá¡¡δ⌐ í½«¬ ¡Ñ ¼«ªÑΓ íδΓ∞
- ßíα«ΦÑ¡.
-
- ¡« ßíαáßδóáΓ∞ ßó«¿ ß«íßΓóÑ¡¡δÑ í½«¬¿ »á¼∩Γ¿,
- ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GlobalDiscard. ¥Γá Σπ¡¬µ¿∩ «ßó«í«ªñáÑΓ í½«¬,
- ¡« ß«σαá¡∩ÑΓ ñÑß¬α¿»Γ«α »á¼∩Γ¿. ¡« Γá¬ªÑ ßíα«ß¿Γ∞ í½«¬¿
- »á¼∩Γ¿ ñαπú¿σ »α¿¬½áñ¡δσ »α«úαá¼¼, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε
- GlobalCompact. ¥Γá Σπ¡¬µ¿∩ »ÑαѼÑΘáÑΓ ¿ ßíαáßδóáÑΓ í½«¬¿ »á¼∩Γ¿
- ñ« ΓÑσ »«α, »«¬á ¡Ñ íπñÑΓ ñ«ßΓπ»Ñ¡ π¬áºá¡¡δ⌐ ¿½¿ ¼á¬ß¿¼á½∞¡«
- 󫺼«ª¡δ⌐ «íΩѼ »á¼∩Γ¿. Äñ¿¡ ¿º ß»«ß«í«ó ßíα«ß¿Γ∞ óßÑ
- ßíαáßδóáѼδÑ í½«¬¿ »á¼∩Γ¿ - ºáñáΓ∞ ó ¬áτÑßΓóÑ áαúπ¼Ñ¡Γá -1. ¥Γ«
- ºá»α«ß ¡á óßε »á¼∩Γ∞. ò«Γ∩ ºá»α«ß ¡Ñ íπñÑΓ πñ«ó½ÑΓó«αÑ¡, «¡
- «ßó«í«ñ¿Γ óßε ßíαáßδóáѼπε »á¼∩Γ∞ ¿ ßΣ«α¼¿απÑΓ ¼á¬ß¿¼á½∞¡«
- 󫺼«ª¡δ⌐ í½«¬ ßó«í«ñ¡«⌐ »á¼∩Γ¿.
-
- ū߬«½∞¬π ñÑß¬α¿»Γ«α ßíαáßδóáѼ«ú« í½«¬á »á¼∩Γ¿ «ßΓáÑΓß∩
- ¬«ααÑ¬Γ¡δ¼, ¼«ª¡« »«½πτ¿Γ∞ ¿¡Σ«α¼áµ¿ε « í½«¬Ñ, ¿ß»«½∞ºπ∩
- Σπ¡¬µ¿ε GlobalFlags. ¥Γ« »«½Ñº¡« Γ«úñá, ¬«úñá ¡áñ« »α«óÑα¿Γ∞,
- τΓ« í½«¬ ñÑ⌐ßΓó¿Γѽ∞¡« íδ½ ßíα«ΦÑ¡. öπ¡¬µ¿∩ GlobalFlags
- πßΓá¡áó½¿óáÑΓ ó ó«ºóαáΘáѼ«¼ º¡áτÑ¡¿¿ í¿Γ GMEM_DISCARDED, Ñß½¿
- π¬áºá¡¡δ⌐ í½«¬ »á¼∩Γ¿ ßíα«ΦÑ¡. æ½Ññ«óáΓѽ∞¡«, Ñß½¿ íδ½á ßñѽá¡á
- »«»δΓ¬á ºáí½«¬¿α«óáΓ∞ ßíαáßδóáѼδ⌐ í½«¬ ¿ «¡á ºá¬«¡τ¿½áß∞
- ¡Ñπñáτ¡«, ¼«ª¡« »α«¬«¡Γα«½¿α«óáΓ∞ ß«ßΓ«∩¡¿Ñ í½«¬á, ¿ß»«½∞ºπ∩
- GlobalFlags.
-
- èá¬ Γ«½∞¬« ßíαáßδóáѼδ⌐ í½«¬ íδ½ ßíα«ΦÑ¡, Ñú« ß«ñÑন¼«Ñ
- ΓÑα∩ÑΓß∩. àß½¿ ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ í½«¬ ß¡«óá, ¡πª¡«
- »«óΓ«α¡« «ΓóÑßΓ¿ ñ½∩ ¡Ñú« ¼ÑßΓ« ß««ΓóÑΓßΓóπεΘÑú« αẼÑαá ¿
- ºá»«½¡¿Γ∞ ñá¡¡δ¼¿, ¬«Γ«αδÑ «¡ ß«ñÑαªá½ »αѪñÑ. Å«óΓ«α¡«Ñ
- óδñѽѡ¿Ñ »á¼∩Γ¿ «ßπΘÑßΓó½∩ÑΓß∩ ß »«¼«Θ∞ε Σπ¡¬µ¿¿
- GlobalReAlloc. é ñá¡¡«¼ »α¿¼ÑαÑ ¬«¡Γα«½¿απÑΓß∩ ß«ßΓ«∩¡¿Ñ í½«¬á
- ¿ ºáΓѼ, Ñß½¿ «¡ íδ½ ßíα«ΦÑ¡, ºá»«½¡∩ÑΓß∩ ñá¡¡δ¼¿:
-
- lpMem = GlobalLock(hMem);
- if (lpMem = (LPSTR) NULL) {
- if (GlobalFlags(hMem) & GMEM_DISCARDED) {
- hMem = GlobalReAlloc(hMem, 4096L,
- GMEM_MOVEABLE | GMEM_DISCARDABLE);
- lpMem = GlobalLock(hMem);
-
- /* ºá»«½¡Ñ¡¿Ñ ñá¡¡δ¼¿ */
-
- GlobalUnlock(hMem);
- }
- }
-
- ¡« ßñѽáΓ∞ ßíαáßδóáѼδ⌐ «íΩÑ¬Γ ¡ÑßíαáßδóáÑ¼δ¼ ¿
- ¡á«í«α«Γ, ¿ß»«½∞ºπ∩ Σπ¡¬µ¿ε GlobalReAlloc ¿ Σ½áú GMEM_MODIFY,
- ¬á¬ »«¬áºá¡« ó »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ, ó ¬«Γ«α«¼ »ÑαѼÑΘáѼδ⌐
- í½«¬, ¿ñÑ¡Γ¿Σ¿µ¿α«óá¡¡δ⌐ »áαá¼ÑΓα«¼ hMem, ¿º¼Ñ¡∩ÑΓß∩ ¡á
- ßíαáßδóáѼδ⌐ í½«¬.
-
- Windows 3.0/pg/2#3 = 178 =
-
-
- hMem = GlobalReAlloc(hMem, 4096L,
- GMEM_MODIFY | GMEM_MOVEABLE);
-
- é ß½ÑñπεΘѼ »α¿¼ÑαÑ ßíαáßδóáѼδ⌐ í½«¬ ßΓá¡«ó¿Γß∩
- ¡ÑßíαáßδóáѼδ¼:
-
- hMem = GlobalReAlloc(hMem, 0, GMEM_MODIFY);
- 15.2 êß»«½∞º«óá¡¿Ñ ßÑú¼Ñ¡Γ«ó.
-
- Äñ¡¿¼ ¿º ú½áó¡δσ ßó«⌐ßΓó Windows ∩ó½∩ÑΓß∩ Γ«, τΓ« «¡á ñáÑΓ
- 󫺼«ª¡«ßΓ∞ »«½∞º«óáΓÑ½ε «ñ¡«óαѼѡ¡« αáí«ΓáΓ∞ í«½ÑÑ, τѼ ß
- «ñ¡«⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐. ¥Γ« ¡á¬½áñδóáÑΓ ñ«»«½¡¿Γѽ∞¡δÑ
- ΓαÑí«óá¡¿∩ ¡á ¡á»¿ßá¡¿Ñ »α«úαá¼¼, αáí«ΓáεΘ¿σ ó φΓ«⌐ ßαÑñÑ. ò«Γ∩
- ¼¡«ú¿Ñ ¬«¼»∞εΓÑαδ ¿¼ÑεΓ »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ 640 è »á¼∩Γ¿, φΓá
- »á¼∩Γ∞ ßΓá¡«ó¿Γß∩ «úαá¡¿τÑ¡¡δ¼ αÑßπαß«¼, ¬á¬ Γ«½∞¬«
- »«½∞º«óáΓѽ∞ ºáúαπº¿Γ ñ½∩ αáí«Γδ ¡Ñ߬«½∞¬« »α¿¬½áñ¡δσ »α«úαá¼¼.
- ìÑ«íσ«ñ¿¼« ß«º¡áΓѽ∞¡« ¿ß»«½∞º«óáΓ∞ »á¼∩Γ∞ ¿ ßΓáαáΓ∞ß∩
- ¼¿¡¿¼¿º¿α«óáΓ∞ «íΩѼ, ºá¡¿¼áѼδ⌐ »α¿¬½áñ¡«⌐ »α«úαá¼¼«⌐ ó ½εí«⌐
- ºáñá¡¡δ⌐ ¼«¼Ñ¡Γ.
-
- ä½∩ Γ«ú«, τΓ«íδ »«¼«τ∞ π»αáó½∩Γ∞ ¿ß»«½∞º«ó᡿Ѽ »á¼∩Γ¿ ó
- »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ, Windows »α¿¼Ñ¡∩ÑΓ ñ½∩ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ¿
- ßÑú¼Ñ¡Γ«ó ñá¡¡δσ Γπ ªÑ ß¿ßΓѼπ π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε, τΓ«
- ¿ß»«½∞º«óá¡á ó »α«úαá¼¼Ñ ñ½∩ óδñѽѡ¿∩ í½«¬«ó ú½«íá½∞¡«⌐ »á¼¿Γ¿
- ¿ ¼á¡¿»π½¿α«óá¡¿∩ ¿¼¿. Åα¿ ºá»π᪥ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Windows
- «Γó«ñ¿Γ ¼ÑßΓ« »«ñ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ ¿ ßÑú¼Ñ¡Γδ ñá¡¡δσ ó
- ú½«íá½∞¡«⌐ »á¼∩Γ¿, á ºáΓѼ ¬«»¿απÑΓ ßÑú¼Ñ¡Γδ ¿º óδ»«½¡∩Ѽ«ú«
- Σá⌐½á ó »á¼∩Γ∞. ¥Γ¿ ßÑú¼Ñ¡Γδ ¼«úπΓ íδΓ∞ Σ¿¬ß¿α«óá¡¡δ¼¿,
- »ÑαѼÑΘáÑ¼δ¼¿ ¿ ñáªÑ ßíαáßδóáÑ¼δ¼¿. ìÑ«íσ«ñ¿¼« «»αÑñѽ¿Γ∞ ¿σ
- áΓα¿íπΓδ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩.
-
- ¡« π¼Ñ¡∞Φ¿Γ∞ ó½¿∩¡¿Ñ »α¿¬½áñ¡δσ »α«úαá¼¼ ¡á »á¼∩Γ∞,
- ¿ß»«½∞ºπ∩ »ÑαѼÑΘáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ ¿ ßÑú¼Ñ¡Γδ ñá¡¡δσ.
- êß»«½∞º«óá¡¿Ñ »ÑαѼÑΘáѼδσ ßÑú¼Ñ¡Γ«ó »«ºó«½∩ÑΓ Windows »«
- ¬αá⌐¡Ñ⌐ ¼ÑαÑ, »ÑαѼÑΘáΓ∞ ßÑú¼Ñ¡Γδ »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿ ñ½∩ Γ«ú«,
- τΓ«íδ ó«ß»«½∞º«óáΓ∞ß∩ ßó«í«ñ¡«⌐ »á¼∩Γ∞ε, ¬«úñá «¡á ßΓá¡«ó¿Γß∩
- ñ«ßΓπ»¡«⌐.
-
- ¡« ¼¿¡¿¼¿º¿α«óáΓ∞ ó½¿∩¡¿Ñ »α¿¬½áñ¡δσ »α«úαá¼¼ ¡á
- »á¼∩Γ∞, ¿ß»«½∞ºπ∩ ßíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ. àß½¿ ¬«ñ«óδ⌐
- ßÑú¼Ñ¡Γ - ßíαáßδóáѼδ⌐, Γ« Windows, »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿,
- ßíαáßδóáÑΓ Ñú« ñ½∩ πñ«ó½ÑΓó«αÑ¡¿∩ ºá»α«ß«ó ¡á ú½«íá½∞¡πε
- »á¼∩Γ∞. é «Γ½¿τ¿Ñ «Γ «íδτ¡δσ í½«¬«ó »á¼∩Γ¿, ¬«Γ«αδÑ ¼«ªÑΓ
- óδñѽ∩Γ∞ ßá¼ »«½∞º«óáΓѽ∞, ßíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ
- π»αáó½∩εΓß∩ Windows ¬«Γ«αá∩ áóΓ«¼áΓ¿τÑ߬¿ »ÑαѺáúαπªáÑΓ ¿σ,
- Ñß½¿ »α¿¬½áñ¡á∩ »α«úαá¼¼á »«»δΓáÑΓß∩ óδ»«½¡¿Γ∞ ¬«ñ, ¡áσ«ñ∩Θ¿⌐ß∩
- ó¡πΓα¿ φΓ«ú« ßÑú¼Ñ¡Γá. ¥Γ« «º¡áτáÑΓ, τΓ« ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¡áσ«ñ∩Γß∩ ó »á¼∩Γ¿ Γ«½∞¬« Γ«úñá, ¬«úñá «¡¿
- ¡Ñ«íσ«ñ¿¼δ.
-
- æíαáßδóá¡¿Ñ ßÑú¼Ñ¡Γá αáºαπΦáÑΓ Ñú« ß«ñÑন¼«Ñ. Windows ¡Ñ
-
- Windows 3.0/pg/2#3 = 179 =
-
- ß«σαá¡∩ÑΓ ΓѬπΘÑÑ ß«ñÑন¼«Ñ ßíαáßδóáѼ«ú« ßÑú¼Ñ¡Γá. é¼ÑßΓ«
- φΓ«ú« »αÑñ»«½áúáÑΓß∩, τΓ« ßÑú¼Ñ¡Γ ¡Ñ «Γ½¿τáÑΓß∩ «Γ Γ«ú«,
- ¬«Γ«αδ⌐ íδ½ »Ñαó«¡áτá½∞¡« ºáúαπªÑ¡, ¿, »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿, «¡
- íπñÑΓ ºáúαπªáΓ∞ß∩ ¡Ñ»«ßαÑñßΓóÑ¡¡« ¿º óδ»«½¡∩Ѽ«ú« Σá⌐½á.
- 15.2.1 êß»«½∞º«óá¡¿Ñ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
-
- è«ñ«óδ⌐ ßÑú¼Ñ¡Γ - φΓ« ¡Ñ¬«Γ«α«Ñ ¬«½¿τÑßΓó« íá⌐Γ ¼áΦ¿¡¡δσ
- ¬«¼á¡ñ. è«ñ«óδ⌐ ßÑú¼Ñ¡Γ ¡Ñ ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ 64 è.
-
- é᪡«Ñ ºá¼Ñτá¡¿Ñ: ìѽ∞º∩ σαá¡¿Γ∞ ºá»¿ßδóáѼδÑ ñá¡¡δÑ ó
- ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ. Åα¿ »«»δ⪥ ºá»¿ß¿ ñá¡¡δσ ó ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ
- 󫺡¿¬áÑΓ ¡ÑπßΓαá¡¿¼á∩ «Φ¿í¬á ºáΘ¿Γδ »á¼∩Γ¿ »α¿ αáí«ΓÑ Windows
- ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ. Äñ¡á¬«, Windows »«ºó«½∩ÑΓ σαá¡¿Γ∞ ó
- ¬«ñ«ó«¼ ßÑú¼Ñ¡ΓÑ ñá¡¡δÑ, »αÑñ¡áº¡áτÑ¡¡δÑ Γ«½∞¬« ñ½∩ τΓÑ¡¿∩, φΓ«
- ¼«ªÑΓ íδΓ∞ ¡á»α¿¼Ñα Γáí½¿µá »ÑαÑσ«ñ«ó. ä«»«½¡¿Γѽ∞¡πε
- ¿¡Σ«α¼áµ¿ε « αáí«ΓÑ Windows ó ºáΘ¿ΘÑ¡¡«¼ αѪ¿¼Ñ óδ ¡á⌐ñÑΓÑ ó
- ú½áóÑ 16, "àΘÑ «í π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- èáªñá∩ ÅÅ ¿¼ÑÑΓ, »« ¬αá⌐¡Ñ⌐ ¼ÑαÑ, «ñ¿¡ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ.
- ìá»α¿¼Ñα, «»¿ßá¡¡δÑ ó »αÑñδñπΘ¿σ αáºñѽáσ »α¿¼Ñαδ »α«úαá¼¼
- ¿¼ÑεΓ Γ«½∞¬« «ñ¿¡ ¬«ñ«óδ⌐ ßÑú¼Ñ¡Γ. Æá¬ªÑ ¼«ª¡« ß«ºñáóáΓ∞
- »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ¬«Γ«αδÑ ¿¼ÑεΓ ¡Ñ߬«½∞¬« ¬«ñ«óδσ
- ßÑú¼Ñ¡Γ«ó. é ßἫ¼ ñѽÑ, í«½∞Φ¿¡ßΓó« »α¿¬½áñ¡δσ »α«úαá¼¼,
- αáí«ΓáεΘ¿σ ó ßαÑñÑ Windows, ¿¼ÑεΓ ¡Ñ߬«½∞¬« ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó.
- æÑú¼Ñ¡Γ¿α«óá¡¿Ñ »«ºó«½∩ÑΓ π¼Ñ¡∞Φ¿Γ∞ αẼÑα ½εí«ú« ºáñá¡¡«ú«
- ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá α«ó¡« ñ« Γᬫú« τ¿ß½á ¿¡ßΓαπ¬µ¿⌐, ¬«Γ«αδÑ
- ¡Ñ«íσ«ñ¿¼δ ñ½∩ óδ»«½¡Ñ¡¿∩ «»αÑñѽѡ¡«⌐ ºáñáτ¿. àß½¿ »α¿ φΓ«¼
- ßÑú¼Ñ¡Γδ ¼«úπΓ íδΓ∞ ßíαáßδóáÑ¼δ¼¿, φΓ« º¡áτ¿Γѽ∞¡« ß¡¿º¿Γ
- ΓαÑí«óá¡¿∩ ¬ »á¼∩Γ¿.
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ßαÑñ¡¿σ ¿½¿ í«½∞Φ¿σ ¼«ñѽÑ⌐ »á¼∩Γ¿
- ß«ºñáεΓß∩ »α¿¬½áñ¡δÑ »α«úαá¼¼δ, ¿ß»«½∞ºπεΘ¿Ñ ¡Ñ߬«½∞¬« ¬«ñ«óδσ
- ßÑú¼Ñ¡Γ«ó. Äíδτ¡« «¡¿ ¿¼ÑεΓ «ñ¿¡ ¿½¿ ¡Ñ߬«½∞¬« ¿ßσ«ñ¡δσ Σá⌐½«ó
- ñ½∩ ¬áªñ«ú« ßÑú¼Ñ¡Γá. ìÑ«íσ«ñ¿¼« «Γñѽ∞¡« ߬«¼»¿½¿α«óáΓ∞ ¬áªñδ⌐
- ¿ßσ«ñ¡δ⌐ Σá⌐½ ¿ ∩ó¡« ºáñáΓ∞ ¿¼∩ ßÑú¼Ñ¡Γá, ¬«Γ«α«¼π íπñÑΓ
- »α¿¡áñ½ÑªáΓ∞ ߬«¼»¿½¿α«óá¡¡δ⌐ ¬«ñ. çáΓѼ ¡Ñ«íσ«ñ¿¼«
- ߬«¼»«¡«óáΓ∞ »α¿¬½áñ¡πε »α«úαá¼¼π, »«¿¼Ñ¡«óáó ßÑú¼Ñ¡Γδ ¿
- «»αÑñѽ¿ó ¿σ áΓα¿íπΓδ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩.
-
- ä½∩ «»αÑñѽѡ¿∩ áΓα¿íπΓ«ó ßÑú¼Ñ¡Γá ¿ß»«½∞ºπ⌐ΓÑ «»ÑαáΓ«α
- SEGMENTS ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩. é »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ
- »«¬áºá¡δ «»αÑñѽѡ¿∩ ΓαÑσ ßÑú¼Ñ¡Γ«ó:
-
- SEGMENTS
- PAINT_TEXT MOVEABLE DISCARDABLE
- INIT_TEXT MOVEABLE DISCARDABLE
- WNDPROC_TEXT MOVEABLE DISCARDABLE
-
- ¡« Γá¬ªÑ ¿ß»«½∞º«óáΓ∞ «»ÑαáΓ«α CODE ó Σá⌐½Ñ «»αÑñѽѡ¿∩
- ¼«ñπ½∩ ñ½∩ «»αÑñѽѡ¿∩ áΓα¿íπΓ«ó óßÑσ ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó »«
- π¼«½τá¡¿ε. Ä»ÑαáΓ«α CODE «»αÑñѽ∩ÑΓ Γá¬ªÑ áΓα¿íπΓδ ßÑú¼Ñ¡Γ«ó,
- ¬«Γ«αδÑ ¡Ñ í뫨 ∩ó¡« π¬áºá¡δ ó «»ÑαáΓ«αÑ SEGMENTS. é
-
- Windows 3.0/pg/2#3 = 180 =
-
- »α¿óÑñÑ¡¡«¼ ¡¿ªÑ »α¿¼ÑαÑ »«¬áºá¡«, ¬á¬ ßñѽáΓ∞ óßÑ ¡Ñ
- «»αÑñѽѡ¡δÑ ó «»ÑαáΓ«αÑ SEGMENTS ßÑú¼Ñ¡Γδ ßíαáßδóáÑ¼δ¼¿:
-
- CODE MOVEABLE DISCARDABLE
-
- Åα¿ ¿ß»«½∞º«óá¡¿¿ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ ßíαáßδóáѼδσ
- ¬«ñ«óδσ ßÑú¼Ñ¡Γ«ó ¡Ñ«íσ«ñ¿¼« »α¿óÑßΓ¿ ó ß««ΓóÑΓßΓó¿Ñ ßó«⌐ßΓó«
- ßíαáßδóáѼ«ßΓ¿ ß τáßëë⌐ ñ«ßΓπ»á ¬ ßÑú¼Ñ¡Γπ. ìá»α¿¼Ñα, ¡Ñ½∞º∩,
- ó¿ñ¿¼«, ñѽáΓ∞ ßíαáßδóáÑ¼δ¼ ßÑú¼Ñ¡Γ, ß«ñÑαªáΘ¿⌐ «ß¡«ó¡πε
- Σπ¡¬µ¿ε «¬¡á, »«ß¬«½∞¬π «¡á τáßΓ« óδºδóáÑΓß∩ Windows. Æ. ¬.
- ßíαáßδóáѼδ⌐ ßÑú¼Ñ¡Γ ñ«½ªÑ¡, »α¿ ¡Ñ«íσ«ñ¿¼«ßΓ¿, ºáúαπªáΓ∞ß∩ ß
- ñ¿ß¬á, φ¬«¡«¼¿∩ »á¼∩Γ¿ «Γ ßíαáßδóáѼδσ ßÑú¼Ñ¡Γ«ó ¼«ªÑΓ
- »ÑαÑóÑΦ¿óáΓ∞ß∩ »«ΓÑα∩¼¿ «Γ ¼¡«ú«τ¿ß½Ñ¡¡δσ ºáúαπº«¬ ß ñ¿ß¬á.
-
- Åα¿¼Ñτá¡¿Ñ: é í¿í½¿«ΓÑ¬Ñ óßÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ ñ«½ª¡δ íδΓ∞
- »ÑαѼÑΘáÑ¼δ¼¿ ¿ ßíαáßδóáÑ¼δ¼¿. àß½¿ ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩
- í¿í½¿«ΓѬ¿ óδ π¬áªÑΓÑ, τΓ« ßÑú¼Ñ¡Γ ∩ó½∩ÑΓß∩ Γ«½∞¬«
- »ÑαѼÑΘáѼδ¼, Windows óßÑ αáó¡« ßñѽáÑΓ Ñú« ßíαáßδóáѼδ¼.
- 15.2.2 æÑú¼Ñ¡Γδ ñá¡¡δσ.
-
- èáªñá∩ »α¿¬½áñ¡á∩ »α«úαá¼¼á ¿¼ÑÑΓ ßÑú¼Ñ¡Γ DATA. æÑú¼Ñ¡Γ
- DATA ß«ñÑαª¿Γ ßΓѬ »α«úαá¼¼δ, ½«¬á½∞¡πε ñ¿¡á¼¿τÑ߬πε «í½áßΓ∞
- »á¼∩Γ¿, á Γá¬ªÑ ßΓáΓ¿τÑ߬¿Ñ ¿ ú½«íá½∞¡δÑ ñá¡¡δÑ. èᬠ¿ ¬«ñ«óδ⌐
- ßÑú¼Ñ¡Γ, ßÑú¼Ñ¡Γ DATA ¡Ñ ¼«ªÑΓ íδΓ∞ í«½∞ΦÑ 64 è.
-
- æÑú¼Ñ¡Γ DATA ¼«ªÑΓ íδΓ∞ Γ«½∞¬« Σ¿¬ß¿α«óá¡¡δ¼ ¿½¿
- »ÑαѼÑΘáѼδ¼, ¡« ¡Ñ ßíαáßδóáѼδ¼. àß½¿ ßÑú¼Ñ¡Γ DATA -
- »ÑαѼÑΘáѼδ⌐, Windows áóΓ«¼áΓ¿τÑ߬¿ í½«¬¿απÑΓ Ñú«, ¬«úñá
- »ÑαÑñáÑΓ π»αáó½Ñ¡¿Ñ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. é »α«Γ¿ó¡«¼ ß½πτáÑ
- »ÑαѼÑΘáѼδ⌐ ßÑú¼Ñ¡Γ DATA ¼«ªÑΓ »ÑαѼÑßΓ¿Γ∞ß∩, Ñß½¿ »α¿¬½áñ¡á∩
- »α«úαá¼¼á «Γóѽá ú½«íá½∞¡πε »á¼∩Γ∞ ¿½¿ »δΓáÑΓß∩ óδñѽ¿Γ∞ í«½∞ΦÑ
- »á¼∩Γ¿, τѼ ¿¼ÑÑΓß∩ ó ½«¬á½∞¡«⌐ ñ¿¡á¼¿τÑ߬«⌐ «í½áßΓ¿. Å« φΓ«⌐
- »α¿τ¿¡Ñ ó᪡« ¡Ñ ß«σαá¡∩Γ∞ ñ½¿¡¡δÑ π¬áºáΓѽ¿ ¡á »ÑαѼѡ¡δÑ,
- ¡áσ«ñ∩Θ¿Ñß∩ ó ßÑú¼Ñ¡ΓÑ DATA.
-
- ¡« «»αÑñѽ¿Γ∞ áΓα¿íπΓδ ßÑú¼Ñ¡Γá DATA, ¿ß»«½∞ºπ∩
- «»ÑαáΓ«α DATA ó Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩. ÇΓα¿íπΓδ »« π¼«½τá¡¿ε
- - »ÑαѼÑΘáѼδ⌐ ¿ ¼¡«ª¿¼δ⌐. ÇΓα¿íπΓ ¼¡«ª¿¼«ßΓ¿ »«íπªñáÑΓ
- Windows ß«ºñáóáΓ∞ ¬«»¿ε ßÑú¼Ñ¡Γá ñá¡¡δσ ñ½∩ ¬áªñ«ú« φ¬ºÑ¼»½∩αá
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ. ¥Γ« «º¡áτáÑΓ, τΓ« ß«ñÑন¼«Ñ ßÑú¼Ñ¡Γá
- DATA π¡¿¬á½∞¡« ñ½∩ ¬áªñ«ú« φ¬ºÑ¼»½∩αá »α«úαá¼¼δ.
-
- Åਪ½áñ¡δÑ »α«úαá¼¼δ í«½∞Φ«⌐ ¼«ñѽ¿ »á¼∩Γ¿ ¼«úπΓ ¿¼ÑΓ∞
- ¡Ñ߬«½∞¬« ñ«»«½¡¿Γѽ∞¡δσ ßÑú¼Ñ¡Γ«ó ñá¡¡δσ, ¡« Γ«½∞¬« «ñ¿¡
- ßÑú¼Ñ¡Γ DATA.
-
- Ä»¿ßá¡¿Ñ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩ óδ ¡á⌐ñÑΓÑ ó æ»αáó«τ¡«¼
- απ¬«ó«ñßΓóÑ, Γ«¼ 2.
- 15.3 Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Memory.
-
- ¥Γ«Γ »α¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ ¿½½εßΓα¿απÑΓ, ¬á¬ ß«ºñáΓ∞
-
- Windows 3.0/pg/2#3 = 181 =
-
- »α¿¬½áñ¡πε »α«úαá¼¼π Windows, ¿ß»«½∞ºπεΘπε ßαÑñ¡εε ¼«ñѽ∞
- »á¼∩Γ¿, ¿ ¬«Γ«αá∩ ¿ß»«½∞ºπÑΓ ßíαáßδóáѼδÑ ¬«ñ«óδÑ ßÑú¼Ñ¡Γδ. ä½∩
- ß«ºñá¡¿∩ »α«úαá¼¼δ Memory ߬«»¿απ⌐ΓÑ ¿ »ÑαÑ¿¼Ñ¡π⌐ΓÑ ¿ßσ«ñ¡δÑ
- Σá⌐½δ »α«úαá¼¼δ Generic, á ºáΓѼ ó¡Ñß¿ΓÑ ß½ÑñπεΘ¿Ñ ¿º¼Ñ¡Ñ¡¿∩:
-
- 1. Éáºñѽ¿ΓÑ ¿ßσ«ñ¡δ⌐ æ-Σá⌐½ ¡á τÑαδαÑ «Γñѽ∞¡δσ Σá⌐½á.
-
- 2. î«ñ¿Σ¿µ¿απ⌐ΓÑ ó¬½ετáѼδ⌐ Σá⌐½.
-
- 3. ä«íáó∞ΓÑ «»αÑñѽѡ¿∩ ¡«óδσ ßÑú¼Ñ¡Γ«ó ¬ Σá⌐½π
- «»αÑñѽѡ¿∩ ¼«ñπ½∩.
-
- 4. î«ñ¿Σ¿µ¿απ⌐ΓÑ Σá⌐½ make.
-
- 5. ÄΓΓαá¡ß½¿απ⌐ΓÑ ¿ ߬«¼»«¡π⌐ΓÑ »α«úαá¼¼π.
-
- ì¿ªÑ φΓ¿ Φáú¿ «»¿ßá¡δ í«½ÑÑ »«ñα«í¡«.
-
- Åα¿¼Ñτá¡¿Ñ: é¼ÑßΓ« Γ«ú«, τΓ«íδ óó«ñ¿Γ∞ ΓѬßΓδ, »α¿óÑñÑ¡¡δÑ
- ó ß½ÑñπεΘ¿σ αáºñѽáσ, 󫺼«ª¡« óá¼ íπñÑΓ πñ«í¡ÑÑ »α«ßΓ«
- »ÑαÑ»¿ßáΓ∞ ¿ßσ«ñ¡δÑ ΓѬßΓδ ¿º SDK.
- 15.3.1 Éáºñѽѡ¿Ñ ¿ßσ«ñ¡«ú« æ-Σá⌐½á.
-
- ìÑ«íσ«ñ¿¼« αáºñѽ¿Γ∞ ¿ßσ«ñ¡δ⌐ æ-Σá⌐½ ¡á «Γñѽ∞¡δÑ Σá⌐½δ
- Γ.«., τΓ«íδ Σπ¡¬µ¿¿ ó¡πΓα¿ Σá⌐½á ¬«¼»¿½¿α«ó὿ß∞ ¬á¬ «Γñѽ∞¡δÑ
- ßÑú¼Ñ¡Γδ. ¡« αáºñѽ¿Γ∞ ¿ßσ«ñ¡δ⌐ Σá⌐½ φΓ«⌐ »α«úαá¼¼δ ¡á 4
- τáßΓ¿:
-
-
- Windows 3.0/pg/2#3 = 182 =
-
-
- êßσ«ñ¡δ⌐ Σá⌐½ æ«ñÑন¼«Ñ
- ───────────────────────────────────────────────────────────────
- memory1.c æ«ñÑαª¿Γ Σπ¡¬µ¿ε WinMain. ū߬«½∞¬π Windows
- óδ»«½¡∩ÑΓ φΓπ Σπ¡¬µ¿ε ñ«ó«½∞¡« τáßΓ«,
- ßÑú¼Ñ¡Γ, ß«ºñá¡¡δ⌐ ñ½∩ ñá¡¡«ú« ¿ßσ«ñ¡«ú«
- Σá⌐½á, ¡Ñ ßíαáßδóáѼδ⌐, ¿ »«φΓ«¼π ¡Ñ ¼«ªÑΓ
- 󫺡¿¬¡πΓ∞ ß¿Γπᵿ∩, ¬«úñá ßÑú¼Ñ¡Γ τáßΓ«
- ºáúαπªáÑΓß∩ ß ñ¿ß¬á. ū߬«½∞¬π WinMain
- «Γ¡«ß¿Γѽ∞¡« ¡Ñóѽ¿¬á, σαá¡Ñ¡¿Ñ ÑÑ ó »á¼∩Γ¿
- ßπΘÑßΓóÑ¡¡« ¡Ñ ó½¿∩ÑΓ ¡á ñ«ßΓπ»¡δ⌐ «íΩѼ
- ú½«íá½∞¡«⌐ »á¼∩Γ¿.
-
- memory2.c
- æ«ñÑαª¿Γ Σπ¡¬µ¿ε MemoryInit. ū߬«½∞¬π φΓá
- Σπ¡¬µ¿∩ ¿ß»«½∞ºπÑΓß∩ Γ«½∞¬« »α¿ ºá»π߬Ñ
- »α¿¬½áñ¡«⌐ »α«úαá¼¼δ, ßÑú¼Ñ¡Γ, ß«ºñá¡¡δ⌐ ¿º
- φΓ«ú« ¿ßσ«ñ¡«ú« Σá⌐½á, ¼«ªÑΓ íδΓ∞
- ßíαáßδóáѼδ¼.
-
- memory3.c æ«ñÑαª¿Γ Σπ¡¬µ¿ε MemoryWndProc. ò«Γ∩
- ßÑú¼Ñ¡Γ, ß«ºñá¡¡δ⌐ ñ½∩ φΓ«ú« ¿ßσ«ñ¡«ú«
- Σá⌐½á, ¼«ªÑΓ íδΓ∞ ßíαáßδóáѼδ¼, Σπ¡¬µ¿∩
- MemoryWndProc, óÑα«∩Γ¡«, íπñÑΓ óδºδóáΓ∞ß∩ »«
- ¬αá⌐¡Ñ⌐ ¼ÑαÑ ΓᬠªÑ τáßΓ«, ¬á¬ Σπ¡¬µ¿∩
- WinMain. é φΓ«¼ ß½πτáÑ ßÑú¼Ñ¡Γ -
- »ÑαѼÑΘáѼδ⌐, á ¡Ñ ßíαáßδóáѼδ⌐.
-
-
- memory4.c æ«ñÑαª¿Γ Σπ¡¬µ¿ε About. ū߬«½∞¬π φΓá
- Σπ¡¬µ¿∩ óδºδóáÑΓß∩ αÑñ¬« (Γ«½∞¬« »α¿
- ¿¡ñ¿¬áµ¿¿ »á¡Ñ½¿ ñ¿á½«úá About), ¬«ñ«óδ⌐
- ßÑú¼Ñ¡Γ, ß«ºñá¡¡δ⌐ ñ½∩ φΓ«ú« ¿ßσ«ñ¡«ú«
- Σá⌐½á, ¼«ªÑΓ íδΓ∞ ßíαáßδóáѼδ¼.
- ───────────────────────────────────────────────────────────────
-
- é ¬áªñδ⌐ ¿ßσ«ñ¡δ⌐ Σá⌐½ ¡Ñ«íσ«ñ¿¼« ó¬½ετ¿Γ∞ Σá⌐½δ windows.h
- ¿ memory.h.
-
- 15.3.2 î«ñ¿Σ¿¬áµ¿∩ ó¬½ετáѼ«ú« Σá⌐½á.
-
- ìÑ«íσ«ñ¿¼« »ÑαѼÑßΓ¿Γ∞ «íΩ∩ó½Ñ¡¿Ñ »ÑαѼѡ¡«⌐ hInst ó Σá⌐½
- memory.h. ¥Γ« ñáßΓ πóÑαÑ¡¡«ßΓ∞ ó Γ«¼, τΓ« »ÑαѼѡ¡á∩ íπñÑΓ
- ñ«ßΓπ»¡á ó« óßÑσ ßÑú¼Ñ¡Γáσ. ÅÑαѼѡ¡á∩ hInst ¿ß»«½∞ºπÑΓß∩ ó
- Σπ¡¬µ¿∩σ WinMain ¿ MemoryWndProc.
- 15.3.3 ä«íáó½Ñ¡¿Ñ ¡«óδσ «»αÑñѽѡ¿⌐ ßÑú¼Ñ¡Γ«ó.
-
- ìÑ«íσ«ñ¿¼« ñ«íáó¿Γ∞ «»αÑñѽѡ¿∩ ßÑú¼Ñ¡Γ«ó ó Σá⌐½ «»¿ßá¡¿∩
- ¼«ñπ½∩ ñ½∩ «»αÑñѽѡ¿∩ áΓα¿íπΓ«ó ¬áªñ«ú« ¬«ñ«ó«ú« ßÑú¼Ñ¡Γá. ¥Γ«
- «º¡áτáÑΓ, τΓ« ¡Ñ«íσ«ñ¿¼« ñ«íáó¿Γ∞ «»ÑαáΓ«α SEGMENTS ó Σá⌐½ ¿
- π¬áºáΓ∞ ¬áªñδ⌐ ßÑú¼Ñ¡Γ »« ¿¼Ñ¡¿ ó »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ. ū߽Ñ
- ¿º¼Ñ¡Ñ¡¿⌐ Σá⌐½ «»αÑñѽѡ¿∩ ¼«ñπ½∩ íπñÑΓ óδú½∩ñÑΓ∞ Γá¬:
-
- Windows 3.0/pg/2#3 = 183 =
-
-
- NAME Memory
-
- DESCRIPTION 'Åα¿¼Ñα »α¿¬½áñ¡«⌐ »α«úαá¼¼δ'
-
- STUB 'WINSTUB.EXE'
-
- (1) SEGMENTS
- MEMORY_MAIN PRELOAD MOVEABLE
- MEMORY_INIT LOADONCALL MOVEABLE DISCARDABLE
- MEMORY_WNDPROC LOADONCALL MOVEABLE
- MEMORY_ABOUT LOADONCALL MOVEABLE DISCARDABLE
-
- (2) CODE MOVEABLE
-
- DATA MOVEABLE MULTIPLE
-
- HEAPSIZE 1024
- STACKSIZE 8182
-
- EXPORTS
- MemoryWndProc @1
- About @2
-
- é φΓ«¼ Σá⌐½Ñ «»αÑñѽѡ¿∩ ¼«ñπ½∩:
-
- 1) Ä»ÑαáΓ«α SEGMENTS «»αÑñѽ∩ÑΓ áΓα¿íπΓδ ¬áªñ«ú« ßÑú¼Ñ¡Γá:
-
- - æÑú¼Ñ¡Γ MEMORY_MAIN ß«ñÑαª¿Γ WinMain.
-
- - æÑú¼Ñ¡Γ MEMORY_INIT ß«ñÑαª¿Γ Σπ¡¬µ¿ε MemoryInit.
-
- - æÑú¼Ñ¡Γ MEMORY_WNDPROC ß«ñÑαª¿Γ Σπ¡¬µ¿ε «¬¡á.
-
- - æÑú¼Ñ¡Γ MEMORY_ABOUT ß«ñÑαª¿Γ Σπ¡¬µ¿ε ñ¿á½«úá.
-
- èáªñδ⌐ ßÑú¼Ñ¡Γ ¿¼ÑÑΓ áΓα¿íπΓ MOVEABLE, á ßÑú¼Ñ¡Γδ
- MEMORY_INIT ¿ MEMORY_ABOUT ¿¼ÑεΓ áΓα¿íπΓ DISCARDABLE.
-
- Åα¿ ºá»π᪥ »α«úαá¼¼δ ºáúαπªáÑΓß∩ Γ«½∞¬« ßÑú¼Ñ¡Γ
- MEMORY_MAIN. äαπú¿Ñ ßÑú¼Ñ¡Γδ ¿¼ÑεΓ áΓα¿íπΓ LOADONCALL,
- «º¡áτáεΘ¿⌐, τΓ« «¡¿ ºáúαπªáεΓß∩ »« ¡Ñ«íσ«ñ¿¼«ßΓ¿.
-
- 2) ò«Γ∩ ¬áªñδ⌐ ßÑú¼Ñ¡Γ ∩ó¡« «»αÑñѽѡ, óßÑ ªÑ ºáñáÑΓß∩
- «»ÑαáΓ«α CODE. ¥Γ«Γ «»ÑαáΓ«α «»αÑñѽ∩ÑΓ áΓα¿íπΓδ ½εíδσ
- ñ«»«½¡¿Γѽ∞¡δσ ßÑú¼Ñ¡Γ«ó, ¬«Γ«αδÑ ¬«¼»«¡«óΘ¿¬ ¼«ªÑΓ
- ñ«íáó¿Γ∞ ¬ »α¿¬½áñ¡«⌐ »α«úαá¼¼Ñ: ¡á»α¿¼Ñα, ßÑú¼Ñ¡Γδ,
- ß«ñÑαªáΘ¿Ñ Σπ¡¬µ¿¿ ¿ß»«½¡∩εΘÑ⌐ ß¿ßΓÑ¼δ æ, óδºδóáѼδÑ ó
- ¿ßσ«ñ¡δσ Σá⌐½áσ »α¿¬½áñ¡«⌐ »α«úαá¼¼δ.
- 15.3.4 î«ñ¿Σ¿¬áµ¿∩ Σá⌐½á make.
-
- ìÑ«íσ«ñ¿¼« ¼«ñ¿Σ¿µ¿α«óáΓ∞ Σá⌐½ make ñ½∩ «Γñѽ∞¡«⌐
-
- Windows 3.0/pg/2#3 = 184 =
-
- Γαá¡ß½∩µ¿¿ ¡«óδσ ¿ßσ«ñ¡δσ æ-»α«úαá¼¼. ū߬«½∞¬π φΓá »α«úαá¼¼á
- ß««ΓóÑΓßΓóπÑΓ ßαÑñ¡Ñ⌐ ¼«ñѽ¿, ¡Ñ«íσ«ñ¿¼« ¿ß»«½∞º«óáΓ∞ ¬½ετ -AM
- »α¿ Γαá¡ß½∩µ¿¿. ä½∩ ∩ß¡«ßΓ¿ ¡Ñ«íσ«ñ¿¼« Γá¬ªÑ ¿¼Ñ¡«óáΓ∞ ¬áªñδ⌐
- ßÑú¼Ñ¡Γ, ¿ß»«½∞ºπ∩ ¬½ετ -NT »α¿ Γαá¡ß½∩µ¿¿.
-
- ìÑ«íσ«ñ¿¼« Γá¬ªÑ ¿º¼Ñ¡¿Γ∞ ¬«¼á¡ñπ LINK ñ½∩ ¿ß»«½∞º«óá¡¿∩
- í¿í½¿«ΓѬ¿ ßαÑñ¡Ñ⌐ ¼«ñѽ¿ »á¼∩Γ¿ MLIBCEW.LIB ó¼ÑßΓ« í¿í½¿«ΓѬ¿
- ¼á½«⌐ ¼«ñѽ¿ »á¼∩Γ¿ SLIBCEW.LIB.
-
- Å«ß½Ñ ¿º¼Ñ¡Ñ¡¿⌐ Σá⌐½ make ñ«½ªÑ¡ óδú½∩ñÑΓ∞ Γá¬:
-
- memory.res: memory.rc memory.h
- rc -r memory.rc
-
- memory1.obj: memory1.c memory.h
- cl -c -AM -Gsw -Zp -NT MEMORY_MAIN memory1.c
-
- memory2.obj: memory2.c memory.h
- cl -c -AM -Gsw -Zp -NT MEMORY_INIT memory2.c
-
- memory3.obj: memory3.c memory.h
- cl -c -AM -Gsw -Zp -NT MEMORY_WNDPROC memory3.c
-
- memory4.obj: memory4.c memory.h
- cl -c -AM -Gsw -Zp -NT MEMORY_ABOUT memory4.c
-
- memory.exe: memory1.obj memory2.obj memory3.obj
- memory4.obj memory.def
- link4 memory1 memory2 memory3 memory4,memory.exe,,
- mlibcew libw,memory.def
- rc memory.res
-
- memory.exe: memory.res
- rc memory.res
-
- 15.3.5 Æαá¡ß½∩µ¿∩ ¿ ¬«¼»«¡«ó¬á.
-
- Å«ß½Ñ Γαá¡ß½∩µ¿¿ ¿ ¬«¼»«¡«ó¬¿ »α«úαá¼¼δ Memory ºá»πßΓ¿ΓÑ
- Windows, »α«úαá¼¼π Heapwalker (óσ«ñ¿Γ ó ß«ßΓáó SDK) ¿ »α«úαá¼¼π
- Memory. êß»«½∞ºπ⌐ΓÑ Heapwalker ñ½∩ »α«ß¼«Γαá αẽ¿τ¡δσ
- ßÑú¼Ñ¡Γ«ó »α¿¬½áñ¡«⌐ »α«úαá¼¼δ Memory.
- 15.4 çᬽετÑ¡¿Ñ.
-
- é ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ óδñѽ∩Γ∞ ¿ ¿ß»«½∞º«óáΓ∞ »á¼∩Γ∞
- ó ßαÑñÑ Windows. ū߬«½∞¬π Windows - φΓ« ¼¡«ú«ºáñáτ¡á∩ ßαÑñá,
- ¡Ñ«íσ«ñ¿¼«, τΓ«íδ óáΦá »α«úαá¼¼á ¬«ααÑ¬Γ¡« ¿ß»«½∞º«óá½á »á¼∩Γ∞
- ß«ó¼ÑßΓ¡« ß ñαπú¿¼¿ »α«úαἼἿ.
-
- èα«¼Ñ φΓ«ú«, ó ñá¡¡«⌐ ú½áóÑ «»¿ßá¡«, ¬á¬ ¿ß»«½∞º«óáΓ∞ ó
- »α«úαá¼¼Ñ ßÑú¼Ñ¡Γδ ñá¡¡δσ ¿ ¬«ñá.
-
-
- Windows 3.0/pg/2#3 = 185 =
-
- ä«»«½¡¿Γѽ∞¡πε ¿¡Σ«α¼áµ¿ε «Γ¡«ß¿Γѽ∞¡« π»αáó½Ñ¡¿∩ »á¼∩Γ∞ε
- óδ ¡á⌐ñÑΓÑ ó:
-
- Éáºñѽ Éπ¬«ó«ñßΓó«
- ───────────────────────────────────────────────────────────────
- ô»αáó½Ñ¡¿Ñ »á¼∩Γ∞ε Éπ¬«ó«ñßΓó« »α«úαá¼¼¿ßΓá, ú½áóá 16, "àΘÑ «í
- π»αáó½Ñ¡¿¿ »á¼∩Γ∞ε".
-
- öπ¡¬µ¿¿ π»αáó½Ñ¡¿∩ æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 1, ú½áóá 4,
- »á¼∩Γ∞ε "滿߫¬ Σπ¡¬µ¿⌐".
-
- Ä»ÑαáΓ«αδ Σá⌐½á «»- æ»αáó«τ¡«Ñ απ¬«ó«ñßΓó«, Γ«¼ 2: ú½áóá 10,
- αÑñѽѡ¿∩ ¼«ñπ½∩ "Ä»ÑαáΓ«αδ Σá⌐½á «»αÑñѽѡ¿∩ ¼«ñπ½∩".
-
-
-