Visual Studio 2010-最初のVisual C++.NETプログラム


実験環境:Windows XP,Visual Studio 2010 Ultimate
1プロジェクトの作成
1.1ファイル>>新規>>プロジェクト、「その他言語」>>Visual C++を選択し、「MFCアプリケーション」を選択します.プロジェクト名を「First」に変更します.次の図に示します.
    
1.2上図において、確認をクリックすると、「MFCアプリケーションウィザード」がポップアップされ、その中の「アプリケーションタイプ」画面において、以下の図のように設定される.
1.3「完了」を直接クリックし、その他のデフォルト設定を保存すればよい.
2メニューバーの「表示」をクリックし、「ソリューションエクスプローラ」、「ツールボックス」、「クラスビュー」、「リソースビュー」、「プロパティウィンドウ」の順にクリックします.メニューは下図の通りです.
プロジェクトを作成した後、効果図を下図に示します.
3ビュークラスに色メンバー変数m_を追加nCurColorと図形描画関数DrawCircle
3.1「クラスビュー」でCFRrstView(ビュークラス)を見つけ、右クリックするとウィザードがポップアップされます.このウィザードで、このクラスに変数と関数を追加できます.下図のように.
3.2次の図に示すように、CFirstViewに変数を追加します.
3.3次の図に示すように、CFRrstViewに関数を追加します.
3.4タイマーを追加する.
クラスビューを右クリックして、ポップアップダイアログボックスで[プロパティ]を選択し、[プロパティ]の上で[メッセージ]を選択し、メッセージリストでWM_を見つけます.TIMER、右側のドロップダウン・オプションでOnTimerを選択します.下図のように.
3.5起動と停止ボタンの追加
3.5.1「リソースビュー」のMenuの下にあるIDR_をダブルクリックMAINFRAME、下図の通りです.
3.5.2開いているメインメニューに「設定」メニューを追加し、「設定」に「起動」と「停止」の2つのドロップダウンメニューを追加します.STARTとID_STOP.
メニューを右クリックして、[プロパティ](Properties)を選択して設定します.下図のように.
3.5.3[開始](Start)と[停止](Stop)のイベント処理関数を追加します.
[起動](Start)を右クリックし、ポップアップダイアログボックスで[イベントハンドラを追加](Add Event Handler)を選択します.下図のように.
ポップアップされたイベントハンドラウィザードで、メッセージタイプが「COMMAND」を選択し、クラスリストがCfirstViewを選択し、「編集の追加」をクリックすると、CfirstViewクラスで
OnStart()関数が追加されました.
同じ方法で[停止](Stop)にイベント処理関数を追加します.
4コードの追加
4.1 CFRrstViewクラスのコンストラクション関数でm_nCurColor変数の付与値は-1である.以下に示す.
CFirstView::CFirstView()
	: m_nCurColor(0)
{
	// TODO:          
	m_nCurColor=-1;//m_nCurColor               。

}

4.2先ほど追加したDrawCircle関数を以下に示します.
int CFirstView::DrawCircle(int CurColor, CDC* pDC)
{
	pDC->Rectangle(80,80,220,440);
	CRect rRect(100,100,200,200);
	CRect gRect(100,210,200,310);
	CRect yRect(100,320,200,420);
	CBrush rBrush(RGB(255,0,0));
	CBrush gBrush(RGB(0,0,255));
	CBrush yBrush(RGB(255,255,0));
	CBrush wBrush(RGB(255,255,255));
	CBrush *pOldBrush;

	if(CurColor==0)//CurColor          
	{
		pDC->Ellipse(&gRect);
		pDC->Ellipse(&yRect);
		pOldBrush=pDC->SelectObject(&rBrush);
		pDC->Ellipse(&rRect);
	}
	else if(CurColor==1)
	{
		pDC->Ellipse(&rRect);
		pDC->Ellipse(&yRect);
		pOldBrush=pDC->SelectObject(&gBrush);
		pDC->Ellipse(&gRect);
	}
	else if(CurColor==2)
	{
		pDC->Ellipse(&rRect);
		pDC->Ellipse(&gRect);
		pOldBrush=pDC->SelectObject(&yBrush);
		pDC->Ellipse(&yRect);
	}
	else
	{
		pOldBrush=pDC->SelectObject(&wBrush);
		pDC->Ellipse(&rRect);
		pDC->Ellipse(&gRect);
		pDC->Ellipse(&yRect);
	}
	pDC->SelectObject(pOldBrush);
	return 0;
}

4.3タイマー関数OnTimer()を以下に示すように改善する.
void CFirstView::OnTimer(UINT_PTR nIDEvent)
{
	// TODO:              /      
	m_nCurColor=(++m_nCurColor)%3;
	Invalidate();
	CView::OnTimer(nIDEvent);
}

4.4「起動」と「停止」にイベント処理応答を追加する.
void CFirstView::OnStart()
{
	// TODO:             
	SetTimer(1,1000,NULL);
}


void CFirstView::OnStop()
{
	// TODO:             
	KillTimer(1);
	m_nCurColor=-1;
	Invalidate();
}

4.5 OnDraw関数の変更
OnDraw関数は、プロジェクトを作成するときに自動的に生成されます.彼のpDCパラメータはコメントされているので、コメントを削除します.また、//ODOの下にコードを追加します.以下に示す.
void CFirstView::OnDraw(CDC* pDC)
{
	CFirstDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	if (!pDoc)
		return;

	// TODO:               
	DrawCircle(m_nCurColor,pDC);
}

5デバッグ
Visual Studio 2010のメインメニューで「起動」|「デバッグの起動」をクリックし、実行可能ファイルを生成した後、プログラムの実行インタフェースで、作成した「設定」|「起動」メニューをクリックすると、
赤と緑と青の3色の「ランプ」が循環して点灯/消灯します.下図のように.
6工事ソース.http://download.csdn.net/detail/q1302182594/5213571.
7本プロジェクトの実行フロー分析は、『Visual Studio 2010-MFCアプリケーション呼び出し順序分析』を参照してください.
8参考文献
栄欽科技:李淑馨、陳偉編著.Viusal C++2008プログラム設計完全独学チュートリアル.北京:清華大学出版社、2009
吕智、马瑞力等编著Visual C++.NETのすばらしいプログラミング百例.北京:中国水利水力発電出版社、2004
梁興柱編集長Visual C++.NETプログラミング北京:清華大学出版社、2010