WM_PAINT doesn't redraw figures

Problem Solved xdxd int CreateFrame(long x,long y,long ancho,long alto,HDC* dc,PAINTSTRUCT* ps){ RECT rc; HBRUSH pincel = CreateSolidBrush(RGB(255,0,0)); rc.left = x; rc.top = y; rc.right = x + ancho; rc.bottom = y + alto; cout<<rc.left<<” – ” << rc.top <<” – “<<rc.right<<” – “<<rc.bottom<<“\n”; if(FrameRect(*dc,&rc,pincel)){ if(Ellipse(*dc,rc.left+10,rc.top+10,rc.left+20,rc.top+20)){ cout<<“se dibujo elipse\n”; } cout<<“exito\n”; } DeleteObject(pincel); return 1; }

Title Name not showing and background color not changing

Your MessageRouter is missing default processing. Add DefWindowProc as shown LRESULT CALLBACK AbstractWindow::MessageRouter ( HWND hwnd, UINT message, WPARAM w_param, LPARAM l_param ) { AbstractWindow* abstract_window = 0; if ( message == WM_NCCREATE ) { abstract_window = ( AbstractWindow* ) ( ( LPCREATESTRUCT ( l_param ) )->lpCreateParams ); SetWindowLong ( hwnd, GWL_USERDATA, long ( abstract_window … Read more

DLLImport of the origin function in the DLL

If only kernel32.dll is being changed you could call ntdll.dll!NtReadVirtualMemory (ReadProcessMemory itself calls this function). If ntdll.dll is also seems to be changed by 3rd party process you could copy ntdll.dll to another temporary file (ntdll_copy.dll), and use it: [DllImport(“ntdll_copy.dll”, EntryPoint = “NtReadVirtualMemory”)] private static extern bool NtReadVirtualMemory(IntPtr hProcess, UIntPtr lpBaseAddress, [Out] byte[] lpBuffer, UIntPtr … Read more