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

    KAB-studio.h


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

    MF 2002/12/16(Mon) No.186
    zMF 3450 ( Mag2 + Pubzine )
    sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine ( URL: http://www.pubzine.com/  ID: 590 )
*/
////////////////////////////////////////////////////////////////////

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

EقƂ́[ɂPbǉI
@Ol̃zbgn[uɂPbǉ܂I@
@Rl̋CccāA炵ȂłH
[ Ol̃zbgn[u ]
http://www.kab-studio.com/Comic/HotHerb/


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

2002/12/08 (Sun)
@PQ\ǎBȂJāAo܂H@͂܂`
ǁAȊOccB𑜓xႢ̂Ȃ̂ȂBF܁B
̂Ƃԃwb_[ĂււBuقƂ́[vŚBPob
NAbvB݃p̂΂ViIB삳āccB

2002/12/09 (Mon)
@BB Java ́uKvǂ邩B CG Gallery ̃qbg
܂ȂccB

2002/12/10 (Tue)
@ĂĂ܂B{vWFNgɑ̃vWFNgsđ
āB{[iX̓tHgVɏBtBMAėǂȂ̑B
u쌎VvBDHA͈AłŏI񂪋߂B

2002/12/11 (Wed)
@Gۂ֗̕BECCUedASRႤQ[BB
\BuffwwvƈꏏɁB΂ViIŌ邿lB

2002/12/12 (Thu)
@dZB Java āuV[Rs[vȒPɂłĂB
x݂ɃECCUedƂffwwwB Kanon ̓Tbc̐\݁B
Ƃ͂cuc邩ccB VC  Excel 𑀍삷@āH@ 
COM ܂𒲂ׂ̂B

2002/12/13 (Fri)
@W܂łdĂ牡lցBd͂܂͂ǂȂB
 Adobe Web Collection ̍w̓pXB

2002/12/14 (Sat)
@قƂ́[`ăECCāBABu݃pv΂ViI
NAB͒N`BĂƓ~E~ENX}Xł
B


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

@܏́@ω@|PS|

@ΐFJvZAN͌ĂBĂBAA
B
uƂ͌Ȃȁv
@xڂ̐Θa̖KɂAN͌ȂBAJvZ̒
gƌ߂ĂB΂𕂂ׂāBΘaAɂăJv
Z̒gB
@lpLтP[uɎlSꂽS̒jAł
łB̌`́AbƎv̂A͌ĊOւƂ
oȂB̂̕ɂ͕ϐFό`󂯂B
@Θa͖ڂ炵AN̕BŃAĕ\ς邱Ƃ
sY̋ꂵގpĂB
@sY]񂾂ƂȂ̂ƁAΘa͎ɌBx
ɁANC̓x߂ĊAāA
ǂ̈lł͂Ȃ̂ł͂ȂƍoB
@sY͌ĎȂȂB艻܂ŁAivIɂ̋ꂵ݂𖡂키
ƂɂȂBƂAsY`vƂȂȂ΁AX͗mɋ쒀
̂͊ԈႢȂB
@ABΘa̓JvZAN͏΂݂[߂B
@sY\B̓xAɋȂĂBlU킹
xɁAJvZɘc݂܂Aa݉𗧂ĂB
u܂ccǂ񂾂ˁȀԂ͊댯v
u艻̒łcc炭ˁv
@uԁAJvZӂUBKXЂюUAu^̏œ]
BΘa͕Ǎۂ܂ŌジB̊͐߂ĂB
@XƗΐF̗nt̒AleBƋCtƓɂ
͔ъ|BN͗ÂɏeAl̔̐FĂꏊIm
ɑ_BAsY̑̂ւƐԁB
@C͂܂BnʂւƓ|ꌌ𗬂sYɂЂeۂ
ށBe؂A}KWĂ鎞ԂΘaiƓ̒
Ɗ̂́AN̐oϐFɔĂ
B
@XCh߂ƂAsY͍ĂїオĂBܘA˂
BAȕǂeۂeԂB|̂悤ȕsY̍rɐ
܂Aꂪ̂BĂB
@N͏΂݂𕂂ׂ܂܏e\BAsY͂̂܂܂̏
Ŏ~܂ĂBāAƍ~낷B̌ɂ
̍sY̎X΂݂́AΘaɓfCÂقǂ̂̂B
uAvłv
@ĂAsY͎̑̂mFB炩ɁAlƂ͂܂
Ⴄ̂ɂȂĂB̂Ƃ߂ĒmAsY͎q̂悤Ɋ񂾁B
u߂łƂBN͏߂Ắccj㏉̂`@v
v
u͂A肪Ƃ܂v
@ӂ͎荇AΘáǍiMȂƑf
ɊB
                                                              ()


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
wN̗\́[Hx
uʂÃ}K͂x݁v
wȂ񂩋x݂đˁccx
u\͑Aɕς邯ǁAL͂ǂȂ邩ȁv
wxނɈ[Ix
u̍́Hv
wċx݁AXVł̂ɋx񂾂x
uˁAN͍XVłɂ킯v
wĂƂ͍XV邩ȂHx
uv
wcc\eLg[˂x
http://www.kab-studio.com/
_______________________________________________________________[KCM]


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

@Version 10.08
EBhENXƃAg

u͏dvȂǋCtȂႢȂƂЉ܂v
w܂[[ʓ|Ȃ̂ccx
u܂ˁA MFC gĂƂɂ͊֌WȂƂv
wx
uŁA̓EBhENX̘bv
w Version 10.02 ( No.10.02 ) łȂ񂩌Ăˁx
uƂ킯ŁA܂͂ƂCĂ炢܂v

// EBhENXo^܂B
bool RegistWndClass
    ( const char *const p_pchWndClassName
    , HINSTANCE p_hInstance
    )
{
    // EBhENXo^p\́B
    WNDCLASSEX stWndClassEx;
    stWndClassEx.cbSize = sizeof( stWndClassEx );
    stWndClassEx.style
        = CS_BYTEALIGNWINDOW | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
    stWndClassEx.lpfnWndProc = WndProc;
    stWndClassEx.cbClsExtra = 0;
    stWndClassEx.cbWndExtra = 0;
    stWndClassEx.hInstance = p_hInstance;
    stWndClassEx.hIcon = LoadIcon( NULL, IDI_EXCLAMATION );
    stWndClassEx.hCursor = LoadCursor( NULL, IDC_ARROW );
    stWndClassEx.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
    stWndClassEx.lpszMenuName = NULL;
    stWndClassEx.lpszClassName = p_pchWndClassName;
    stWndClassEx.hIconSm = LoadIcon( NULL, IDI_EXCLAMATION );

    // EBhENXo^܂B
    ATOM wAtom = RegisterClassEx( &stWndClassEx );
    if( wAtom == 0 )
    {
        // s܂B
        return false;
    }

    return true;    
} 

wEBhENXo^֐ˁx
uB RegisterClassEx() Ăł镔ƕς܂v
w߂lϐɓĂˁBł ATOM ĂȂɁH@AgH@
AgHx
ũAgȂ̃Ag͂Ƃ肠uƂƂāÃAg
EBhEYVXeŎgȂ̂̂ЂƂv
wHx
uAȂ́B͂ꂪB܂́cc Spy++ āv
wقx
uEBhEꗗāv

0003008A "" TasKABWClass

učsɏĂłv
w "" ĂȂĂ̂邯ǁx
u̓EBhEĂȂEBhEv
wAăEBhEȂ񂾁BĂƂ͂̉Ếccx
uEBhENXv
w܂肳 RegisterClassEx() œo^̂ˁx
uEBhENX̂Ď͂قǏdvȂ񂾂ǁA
ӂɁqЂƂ̃EBhErɂȂĂ邩AӖł͓o
^Ƃ̃EBhENX͏dvv
wĂƂ́AđƂԂႢȂIH@߂ǂ[x
uAԂĂvBƂ΁ccv

// ŏɌĂ΂֐łB
int WINAPI WinMain
    ( HINSTANCE p_hInstance
    , HINSTANCE p_hPrevInstance
    , LPSTR p_pchCmdLine
    , int p_iCmdShow
    )
{
    // ̍sCB
    const char pchWndClassName[] = "BUTTON";
    
    bool bRes
        = RegistWndClass( pchWndClassName, p_hInstance );
    if( bRes == false )
    {
        return -1;
    }
    
    bRes
        = CreateAndShowWnd
            ( pchWndClassName 
            , p_hInstance
            , p_iCmdShow
            );
    if( bRes == false )
    {
        return -1;
    }
    
    return MessageLoop();
}

uĊ pchWndClassName A܂EBhENX BUTTON 
Ă݂āv
wāA BUTTON ă{^̃EBhENXȂIx
u Version 5.25 ( No.090 ) Ń{^ۂɍĂƁA
v
wĂłH@{^ƂĂEBhENXo^Ă
ccǑvȂ́Hx
uBĂ݂āv
wقArhĎsBASRȂx
úAEBhENXɂ́qO[orȂ̂Ɓq[JrȂ
邩v
wO[oƃ[JHx
uʂɓo^EBhENX́Áq[JrȃEBhEN
XŁÃAvp̂̂Ȃłv
wĂƂ́ÃEBhENXƂԂĂ񂾁x
utɔႢȂ̂́qO[orȃEBhENXB BUTTON 
݂ɃEBhEYVXeŜŎg悤ȃEBhENX̓O[
oȃEBhENXƂēo^Ă邩v
włAvŎgƂɂ͖ȂAƁx
u܂ˁBłԂႤ̂͂ԂႤB Spy++ ł̃Av
̃EBhENXĂ݂āv
wʂ BUTTON ɂȂĂˁBȂ񂩍̌ɂȂ肻x
uł傤B͂łˁBAMFC ̃Av́ccƂ VC++ 
̃EBhENX́v
wA AFX:Ȃ񂽂炩񂽂Ă킯Ȃ̂ɂȂĂx
uӂɂđƔȂ悤ɂĂłv
wł̓_ȁccx
u܂łxăAvɋ߂̂Ȃ炽ԂȂ낤
낤ǂˁBԂ̂|ꍇɂ́AO[õEBhENXo
^Ă݂ĕ@v
wO[o BUTTON o^悤ƂƁHx
uG[ɂȂ邩BĂ݂悤v

// EBhENXo^܂B
bool RegistWndClass
    ( const char *const p_pchWndClassName
    , HINSTANCE p_hInstance
    )
{
    // EBhENXo^p\́B
    WNDCLASSEX stWndClassEx;
    stWndClassEx.cbSize = sizeof( stWndClassEx );
    stWndClassEx.style
        = CS_BYTEALIGNWINDOW | CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW
        | CS_GLOBALCLASS;    // ǉB
    stWndClassEx.lpfnWndProc = WndProc;
    stWndClassEx.cbClsExtra = 0;
    stWndClassEx.cbWndExtra = 0;
    stWndClassEx.hInstance = p_hInstance;
    stWndClassEx.hIcon = LoadIcon( NULL, IDI_EXCLAMATION );
    stWndClassEx.hCursor = LoadCursor( NULL, IDC_ARROW );
    stWndClassEx.hbrBackground = (HBRUSH)COLOR_BACKGROUND;
    stWndClassEx.lpszMenuName = NULL;
    stWndClassEx.lpszClassName = "BUTTON";    // ύXB
    stWndClassEx.hIconSm = LoadIcon( NULL, IDI_EXCLAMATION );

    // EBhENXo^܂B
    ATOM wAtom = RegisterClassEx( &stWndClassEx );
    if( wAtom == 0 )
    {
        // s܂B
        OutputDebugString( "EBhENXo^ɎsI\n" );
        return false;
    }

    return true;    
} 

u܂ WNDCLASSEX::style  CS_GLOBALCLASS ǉ܂BƁv
wEBhENXO[oɓo^AƁBŁA BUTTON ăEB
hENXœo^ƁccArhĎsBAqEBhE
NXo^ɎsIrďox
uĊɂȂ܂BO[oɂȂ CS_GLOBALCLASS ǉ
΂ĂƁv
wEBhÉH@CreateWindow() ͉ȂĂ񂾁x
uEBhENX̓[JȂ̂猟āAȂO
[oTAĂdg݂ɂȂĂ邩v
w[BccłAہAԂႤƂĂǂ΂́Hx
uƂ́AvOłԂĂ邩ǂׂ΂
B ATOM oĂ܂v
wƏoĂˁA RegisterClassEx() ̖߂lx
u̓EBhEVXeŎg鐮lŁAqЂƂ
݂ႢȂ́rɗ^鐔łv
wHx
uƂ΁A{^̃EBhENX BUTTON o^ꂽA 
RegisterClassEx() ̖߂lƂāA BUTTON Ɋ蓖Ăꂽ ATOM 
lԂĂ܂B GlobalFindAtom() Ŏ擾ł܂v

    ATOM wButtonAtom = GlobalFindAtom( "BUTTON" );

uo^΁AEBhEYVXeœ BUTTON ĖOœo^
łȂȂ܂BāA BUTTON ĕ񂩂K ATOM l
擾ł܂v
w[A[ɃEBhENX ID io[Ȃ񂾁x
uƁBÅ֐Ăło^ς݂v
wccHx
uEBhENXƂςāA܂֐ŌāA
炿ƕςāAȂo^v
w߁A߂ǂccx
u܂Aʂ̓[JȃEBhENXŏ\Ǝvv
ẃ[x
uAAC͑Sn߂̏Ԃɖ߂ĂĂv
whȂƃAvȂccāA ATOM ̘bĂꂾ
Hx
u͂ꂾBAgāA܂A{̓EBhENXȊOɂg
Ă񂾂ǁAłgĂȂ菭Ȃccv

/*
    Preview Next Story!
*/
wȁAقƂǎgȂ̂mȂႢȂ́Hx
u[AȂƌ MFC gĂ΂ƂɂȂ邵v
wꂶ_́Hx
uςA MFC gȂĂAvȂƁv
wȂ񂩁ÂςȂƂ悤ƂĂCĂccx
uƂ킯Ŏv
 Version 10.09 j[ӂ 
wɂÂIx
uj[ MFC gΊȒPˁv
w悻[IIx


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

EقƂ́[ǉ\
@Ol̃zbgn[uɂPbQbǉ܂BR͍͂ɏI
ႢccǎԓIɖ߁H


////////////////////////////////////////////////////////////////////
/*                          Ӂ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 - 2002 ALL RIGHTS RESERVED.
        http://www.kab-studio.com/
        info@kab-studio.com
*/
////////////////////////////////////////////////////////////////////

