요즘 틈틈히 Scheduler 의 POOM(PIM) 버전을 만들고 있습니다.
일단 프로젝트명을 Scheduler Blue라고 가칭하고 제작 중에 있는데, 기본 컨셉은 2003용의 Pocket Planer를 기준으로 작성하고 있습니다.
다만 Pocket Planer는 풀 화면을 사용하여 320x240 화면 모두를 프로그램 영역을 사용하여 제작하였더군요.

예전 학부시절에 PDA 블루투스 테트리스 게임을 만들었을 때 사용했던 전체화면 코드가 WM5에서는 제대로 작동하지 않더군요.
PDN이나 Codeguru, CodeProject 등의 KB에서 관련 코드를 모두 적용해 보았는데도 테스크바는 사라지더라도 하단의 SIP을 포함한 메뉴바는 제대로 사라지지 않아 고생을 좀 했습니다.

그래도 역시 삽질에는 무너지더군요.

WM5에서는 상위의 상태바의 경우는 SHFullScreen API를 사용하면 간단히 Hide 시킬 수 있습니다. 다만 MSDN에서도 아래와 같이 명시하듯이 핸들에 해당하는 윈도우는 반드시 포어 그라운드에 있어야 하는 것만 주의하면 됩니다

this window must be the foreground window or the function will fail. (MSDN)

그리고 메뉴바의 경우는, 다른 포럼에서는 SipWndClass, MS_SIPBUTTON 등의 윈도우 이름을 가지고 OS에 떠 있는 전역 메뉴바를 move시키거나 hide시키던데, WM5에서는 제대로 동작하지 않더군요.

생각에는 메뉴바가 각 윈도우 별로 개별적으로 붙어버리는 것 같습니다.
그래서 SHFindMenuBar API를 통해 자신에게 할당된 메뉴바 핸들을 가져와서 직접 숨기는 방법을 사용하고 바로 덥어 버리는 방법이 제대로 잘 동작하더군요.

따라서 아래와 같이 해주면 WM5에서 전체화면을 원할히 구현할 수 있습니다.



사용자 삽입 이미지

전체화면 적용전

사용자 삽입 이미지

전체화면 적용 후



Dear All,

I would appreciate anybody help with this problem:

I am developing one Media Player application for Pocket PC. In the
normal view I can't able to hide the SIP button. I tried somany ways
like SHFullScreen,SIPSetInfo,SHSIPInfo, SHSIPPreference and FindWindow/
ShowWindow methods. In the description of SHFullScreen msdn mentioned
that SHFS_HIDESIPBUTTON supports only on Windows Mobile 6.0
Professional & Classic. I am using Windows Mobile 5.0. In the
Fullscreen view I am hiding SIP button by the use of
SHFS_HIDETASKBAR. But in the normal view I need Taskbar & want to hide
SIP button alone..

Thanks in advance

Regards
Kalai


Dear All,

I got the answer for the above problem.. Solution is SHCreateMenuBar.
By setting SHCMBF_HIDESIPBUTTON value in the
dwFlags of the SHMENUBARINFO we can hide the SIP button(alone also) in
WM 5.0.
Thanks for all.

Regards
Kalai

http://www.tech-archive.net/Archive/PocketPC/microsoft.public.pocketpc.developer/2007-10/msg00230.html

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기