본문 바로가기

프로그래밍/MFC

차일드 사용

스테틱 차일드

선언

 CStatic  m_wndStatic;  //스태틱 컨트롤 윈도우
사용

 m_wndStatic.Create(_T("CStatic"),
      WS_CHILD | WS_VISIBLE | SS_ICON | SS_CENTERIMAGE,
      CRect(20, 20, 120, 120), this, 1234);

SS_BITMAP

LpszWindowName 파라미터로 지정된 비트맵을 출력하는 스태틱 컨트롤을 만든다. nWidth와 nHeight파라미터는 무시되고 크기는 비트맵에 알맞게 계산된다.

SS_BLACKFRAME

윈도우 프레임과 같은 색으로 그려진 사각형을 만든다. 디폴트 Windows색 구성은 검은색이다.

SS_BLACKRECT

윈도우 프레임과 같은 색으로 채워진 사각형을 만든다.

SS_CENTER

텍스트가 가운데로 정렬되고 필요한 경우 워드 래핑이 일어나는 스태틱 텍스트 컨트롤을 만든다.

SS_CENTERIMAGE

SS_BITMAP이나 SS_ICON 스타일을 가진 컨트롤의 중앙 위치가 비트맵이나 아이콘의 원래 크기에 따라 크기 조절이 있더라도 변하지 않는다는 것을 나타낸다.

SS_GRAYFRAME

화면 배경(데스크 탑)과 같은 색으로 그려진 사각형을 만든다. 기본적인 Window의 새 구성은 회색이다.

SS_GRAYRECT

화면과 같은 색으로 채워진 사각형을 만든다.

SS_ICON

lpszWindowName 파라미터로 지정된 아이콘을 출력하는 스태틱 컨트롤을 만든다. nWidth와 nHeight 파라미터는 무시되고 크기는 아이콘에 맞게 계산된다. 

SS_LEFT

스태틱 텍스트 컨트롤을 만들고 주어진 텍스트를 좌측 정렬한다. 필요하면 워드 래핑시킨다.

SS_LEFTNOWORDWRAP

스태틱 텍스트 컨트롤을 만들고 주어진 텍스트를 좌측 정령한다. 텍스트는 워드 래핑시키지 않지만 탭은 확장된다. 텍스트가 줄의 범위를 벗어나면 잘려 나간다.

SS_METAPICT

lpszWindowName 파라미터로 지정된 메타파일을 출력하는 스태틱 컨트롤을 만든다. 컨트롤의 크기는 고정되고, 메타파일은 그에 맞추어서 크기가 조정된다.

SS_NOPREFIX

앰퍼샌드(&)를 단축기 문자로 인식하지 않도록 한다.

SS_NOTIFY

사용자가 컨트롤을 클릭하거나 더블 클릭하면 STN_CLICKED와 STN_DBLCLK 메시지를 부모 윈도우에 알려 준다.

SS_RIGHT

스태틱 택스트 컨트롤을 만들고 주어진 텍스트를 우측 정렬한다. 필요하면 워드 래핑시킨다.

SS_RIGHTIMAGE

스태틱 컨트롤의 우측 하단 부분이 컨트롤의 크기가 변하더라도 그 위치에 그대로 남아 있게 한다. 상단 부분과 좌측 부분만 비트맵이나 아이콘의 크기에 맞추어 조정된다.

SS_SIMPLE

간단한 스태틱 텍스트 컨트롤을 만들고 좌측 정렬시킨다. 부모 윈도우나 대화 상자에서는 WM_CTLCOLORSTATIC 메시지를 처리하면 안된다.

SS_WHITEFRAME

윈도우 배경과 같은 색으로 그려진 사각형을 만든다. 디폴트 Windows색구성은 흰색이다.

SS_WHITERECT

윈도우 배경과 같은 색으로 채워진 사각형을 만든다.

l        GetBitmap

1.  설명 : 윈도우 95에서만 사용되는 이 멤버는 CStatic오브젝트에 관련되는 비트맵을 얻는다.

2.       구문 : HBITMAP GetBitmap() const;

3.       파라미터 : 없음.

4.       리턴값 : 관련 비트맵의 핸들 또는 어떤 비트맵도 관련되지 않으면 NULL.

l        SetBitmap

1.  설명 : 윈도우 95에서만 사용되는 이 멤버는 CStatic 윈도우에 표시되는 비트맵을 설정한다. 이 기능을 사용하기 위하여, SS_BITMAP 스타일 플래그가 설정되어야 한다. 기본적으로, 비트맵은 CStatic 윈도우의 왼쪽 상단 구석에 표시된다. 이것은 SS_CENTERIMAGE 스타일 플래그를 사용하여 수정된다.

2.       구문 : HBITMAP SetBitmap( HBITMAP hBitmap );

3.       파라미터

hBitmap 새로운 비트맵 이미지에 대한 핸들.

             4.  리턴값 : 이전의 관련 비트맵의 핸들이나 어떤 비트맵도 관련되어 있지 않았으면 NULL.

l        GetCursor

1.  설명 : 윈도우 95에서만 사용되는 이 멤버는 CStatic 오브젝트에 관련되는 커서 이미지를 얻는다.

2.       구문 : HCURSOR GetCursor();

3.       파라미터 : 없음.

4.       리턴값 : 관련 커서 이미지의 핸들 또는 관련된 어떤 커서 이미지도 없으면 NULL.

l        SetCursor

1.  설명 : 윈도우 95에서만 사용되는 이 멤버는 CStatic 윈도우에 표시되는 커서 이미지를 설정한다. 이 기능을 사용하기 위하여 SS_ICON 스타일 플래그가 설정되어야 한다. 기본적으로, 비트맵은 CStatic 윈도우의 왼쪽 상단 구석에 표시된다. 이것은 SS_CENTERIMAGE 스타일 플래그를 사용하여 수정된다.

2.       구문 : HCURSOR SetCursor( HCURSOR hCursor );

3.       파라미터

hCursor 새로운 커서 이미지에 대한 핸들.

          4.  리턴값 : 관련 커서 이미지의 핸들 또는 관련된 어떤 커서 이미지도 없으면 NULL.

l        GetEnhMetafile

1.  설명 : 윈도우 95에서만 사용되는 이 멤버는 CStatic 오브젝트에 관련되는 개선된 메타파일을 얻는다.

2.       구문 : HENHMETAFILE GetEnhMetafile() const;

3.       파라미터 : 없음.

4.       리턴값 : 관련 개선된 메타파일의 핸들 또는 관련된 어떤 개선된 메타파일도 없으면 NULL.

 

l        SetEnhMetafile

1.  설명 : 윈도우 95에서만 사용되는 이 멤버는 CStatic 오브젝트에 관련되는 개선된 메타파일을 설정한다. 이 기능을 사용하기 위하여 SS_ENHMETAFILE 스타일 플래그가 설정되어야 한다. 개선된 메타파일은 항상 CStatic 윈도우의 현재 크기로 조정된다.

2.       구문 : HENHMETAFILE SetEnhMetafile( HENHMETAFILE hMetaFile );

3.       파라미터

hMetaFile 새로운 개선된 메타파일에 대한 핸들.

4.  리턴값 : 이전에 관련된 개선된 메타파일의 핸들 또는 이전에 관련된 어떤 개선된 페타파일도 없으면 NULL.

l        GetIcon

1.  설명 : SS_ICON 스타일을 갖는 스태틱 텍스트 컨트롤에 표시되는 현재 아이콘을 얻는다.

2.       구문 : HICON GetIcon() const;

3.       파라미터 : 없음.

4.       리턴값 : 현재 아이콘의 핸들 또는 에러가 발생하면 NULL.

l        SetIcon

1.  설명 : 새로운 아이콘을 SS_ICON 스타일을 갖는 스태틱 텍스트 컨트롤로 표시되게 설정한다.

2.       구문 : HICON SetIcon( HICON hIcon );

3.       파라미터

hIcon 새로운 아이콘의 핸들.

             4.  리턴값 : 컨트롤에 이전에 표시된 아이콘의 핸들 또는 에러가 발생하면 NULL.

 

에디트 차일드

선언

  CEdit  m_wndEdit;

사용

      m_wndEdit.Create(
     WS_CHILD |
     WS_VISIBLE |
     WS_TABSTOP |
     WS_BORDER |
     ES_AUTOHSCROLL,
     CRect(120,40,170,90),
     this,
     1002);

스타일

 

ES_AUTOHSCROLL

수평 스크롤을 지원한다.

ES_AUTOVSCROLL

여러 줄 편집시 수직 스크롤을 지원한다.

ES_LEFT

왼쪽 정렬한다.

ES_CENTER

중앙 정렬한다.

ES_RIGHT

오른쪽 정렬한다.

ES_LOWERCASE

소문자로 변환하여 표시한다.

ES_UPPERCASE

대문자로 변환하여 표시한다.

ES_MULTILINE

여러 줄을 편집할 수 있도록 한다.

ES_NOHIDESEL

포커스를 잃더라도 선택된 영역을 표시한다.

ES_READONLY

읽기전용으로 만들어 편집을 금지한다.

ES_PASSWORD

입력되는 모든 문자를 *로 표시한다.

ES_NUMBER

숫자만 입력받을 수 있다.

ES_WANTRETURN

대화상자에서 Enter키로 개행할 수 있도록 한다.

ES_OEMCONVERT

입력된 문자를 OEM 문자셋으로 변경한다.

 

 

메세지

 

EM_CANUNDO

UNDO를 할 수 있으면 TRUE를 리턴한다.

EM_CHARFROMPOS

특정 좌표에 가장 가까운 문자를 찾는다.

EM_POSFROMCHAR

wParam 인덱스 문자의 작업영역 좌표를 구한다.

EM_EMPTYUNDOBUFFER

UNDO에 사용되는 버퍼를 비운다. 이 메시지를 보낸 후에는 작업 취소를 할 수 없다.

이 메시지 외에 WM_SETTEXT, EM_SETHANDLE 메시지를 처리한 후에도 UNDO 버퍼는 비워진다.

EM_FMTLINES

wParam이 TRUE일 경우 자동 개행된 곳에 소프트 라인 브레이크를 삽입한다.

소프트 라인 브레이크는 두 개의 CR과 한 개의 LF로 구성되어 있으며 GetWindowText로 읽으면

자동 개행된 곳에 엔터 코드가 삽입된 채로 읽혀진다.

EM_GETFIRSTVISIBLELINE

보이는 첫 번째 문자의 인덱스를 리턴한다. 멀티 라인 에디트일 경우 보이는 첫 번째 줄의 인덱스를

리턴한다.

EM_GETHANDLE

멀티 라인 에디트의 텍스트를 저장하는 버퍼의 핸들을 리턴한다. 싱글 라인 에디트는 이 메시지에

대해 동작하지 않는다.

EM_SETHANDLE

텍스트 버퍼에 사용되는 메모리 핸들을 지정한다.

EM_GETLIMITTEXT

입력할 수 있는 문자의 최대 개수를 구한다.

EM_GETLINE

에디트 텍스트를 지정한 버퍼(lParam)에 복사하고 복사된 문자수를 리턴한다.

멀티 라인일 경우 지정한 줄(wParam)을 버퍼로 복사하고 복사된 문자 수를 리턴한다.

널 종료 문자는 복사되지 않는다.

EM_GETLINECOUNT

에디트 컨트롤의 총 줄 수를 조사한다.

EM_GETMODIFY

텍스트가 변경되었는지 검사한다.

EM_SETMODIFY

변경 플래그를 설정하거나 해제한다.

EM_GETPASSWORDCHAR

ES_PASSWORD 스타일 사용시 보여줄 문자를 조사한다. 디폴트는 '*' 이다.

EM_SETPASSWORDCHAR

ES_PASSWORD 스타일 사용시 보여줄 문자를 설정한다.

EM_GETRECT

포매팅 사각영역을 얻는다.

EM_SETRECT

포매팅 사각영역을 설정한다.

EM_SETRECTNP

포매팅 사각영역을 설정하되 다시 그리지는 않는다.

EM_GETSEL

선택 영역의 시작점과 끝점의 문자 위치를 조사한다.

EM_SETSEL

선택 영역을 설정한다. wParam에 시작 위치, lPamam에 끝 위치를 지정한다. 시작이 0이고

끝이 -1이면 모든 문자들이 선택되며 시작이 -1이면 모든 선택 영역이 취소된다.

EM_GETTHUMB

멀티 라인에디트에서 수직 스크롤 바의 썸 위치를 구한다.

EM_GETWORDBREAKPROC

자동 개행을 해 주는 함수(wordwrap function)의 번지를 조사한다.

EM_SETWORDBREAKPROC

자동 개행 함수를 프로그램이 지정하는 함수로 설정한다.

EM_LIMITTEXT

사용자가 입력할 수 있는 문자의 최대 개수를 설정한다. 싱글 라인일 경우 0x7FFFFFFE 이하여야

하며 멀티라인일 경우 0xFFFFFFFE 이하여야 하며 멀티 라인일 경우 0xFFFFFFFF 이하여야 한다.

95/98에서는 싱글 라인일 경우 0x7FFE 이하 멀티 라인에서는 0xFFFF 이하여야 한다.

EM_LINEFROMCHAR

문자 인덱스로부터 그 문자가 속한 줄의 번호를 구한다. 멀티 라인에서만 사용된다.

EM_LINEINDEX

줄 번호로부터 문자의 인덱스를 구한다. 멀티 라인에서만 사용된다.

EM_LINELENGTH

총 문자수를 구한다. 멀티 라인일 경우 지정한 줄의 총 문자수를 구한다.

EM_LINESCROLL

멀티 라인 에디트를 스크롤 시킨다. wParam은 수평 스크롤 문자수를 지정하며

lParam은 수직 스크롤 줄 수를 지정한다.

EM_REPLACESEL

선택 영역을 다른 문자열로 대체한다.

EM_SCROLL

= WM_VSCROLL

EM_SCROLLCARET

캐럿을 보이는 영역으로 이동시킨다.

EM_SETFONT

사용하지 않는 메시지임. 폰트를 변경하고자 할 경우 이 메시지 대신 WM_SETFONT 메시지를

사용해야 한다.

EM_SETREADONLY

읽기 전용 스타일을 설정하거나 해제한다. 읽기 전용 상태를 조사하는 반대 메시지는 없으므로

GetWindowLongPtr로 스타일을 직접 조사해야 한다.

EM_SETTABSTOPS

멀티 라인 에디트에서 탭 정지 위치를 지정한다.

EM_UNDO

바로 앞에서 한 편집 동작을 취소한다.

 

 

통지 메시지

 

EN_CHANGE

문자열이 변경되었다.

EN_ERRSPACE

메모리가 부족하다.

EN_HSCROLL

사용자가 수평 스크롤 바를 클릭하였다.

EN_VSCROLL

사용자가 수직 스크롤 바를 클릭하였다.

EN_KILLFOCUS

포커스를 잃었다.

EN_SETFOCUS

포커스를 얻었다.

EN_MAXTEXT

지정한 문자열 길이를 초과하였다.

EN_UPDATE

문자열이 변경되기 직전이다.

[출처] 차일드 사용|작성자


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

[MFC] CWinAppEx::CleanState()  (0) 2010.08.25
CView  (0) 2010.05.24
MFC에서 hWnd와 hinst 얻어오기  (0) 2010.05.20
마우스 이벤트  (0) 2010.05.20
MFC  (0) 2010.05.20