ShowWindow() FAIL (return FALSE)

EDN Admin

Well-known member
Joined
Aug 7, 2010
Messages
12,794
Location
In the Machine
I dont understand why ShowWindow() return a false value. Im new of Win32, some1 can help me? My code bottom (main.cpp) <b><font color="#808080" size=2>
#include</b></font><font size=2> </font><font color="#800000" size=2>"Game.h" </font><font size=2>
INT WINAPI WinMain</font><font color="#800080" size=2>(</font><font size=2> HINSTANCE hInst</font><font color="#800080" size=2>,</font><font size=2> HINSTANCE</font><font color="#800080" size=2>,</font><font size=2> LPSTR</font><font color="#800080" size=2>,</font><font size=2> INT nCmdShow </font><font color="#800080" size=2>)
{ </font><font size=2>
Game game</font><font color="#800080" size=2>; </font><font size=2>
HRESULT hResult</font><font color="#800080" size=2>; </font><font size=2>
hResult </font><font color="#800080" size=2>=</font><font size=2> game</font><font color="#800080" size=2>.</font><font size=2>InitWindow</font><font color="#800080" size=2>(</font><font size=2>hInst</font><font color="#800080" size=2>,</font><font size=2>nCmdShow</font><font color="#800080" size=2>,</font><font size=2>TEXT</font><font color="#800080" size=2>(</font><font color="#800000" size=2>"Tutorial 01: Init Window"</font><font color="#800080" size=2>),</font><font color="#808000" size=2>800</font><font color="#800080" size=2>,</font><font color="#808000" size=2>600</font><font color="#800080" size=2>,</font><b><font color="#000080" size=2>false</b></font><font color="#800080" size=2>); </font><font size=2>
</font><b><font color="#000080" size=2>if</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> FAILED</font><font color="#800080" size=2>(</font><font size=2>hResult</font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>{ </font><font size=2>
DXTrace</font><font color="#800080" size=2>(</font><font size=2>__FILE__</font><font color="#800080" size=2>,</font><font size=2>__LINE__</font><font color="#800080" size=2>,</font><font size=2>hResult</font><font color="#800080" size=2>,</font><font size=2>DXGetErrorDescription</font><font color="#800080" size=2>(</font><font size=2>hResult</font><font color="#800080" size=2>),</font><font size=2>TRUE</font><font color="#800080" size=2>); </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> </font><font color="#808000" size=2>1</font><font color="#800080" size=2>; </font><font size=2>
</font><font color="#800080" size=2>} </font><font size=2>
</font><b><font color="#000080" size=2>if</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> FAILED</font><font color="#800080" size=2>(</font><font size=2>game</font><font color="#800080" size=2>.</font><font size=2>Run</font><font color="#800080" size=2>())</font><font size=2> </font><font color="#800080" size=2>)</font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> </font><font color="#808000" size=2>1</font><font color="#800080" size=2>; </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> </font><font color="#808000" size=2>0</font><font color="#800080" size=2>;
} </font>
 
Application (Game.cpp) <b><font color="#808080" size=2>
#include</b></font><font size=2> </font><font color="#800000" size=2>"Game.h" </font><font size=2>
LRESULT CALLBACK MsgProc</font><font color="#800080" size=2>(</font><font size=2> HWND hWnd</font><font color="#800080" size=2>,</font><font size=2> UINT message</font><font color="#800080" size=2>,</font><font size=2> WPARAM wParam</font><font color="#800080" size=2>,</font><font size=2> LPARAM lParam </font><font color="#800080" size=2>)
{ </font><font size=2>
PAINTSTRUCT ps</font><font color="#800080" size=2>; </font><font size=2>
HDC hdc</font><font color="#800080" size=2>; </font><font size=2>
</font><b><font color="#000080" size=2>switch</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2>message</font><font color="#800080" size=2>)</font><font size=2>
</font><font color="#800080" size=2>{ </font><font size=2>
</font><b><font color="#000080" size=2>case</b></font><font size=2> WM_PAINT</font><font color="#800080" size=2>: </font><font size=2>
hdc </font><font color="#800080" size=2>=</font><font size=2> BeginPaint</font><font color="#800080" size=2>(</font><font size=2>hWnd</font><font color="#800080" size=2>,</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>ps</font><font color="#800080" size=2>); </font><font size=2>
EndPaint</font><font color="#800080" size=2>(</font><font size=2>hWnd</font><font color="#800080" size=2>,</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>ps</font><font color="#800080" size=2>); </font><font size=2>
</font><b><font color="#000080" size=2>break</b></font><font color="#800080" size=2>; </font><font size=2>
</font><b><font color="#000080" size=2>case</b></font><font size=2> WM_DESTROY</font><font color="#800080" size=2>: </font><font size=2>
PostQuitMessage</font><font color="#800080" size=2>(</font><font color="#808000" size=2>0</font><font color="#800080" size=2>); </font><font size=2>
</font><b><font color="#000080" size=2>break</b></font><font color="#800080" size=2>; </font><font size=2>
</font><b><font color="#000080" size=2>default</b></font><font color="#800080" size=2>: </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> DefWindowProc</font><font color="#800080" size=2>(</font><font size=2>hWnd</font><font color="#800080" size=2>,</font><font size=2> message</font><font color="#800080" size=2>,</font><font size=2> wParam</font><font color="#800080" size=2>,</font><font size=2> lParam</font><font color="#800080" size=2>); </font><font size=2>
</font><font color="#800080" size=2>} </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> </font><font color="#808000" size=2>0</font><font color="#800080" size=2>;
}</font><font color="#008000" size=2> </font><font size=2>
HRESULT Game</font><font color="#800080" size=2>::</font><font size=2>InitWindow</font><font color="#800080" size=2>(</font><font size=2>HINSTANCE hInst</font><font color="#800080" size=2>,</font><font size=2> INT nCmdShow</font><font color="#800080" size=2>,</font><font size=2> LPCTSTR title</font><font color="#800080" size=2>,</font><font size=2> </font><b><font color="#000080" size=2>int</b></font><font size=2> nWidth</font><font color="#800080" size=2>,</font><font size=2> </font><b><font color="#000080" size=2>int</b></font><font size=2> nHeight</font><font color="#800080" size=2>,</font><font size=2> BOOL full</font><font color="#800080" size=2>)
{ </font><font size=2>
</font><font color="#008000" size=2>  </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>cbSize </font><font color="#800080" size=2>=</font><font size=2> </font><b><font color="#000080" size=2>sizeof</b></font><font color="#800080" size=2>(</font><font size=2>WNDCLASSEX</font><font color="#800080" size=2>);</font><font size=2> </font><font color="#008000" size=2>// Window Class Size </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>style </font><font color="#800080" size=2>=</font><font size=2> CS_HREDRAW </font><font color="#800080" size=2>|</font><font size=2> CS_VREDRAW</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// Redraw On Move, And Own DC For Window </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>lpfnWndProc </font><font color="#800080" size=2>=</font><font size=2> </font><font color="#800080" size=2>(</font><font size=2>WNDPROC</font><font color="#800080" size=2>)</font><font size=2> MsgProc</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// WndProc Handles Messages </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>cbClsExtra </font><font color="#800080" size=2>=</font><font size=2> </font><font color="#808000" size=2>0L</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// No Extra Window Data </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>cbWndExtra </font><font color="#800080" size=2>=</font><font size=2> </font><font color="#808000" size=2>0L</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// No Extra Window Data </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>hInstance </font><font color="#800080" size=2>=</font><font size=2> hInst</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// Set The Instance </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>hCursor </font><font color="#800080" size=2>=</font><font size=2> LoadCursor</font><font color="#800080" size=2>(</font><font size=2>NULL</font><font color="#800080" size=2>,</font><font size=2> IDC_ARROW</font><font color="#800080" size=2>);</font><font size=2> </font><font color="#008000" size=2>// Load The Arrow Pointer </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>hbrBackground </font><font color="#800080" size=2>=</font><font size=2> </font><font color="#800080" size=2>(</font><font size=2>HBRUSH</font><font color="#800080" size=2>)(</font><font size=2>COLOR_WINDOW</font><font color="#800080" size=2>);</font><font size=2> </font><font color="#008000" size=2>// Background Color </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>lpszClassName </font><font color="#800080" size=2>=</font><font size=2> TEXT</font><font color="#800080" size=2>(</font><font color="#800000" size=2>"D3D Tutorial"</font><font color="#800080" size=2>);</font><font size=2> </font><font color="#008000" size=2>// Set The Class Name </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>hIcon </font><font color="#800080" size=2>=</font><font size=2> NULL</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// Load The Default Icon </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>hIconSm </font><font color="#800080" size=2>=</font><font size=2> NULL</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// No IconSm </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>lpszMenuName </font><font color="#800080" size=2>=</font><font size=2> NULL</font><font color="#800080" size=2>;</font><font size=2> </font><font color="#008000" size=2>// We Dont Want A Menu </font><font size=2>

</font><font color="#008000" size=2>  </font><font size=2>
</font><b><font color="#000080" size=2>if</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>!</font><font size=2>RegisterClassEx</font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>wc </font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>) </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> E_FAIL</font><font color="#800080" size=2>; </font><font size=2>
</font><font color="#008000" size=2>  </font><font size=2>
wWidth </font><font color="#800080" size=2>=</font><font size=2> nWidth</font><font color="#800080" size=2>; </font><font size=2>
wHeight </font><font color="#800080" size=2>=</font><font size=2> nHeight</font><font color="#800080" size=2>; </font><font size=2>
</font><font color="#008000" size=2>  </font><font size=2>
dd </font><font color="#800080" size=2>=</font><font size=2> GetPrimaryDevice</font><font color="#800080" size=2>(); </font><font size=2>
dm</font><font color="#800080" size=2>.</font><font size=2>dmSize </font><font color="#800080" size=2>=</font><font size=2> </font><b><font color="#000080" size=2>sizeof</b></font><font color="#800080" size=2>(</font><font size=2>DEVMODE</font><font color="#800080" size=2>);</font><font size=2>

</font><b><font color="#000080" size=2>if</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>!</font><font size=2>EnumDisplaySettings</font><font color="#800080" size=2>(</font><font size=2>dd</font><font color="#800080" size=2>.</font><font size=2>DeviceName</font><font color="#800080" size=2>,</font><font size=2> ENUM_CURRENT_SETTINGS</font><font color="#800080" size=2>,</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>dm</font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>) </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> E_FAIL</font><font color="#800080" size=2>;</font><font size=2>
</font><font color="#008000" size=2>// Create window </font><font size=2>
</font><b><font color="#000080" size=2>if</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>!(</font><font size=2>hWnd </font><font color="#800080" size=2>=</font><font size=2> CreateWindow</font><font color="#800080" size=2>( </font><font size=2>
wc</font><font color="#800080" size=2>.</font><font size=2>lpszClassName</font><font color="#800080" size=2>, </font><font size=2>
title</font><font color="#800080" size=2>, </font><font size=2>
WS_OVERLAPPEDWINDOW</font><font color="#800080" size=2>, </font><font size=2>
</font><font color="#800080" size=2>((</font><font size=2>dm</font><font color="#800080" size=2>.</font><font size=2>dmPelsWidth</font><font color="#800080" size=2>-</font><font size=2>wWidth</font><font color="#800080" size=2>)/</font><font color="#808000" size=2>2</font><font color="#800080" size=2>),</font><font size=2> </font><font color="#800080" size=2>((</font><font size=2>dm</font><font color="#800080" size=2>.</font><font size=2>dmPelsHeight</font><font color="#800080" size=2>-</font><font size=2>wHeight</font><font color="#800080" size=2>)/</font><font color="#808000" size=2>2</font><font color="#800080" size=2>), </font><font size=2>
wWidth</font><font color="#800080" size=2>,</font><font size=2> wHeight</font><font color="#800080" size=2>, </font><font size=2>
NULL</font><font color="#800080" size=2>,</font><font size=2> NULL</font><font color="#800080" size=2>,</font><font size=2> wc</font><font color="#800080" size=2>.</font><font size=2>hInstance</font><font color="#800080" size=2>,</font><font size=2> NULL </font><font color="#800080" size=2>))</font><font size=2> </font><font color="#800080" size=2>) </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> E_FAIL</font><font color="#800080" size=2>; </font><font size=2>
</font><font color="#008000" size=2>// Show and update the window </font><font size=2>
</font><b><font color="#000080" size=2>if</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>!</font><font size=2>ShowWindow</font><font color="#800080" size=2>(</font><font size=2> hWnd</font><font color="#800080" size=2>,</font><font size=2> nCmdShow </font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>) </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> E_FAIL</font><font color="#800080" size=2>; </font><font size=2>

UpdateWindow</font><font color="#800080" size=2>(</font><font size=2> hWnd </font><font color="#800080" size=2>); </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> S_OK</font><font color="#800080" size=2>;
} </font><font color="#008000" size=2>
  </font><font size=2>
HRESULT Game</font><font color="#800080" size=2>::</font><font size=2>Run</font><font color="#800080" size=2>(</font><b><font color="#000080" size=2>void</b></font><font color="#800080" size=2>)
{</font><font color="#008000" size=2> </font><font size=2>
ZeroMemory</font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>msg</font><font color="#800080" size=2>,</font><font size=2> </font><b><font color="#000080" size=2>sizeof</b></font><font color="#800080" size=2>(</font><font size=2>msg</font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>); </font><font size=2>
</font><b><font color="#000080" size=2>while</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> msg</font><font color="#800080" size=2>.</font><font size=2>message</font><font color="#800080" size=2>!=</font><font size=2>WM_QUIT </font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>{ </font><font size=2>

</font><b><font color="#000080" size=2>if</b></font><font size=2> </font><font color="#800080" size=2>(</font><font size=2> PeekMessage</font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>msg</font><font color="#800080" size=2>,</font><font size=2> NULL</font><font color="#800080" size=2>,</font><font size=2> </font><font color="#808000" size=2>0U</font><font color="#800080" size=2>,</font><font size=2> </font><font color="#808000" size=2>0U</font><font color="#800080" size=2>,</font><font size=2> PM_REMOVE </font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>)</font><font size=2> </font><font color="#800080" size=2>{ </font><font size=2>
TranslateMessage</font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>msg </font><font color="#800080" size=2>); </font><font size=2>
DispatchMessage</font><font color="#800080" size=2>(</font><font size=2> </font><font color="#800080" size=2>&</font><font size=2>msg </font><font color="#800080" size=2>); </font><font size=2>
</font><font color="#800080" size=2>} </font><font size=2>
</font><font color="#800080" size=2>} </font><font size=2>
UnregisterClass</font><font color="#800080" size=2>(</font><font size=2> wc</font><font color="#800080" size=2>.</font><font size=2>lpszClassName</font><font color="#800080" size=2>,</font><font size=2> wc</font><font color="#800080" size=2>.</font><font size=2>hInstance </font><font color="#800080" size=2>); </font><font size=2>
</font><b><font color="#000080" size=2>return</b></font><font size=2> S_OK</font><font color="#800080" size=2>;
}
</font> 

View the full article
 
Back
Top