GetDlgItem

원형

HWND GetDlgItem(HWND hDlg,int nIDDlgItem);

MFC 원형

CWnd* CWnd::GetDlgItem( int nID ) const;
void CWnd::GetDlgItem( int nID, HWND* phWnd ) const;

인수

▶hDlg : 컨트롤을 포함하고 있는 대화상자의 핸들

▶nIDDlgItem : 컨트롤의 ID

리턴

성공하면 컨트롤의 윈도우 핸들을 리턴한다. 실패할 경우 NULL을 리턴하는데 이 경우는 대화상자 핸들이 무효하거나 컨트롤의 ID가 없는 경우이다.

설명

대화상자내에서의 컨트롤은 ID로 구분된다. 컨트롤의 ID는 CreateWindow 함수의 hMenu인수로 지정하거나 리소스 편집기의 ID란에 정수로 지정한다.

같은 대화상자에 속한 컨트롤들은 중복된 ID를 가지지 않으며 ID는 컨트롤의 유일한 식별자 역할을 한다. 컨트롤의 ID를 알고 있으면 GetDlgItemInt(Text) 등의 함수로 컨트롤의 값을 읽거나 쓸 수 있으며 통지 메시지에서 어떤 컨트롤로부터 통지 메시지가 전달되었는지를 알 수 있다.

SetDlgItemText(hDlg,IDC_MYEDIT,"텍스트");	// IDC_MYEDIT에 텍스트 대입

case WM_COMMAND:
switch (LOWORD(wParam)) {
	case IDC_MYEDIT:						// IDC_MYEDIT로부터 통지 메시지 전달

또한 대화상자내의 컨트롤들은 각각이 독립된 차일드 윈도우이므로 고유의 윈도우 핸들을 가진다. 컨트롤의 ID로부터 윈도우 핸들을 구하고자 할 때 이 함수를 사용한다. 일단 윈도우 핸들을 구하면 SetWindowText, ShowWindow, MoveWindow 등 윈도우를 대상으로 하는 모든 함수를 사용할 수 있다.

이 함수는 주로 대화상자에 속한 차일드의 윈도우 핸들을 구할 때 사용하지만 일반 윈도우에도 적용할 수 있다. 일반 윈도우에서도 차일드 컨트롤이 있고 이 컨트롤이 ID를 가지고 있으면 GetDlgItem 함수로 차일드 컨트롤의 ID를 구할 수 있다.

참고함수

GetDlgCtrlID : 윈도우 핸들로부터 컨트롤의 ID를 구한다.

플렛폼

95이상

참조

 


written by http://www.winapi.co.kr