본문 바로가기
프로그래밍/API

API-resource(3)

by 리뷰하는 (게임)프로그래머_리프TV 2010. 4. 21.



리소스의 마지막으로 String Table에 대해서 살펴보자.

string table의 모습,

바뀐 소스의 모습만 삽입 하도록 하겠다.

LRESULT CALLBACK WndProc( HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam )
{
	// string table을 사용하기 위한 str
	TCHAR str[256];

	switch( iMessage )
	{
		// 메뉴에 대한 행동들을 관리하는 WM_COMMAND:
	case WM_COMMAND:
		// wParam의 LOWORD는 메뉴의 ID를 가지고 있다.
		switch( LOWORD( wParam ) )
		{
			// FILE->OPEN을 선택했으면,
		case ID_FILE_OPEN40001:
			// string Table을 사용하여 출력하였다.
			LoadString( g_hInst, IDS_STRING106, str, 256 );
			MessageBox( hWnd, TEXT("FILE OPEN"), str, MB_OK );
			break;
		case ID_FILE_CLOSE40002:	// close면
			LoadString( g_hInst, IDS_STRING106, str, 256 );
			MessageBox( hWnd, TEXT("FILE CLOSE"), str, MB_OK );
			break;
		case ID_FILE_EXIT:	// exit면
			DestroyWindow( hWnd );	// exit를 해주게 되면,
			// DestroyWindow를 함으로써 윈도우 종료를 하게 된다.
			// PostQuitMessage(0); 를 직접적으로 사용해서는 안된다.
			break;
		case ID_EDIT_EDIT1:
			LoadString( g_hInst, IDS_STRING107, str, 256 );
			MessageBox( hWnd, TEXT("EDIT1"), str, MB_OK );
			break;
		case ID_EDIT_EDIT2:
			LoadString( g_hInst, IDS_STRING107, str, 256 );
			MessageBox( hWnd, TEXT("EDIT2"), str, MB_OK );
			break;
		}
		return 0;
	case WM_DESTROY:
		PostQuitMessage(0);
		return 0;
	}
	return( DefWindowProc( hWnd, iMessage, wParam, lParam));
}​


소스를 보면 LoadString라는 함수를 사용해서 저장 되어 있는 string을 불러 오게 된다.
loadstring함수는 g_hinst가 가지고 있는 IDS_STRING___를 str에 256바아트 만큼 가져 온다는 의미이다.

// 실행 화면

메뉴를 선택 했을 때 나오는 글자는 string table에 정의되어 있는 문자열이다.

최종적으로 지금까지 했던 모든 내용들에 대한 실행파일과, 소스파일을 첨부한다.

API리소스.zip
다운로드
100421_1.exe
다운로드

'프로그래밍 > API' 카테고리의 다른 글

API-RopMode  (0) 2010.04.24
API-GdiObject  (0) 2010.04.22
API-resource(2)  (0) 2010.04.21
API-resource(1)  (0) 2010.04.21
API-작업 영역  (0) 2010.04.21