/*
    KAB-studio.h
        @j`a|ŐTXVe
        i[ꂽwb_[t@Cłi΁jB

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

    MF 2001/02/19(Mon) No.095
    zMF 3900i Mag2 + Pubzine j
    sF ܂܂( URL: http://www.mag2.com/  ID: 0000012198 )
    sF Pubzine( URL: http://www.pubzine.com/  ID: 590 )
*/

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

Eo^C\ǎJ
@vtŋ}篕`グAo^CłǃAbvŎv킹Ԃ
ΔłB̂тɐgウԈႢȂI@_E[h CG 
Gallery ɂāB
[ CG Gallery ]
http://www.kab-studio.com/CG/Gallery/


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

ECodian Ƀy[Wǉ
@ Codian Ƀy[Wǉ܂B STL & iostream 傩 STL 
 #18 - #21 ǉB
[ Codian ]
http://www.kab-studio.com/Programing/Codian/


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

2001/02/11 (Sun)
@_ Codian BX[p[QTڃXyVŐ̂Ɏvy
B삪̂[B̑erFXBƃuh́B

2001/02/12 (Mon)
@QÕMeBMA[NX֎~()B_̐}Ao^C
ȉΔ`B˂B

2001/02/13 (Tue)
@o^C\ǎI@G蔲ĕ`ƂƂŒɂڂ
ƂƂ𓠁XƕĂ܂BɈꉞ_BQԂ
ăvgAEgB̃EFn[X()BĎ͂̕
ƂȂ񂩔߂ccB

2001/02/14 (Wed)
@_̐ȂA ATOK14 z[y[Wr_[UĂ݂B
ATOK14 ͂܂ǂǂȂ̂炸Bقނт͎vȏ
g₷BłĂ݂{NVOQ[I

2001/02/15 (Thu)
@AQÕMeBMA[NX֎~II()@[~ɍsđ_
oBтcɗŃ}EXpbh̘bB[ɂ͉̂Ȃb
B

2001/02/16 (Fri)
@ Codian 莞v̓dr葲_v[Ƃ
ɑZH

2001/02/17 (Sat)
@_v[𐧍B[{BVł܂Ƃ߂Ă̂͑
ρBƃerFXBj[Ăˁ`B


/*                         L̗JT                             */
http://www.kab-studio.com/Programing/KabuU/

2001/02/11 (Sun)
x

2001/02/12 (Mon)
ւ
ʒmbZ[W𓊂ẮH
bZ[Ŵ͖Ȃ
WM_COMMAND  LPARAM ʂQoCgɒʒmbZ[Wđ
TvR[h
WPARAM ̉ʂQoCgɃ{^ ID AʂQoCg BN_CLICKED 
WM_LBUTTONDOWN  WM_LBUTTONUP ̕@
TvR[h
NbN

2001/02/13 (Tue)
ւ
VC++ ̓_CAOփRg[QTT\tȂ
ύX@́H
ԂȂ
vWFNgj.rc JĒڏ邩
Create() 邩

2001/02/14 (Wed)
ՂƂ폑
EBhEY̎dlG
Platform SDK nǂ͑ς

2001/02/15 (Thu)
MSXML Parser ̃Tv
CxgnhƂĎKv邩NXKv
ISAXContentHandler CxgnhƂČĂяo
Jn^O startElement() A^O endElement() Ă΂
ׂ Unicode ŎĂ

2001/02/16 (Fri)
MSXML Parser 
Tv̓I[o[ChƕG
SAX  DOM  XML pp[T[ƂėL
MSXML ɂ͗ƂĂ炵
׋Ă Java Ƃłg邩
ւ
IWĩRg[@́H
ActiveX Rg[΂

z[y[W͑ǌ̂
⎞xH

2001/02/17 (Sat)
x


/*             vO~OET̒ǉP                 */
http://www.kab-studio.com/Programing/Dictionary/

EǉPF
#else DOS/V GP-IB

ET̏󋵁F
@T͂RPB_\QQȂŁA܂ł͂̂炢
ȁ[()B


/*                       ؂̗JT                           */
http://www.kab-studio.com/Programing/KanaU/

ev[g
#13 o֐̒`

@NXev[g̃o֐́A`NX̒ɏĂ邱
ƂƎv܂B

template< class type_MemVar >
class CTmplForMemFunc
{
public:
    type_MemVar MemFunc( type_MemVar p_MemVar )
    {
        return p_MemVar;
    }
};

@ʂɂȂႢȂĂ킯ȂłB`Oɏo
ꍇɂ́Â悤ɂ܂B

template< class type_Var >
class COutFuncDef
{
public:
    type_Var MemFunc( type_Var p_MemVar );
};

// `B
template< class type_Var >
type_Var COutFuncDef< type_Var >::MemFunc( type_Var p_MemVar )
{
    return p_MemVar;
}

@ĊɁA`ɂ template tāANXłev[g
w肷΁Ao֐`邱Ƃł܂B
@łAƖʓ|Bɑłނ񂾂ƂˁBRs[y[Xg
łȂɑςAĂ̂ӂɏȂR̂Ђ
B
@ɁA`ĂA`\[Xt@C̕Ɉڂ킯
ȂĂ̂R̂ЂƂB #09 Ō悤ɁAĂяoƂ
ɃRpC֐ev[g̎ȂgȂłB
烁o֐ǃwb_[t@CɒuȂႢȂ̂ˁB

@A`OɏoƂ肷ꍇ邩A
o֐OɏoĂ邩ȁBłAev[g
ɓĖőɂȂA̒o֐ď
̂ˁBǂ͒`ɏႤƂB typedef B
ˁB


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~[KCM]
uǂ悤Δccv
wǂ́Hx
uςȏ񂾂ǁv
wAÂ݁Hx
uꂪˁAl̖OƏZȂ񂾂I@eȂ񂩂v
weĂȂɂIx
uIHHv
ŵȂ񂾂A󂿂̎؂邵ȂȂccx
uāAႠΔ񂪑́Hv
wJĂ݁Hx
uccA`Rccv
_______________________________________________________________[KCM]


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

@Version 5.30
t@C_CAOgI

wRg[҂IA͂ȂɁHx
u܂̓t@C_CAOẮBK˂āccv

void CFileTestDlg::OnBtnShow() 
{
    m_cDataLstBox.ResetContent();

    std::ifstream cIFStrm;
    cIFStrm.open( "Data.txt" );
    if( cIFStrm.fail() )
    {
        MessageError( IDS_E_NOFILE );
        return;
    }

    int i;
    CString cDestStr;
    while( 1 )
    {
        cIFStrm
            >> i;
        if( cIFStrm.eof() )
        {
            break;
        }

        if( cIFStrm.fail() )
        {
            MessageError( IDS_E_NONINT );
            return;
        }
        cDestStr.Format( "%d", i );
        m_cDataLstBox.AddString( cDestStr );
    }
}

bool CFileTestDlg::MessageError(unsigned int p_puiID)
{
    const unsigned int iIDOffset = 1000;
    CString cStr;
    cStr.LoadString( p_puiID );
    CString cStrCap;
    cStrCap.LoadString( p_puiID + iIDOffset );
    MessageBox
        ( cStr, cStrCap
        , MB_OK | MB_ICONEXCLAMATION );
    return true;
}

w\{^Ƃ̃o֐ƁAG[\p̃o֐ˁx
u̒Ńt@C "Data.txt" ďłłBłzg
͎gRɕς悤ɂ邩v
wIԂŃt@C_CAOȂ񂾁Ix
uAyQƁz{^t@C_CAOoāAőI
t@Cyt@CzR{{bNXɏ܂悤ɂ܂v
wccĂ邾ƂȂ񂩓Ȃ񂾂ǁx
uȒPȒPI@܂́yQƁz{^̃nh֐āv
wo֐̂ƂˁBENbNŁccx
uڂ Ver 4.01 i No.051 jQƂɂˁv
wȂ̌ȂĂłB CFileTestDlg::OnBtnBrowse() ł
x
ut@C_CAO MFC  CFileDialog gΕ\ł܂B
肠gĂ݂܂傤v

void CFileTestDlg::OnBtnBrowse() 
{
    CFileDialog cFileDlg( TRUE );
    int iRes
        = cFileDlg.DoModal();
    if( iRes == IDCANCEL )
    {
        return;
    }

    CString cPathStr = cFileDlg.GetPathName();
    TRACE( "%s\n", cPathStr );
}

w񂶂rhĎsccAt@C_CAOoI@zg
ɊȒPˁ[x
uƂ肠t@CIł݂āyJzĂ݂āv
wقBÃt@Ĉox

C:\WINDOWS\1stboot.bmp

wIx
uAPsĂB܂ CFileDialog ^̕ϐ܂v
wRXgN^Ă֐ĂŁA TRUE nĂ񂾂ˁx
u TRUE ́yJz_CAOɂtOB FALSE ɂƁv
w_CAÕ^CgyOtĕۑzɂȂI@܂AJ
_CAOۑ_CAOĂƁHx
u䂱ƁBꂪ TRUE  FALSE ĂƂŌ܂邩v
wȒPČΊȒPˁB DoModal() ĂǂŌƂˁx
u DoModal() ̓_CAOۂɕ\郁o֐B FileTest.cpp
ŁqĂƁr_CAO\ƂłĂłv

    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
        // TODO: _CAO <OK> ŏꂽ̃R[h
        //       LqĂB
    }
    else if (nResponse == IDCANCEL)
    {
        // TODO: _CAO <LZ> ŏꂽ̃R[h
        //       LqĂB
    }

wI@Ă΂Ȃƃ_CAOoȂ񂾂ˁBŁA̖
lŁyOKz{^yLZz{^ĕ񂾂ˁBA
t@C_CAO̕ƂĂ񂾁Ix
uA DoModal() ̖߂l IDOK ȂyJz{^A IDCANCEL
ȂyLZz{^ꂽĂƁv
wt@C_CAO̕ IDCANCEL ƂI点Ăӂɂ
񂾂ˁBqĂƁr_CAÔƁA[ MFC ̂ƃX^CႤx
ul͂̕₷Ǝv񂾂ˁB IDCANCEL ̏ꍇɂ͓ɂ
邱ƂȂƂƂ return āA IDOK ̕厖炻
ʂɏăX^Cv
wܕςȂƎvǁccx
u if PdˁBxx`FbN悤ɂȂƁAl
Xgǂǂ[Ȃāv
w^uĉE̕ɗႤˁB͌ɂx
u܁A񂭂炢Ȃ炻ȂɕςȂǂˁv
wŁA IDCANCEL ȂȂ CFileDialog::GetPathName() ĂŁcc
̓t@CԂo֐Ȃ񂾂ˁx
uhCut@C܂őSˁB̂qtpXrČ
܂v
wӂςHx
u̗Ⴞ 1stboot.bmp ̓t@CA C:\WINDOWS\1stboot.bmp 
tpXBtpX̓hCu܂߂Ă̂A΂ǂ̂ǂ̃t@
C邩ˁv
wA 1stboot.bmp ƁAÕt@CȃtH
_ɂǂꂩȂȂႤ񂾂ˁx
u䂱ƁB̃tpX CString Ŏ󂯎āA TRACE() ŕ\v
wAۂɊȒPˁ[x
uAƋÂĂ݂悤BJtH_ĂǂHv
wȂ񂩎IɃ}ChLgɂȂĂǁx
uw肵܂傤v

void CFileTestDlg::OnBtnBrowse() 
{
    CFileDialog cFileDlg( TRUE );
    cFileDlg.m_ofn.lpstrInitialDir = "C:\\Windows\\";
// Ƃ͓B

wȒPI@m_ofn ăoϐ́ccx
úA lpstrInitialDir ăoϐɁqŏɕ\tH_̃p
X|C^ri[΂ĂƁv
woϐ̃oϐĂȂ񂩋ccx
u珇XɌĂΑvBŁA m_ofn Ă̂v
wt@X OPENFILENAME Ă̂Ȃ񂾂ˁx
uB̂ƂȂ񂾂ǁAt@C_CAO̕\ɂ̓zg
API g܂v
w MFC ֗Ɏg₷Ăė̃p^[ˁx
uAyJz_CAO GetOpenFileName() Ayۑz_CAO
GetSaveFileName() Ăяo܂v
w CFileDialog ƈĕʁXȂ񂾁x
uŁAĂяoƂɁAȐݒn̂ OPENFILENAME v
wȂ񂩂񂲂oϐłǁccx
uAȗłȂقƂǑSݒ肵ȂƓnȂˁv
wx
uŁA̒ lpstrInitialDir Ă̂ŊJtH_w肵܂v
w悤 CFileDialog ƓdgݎĂ邩炱g
FXłĂƂˁx
u䂱ƁBŏ̗݂ȒPɎgƂł邵Aӂ
Ɗg邱Ƃł邵v
w݂A API gĂ݂肵Ȃ́Hx
u܂łĂ̂́A MFC  API ĂяoĂ邾
ĂƂė~v
wꂪႦ΂́Hx
uƂ肠ˁBA API ĂԂ̂ɓ
肷邩BāAۂɂ̍ŏ̃tH_Ăǂɂ΂
vHv
wOJtH_Ix
uABł́qWXgrĂ̂gẮqOJ
tH_rۑȂႢȂv
wmĂI@WriteProfileInt() Ƃg񂾂ˁx
u Ver 3.19 ( No.044 ) łˁB̃WXgւ݂̏͂
ƂƁv
w[ǂ̃tH_J΂̂ȁccƂ肠̃AvƂHx
uAꂵĂ݂܂傤v

void CFileTestDlg::OnBtnBrowse() 
{
    CFileDialog cFileDlg( TRUE );
    char chPath[MAX_PATH];
    GetModuleFileName
        ( AfxGetInstanceHandle(), chPath, MAX_PATH - 1 );
    cFileDlg.m_ofn.lpstrInitialDir = chPath;
// Ƃ͂̂܂܁B

wƁA܂zĂˁB MAX_PATH ĂȂɁHx
u API Œ`Ă萔lB́At@C̃tpXāA 
MAX_PATH 傫ĎgȂłv
wĂƂ́A񂾂[tH_ƂAt@CƂ́x
u_ĂƁBȂŁA MAX_PATH ŕzƃt@C̃t
pX͐ΓĂv
w͈SB GetModuleFileName()  API ˁx
u͍sĂAṽtpX擾֐v
wA FileTest.exe ̃tpX񂾁x
uꂪQɓn邩A lpstrInitialDir ɓn΂njv
wȂقǂ˂x
uAłq߂ĊJtH_r̓Av̂ƂɂȂv
wႠǂHx
u}ChLgv
wȂɂIHx

/*
    Preview Next Story!
*/
w܂ǂ߂ƂIH@̃tH_Ȃ񂾂ǁx
ułvO~OS҂AṽtH_ėłƎvHv
whx
u}ChLgȂۑƂt@CU΂Ȃčςނv
wƂ킯Ŏx
 Version 5.31 R{{bNXƃGfBbg{bNX 
uɂÂIv
w[S҂ăJcNIIx
ul{͌ǁAtH_ƂȂl͎Rقǂ񂾂v


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

ECodian Ƀy[Wǉ
@ Codian Ƀy[Wǉ܂B STL & iostream 傩 
iostream  #21 - #24 ǉB
[ Codian ]
http://www.kab-studio.com/Programing/Codian/


/*                          ӁII                            */

Ẽ[ԐMȂłB
EӌE]Ez[`[ʂȓL]肨肭B
http://www.kab-studio.com/nikki2/
EvO~OɊւ鎿[L̗JT]ɂ肭B
http://www.kab-studio.com/Programing/KabuU/
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/

/*
    KAB-studio.h
    Weekly Mail Magazine.
    Written by Kaburaya Seiden.

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


/*                      See you next week!!                      */


