Screen의 DC C ++에 그리기 후 Force Screen Redraw
문제
Windows Mobile Custom SIP를 만들고 사용자가 키보드의 버튼 위로 "호버"를 누르거나 "호버"를 눌러 :: getdc (null)를 사용하여 화면의 DC에 해당 선택된 이미지 (iPhone-esque)를 그립니다. Win32 C ++에서 개발되었습니다.
내 문제는 이전에 그려진 키를 지우면서 화면을 다시 칠할 수 없다는 것입니다. 나는 그것을 강요하기 위해 내가 생각할 수있는 모든 것을 시도했다 ::: redrawwindow ()는 null 또는 get ..window 기능을 HWND로 기능하고 모든 플래그 콤보 (Invalidate | Updatenow | Erasenow | 모든 사람 등). 나는 또한 다음을 사용하여 RELG을 무효화하고 :: getActiveWindow 및 :: getforegroundwindow, :: getDesktopwindow 등을 사용하여 기본 앱의 리페인을 강요하려고 시도했습니다. 내 Windows 모바일 장치에서 사용합니다. 아무도 아이디어가 있습니까? 모든 도움은 대단히 감사하겠습니다.
딜레마를 설명하기 위해 스크린 샷을 포함 시켰습니다.
http://img13.imageshack.us/img13/9861/cezoom1.png 이전 http://img3.imageshack.us/img3/7481/cezoom2.png 이후
미리 감사드립니다!
해결책
배경 DC에 그리기보다는 임시 창을 만들어서 그 안으로 그리지 않겠습니까? 창을 파괴하면 배경이 자동으로 다시 칠해야합니다.
나는 Windows Mobile을 모르기 때문에 단지 추측하고 있지만 Windows가 DC에 마지막으로 끌어온 것을 캐싱하고 창을 무효화 할 때마다 다시 인쇄하는 것일 수 있습니다.
다른 팁
화면 HWND에서 유효하지 않은 것을 시도해 보셨습니까?