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

    KAB-studio.h


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

    MF 2003/03/03(Mon) No.196
    zMF 3200 ( Mag2 + Pubzine )
  sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
  sF Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

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

EXVȂ
@cc߂ȂAT͋x܂āccB


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

2003/02/23 (Sun)
@ߑOɂقƂ́[`BPXC`fBXvCB˂Bߌ
dBS̓Iɔꃂ[hBȂȂĂσMQ[ۂBO
قƂ́[AC܂ccB

2003/02/24 (Mon)
@BoOȂ̑BĂقƂ́[B Web o
łƗLBvO~OnłFXB

2003/02/25 (Tue)
@S[XOŃoOoĒς炩CB̂Ƃ͂܂
B Java JɔYށBobNAbvc[ǂ邩Băv
O~O̓vł́H@ codian L΁B^_̂͗L
܂BϖGnH

2003/02/26 (Wed)
@ꂪȂB Java vOxCu悤ȂB
R~`B KSCL ߂łB Personal Firewall BR 
ADSL 낤ȂƁB AirH" s肾BȂq[gKCWFC
ĂccBďoŎЂւ̎݁BȑOɃtꂽŁccB

2003/02/27 (Thu)
@BLɌŗLoȂH@T[}
ĂȂȁ[B Ever17 A\BƏoȂȂBHtl
tBMABdfnI̐`ߌwŁB䂾B

2003/02/28 (Fri)
@oOׂɂBłĂ͋x߂܂B ADSL ɓ邩ǂ
B񂾂ǁA肽ƂςccB

2003/03/01 (Sat)
@CtQĂBsb`̃f[^AXgccBȂ
Ȃ񂾂ȂBUEXobNAbvƂBߌ
dBJBL̂܂Ƃ߁B}KƃvOAǂ
i߂Ă̂B


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

@Ź@A@|PO|

uAAȂIv
@BsƂ̒ɓAɂROO炢̏
т̏ΊŌ}BA̋꒎SCݒׂ悤ȕ\ɂ̏΂݂
ɕςB́u܁vƂԂڂɌāAm
ƂւƏ荞łB
@POȏ゠鋏Ԃ̔JÂ܂ȇ݂ɋCt
B
uAAccHv
@񂮂ƊJ܂܁A炪Ɛ񂷂BԂ̒[ɂ͂RO
C`̑^nCrWertĂAǂɂ͓V䂩琂
ꉺ悤ɂăAJ̃oXPbg{[⃁W[[Õ|X
^[Ɠ\ĂB
uA΂v
uȂ񂩁Accv
uccAĂ̑O^񂾊ꕨӂ̖ꒃd
āccv
uAF񂻂ȏɗ܂܂ŁAĂv
@قǂ̏ɑāAB͒̃e[u͂ōBS
Ԃ̕A܂܂ɍB@ɓ͂ȓA̖
o܂B
uAccHv
@́Aڂ̑OɕׂꂽɁAƂƂĂB
uȂȂ́AHv
uĂ̂\\́AЂԂ̋AȂv
@̌tAẑɕ͒Ԃ|Bꂾ
ԁA킢BāÅтAƊɌBʂ
΂݂𕂂ׂāA͎qpɂȂB
uccIv
uAt܂傤ˁv
@قǂ̏ARbvɃW[XŁASɓnĂB
u肪ƁA틏cc\\܁v
@߂Č悤ɁAzՂƍ߂āA͌B
uꂳcc܁v
@Ȃz󂯎~߂āAƂȂB̓OX
ɁASBꂳ틏vԂɉ̂ɁAؑN
qAĉŋ߉̂Ɂ\\B
@Ȃ񂾂AƂƐ̂ꏏ悤ȋCB
@āA܂ł\\B
uJp[CIIv
@RbvAĂɖB
                                                              ()


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
ẃ[x
uH@ǂ́Hv
w̕\Ȃĉ\͖{ł傤ccx
u܂t`ĂȂ݂A܂ĂȂ񂶂Ȃv
wh[x
uccv
wccȁAȂɁHx
uccl}Koˁv
wł傤IIx
uł낤ˁv
w[x
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

@Version 10.18
\̂̍\

uāA͂ƘeɂāA\̂ɂČĂ܂v
wO LPNMHDR  NM_TREEVIEW ̘bˁx
uBA\̂Ƃ̓|C^̘bv
wǂƁHx
ûԑςB܂_猾Ɓv

            NM_TREEVIEW* pstNmTreeView = (NM_TREEVIEW*)p_lParam;

uĂłꍇɂ́v

            NMHDR *pNmhdr = (NMHDR*)p_lParam;

uĂ邱Ƃł܂v
wꂪȂ̂ˁ[BȂ񂩑SRႤC񂾂ǁx
u|C^̓ȁBāÃeXĝ߂ɃeXgp֐
pӂĂB Version 4.01 ( No.051 ) Qlɂāv
weXg֐ˁ[AققBłȂŁHx
ueXg MFC gȒPBƂ肠v

void StructTest()
{

}

uĊɗpӂāA{^炱ꂪĂ΂悤ɂāv
wقx
uāA܂͊mFv

void StructTest()
{
    NM_TREEVIEW stNmTreeView;
    stNmTreeView.hdr.hwndFrom = 0;
    stNmTreeView.hdr.idFrom = 100;
    stNmTreeView.hdr.code = TVN_SELCHANGED;
    TRACE
        ( "%d, %d, %X\n"
        , stNmTreeView.hdr.hwndFrom
        , stNmTreeView.hdr.idFrom
        , stNmTreeView.hdr.code
        );
    // 0, 100, FFFFFE6E

    NM_TREEVIEW* pstNmTreeView = &stNmTreeView;
    TRACE
        ( "%d, %d, %X\n"
        , pstNmTreeView->hdr.hwndFrom
        , pstNmTreeView->hdr.idFrom
        , pstNmTreeView->hdr.code
        );
    // 0, 100, FFFFFE6E
}

wAȂ蒷Ix
uĒłȂƎvB܂A|C^Ȃʂ NM_TREEVIEW 
^ϐĂ̒ hdr ̒ɓKɒl܂v
w hdr  NMHDR ̂ˁx
uB hwndFrom ͑茳Rg[̃nhA idFrom ͂ 
ID A code ͒ʒmbZ[Wv
wēKł́Hx
uAeXgˁBŁA TRACE() ŏo͂ĊmFv
w FFFFFE6E  TVN_SELCHANGED Ȃ񂾂ˁx
uɁÂ܂ NM_TREEVIEW ̃|C^ɓ܂v
w|C^ɂ̓AhXāA{̂wAˁx
uA Version 4.10 ( No.060 ) 悭ǂݕԂāAC[W͂
Ăˁv
wĂƂ́A stNmTreeView ɒuĂāÄԍŏ
AhX &stNmTreeView Ŏ擾łāA|C^ 
pstNmTreeView ɓĂAĂƂˁx
uƁB΁A pstNmTreeView  stNmTreeView Ɠ
Ɏg邩B̂߂̃eXgŁAƓ悤 TRACE() ŏo
͂Ă܂v
w|C^̎ . Ȃ -> ˁB̂Ƃ̂ . Ă̂܂悭
킩Ȃccx
u pstNmTreeView->hdr ̌^́Hv
wA NMHDR łx
u̓|C^Hv
wႤcc . ĂƂȂ񂾂ˁx
uƁv
w͂ȂƂȂ񂾂ǂˁccx
uāAł͈CɊjS˂Ă݂܂v

void StructTest()
{
    NM_TREEVIEW stNmTreeView;
    TRACE( "%X\n", &stNmTreeView );
    TRACE( "%X\n", &( stNmTreeView.hdr ) );
    // 12F5F8
    // 12F5F8

    NM_TREEVIEW* pstNmTreeView = &stNmTreeView;
    TRACE( "%X\n", pstNmTreeView );
    TRACE( "%X\n", &( pstNmTreeView->hdr ) );
    // 12F5F8
    // 12F5F8
}

wƁA܂ stNmTreeView ̃AhXA stNmTreeView.hdr ̃Ah
XccāAȂ́IHHx
uA|CgB stNmTreeView ́Ał͂ӂ
uĂ܂v

[ NMHDR ][ UINT ][ TVITEM ][ TVITEM ][ POINT ]

wOoĂ̂ƓˁBAŏ NMHDR ccIx
u킩Hv
w &stNmTreeView  stNmTreeView ̐擪AhXB 
&( stNmTreeView.hdr )  stNmTreeView.hdr ̐擪AhXBł 
stNmTreeView.hdr  stNmTreeView ̍ŏɂ邩ccIx
uƁB\̂̒ɓĂϐ͍\̂̓Ă
łv
wŏ̏ɗ]ȃXy[X͂ȂĂƂˁx
uŏ̏ɂ͂ˁv
wHx
upfBOČČ̕ɓĂ邱Ƃ͂񂾂ǁA
܂x̋@ɒuĂāBŁA㔼̃|C^̕Ă炤ƕ
񂾂ǁA̓|C^̎v
w &stNmTreeView  pstNmTreeView Ȃ͓̂RˁA = œn
񂾂Bł &( stNmTreeView.hdr )  &( pstNmTreeView->hdr ) 
ēx
uƓbB pstNmTreeView->hdr ̎_łv
w stNmTreeView.hdr ƓĂƁHx
uƁB pstNmTreeView |C^AĂƂA 
pstNmTreeView->hdr ȂȂ̂AĂ厖v
wȂƂȂ킩ccȂƂȂǁx
uāAł͍ŏIiKv

void StructTest()
{
    NM_TREEVIEW stNmTreeView;
    stNmTreeView.hdr.hwndFrom = 0;
    stNmTreeView.hdr.idFrom = 100;
    stNmTreeView.hdr.code = TVN_SELCHANGED;
    TRACE
        ( "%d, %d, %X\n"
        , stNmTreeView.hdr.hwndFrom
        , stNmTreeView.hdr.idFrom
        , stNmTreeView.hdr.code
        );
    // 0, 100, FFFFFE6E

    NMHDR* pstNmHdr = (NMHDR*)&stNmTreeView;
    TRACE
        ( "%d, %d, %X\n"
        , pstNmHdr->hwndFrom
        , pstNmHdr->idFrom
        , pstNmHdr->code
        );
    // 0, 100, FFFFFE6E
}

wĂƂł闝Rˁx
uA͎΂킩邩ȁv

void StructTest()
{
    NM_TREEVIEW stNmTreeView;
    TRACE( "%X\n", &stNmTreeView );
    TRACE( "%X\n", &( stNmTreeView.hdr ) );
    // 12F5F8
    // 12F5F8

    NMHDR* pstNmHdr = (NMHDR*)&stNmTreeView;
    TRACE( "%X\n", pstNmHdr );
    // 12F5F8
}

wccAȂĂ[AAhXALXg
Ă邾x
u܂Ȃ񂾂ǁB́v

[ NMHDR ][ UINT ][ TVITEM ][ TVITEM ][ POINT ]

uv

[ NMHDR ]

uČĂĂƁv
w[A܂͌ȂĂƂˁx
uƁB NM_TREEVIEW ̍ŏ NMHDR Ă񂾂A
NM_TREEVIEW ̃AhX NMHDR ̃AhXƂĎgĂȂ
Ɓv
w炳݂ȂƂł̂ˁx
udvȂ̂́Áq݂ȂĂrĂv
wǂƁHx
uƂ΂ˁAƂłłv

void StructTest()
{
    NM_TREEVIEW stNmTreeView;
    RECT* pstRect = (RECT*)&stNmTreeView;
}

w RECT ccāAlp̊pĂ\̂ˁBccđSR
ȂHx
uႢ܂BłAƂłłB̏ꍇA NM_TREEVIEW 
̍ŏ̕ RECT \̂Ɓq݂Ȃārłv
wA|ccx
utɌƁA NM_TREEVIEW ̍ŏ̕ NMHDR Ɓq݂Ȃār삷
邱Ƃv
wccǍ NM_TREEVIEW ̍ŏ NMHDR Ă邩
q݂Ȃār삵ĂvĂ킩邯ǁA܂񂾁x
uƁB{̂ƂƁÂ͍sV
_B API ƂĂ邩dȂĂĂv
wȂ񂾁x
uA LPARAM  NMHDR ƂɃLXg邱Ǝ̊댯v
w΂ˁccx

/*
    Preview Next Story!
*/
wq݂ȂrĂȂ񂩂ˁx
û͂܂葼ɂ͂Ȃˁv
w͂ŖʔBƕGǁx
uGȏʔv
wƂ͎vȂccx
uhv
wƂ킯Ŏx
 Version 10.19 c[o[Ă݂悤 
uɂÂIv
w[Ȃ񂩂܂F߂Ȃx
uނނށHv


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

ER\ǎ
@Ƃ[킯ŕ\ǎPTxɂĂBށ[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 - 2003 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////

