////////////////////////////////////////////////////////////////////
 ---= Ɩp^_[c}Vu_[cC[Ov

ȂɏĂhȋƖ}VI
_[c}VݒułƂ҂B

ł邾ȃXy[XŁAɒu_[c}Vɂ܂B
wMtgV[ViReXg܎܁Ix
http://af1.mag2.com/m/af/0000008658/001/s00000001980002/006
////////////////////////////////////////////////////////////////////
/*

	KAB-studio.h


	(C)KAB-studio 1999 - 2007 ALL RIGHTS RESERVED.
		http://www.kab-studio.biz/
		info@mail.kab-studio.biz

	MF 2007/02/05(Mon) No.393
	zMF 1661
	sF ܂܂ ( URL: http://www.mag2.com/  ID: 0000012198 )
*/
////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////
// NEW!!
http://www.kab-studio.biz/index.html

2007/02/05 (Mon)
@قƂ́[O`RP.88ǉI
[ Ol̃zbgn[u O`R y^V  LNz ]
http://www.kab-studio.biz/Comic/HotHerbA3/index.html

2007/02/05 (Mon)
@#pragma twice z[y[WłɃA[JCuǉI
18.02 vZ@Av API ō
18.03 _CAOvV[W static o֐ɂ
[ #pragma twice ]
http://www.kab-studio.biz/Programing/PragmaTwice/index.html


////////////////////////////////////////////////////////////////////
// 储ʂȓL
http://www.kab-studio.biz/nikki2/index.html

2007/01/28 (Sun)
@WNBߑO͒XVƃAjzBE̖{̓p[eB
ɐVLǉBՂƂ폑B[ɉlցBقƂ́[O`R͑B
ăAj܂B

2007/01/29 (Mon)
@ƂPPځBŏIBׂႭĂ̂тBAĂ
E̖{ƂB

2007/01/30 (Tue)
@utaЂł̂ƍŏIB܂ȊBɐkB
ƈ݁B痷sB

2007/01/31 (Wed)
@җÂ߂x݁B

2007/02/01 (Thu)
@җÂ߂x݁B

2007/02/02 (Fri)
@җÂ߂x݁B

2007/02/03 (Sat)
@Ί_ɗsɍsĂ܂Bڂ͂ƂłԂ낮ɂāBA
s@Łuqlɂҗĺ\\vB̗s͐FXB


////////////////////////////////////////////////////////////////////
// Ԃ낮B
http://d.hatena.ne.jp/kab_studio/

2007/01/28 (Sun)
http://d.hatena.ne.jp/kab_studio/20070128
NB
[KAB-studio]ՂƂǉB
[KAB-studio][قƂ́[]قƂ́[O`R͂x݂܂B
[E̖{]B11FցVo[ǉ
[]R~bNXƂ
[Aj]uv 43buꂽ^v
[Aj]˂}CfB`邭VbtI` 
@44buoĂĂꂽCCiIv
[Aj]Ђ܂II 4buU߂dv
[Aj]lYƉi̋ 4buuv
[Aj]_lƑ 4buVgieRj̗܁@P̐Ɂcv

2007/01/29 (Mon)
http://d.hatena.ne.jp/kab_studio/20070129
NB
AĂB
[E̖{]NGXgȂB
[Aj]F̃R_ 17buő̃NbVFhv
[Aj][Ƃ҂ ܂ȂуXg[gI 
@4buvŃS[̊v
[Aj]Master of Epic The AnimationAge 4b

2007/01/30 (Tue)
http://d.hatena.ne.jp/kab_studio/20070130
NB
AĂB
[Aj]SHUFFLE! MEMORIES 4bull Oҁv
[Aj]Pumpkin Scissors 17buȂ~ʈłv

2007/01/31 (Wed)
http://d.hatena.ne.jp/kab_studio/20070131
NijB
[link][]JtiPod shuffleI
Ί_
[Aj]DEATH NOTE 16bufv
[Aj]lM܁IH 18bu閧[Ɓijv

2007/02/01 (Thu)
http://d.hatena.ne.jp/kab_studio/20070201
Ί_V
\
Rz
|x
̕l

܂
L
[Aj]t̃XgC 11bu̖Jv
[Aj]B 18busv

2007/02/02 (Fri)
http://d.hatena.ne.jp/kab_studio/20070202
o
uLO
dR
약p
oiW]
Ί_`
AB
[Aj]̂߃J^[r 4b
[Aj]Ђ܂XPb` 4bu518 ̂V[gP[Lv
[Aj]ZCgINg[o[ 
@5buĐIGbN̒xWIv
[Aj]`nŋ̃` 16buӊ̉󂵕v

2007/02/03 (Sat)
http://d.hatena.ne.jp/kab_studio/20070203
ւ[B
[E̖{]S[B
[H][Ί_s]Ί_݂₰B
[Aj]fgNGXg 5bujWƃhbŴȁv
[Aj]ʉ_ 36buׂ͂ĂƂȂv
[Aj]Ƃem Ԃ 31buӂJv
[Aj]ӂ́ӂP Gyu! 44buˁIt@SƃtBSv
[Aj]R[hMAX t̃[V 16bũii[v


////////////////////////////////////////////////////////////////////
// AjaxŃGQ[uO
http://d.hatena.ne.jp/AjaxEroge/

iT͂x݂łj


////////////////////////////////////////////////////////////////////
// A
http://www.kab-studio.biz/Novel/Fuga/index.html

@\܏́@b݁A炩Ȍ@|QP|

@ܑꂽD炯̓ɓAgbN߂ĕOl͎
ʂƖ؁XɈ͂܂ꂽRĂB
@A͂łɏĂAf͔AC͓Ă
悤ɗ₽B
@݌߂悤ɂĕƒqq͕B
u{Ɋłˁccv
uႪ~鍠łv
u̎Ƃ낻납ȁv
@͌UԂBo̓xRg[ł鏭N͓R
邻Ԃ͌ȂANCȂ悤ɌBɂ͕
DĂĂA͎v̊O傫A
тɑ傫UĂB
uނ͂AƂȂłˁv
uˁv
uHv
u邱Ƃ͉\ǁBׂ\͂΁Ał܂ŗċA邱
Ƃs\Ȃccǁv
@qqUԂBSԂƌĂN̊B
uȂˁÁv
@Ζʂo؂ƁAuɏoB
uccv
@͋QB͂ȂBؕ|͂B
@[[܂ŕS[gȏ゠úAłnw̏ɒZt
A|ĂBu̍E̒[ɂ͖؁XэтƂȂĂ
B͐^DFɐ܂L΂Γ͂V̂悤ɋuŜ𕢂Ă
B
@u̒[ɁAƂĂB
uꂪccv
@̕ցAN͔łB
                                                              ()

////////////////////////////////////////////////////////////////////
// JavaA2Z
http://www.kab-studio.biz/Programing/JavaA2Z/index.html

ǉEXVP

iT̒ǉ͂܂j


////////////////////////////////////////////////////////////////////
 ---= Ɩp^_[c}Vu_[cC[Ov

ȂɏĂhȋƖ}VI
_[c}VݒułƂ҂B

ł邾ȃXy[XŁAɒu_[c}Vɂ܂B
wMtgV[ViReXg܎܁Ix
http://af1.mag2.com/m/af/0000008658/001/s00000001980002/006
////////////////////////////////////////////////////////////////////
// #pragma twice
http://www.kab-studio.biz/Programing/PragmaTwice/index.html

@Version 18.06
CxgnhI[o[Ch

uÓAEBhE 32 rbgɃrbgEBhEvV[W
AhXāAʂČĂяoƂ@܂v
wȂ񂩂̂@ˁccx
uŁAƓȂ̂ŁA}gĂx
v
w[x

EBhE
 CxgI
32rbg̈感      (1)
CDialog NX̕ϐ̃AhX            Cxg
      āAEBhE
    vV[W
                                                Ăяo܂
CDialog::DispatchDialogProc()     
(2) GetWindowLong()  CDialog NX       
    ϐ̃AhX擾܂             
(3) ̃AhXg CDialog NX 
    DialogProc() o֐Ăяo܂ 

                                  
CDialog NX̕ϐ      
 DialogProc() o֐  
(4)ŃCxg܂         
  


u(1)EBhEŁq{^ꂽrƂCxgƁA
Windows VXẽEBhEɌтꂽEBhEvV[W
Ăяo܂v
w͂̂ˁx
ũEBhEvV[ẂA_CAȌꍇ DialogBox() ֐
4Ȃ̂ŁA CDialog NX DispatchDialogProc() o֐
яo܂v
w񂤂x
u(2) DispatchDialogProc() o֐EBhEvV[W
ČĂяo܂ÂƂCxgEBhE
EBhEnhꏏɓn܂v
w1ˁx
ugāA GetWindowLong() ֐ŃEBhE 32 rbg
擾܂Bɂ WinMain() ֐ō CDialog NX̕ϐ
AhXĂ܂v
wԍŏA WM_INITDIALOG bZ[W󂯎ɃZbgc
ˁx
u(3)̃AhX CDialog NX̃|C^ɃLXgēĂ
DialogProc() o֐Ăяo܂BSnĂˁv
wŁA(4) DialogProc() o֐Ă΂邩炱Ŏۂ̃Cxg
AĂ킯ˁx
uƁv
wIx
u͂Δv
w CDialog NX̃o֐Ȃ̂ɁAȂŐ}ł CDialog NXɓ
ĂȂ́Hx
u static o֐ˁB̐}Aԉ CDialog NX
qϐrłv
wAzgx
u static o͂̃NX̕ϐ̐Ɋ֌WȂg邩ʂɂ܂
v
wЂƂIx
u͂Δv
w̎dg݂gbgāHx
uЂƂ́AEBhEɑΉ₷ƁBʂ̕@ƁA
̃EBhEłЂƂ̃EBhEvV[WL邽߁A
ώGɂȂ܂v
wꂪ̕@ƑvĂƁHx
uB̕@ȂAEBhE̐ CDialog NX̕ϐp
āAꂼꃁoϐƂăf[^Ƃł邵Ao֐
ʁXɎƂĂł邩v
w[Ão֐ʁXɎĂ̂悭Ȃ񂾂ǁx
u̒iKƂ܂ȂƎvAǂĂ݂悤v
wǁHx
ũvÓA_CAOvV[WA܂ 
DialogProc() o֐ CDialog NX̒ɂłv
wꂶႢȂ́Hx
uł񂾂ǁAz֐gƂŊgȂłv
wz֐cc virtual tăI[o[ChĂƁHx
uƁBႠvOĂ݂悤BS̓IɂƂ
C邩璍ӂĂˁB܂ CDialog NX DialogProc() o֐
z֐ɂ܂v

// Dialog.h

// Dialog NXB
class CDialog
{
private:
	// ŏɃZbg邽߂́ANX̃|C^B
	static CDialog *m_pcDialog;

public:
	// fXgN^B
	virtual ~CDialog();

	// _CAO쐬܂B
	int DoModal( HINSTANCE p_hInstance, int p_iDialogId );

	// _CAOvV[Wi`jB
	static BOOL CALLBACK DispatchDialogProc
	( HWND p_hDlgWnd
	, UINT p_uiMessage
	, WPARAM p_wParam
	, LPARAM p_lParam
	);

	// _CAOvV[Wiz֐jB
	virtual BOOL DialogProc
	( HWND p_hDlgWnd
	, UINT p_uiMessage
	, WPARAM p_wParam
	, LPARAM p_lParam
	) = 0;
};

w DialogProc() o֐ virtual Ɓy = 0ztx
u Version 17.10 ( No.365 ) Ő悤ɁA virtual t邱
Ńo֐z֐ɂȂ܂v
wŃI[o[Chł悤ɂȂ񂾂ˁx
u Version 17.16 ( No.371 ) Ő悤ɁAz֐̐錾
̌Ɂy = 0zt邱ƂŁÃo֐͏z֐ɂȂ
v
wĂƂ́Ão֐̖{̂͂ȂȂ́Hx
uA Dialog.cpp \[Xt@C͂Ȃ܂v

// Dialog.cpp
#include <Windows.h>
#include <stdio.h>
#include "resource.h"
#include "Dialog.h"

// ŏɃZbg邽߂́ANX̃|C^B
CDialog *CDialog::m_pcDialog = NULL;

// fXgN^łB
CDialog::~CDialog()
{
	// ܂B
}

// _CAO쐬܂B
int CDialog::DoModal( HINSTANCE p_hInstance, int p_iDialogId )
{
	// this |C^O[oϐɎĂ܂B
	// ƂŃ_CAOvV[Wœn܂B
	m_pcDialog = this;

	// _CAO쐬܂B
	int iRet
		= DialogBox
			( p_hInstance
			, MAKEINTRESOURCE( p_iDialogId )
			, NULL
			, &DispatchDialogProc
			);

	return iRet;
}

// _CAOvV[Wi`jB
BOOL CALLBACK CDialog::DispatchDialogProc
	( HWND p_hDlgWnd
	, UINT p_uiMessage
	, WPARAM p_wParam
	, LPARAM p_lParam
	)
{
	if( p_uiMessage == WM_INITDIALOG )
	{
		// O DoModal() Ă΂ĂꍇB
		// this |C^_CAÕ[U[̈ɓ܂B
		SetWindowLong( p_hDlgWnd, GWL_USERDATA, (LONG)m_pcDialog );
		m_pcDialog = NULL;
	}

	// _CAO 32 rbgɊi[Ă 
	// this |C^肾܂B
	CDialog *pcDialog 
		= (CDialog *)GetWindowLong( p_hDlgWnd, GWL_USERDATA );
	if( pcDialog == NULL )
	{
		// NULL ͉̎܂B
		return 0;
	}

	// o֐̃_CAOvV[WĂяo܂B
	return 
		pcDialog->DialogProc
			( p_hDlgWnd
			, p_uiMessage
			, p_wParam
			, p_lParam 
			);
}

// DialogProc() o֐͏z֐ɂ̂ł͍폜܂B

w DialogProc() o֐ȂȂĂccAƃfXgN^
ˁx
u Version 17.30 ( No.385 ) Ő悤ɁApgꍇ
fXgN^z֐ɂKv邩ˁBc͎ɁIv

/*
    Preview Next Story!
*/
wŋ߂Ȃ񂾂vOƑˁx
u API ƂǂĂȂˁv
w[A MFC ƃCxgnhȂĂˁx
u̕ӂ͋ʃCũbgȁv
wbgȂ́ccȂx
uƂ킯Ŏv
 Version 18.07 EBhEvV[Wz֐ɂȂ 
wɂÂIx
uccہAc񐔂Ȃ̂ɃR[hŃXy[X̂́ccv
wԂႯx


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

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


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

    (C)KAB-studio 1999 - 2007 ALL RIGHTS RESERVED.
        http://www.kab-studio.biz/
        info@mail.kab-studio.biz
*/
////////////////////////////////////////////////////////////////////

