CE Control 실습 (Pocket PC Controls, 253~ 267)
1. 버튼 관련 작동 함수.
BOOL SHSetNavBarText(HWND hwndRequester, LPCTSTR pszText);
참고주소 : http://msdn.microsoft.com/en-us/library/aa932871.aspx
작업창(taskbar)에 제목(타이블)을 설정한다.
리턴 : 성공시 TRUE, 실패시 FALSE
hwndRequester : 새로운 작업창에 제목을 요청한 top-level 윈도우의 핸들
pszText : 새로운 제목에 대한 null 종료 문자열 포인터. hwndRequest의 제목 작업창 제목을 리셋할 때 NULL을 사용할 수 있다.
BOOL SHFullScreen(HWND hwndRequester, DWORD dwState);
참고주소 : http://msdn.microsoft.com/en-us/library/aa453694.aspx
화면의 특정 영역을 인계받는 데 사용될 수 있다. taskbar, 입력 패널 버튼, 시작 메뉴 아이콘을 수정하는 데 사용한다. Pocket PC는 크기가 작기 때문에 타이틀 바, 메뉴 바, IME(가상키보드)등을 숨기는 데 사용하는 함수이다.
리턴 : 성공시 TRUE, 실패시 FALSE
hwndRequester : 전체 화면 상태를 요청한 top-level 윈도우의 핸들. SHFS_HIDE 플래스 중 하나를 사용한다면 이 윈도우는 foreground 윈도우여야 하며 그렇지 않으면 실패할 것이다.
dwState : 윈도우의 상태를 지정한다. 다음은 이 인수에 가능한 값이다.
SHFS_SHOWTASKBAR, SHFS_HIDETASKBAR
SHFS_SHOWSIPBUTTON, SHFS_HIDESIPBUTTON : 입력 패널 버튼은 보여준다/ 숨긴다.
※ 윈도우 모바일 기반의 포켓 PC만 지원한다.
SHFS_SHOWSTARTICON, SHFS_HIDESTARTICON : taskbar의 시작 버튼을 보여준다/숨긴다.
※ 윈도우 모바일 기반의 포켓 PC만 지원한다.
BOOL SHInitDialog(PSHINITDLGINFO pshidi);
참고주소 : http://msdn.microsoft.com/en-us/library/aa453713.aspx
SHINITDLGINFO 구조체에 정의된 인수를 기초로 하여 소프트웨어 입력 패널을 수용할 수 있는 다이얼로그 박스의 크기를 재지정한다.
다이얼로그 박스를 SHINITDLGINFO에 따라 초기화한다.
리턴 : 성공시 TRUE, 실패시 FALSE
pshidi : SHINITDLGINFO의 구조체 포인터.
SHINITDLGINFO 구조체
참고주소 : http://msdn.microsoft.com/en-us/library/aa924964.aspx
dwMask : SHINITDLGINFO 구조체가 유효한 멤버임을 나타내는 비트 필드. 가능한 값은 #define SHIDIM_FLAGS 0x0001이다.
hDlg : 다이얼로그 박스 핸들. 이 멤버는 반드시 필요하다.
dwFlags : 취할 행동을 정하는 플래그. SHIDIM_FLAGS가 설정되어 있지 않으면 무시된다. 다음 표는 이 멤버에 가능한 값을 보여준다.
※ 모든 플랫폼
- SHIDIF_FULLSCREENNOMENUBAR : 전체 화면으로 다이얼로그 박스 크기를 지정한다. 메뉴바에 대한 바닥 공간을 남겨두지 않는다.
- SHIDIF_SIZEDLG : QVGA 화면과 장치에서 이 행동은 윈도우 모바일 6 Professional과 Classic과 같은 행동을 취한다. 다이얼로그 박스는 소프트웨어 입력 패널의 현재 위치에 따라 크기가 재설정된다.
full display라면 다이얼로그 박스는 소프트웨어 입력 패널 구석으로(?) 이동한다.
- SHIDIF_SIZEDLGFULLSCREEN : 입력 패널의 위치에 상관없이 전체 화면으로 다이얼로그 박스의 크기를 설정한다.
※ 윈도우 모바일
- SHIDIF_DONEBUTTON : 메뉴바의 OK버튼이나 캡션 위에 놓는다.
- SHIDIF_EMPTYMENU : 다이얼로그에서 빈 메뉴 바를 만든다.
- SHIDIF_SIPDOWN : 입력 패널을 밑에 놓는다.
- SHIDIF_CANCELBUTTON : IDCANCEL을 통해 다이얼로그를 닫을 Cancel[x] 버튼을 추가한다.
- SHIDIF_WANTSCROLLBAR : 스크린 크기에 맞지 않는다면 다이얼로그에 스크롤바를 추가한다.
BOOL SHDoneButton(HWND hwndRequester, DWORD dwState);
참고주소 : http://msdn.microsoft.com/en-us/library/aa930127.aspx
응용 프로그램의 상태에 따라 OK 버튼을 동적으로 보여주거나 숨길 필요가 있는 응용프로그램에 제공된다.
리턴 : 성공시 TRUE, 실패시 FALSE
hwndRequester : Done 버튼을 요구하는 top-level 윈도우의 핸들
dwstate : 버튼 상태를 정한다. 다음 테이블은 이 인수에 가능한 상태 값을 보여준다.
SHDB_SHOW : hwndRequester에 WS_EX_CAPTIONOKBTN을 추가한다. 다음에 윈도우가 foreground 윈도우가 되면 Done 버튼이 나타날 것이다.
SHDB_HIDE : hwndRequester로부터 WS_EX_CAPTIONOKBTN을 제거한다. 다음에 이 윈도우가 foreground 윈도우가 되도 Done 버튼은 나타나지 않을 것이다.
SHDB_SHOWCANCEL : cancel의 의미를 가진 Cancel[x] 버튼을 가능하게 한다.
※ OK버튼을 누르면 Active Slot(0번 슬롯)에 있다가 원래 슬롯 번호로 돌아간다.
2. 에디트 박스가 활성화되면 (SetFocus) 가상 키보드를 띄우고(SipShowIM(SIPF_ON))
비활성화되면 (KillFocus) 가상 키보드를 숨긴다.
BOOL SipShowIM(DWORD dwFlag);
참고주소 : http://msdn.microsoft.com/en-us/library/aa932298.aspx
현재 활성화된 소프트웨어 기반의 입력 패널 윈도우를 보여주거나 숨긴다. 응용프로그램은 현재 입력 방법과 소프트웨어 기반 입력 패널을 표시하기 위해 이 함수를 호출하여야 한다.
리턴 : 성공시 TRUE, 실패시 HRESULT 오류코드를 리턴.
dwFlag : 현재 소프트웨어 기반 입력 패널 윈도우를 보여줄 것인지 숨길 것인지 결정한다. 다음 테이블은 가능한 플래그 값이며 둘 중에 하나만 사용가능하다.
SIPF_ON : 소프트 기반 입력 패널 윈도우를 보여준다.
SIPF_OFF : 소프트 기반 입력 패널 윈도우를 숨긴다.
BOOL SHSipPreference(HWND hwnd, SIPSTATE st);
참고주소 : http://msdn.microsoft.com/en-us/library/aa455823.aspx
입력 패널의 위치를 바꾼다.
리턴 : 성공시 TRUE, 실패시 FALSE
hwnd : 바뀌길 원하는 입력 패널 위치를 요구하는 윈도우의 핸들
st : 입력 태널의 요구된 위치를 정한다. 다음 테이블은 이 인수에 대한 허용 가능한 값을 보여준다.
SIP_UP : 입력 패널을 보여줄 것을 요구한다. SIP_DOWN 요청은 무시된다.
SIP_DOWN : 입력 패널을 숨길 것을 요구한다.
SIP_FORCEDOWN, SIP_UNCHANGED
3. 전원 상태 확인(Progressbar)
void WINAPI GlobalMemoryStatus(__out LPMEMORYSTATUS lpBuffer);
참고주소 : http://msdn.microsoft.com/en-us/library/aa366586(VS.85).aspx
물리와 가상 메모리 둘에 대한 시스템 현재 사용량에 관한 정보를 보여준다.
lpBuffer : MEMORYSTATUS(메모리 상태) 구조체의 포인터. 이 구조체에 가능한 현재 메모리에 대한 정보를 저장한다.
MEMORYSTATUS 구조체
참고주소 : http://msdn.microsoft.com/en-us/library/aa366772(VS.85).aspx
dwLength : 메모리 구조체의 크기
dwMemoryLoad : 사용중인 물리적 메모리의 대략적인 퍼센트 값.
dwTotalPhys : 바이트 단위의 실제 물리적 메모리의 양
dwAvailPhys : 바이트 단위의 현재 사용 가능한 물리 메모리의 양.
dwTotalPageFile : commit된 메모리 limit의 현재 크기.
dwAvailPagefile : 현재 프로세스가 commit할 수 있는 최대 메모리의 양.
dwTotalVirtual : 호출한 프로세스의 가상 주소 공간의 사용자 모드 부분의 크기. 바이트 단위.
BOOL GetStoreInformation(LPSTORE_INFORMATION lpsi);
참고주소 : http://msdn.microsoft.com/en-us/library/ms891023.aspx
사용 가능한 빈 공간의 양을 포함하는 저장 크기에 대한 정보에 대한 STORE_INFORMATION 구조체를 채운다.
리턴 : 성공시 TRUE, 실패시 FALSE
lpsi : 이 함수에 의해 채워질 STORE_INFORMATION 구조체 포인터.
DWORD GetSystemPowerStatusEx2(PSYSTEM_POWER_STATUS_EX2 pSystemPowerStatusEx2, DWORD dwLen, BOOL fUpdate);
참고주소 : http://msdn.microsoft.com/en-us/library/ms929472.aspx
베터리 상태 정보를 얻는다.
리턴 : 성공을 나타내는 pSystemPowerStatusEx2 버퍼에서 리턴된 데이터의 길이.
pSystemPowerStatusEx2(out) : 파워 상태 정보를 받는 버퍼의 포인터.
SYSTEM_POWER_STATUS_EX2 구조체 참고주소 : http://msdn.microsoft.com/en-us/library/ms940385.aspx
dwLen(in) : pSystemPowerStatusEx2가 가리키는 버퍼의 길이
fUpdate : TRUE면 디바이스 드라이버로부터 최근 정보를 얻는다. FALSE면 몇 초 후에 낡을 캐시된 정보를 얻는다.
Unicode
Toolbar
Image Viewer
'컴퓨터 공부 > Windows CE' 카테고리의 다른 글
[7월 1일 2,3교시] Pocket PC 4 (0) | 2009.07.01 |
---|---|
[7월 1일 1교시] Pocket PC 3 (0) | 2009.07.01 |
[6월 30일 2교시] Pocket PC (0) | 2009.06.30 |
[6월 30일 1교시] ActiveDeviceEx실습(API조사할 것) (0) | 2009.06.30 |
[6월 29일 4교시] Device Driver System (0) | 2009.06.29 |