////////////////////////////////////////////////////////////////////
/*

    KAB-studio.h


    (C)KAB-studio 1999 - 2001 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com

    MF 2001/10/29(Mon) No.130
    zMF 3780 ( Mag2 + Pubzine )
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
/*              QOOPNPOQXij̍XV                */
http://www.kab-studio.com/

EKAB-studio.h kōXVB
@KAB-studio.h  130 ɂȂŏkłXV܂B #pragma 
twice  grep ̂ɍœKBwǓo^Ăl_E[h
傤B_E[h̓_E[h[ɂ
[ _E[h[ ]
http://www.kab-studio.com/Freeware/index.html#MailMagazine

ENWɃNǉB
@NɃNǉ܂Bǉ͉̂̉ In JapanBf[^
x[X CD-ROM ̑ȂǁA Tips Ă܂`B
[ N ]
http://www.kab-studio.com/Info/Link/


////////////////////////////////////////////////////////////////////
/*                        `[ʂȓL                        */
http://www.kab-studio.com/nikki2/

2001/10/21 (Sun)
@񏈗I@yƎvˑR̃nvjOI@̋n~
ꂽ̂́cc Java H@ŋA PS2 Ă܂B DOA2 
܂BȂ񂾂ȂB

2001/10/22 (Mon)
@d̓vO~OAB߈B DOA2 肷ӁA
{̃CXgBăGiƃz[h΍B

2001/10/23 (Tue)
@ƕ׋CBd̓~[eBOēˊэHŎ쐬Aߌ
͋qցBAɃ[HׂƂƏoccBdC~ѕzA|
CgB

2001/10/24 (Wed)
@d͍̂܂Ƃ߁Bŋ߂ƁA͗͗ccBߌ
~[eBOBȂ񂾂ǂǂςȂƂɁccBȂ񂩂wƃqJ̌
ƁccɌҁccB

2001/10/25 (Thu)
@ߑO͂̂тAߌ͔ѓŖZȂBINĕ֗
ǍccBAɂԂƉlցB~ DVD ł˂B
͎cƋxołȂɑB͏o炻Jo[Băzb
gn[u Java Bύ̓tbVłH

2001/10/26 (Fri)
@OQ[Ď̓ɓL̂ƁBd̓vÓBN
XΊyǂłȂBċAۂɋ}ȎdA
ꂤ̎dႤ`B݂Ă DOA2 BQt[B
TCYImɂ́H@WM_EXITSIZEMOVE ăbZ[W݂
B

2001/10/27 (Sat)
@RCh[HރtNQJ[ƃE^_kC DOA2 
ԃwb_[QYEFƓɑZBtN͊GƉyǁBR
R}قׂ͍Ƃ|CgB͍ C ^̉̌Ă\
肾񂾂ccB WM_EXITSIZEMOVE BbZ[WƂ API Ƃ
˂B


////////////////////////////////////////////////////////////////////
/*                         A                             */
http://www.kab-studio.com/Novel/Fuga/

@́@Nӂ@|PO|

uIv
@n͊グAN͉B
u~߂Ăv
@̖߂ŎԂ͘eɎ~߂AŃAǂ݂Ƃ낤ƂĂB
͖ق܂܂B
uӊOƋ߂łBԗɐςł܂B̑ÔƂ́AԊ
Ⴂ܂v
ukvV[YȂ̂Hv
u܂BȂOقǂ̗͂ȂƂ͊młv
uccVloĂ݂邩v
@N͋A|PbgogтĂĎ~߂B
uޏ͂܂܂I@eXgȂfBgɂ΁Iv
uقƁ[ɁAv̂Hv
@ɂƌ߂āAŃAƂȂB
uccfBǵÂ悤ȎsXnł̐퓬ɂ͌܂ccł
AVl͂܂ɓĂ܂BlƂ͈Ⴄłv
u`o̓Vl悾v
uႻł傤Aޏ̓ZJho[WȂ̂łI@ĺA
ޏɓ邱Ƃɂ΂łv
uꂶ႟Ȃ̂߂ɍ񂾂Ȃȁv
uccv
@ŃAΌقǂĂBMÄӌsтȂ
ƂmĂBB̑ݗRAȂɂ̂\\S
ȎRȂǁA͂Ȃ̂ɁB
u܁Av
@āANւƏ΂񂾁B
uccv
ukvȂƂ΁A댯͔BɁASႤ݂
BɁcc̓l̗͂Ɗm߂Ăˁv
@N͂ςƊ𖾂邭B
u႟AlsĂ܂I@̓lɂȂĂ͍܂̂ˁv
uA񂾁cc܁AȂɋ}KvȂH@Ԃ
sv
uccAsłHv
@N͉^]ɓāAԂ͑oBʁAuv
ւƍsƎvw͂ȂBAʒiƂɒĂ
ƂvȂB̒jɊւẮANɂȂƂB
@̒j͉҂Ȃ̂낤BNɐuĂm҂͂ȂBf[^
ĂڂĂ͂ȂB邱ƂȂBm荇
AƂ炱́unvB
@Ȃ񂾂񂾌Ă̐lɓオȂ̂́AĂ邩
炩ȂBƂ͂A͎ۂɊ̂łȂAM
ɒlȂ͂Ȃ̂ɁccB
uIv
@Ȃ荶͂āANւƏ΂݂B
úAǂĂVl̏ԂBłAVlNT
|[ĝƌ̂͂ǂȁHv
utȂ炢łv
utƂƁHv
uVlT|[głv
u[A܁ABČĂAƂ肠{l[΂
ȁv
@Ȃ̒j́u߁vȂ̂낤BKbAkAČ
Bl΂΂̌fƕB́Alɋ|Ă
炩H@ہAAccB
@͌gт肾AyɔԍIłB
                                                              ()


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
u[W͉p region Aq̈rĈӖBfoCXccv
wA󂿂AĂ̂đ扽Hx
uƁA@Ver 7.11 ( No.131 ) ˁv
wāAȂ񂩂ăMM߂ȂIHx
u΂ˁBŋ߉ƖZ݂v
wTԂ̓yāAȂ񂩒ׂĂˁx
ułOŃQ[Ƃ͎ƎċCccv
wccȂłՂƂx~ƂȂˁccx
u͂ȂłBdz[y[W̕厖݂v
w܁[Ã}KՂƂȂȂ牽cȂˁx
uāAqgSg݂Ɂv
w͂A炠̏oԂSRȂIH@C[Ix
uΔ͂܂Ǝv񂾂ǂˁccYꋎꂽlccv
http://www.kab-studio.com/
_______________________________________________________________[KCM]


////////////////////////////////////////////////////////////////////
/*                       #pragma twice                            */
http://www.kab-studio.com/Programing/PragmaTwice/

@Version 7.10
ȕ`惂[h

uOAOX C++ ̕SǁA̓foCXReLXg
̘bɖ߂܂v
wH@ȒPHx
uȒPȕƎvB܂v

void CAnimeDlg::OnBDraw() 
{
    HDC hCanvasDC = ::GetDC( m_cCanvasStatic.GetSafeHwnd() );
    HBRUSH hBrush = CreateHatchBrush( HS_CROSS, RGB( 0, 0, 255 ) );
    HBRUSH hOldBrush = (HBRUSH)::SelectObject( hCanvasDC, hBrush );

    ::Ellipse( hCanvasDC, 10, 10, 80, 50 );
    // E 10 炵Ăx`܂B
    ::Ellipse( hCanvasDC, 20, 20, 90, 60 );

    ::SelectObject( hCanvasDC, hOldBrush );
    ::DeleteObject( hBrush );
}

wH@OɎ̂ˁx
uuVpӂđȉ~`ẮB̓y͓ɏdvȂ
gĂȂǂˁv
wA CreateHatchBrush() gĂB҂ݖڂ̂ˁx
uÁq҂ݖڃuVr邽߂̂́BP HS_CROSS 
nĂ邩A͏c̕҂ݖځv
wt@XƎ΂߂Ȃ񂩂݂ˁBłꂾccx
u܁Â͂Ƃ}pˁBŁȂȉ~AЂƂ
߂̂POhbgEɂЂƂ`Ă܂v
wȉ~ӂd˂ĕ`Ă킯ˁBłꂪHx
uĂ݂āv
wقsBAӂȉ~dȂĂˁBccH@łA҂
ڂ̌ԂĉČȂ񂾂ˁx
uA|CgB́Áqwi[hrqČȂ
[hrɂȂĂłv
wĂƂ͓Č郂[hɂȂHx
u䂱ƁBς API  SetBkMode() v

void CAnimeDlg::OnBDraw() 
{
    HDC hCanvasDC = ::GetDC( m_cCanvasStatic.GetSafeHwnd() );
    HBRUSH hBrush = CreateHatchBrush( HS_CROSS, RGB( 0, 0, 255 ) );
    HBRUSH hOldBrush = (HBRUSH)::SelectObject( hCanvasDC, hBrush );

    // Ŕwi[hύXB
    ::SetBkMode( hCanvasDC, TRANSPARENT );

    ::Ellipse( hCanvasDC, 10, 10, 80, 50 );
    ::Ellipse( hCanvasDC, 20, 20, 90, 60 );
    ::SelectObject( hCanvasDC, hOldBrush );
    ::DeleteObject( hBrush );
}

wAIx
 transparent ͉pŁqrĈӖBȂ݂ɃftHg̓hׂ
[hɂ鎞 OPAQUE B opaque ͕sĈӖv
wIx
u{Psv
wBccH@łA悭ƂȂ񂩕ρx
uǂ̕ӂHv
w[ccAȖ͗lĂȂI@[̂ƈꏏɕł݂
x
uȂ񂾂ˁ[B̓foCXReLXg̎dlŁA`ꏊ
ĂAuV̖͗l͂Ȃ񂾂ˁBv

    ::Ellipse( hCanvasDC, 13, 13, 83, 53 );

uĂӂ߂̑ȉ~Ƃ炵Ăv
w҂ݖڂȂccx
u܁Aς肿Ƃ͗l`ȂA̎gȂ
ĂƂv
wӁ[BAƂЂƂB OPAQUE ͓Ȃ񂾂ˁB
ĂƂ͕҂ݖڂ̌Ԃ̐FĂǂȂẮH@yƃuVȊOŎw
肷́Hx
uA͂܂ʂ SetBkColor()  API Ŏw肵܂v

void CAnimeDlg::OnBDraw() 
{
    HDC hCanvasDC = ::GetDC( m_cCanvasStatic.GetSafeHwnd() );
    HBRUSH hBrush = CreateHatchBrush( HS_CROSS, RGB( 0, 0, 255 ) );
    HBRUSH hOldBrush = (HBRUSH)::SelectObject( hCanvasDC, hBrush );

    // ŔwiFύXB
    ::SetBkColor( hCanvasDC, RGB( 255, 0, 0 ) );

    ::Ellipse( hCanvasDC, 10, 10, 80, 50 );
    ::Ellipse( hCanvasDC, 20, 20, 90, 60 );
    ::SelectObject( hCanvasDC, hOldBrush );
    ::DeleteObject( hBrush );
}

wA҂ݖڂ̌Ԃ^ԁIx
u SetBkColor() ́qwiFrς́BPɑȉ~łAy
ƃuVƂ̔wiF̂RF߂KvĂƂȁv
w͓Aˁx
u䂱Ɓv
wccłA API ̖OAȂ񂩍x
uH@ǂƁHv
wĂA SetBkColor() ȂČAʁALoX̂̂
FςĎvȂHx
u͂B SetBkMode() LoX̂̂𓧖ɂ
ˁv
wBłÁqwirāA悤ɂꂩhȉ~Ƃ
̂̔wiAĂ킯Ȃ̂ˁx
uƂˁB̕ӂAfoCXReLXg̃NZv
ẃAЂƂЂƂĂȂႢȂ킯ˁccx
uAɉĂ炢܂傤v
wx
uƂ킯ŁAx́yX^Iy[VzĂ[́v

void CAnimeDlg::OnBDraw() 
{
    HDC hCanvasDC = ::GetDC( m_cCanvasStatic.GetSafeHwnd() );
    HBRUSH hBrush = CreateHatchBrush( HS_CROSS, RGB( 0, 0, 255 ) );
    HBRUSH hOldBrush = (HBRUSH)::SelectObject( hCanvasDC, hBrush );
    ::Ellipse( hCanvasDC, 10, 10, 80, 50 );

    // ŃX^Iy[Vݒ肵܂B
    ::SetROP2( hCanvasDC, R2_BLACK );

    ::Ellipse( hCanvasDC, 20, 20, 90, 60 );
    ::SelectObject( hCanvasDC, hOldBrush );
    ::DeleteObject( hBrush );
}

wAӂ߂̑ȉ~^Ix
u SetROP2() ̑Q R2_BLACK nƁAF̃yuV
ĂĂ^ɂȂႤłv
wBŁÃX^Iy[VĂȂȂ́Hx
upŏ raster operation B raster ́qʂ̊iqrĈӖB
cɃhbgł̂̂̂Ďȁv
w܂hbgGĂƂˁccx
u operation ͑B܂胉X^Iy[V́qsNZ̑r
ĈӖv
wȖO̊ɂ́ccx
u ROP BŁA ROP ɂ͊ȒPȂ̂畡GȂ̂܂ł񂾂
ǁAŎgĂ͈̂ԊȒP ROP2 ăO[vv
wȒPA^Hx
uA킯ȂǁAłVvȂ̂B^
hׂ R2_WHITE ƂAƃftHg̕ʂɓhׂ R2_COPYPEN 
v
w SetROP2() Ƒɂ\邯ǁA͂茾ĈӖ
̑Bǂ̂Ȃ́H@Ƃ R2_NOT ƂBےHHx
u R2_NOT ́AwiFqt̐Frɂ́BƂΔ͍A͉
Fv
w͍A͕邯ǁA͉FāccȂ́Hx
ut̐FĂ̂́A RGB eFŁA 0  255 A 100  155 ݂A
256 ̐^񒆂ŋt]FĎB RGB( 0, 0, 255 ) ŁAF
RGB( 255, 255, 0 ) v
wȂ̂ˁx
u܁Â͂ǂĂƔp̘bBɂ́ccv

void CAnimeDlg::OnBDraw() 
{
    HDC hCanvasDC = ::GetDC( m_cCanvasStatic.GetSafeHwnd() );
    HBRUSH hBrush = CreateHatchBrush( HS_CROSS, RGB( 0, 0, 255 ) );
    HBRUSH hOldBrush = (HBRUSH)::SelectObject( hCanvasDC, hBrush );

    ::SetBkColor( hCanvasDC, RGB( 0, 255, 0 ) );
    ::Ellipse( hCanvasDC, 10, 10, 80, 50 );

    ::SetROP2( hCanvasDC, R2_MASKPEN );
    ::SetBkColor( hCanvasDC, RGB( 255, 0, 255 ) );

    ::Ellipse( hCanvasDC, 20, 20, 90, 60 );
    ::SelectObject( hCanvasDC, hOldBrush );
    ::DeleteObject( hBrush );
}

wdȂĂƂIx
u R2_MASKPEN ́AFhd˂ĂɔZ܂Bt R2_MERGEPEN 
́Ahd˂Ƃɔ܂v

void CAnimeDlg::OnBDraw() 
{
    HDC hCanvasDC = ::GetDC( m_cCanvasStatic.GetSafeHwnd() );
    HBRUSH hBrush = CreateHatchBrush( HS_CROSS, RGB( 0, 0, 255 ) );
    HBRUSH hOldBrush = (HBRUSH)::SelectObject( hCanvasDC, hBrush );

    ::SetBkColor( hCanvasDC, RGB( 0, 0, 0 ) );
    ::Ellipse( hCanvasDC, 10, 10, 80, 50 );

    ::SetROP2( hCanvasDC, R2_MERGEPEN );
    ::SetBkColor( hCanvasDC, RGB( 0, 0, 255 ) );

    ::Ellipse( hCanvasDC, 20, 20, 90, 60 );
    ::SelectObject( hCanvasDC, hOldBrush );
    ::DeleteObject( hBrush );
}

wzgAȂx
u R2_XORPEN ȁv
wƂȂ R2_NOT ɎĂccǂƈႤˁx
uȒPɌƁA R2_XORPEN ́AhFƔwi̐FĂΔɋ߂
ĔȂāAtɐF߂ƍɋ߂ÂĔZȂ܂v
w₱ccx
u܁A͂܂gȂłBŁAƂ͂̑gݍ킹v
wĊȒPɌǁA͂茾Ă悭ȂHx
uĂ[ۂɂ͂܂gȂƎvBƂ CG \tg
GetPixel() ŐFEč SetPixel() A݂ȂƂĂ
vv
wނ낻̕₷ccx
ufoCXReLXg̋@\ĐFX邯ǁAGȋ@\
́A{IȂƂ̉p̕ˁv

/*
    Preview Next Story!
*/
wĂ[AăfoCXReLXgĎgɂȂHx
u͌邩By̕tւƂςˁv
w ROP Gx
ułAׂƂł邩C邩Ă̂́v
wƂˁ[BāA CG ̕׋ȂႢȂłHx
uƂɂȂˁv
wƂ킯Ŏx
 Version 7.11 NbsOł͂ݏoȂI 
uɂÂIv
wǂĂĂĕ`Ȃ̂ˁ[x
uA׋͕KvȂv


////////////////////////////////////////////////////////////////////
/*              QOOPNPPTij̍XV\              */
http://www.kab-studio.com/

E\ǎPPo[WɁB
@PA\ǎPPo[Wɂ܂B͂ԂAL
҈ȊO͒mȂ敗ɂȂƎv܂B܁Â``
ƂŁB


////////////////////////////////////////////////////////////////////
/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.com/nikki2/
EwǓo^Ƃɂ͂̃y[WōsȂĂB
http://www.mag2.com/m/0000012198.htm
http://www.pubzine.com/detail.asp?id=000590
E͎ōsȂĂB
EobNio[͂̃y[Wɂ܂B
http://backno.mag2.com/reader/Back?id=0000012198
http://www.kab-studio.com/Freeware/index.html#MailMagazine


////////////////////////////////////////////////////////////////////
/*
    KAB-studio.h
      Weekly Mail Magazine.
      Written by Kaburaya Seiden.
      http://www.kab-studio.com/Info/MailMagazine/

    (C)KAB-studio 1999 - 2001 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////
