Hi Joeman,
thank you very much for your help. I've got the solution.
First of all, it was wrong to use the file pointer in a shared DLL. When I replaced it with PostMessage, my main application received a notification when the Callback was called.
The solution to manipulate the WM_GETMINMAXINFO is to subclass the window in the callback function like this:
Then a new function is called where I can manipulate the message:Code:if ( (cw->message == WM_GETMINMAXINFO)) { LONG_PTR proc = SetWindowLongPtr(cw->hwnd, GWL_WNDPROC, (LONG_PTR)WndProc); SetProp(cw->hwnd, "_old_proc_", (HANDLE) (proc));
Thank you very much for you effortCode:LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { HANDLE hdl = GetProp(hwnd, "_old_proc_"); RemoveProp(hwnd, "_old_proc_"); SetWindowLongPtr(hwnd, GWL_WNDPROC, (LONG_PTR) (hdl)); switch (uMsg) { case WM_GETMINMAXINFO: { MINMAXINFO* minmax = (MINMAXINFO*) (lParam); minmax->ptMinTrackSize.x = 2500; } break; case WM_WINDOWPOSCHANGING: { WINDOWPOS* wpos = (WINDOWPOS*) (lParam); wpos->cx = 2500; } break; case WM_WINDOWPOSCHANGED: break; default: return CallWindowProc( (WNDPROC) (hdl), hwnd, uMsg, wParam, lParam); break; } }![]()




Reply With Quote