[5월 18일 1교시] 상태바 + 다이얼로그바
상태바
윈도우의 하단에 위치하며, 프로그램의 현재 상태를 표시한다.
구성
- 리소스 : ID, String table
- static UINT indicators[] : 상태바의 기능과 화면 표시 부분을 구분해 준다.
예시) 기본 MFC indicator
ID_SEPARATOR ① ID_INDICATOR_CAPS ③ ID_INDICATOR_SCRL
②ID_INDICATOR_NUM
- 클래스 : CStatusBar
BOOL CStatus::SetPaneText(int nIndex, LPCTSTR lpszNewText, BOOL bUpdate = TRUE);
참고주소 : http://msdn.microsoft.com/en-us/library/0xz1t794(VS.80).aspx
lpszNewText 문자열에 의해 패널(panel) 문자열을 설정한다.
리턴 : 성공시 TRUE, 실패시 FALSE
nIndex : 설정된 패널의 위치(0부터 시작)
lpszNewText : 새로운 패널 텍스트의 포인터
bUpdate : TRUE면 문자열이 설정될 때 패널이 무효화(invalidate) 된다.
SHORT GetKeyState(int nVirtKey);
참고주소 : http://msdn.microsoft.com/en-us/library/ms646301.aspx
특정 가상 키의 상태를 얻을 때 사용. 상태는 키가 눌렸는 지 땠는 지 불이 켜 졌는지를 확인한다.
nVirtKey : 가상키 값.
리턴 : 가상 키의 상태를 나타내는 값
최상위 비트가 1이면 키가 눌린 상태. 아니면 땐 상태이다.
최하위 비트가 1이면 키가 켜진 상태 0이면 꺼져 있는 상태이다.(CAPSLOCK등)
다이얼로그 바
Docking이 가능한 대화상자.
대화상자의 모든 기능을 가진다.
컨트롤바를 상속받음.
style -> child, border->none, title bar->false로 주로 사용한다.
메인 프레임에서 주로 사용한다.
CDialogBar m_wndDialogBar;
CDialogBar::Create
virtual BOOL CDialogBar::Create(CWnd* pParentWnd, LPCTSTR lpszTemplateName, UINT nStyle, UINT nID);
virtual BOOL CDialogBar::Create(CWnd* pParentWnd, UINT nIDTemplate, UINT nStyle, UINT nID);
참고주소 : http://msdn.microsoft.com/en-us/library/z0awcsf4(VS.80).aspx
lpszTemplateName이나 nIDTemplate로 다이얼로그 리소스 템플릿을 불러오고
다이얼로그 윈도우를 만들고 스타일을 설정하고 CDialogBar 객체와 윈도우를 관련성 있게 만든다.
리턴 : 성공시 TRUE, 실패시 FALSE
pParentWnd : 부모 CWnd 객체 포인터
lpszTemplateName : CDialogBar 객체 다이얼로그 템플릿의 이름의 포인터
nStyle : 다이얼로그바의 배치 스타일. 다음 스타일이 가능하다.
CBRS_TOP, CBRS_BOTTOM, CBRS_LEFT, CBRS_RIGHT
CBRS_NOALIGN : 부모 윈도우가 크기가 변할 때 다시 위치 지정을 하지 않는다.
nID : 다이얼로그바의 컨트롤 ID
nIDTemplate : CDialogBar