Я создаю пользовательский SIP для Windows Mobile, и когда пользователь нажимает или «наводит курсор» на кнопку на клавиатуре, я рисую соответствующее выбранное изображение (в стиле iPhone) на DC экрана, используя :: GetDC (NULL). Он разработан в Win32 C++.
Моя проблема в том, что я никогда не могу заставить экран перерисовываться, стирая ранее нарисованный ключ. Я перепробовал все, что только мог придумать, чтобы заставить это сделать: ::RedrawWindow() со всеми различными комбинациями параметров, используя NULL или любую из функций Get..Window в качестве HWND, и все комбинации флагов (INVALIDATE | UPDATENOW | ERASENOW | ВСЕ ДЕТИ и др.). Я также пытался аннулировать прямоугольник и принудительно перерисовать базовое приложение, используя ::GetActiveWindow и ::GetForegroundWindow, вариации, используя ::GetDesktopWindow и т. д. По сути, у меня закончились идеи, и это последнее, что удерживает меня от используя его на моем устройстве Windows Mobile. У кого-нибудь есть идеи? Любая помощь будет принята с благодарностью.
Я включил несколько скриншотов, чтобы проиллюстрировать мою дилемму.
До снимка экрана
После снимка экрана
http://img13.imageshack.us/img13/9861/cezoom1.png http://img3.imageshack.us/img3/7481/cezoom2.png
Заранее спасибо!