// 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; }