|
この時点では、ファイルは stdafx.h と stdafx.cpp しかありません。とりあえず通常の関数を作成しますが、管理上一つのクラスを作成します
ツリーに、MyClass が追加されます。その下の MyClass() をダブルクリックすると、MyClass.cpp が開かれますので、ここにユーザ関数を記述していきます。
ライブラリなので、リリースモードでコンパイルします
|
|
|
// stdafx.h : 標準のシステム インクルード ファイル、
// または参照回数が多く、かつあまり変更されない
// プロジェクト専用のインクルード ファイルを記述します。
//
#if !defined(AFX_STDAFX_H__9FAD8622_ED3C_41D9_A60A_72BE81CFFA76__INCLUDED_)
#define AFX_STDAFX_H__9FAD8622_ED3C_41D9_A60A_72BE81CFFA76__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。
#endif
| |
|
|
// *********************************************************
// リストボックスに文字列を追加
// 戻り値 : 追加された位置
// *********************************************************
int LboxListAdd( HWND hWnd, LPCTSTR pszBuffer )
{
int ret;
ret = (int)SendMessage(
hWnd,
LB_ADDSTRING,
0L,
(LPARAM)(LPCTSTR)pszBuffer
);
return ret;
}
| |
|
|
|
|
// バージョン情報ボックス用メッセージ ハンドラ
int LboxListAdd( HWND hWnd, LPCTSTR pszBuffer );
LRESULT CALLBACK About( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message )
{
case WM_INITDIALOG:
LboxListAdd( GetDlgItem( hDlg, IDC_LIST1 ), "ユーザ関数のテスト" );
return TRUE;
case WM_COMMAND:
if( LOWORD(wParam) == IDOK ||
LOWORD(wParam) == IDCANCEL )
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
| |
|
|
|
「メンバ関数の追加」を選択します
|
int MyClass::ListAdd(int nID, LPCTSTR pszBuffer)
{
}
| |
|
以下のように内容を書き込みます
|
int MyClass::ListAdd(int nID, LPCTSTR pszBuffer)
{
return LboxListAdd( GetDlgItem(hDlg, nID), pszBuffer );
}
| |
|
|
|
|
MyClass::MyClass(HWND hWnd)
{
hDlg = hWnd;
}
| |
|
|
|
|
// バージョン情報ボックス用メッセージ ハンドラ
class MyClass
{
public:
MyClass( HWND hWnd );
int ListAdd(int nID, LPCTSTR pszBuffer);
HWND hDlg;
MyClass();
virtual ~MyClass();
};
MyClass *Dlg;
LRESULT CALLBACK About( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam )
{
switch( message )
{
case WM_INITDIALOG:
Dlg = new MyClass( hDlg );
Dlg->ListAdd( IDC_LIST1, "ユーザ関数のテスト" );
return TRUE;
case WM_COMMAND:
if( LOWORD(wParam) == IDOK ||
LOWORD(wParam) == IDCANCEL )
{
delete Dlg;
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}
| |
|
|
|