Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Since your message is being posted to the same window that is being resized, <code>DispatchMessage()</code> will send the message to the window's procedure like any other message targetting that window. So either:</p> <p>1) process the message inside of <code>windowProcedure()</code>:</p> <pre><code>LRESULT CALLBACK windowProcedure(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_SIZE: std::cout &lt;&lt; "window resized" &lt;&lt; std::endl; if (!PostMessage(hWnd, WM_ENV_RESIZED, 0, 0)) { std::cout &lt;&lt; "PostMessage failure!" &lt;&lt; std::endl; std::cout &lt;&lt; "Error code: " &lt;&lt; GetLastError() &lt;&lt; std::endl; } break; case WM_ENV_RESIZED: std::cout &lt;&lt; "env resized" &lt;&lt; std::endl; //... return 0; } return DefWindowProc(hWnd, message, wParam, lParam); } </code></pre> <p>.</p> <pre><code>MSG msg; while (running) { while (PeekMessage(&amp;msg, NULL, 0, 0, PM_REMOVE) ) { TranslateMessage(&amp;msg); DispatchMessage(&amp;msg); } //DirectX render calls } </code></pre> <p>2) if you do not want to process custom messages in your window procedure, then change your message loop to move the <code>TranslateMessage()</code> and <code>DispatchMessage()</code> calls into <code>processWindowsMessage()</code> and only call them for non-custom messages, do not translate/dispatch custom messages:</p> <pre><code>LRESULT CALLBACK windowProcedure(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_SIZE: std::cout &lt;&lt; "window resized" &lt;&lt; std::endl; if (!PostMessage(hWnd, WM_ENV_RESIZED, 0, 0)) { std::cout &lt;&lt; "PostMessage failure!" &lt;&lt; std::endl; std::cout &lt;&lt; "Error code: " &lt;&lt; GetLastError() &lt;&lt; std::endl; } break; } return DefWindowProc(hWnd, message, wParam, lParam); } </code></pre> <p>.</p> <pre><code>MSG msg; while (running) { while (PeekMessage(&amp;msg, NULL, 0, 0, PM_REMOVE)) processWindowsMessage(&amp;msg); //DirectX render calls } </code></pre> <p>.</p> <pre><code>void processWindowsMessage(MSG *msg) { switch (msg-&gt;message) { case WM_ENV_RESIZED: std::cout &lt;&lt; "env resized" &lt;&lt; std::endl; //... break; default: TranslateMessage(msg); DispatchMessage(msg); break; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload