Tema: Atspekit kas ? :)
Autorius: anthrax
Data: 2016-06-02 20:21:35
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>main.html</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="SynEdit HTML exporter" />
<style type="text/css">
<!--
body { color: #000000; background-color: #FFFFFF; }
..cpp1-assembler { color: #0000FF; }
..cpp1-character { color: #000000; }
..cpp1-comment { color: #3399FF; font-style: italic; }
..cpp1-float { color: #800080; }
..cpp1-hexadecimal { color: #800080; }
..cpp1-identifier { color: #000000; }
..cpp1-illegalchar { color: #000000; }
..cpp1-number { color: #800080; }
..cpp1-octal { color: #800080; }
..cpp1-preprocessor { color: #008000; }
..cpp1-reservedword { color: #000000; font-weight: bold; }
..cpp1-space { background-color: #FFFFFF; color: #000000; }
..cpp1-string { color: #0000FF; font-weight: bold; }
..cpp1-symbol { color: #FF0000; font-weight: bold; }
-->
</style>
</head>
<body>
<pre>
<code><span style="font: 10pt Consolas;"><span
class="cpp1-preprocessor">#include &lt;windows.h&gt;

</span><span class="cpp1-comment">/* This is where all the input to the
window goes to */
</span><span class="cpp1-identifier">LRESULT CALLBACK WndProc</span><span
class="cpp1-symbol">(</span><span class="cpp1-identifier">HWND
hwnd</span><span class="cpp1-symbol">,</span><span class="cpp1-space"> UINT
Message</span><span class="cpp1-symbol">,</span><span class="cpp1-space">
WPARAM wParam</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> LPARAM lParam</span><span
class="cpp1-symbol">)</span><span class="cpp1-space"> </span><span
class="cpp1-symbol">{
</span><span class="cpp1-space">	</span><span
class="cpp1-reservedword">switch</span><span
class="cpp1-symbol">(</span><span
class="cpp1-identifier">Message</span><span
class="cpp1-symbol">)</span><span class="cpp1-space"> </span><span
class="cpp1-symbol">{
</span><span class="cpp1-space">
		</span><span class="cpp1-comment">/* Upon destruction, tell the main
thread to stop */
</span><span class="cpp1-space">		</span><span
class="cpp1-reservedword">case</span><span class="cpp1-space">
WM_DESTROY</span><span class="cpp1-symbol">:</span><span class="cpp1-space">
</span><span class="cpp1-symbol">{
</span><span class="cpp1-space">			PostQuitMessage</span><span
class="cpp1-symbol">(</span><span class="cpp1-number">0</span><span
class="cpp1-symbol">);
</span><span class="cpp1-space">			</span><span
class="cpp1-reservedword">break</span><span class="cpp1-symbol">;
</span><span class="cpp1-space">		</span><span class="cpp1-symbol">}
</span><span class="cpp1-space">
		</span><span class="cpp1-comment">/* All other messages (a lot of them)
are processed using default procedures */
</span><span class="cpp1-space">		</span><span
class="cpp1-reservedword">default</span><span class="cpp1-symbol">:
</span><span class="cpp1-space">			</span><span
class="cpp1-reservedword">return</span><span class="cpp1-space">
DefWindowProc</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">hwnd</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> Message</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> wParam</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> lParam</span><span class="cpp1-symbol">);
</span><span class="cpp1-space">	</span><span class="cpp1-symbol">}
</span><span class="cpp1-space">	</span><span
class="cpp1-reservedword">return</span><span class="cpp1-space">
</span><span class="cpp1-number">0</span><span class="cpp1-symbol">;
}

</span><span class="cpp1-comment">/* The 'main' function of Win32 GUI
programs: this is where execution starts */
</span><span class="cpp1-reservedword">int</span><span class="cpp1-space">
WINAPI WinMain</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">HINSTANCE hInstance</span><span
class="cpp1-symbol">,</span><span class="cpp1-space"> HINSTANCE
hPrevInstance</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> LPSTR lpCmdLine</span><span
class="cpp1-symbol">,</span><span class="cpp1-space"> </span><span
class="cpp1-reservedword">int</span><span class="cpp1-space">
nCmdShow</span><span class="cpp1-symbol">)</span><span class="cpp1-space">
</span><span class="cpp1-symbol">{
</span><span class="cpp1-space">	WNDCLASSEX wc</span><span
class="cpp1-symbol">;</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* A properties struct of our window */
</span><span class="cpp1-space">	HWND hwnd</span><span
class="cpp1-symbol">;</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* A 'HANDLE', hence the H, or a pointer to our window
*/
</span><span class="cpp1-space">	MSG msg</span><span
class="cpp1-symbol">;</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* A temporary location for all messages */

</span><span class="cpp1-space">	</span><span class="cpp1-comment">/* zero
out the struct and set the stuff we want to modify */
</span><span class="cpp1-space">	memset</span><span
class="cpp1-symbol">(&amp;</span><span
class="cpp1-identifier">wc</span><span class="cpp1-symbol">,</span><span
class="cpp1-number">0</span><span class="cpp1-symbol">,</span><span
class="cpp1-reservedword">sizeof</span><span
class="cpp1-symbol">(</span><span class="cpp1-identifier">wc</span><span
class="cpp1-symbol">));
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">cbSize
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
</span><span class="cpp1-reservedword">sizeof</span><span
class="cpp1-symbol">(</span><span
class="cpp1-identifier">WNDCLASSEX</span><span class="cpp1-symbol">);
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">lpfnWndProc
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
WndProc</span><span class="cpp1-symbol">;</span><span class="cpp1-space">
</span><span class="cpp1-comment">/* This is where we will send messages to
*/
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">hInstance
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
hInstance</span><span class="cpp1-symbol">;
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">hCursor
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
LoadCursor</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">NULL</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> IDC_ARROW</span><span class="cpp1-symbol">);
</span><span class="cpp1-space">
	</span><span class="cpp1-comment">/* White, COLOR_WINDOW is just a #define
for a system color, try Ctrl+Clicking it */
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">hbrBackground
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">HBRUSH</span><span
class="cpp1-symbol">)(</span><span
class="cpp1-identifier">COLOR_WINDOW</span><span
class="cpp1-symbol">+</span><span class="cpp1-number">1</span><span
class="cpp1-symbol">);
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">lpszClassName
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
</span><span class="cpp1-string">&quot;WindowClass&quot;</span><span
class="cpp1-symbol">;
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">hIcon
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
LoadIcon</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">NULL</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> IDI_APPLICATION</span><span
class="cpp1-symbol">);</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* Load a standard icon */
</span><span class="cpp1-space">	wc</span><span
class="cpp1-symbol">.</span><span class="cpp1-identifier">hIconSm
</span><span class="cpp1-symbol">=</span><span class="cpp1-space">
LoadIcon</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">NULL</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> IDI_APPLICATION</span><span
class="cpp1-symbol">);</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* use the name &quot;A&quot; to use the project icon
*/

</span><span class="cpp1-space">	</span><span
class="cpp1-reservedword">if</span><span class="cpp1-symbol">(!</span><span
class="cpp1-identifier">RegisterClassEx</span><span
class="cpp1-symbol">(&amp;</span><span
class="cpp1-identifier">wc</span><span class="cpp1-symbol">))</span><span
class="cpp1-space"> </span><span class="cpp1-symbol">{
</span><span class="cpp1-space">		MessageBox</span><span
class="cpp1-symbol">(</span><span class="cpp1-identifier">NULL</span><span
class="cpp1-symbol">,</span><span class="cpp1-space"> </span><span
class="cpp1-string">&quot;Window Registration Failed!&quot;</span><span
class="cpp1-symbol">,</span><span
class="cpp1-string">&quot;Error!&quot;</span><span
class="cpp1-symbol">,</span><span
class="cpp1-identifier">MB_ICONEXCLAMATION</span><span
class="cpp1-symbol">|</span><span class="cpp1-identifier">MB_OK</span><span
class="cpp1-symbol">);
</span><span class="cpp1-space">		</span><span
class="cpp1-reservedword">return</span><span class="cpp1-space">
</span><span class="cpp1-number">0</span><span class="cpp1-symbol">;
</span><span class="cpp1-space">	</span><span class="cpp1-symbol">}

</span><span class="cpp1-space">	hwnd </span><span
class="cpp1-symbol">=</span><span class="cpp1-space">
CreateWindowEx</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">WS_EX_CLIENTEDGE</span><span
class="cpp1-symbol">,</span><span
class="cpp1-string">&quot;WindowClass&quot;</span><span
class="cpp1-symbol">,</span><span
class="cpp1-string">&quot;Caption&quot;</span><span
class="cpp1-symbol">,</span><span
class="cpp1-identifier">WS_VISIBLE</span><span
class="cpp1-symbol">|</span><span
class="cpp1-identifier">WS_OVERLAPPEDWINDOW</span><span
class="cpp1-symbol">,
</span><span class="cpp1-space">		CW_USEDEFAULT</span><span
class="cpp1-symbol">,</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* x */
</span><span class="cpp1-space">		CW_USEDEFAULT</span><span
class="cpp1-symbol">,</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* y */
</span><span class="cpp1-space">		</span><span
class="cpp1-number">640</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> </span><span class="cpp1-comment">/* width */
</span><span class="cpp1-space">		</span><span
class="cpp1-number">480</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> </span><span class="cpp1-comment">/* height */
</span><span class="cpp1-space">		NULL</span><span
class="cpp1-symbol">,</span><span class="cpp1-identifier">NULL</span><span
class="cpp1-symbol">,</span><span
class="cpp1-identifier">hInstance</span><span
class="cpp1-symbol">,</span><span class="cpp1-identifier">NULL</span><span
class="cpp1-symbol">);

</span><span class="cpp1-space">	</span><span
class="cpp1-reservedword">if</span><span class="cpp1-symbol">(</span><span
class="cpp1-identifier">hwnd </span><span class="cpp1-symbol">==</span><span
class="cpp1-space"> NULL</span><span class="cpp1-symbol">)</span><span
class="cpp1-space"> </span><span class="cpp1-symbol">{
</span><span class="cpp1-space">		MessageBox</span><span
class="cpp1-symbol">(</span><span class="cpp1-identifier">NULL</span><span
class="cpp1-symbol">,</span><span class="cpp1-space"> </span><span
class="cpp1-string">&quot;Window Creation Failed!&quot;</span><span
class="cpp1-symbol">,</span><span
class="cpp1-string">&quot;Error!&quot;</span><span
class="cpp1-symbol">,</span><span
class="cpp1-identifier">MB_ICONEXCLAMATION</span><span
class="cpp1-symbol">|</span><span class="cpp1-identifier">MB_OK</span><span
class="cpp1-symbol">);
</span><span class="cpp1-space">		</span><span
class="cpp1-reservedword">return</span><span class="cpp1-space">
</span><span class="cpp1-number">0</span><span class="cpp1-symbol">;
</span><span class="cpp1-space">	</span><span class="cpp1-symbol">}

</span><span class="cpp1-space">	</span><span class="cpp1-comment">/*
		This is the heart of our program where all input is processed and
		sent to WndProc. Note that GetMessage blocks code flow until it receives
something, so
		this loop will not produce unreasonably high CPU usage
	*/
</span><span class="cpp1-space">	</span><span
class="cpp1-reservedword">while</span><span
class="cpp1-symbol">(</span><span
class="cpp1-identifier">GetMessage</span><span
class="cpp1-symbol">(&amp;</span><span
class="cpp1-identifier">msg</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> NULL</span><span class="cpp1-symbol">,</span><span
class="cpp1-space"> </span><span class="cpp1-number">0</span><span
class="cpp1-symbol">,</span><span class="cpp1-space"> </span><span
class="cpp1-number">0</span><span class="cpp1-symbol">)</span><span
class="cpp1-space"> </span><span class="cpp1-symbol">&gt;</span><span
class="cpp1-space"> </span><span class="cpp1-number">0</span><span
class="cpp1-symbol">)</span><span class="cpp1-space"> </span><span
class="cpp1-symbol">{</span><span class="cpp1-space"> </span><span
class="cpp1-comment">/* If no error is received... */
</span><span class="cpp1-space">		TranslateMessage</span><span
class="cpp1-symbol">(&amp;</span><span
class="cpp1-identifier">msg</span><span class="cpp1-symbol">);</span><span
class="cpp1-space"> </span><span class="cpp1-comment">/* Translate key codes
to chars if present */
</span><span class="cpp1-space">		DispatchMessage</span><span
class="cpp1-symbol">(&amp;</span><span
class="cpp1-identifier">msg</span><span class="cpp1-symbol">);</span><span
class="cpp1-space"> </span><span class="cpp1-comment">/* Send it to WndProc
*/
</span><span class="cpp1-space">	</span><span class="cpp1-symbol">}
</span><span class="cpp1-space">	</span><span
class="cpp1-reservedword">return</span><span class="cpp1-space">
msg</span><span class="cpp1-symbol">.</span><span
class="cpp1-identifier">wParam</span><span class="cpp1-symbol">;
}
</span></span>
</code></pre>
</body>
</html>