컴퓨터 공부/Windows CE

[6월 30일 3교시] Pocket PC 2

려리군 2009. 6. 30. 16:00

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