<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Programm öffnet sich nicht mehr nach minimierung]]></title><description><![CDATA[<p>Hi,<br />
wenn ich mein programm in die taskleiste minimiere und dann wieder öffne öffnet es sich nicht.<br />
Woran kann das liegen?<br />
Es ist eine fullscreen app.<br />
Und noch ne Frage:<br />
Was ist windowsx.h?</p>
<pre><code class="language-cpp">// include the basic windows header files and the Direct3D header file
#include &lt;windows.h&gt;
#include &lt;d3d9.h&gt;

// global declarations
LPDIRECT3D9 d3d;    // the pointer to our Direct3D interface
LPDIRECT3DDEVICE9 d3ddev;    // the pointer to the device class
// define the screen resolution
#define SCREEN_WIDTH  1024     
#define SCREEN_HEIGHT 768
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) &amp; 0x8000) ? 1 : 0)
#define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) &amp; 0x8000) ? 0 : 1) 

// function prototypes
void initD3D(HWND hWnd);    // sets up and initializes Direct3D
void render_frame(void);    // renders a single frame
void cleanD3D(void);    // closes Direct3D and releases memory

// the WindowProc function prototype
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

// the entry point for any Windows program
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    HWND hWnd;
    WNDCLASSEX wc;
	TCHAR szAppName[] = TEXT(&quot;Erstes DirectX Programm&quot;);

    ZeroMemory(&amp;wc, sizeof(WNDCLASSEX));

    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = (WNDPROC)WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    //wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wc.lpszClassName = szAppName;

    RegisterClassEx(&amp;wc);

    hWnd = CreateWindowEx(NULL,
                          szAppName,
                          szAppName,
                          WS_EX_TOPMOST | WS_POPUP,  
                          0, 0,
                          SCREEN_WIDTH, SCREEN_HEIGHT,
                          NULL,
                          NULL,
                          hInstance,
                          NULL);

    ShowWindow(hWnd, nCmdShow);

    // set up and initialize Direct3D
    initD3D(hWnd);

    // enter the main loop:

    MSG msg;

    while(TRUE)
    {
        DWORD starting_point = GetTickCount();

        if (PeekMessage(&amp;msg, NULL, 0, 0, PM_REMOVE))
        {
            if (msg.message == WM_QUIT)
                break;

            TranslateMessage(&amp;msg);
            DispatchMessage(&amp;msg);
        }

        render_frame();
		// check the 'escape' key
	    if(KEY_DOWN(VK_ESCAPE))
		   PostMessage(hWnd, WM_DESTROY, 0, 0); 

        while ((GetTickCount() - starting_point) &lt; 25);
    }

    // clean up DirectX and COM
    cleanD3D();

    return msg.wParam;
}

// this is the main message handler for the program
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
        case WM_DESTROY:
            {
                PostQuitMessage(0);
                return 0;
            } break;
    }

    return DefWindowProc (hWnd, message, wParam, lParam);
}

// this function initializes and prepares Direct3D for use
void initD3D(HWND hWnd)
{
    d3d = Direct3DCreate9(D3D_SDK_VERSION);    // create the Direct3D interface

    D3DPRESENT_PARAMETERS d3dpp;    // create a struct to hold various device information

    ZeroMemory(&amp;d3dpp, sizeof(d3dpp));    // clear out the struct for use
    d3dpp.Windowed = FALSE;    // program windowed, not fullscreen
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;    // discard old frames
    d3dpp.hDeviceWindow = hWnd;    // set the window to be used by Direct3D
	d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;    // set the back buffer format to 32-bit
    d3dpp.BackBufferWidth = SCREEN_WIDTH;    // set the width of the buffer
    d3dpp.BackBufferHeight = SCREEN_HEIGHT;    // set the height of the buffer

    // create a device class using this information and information from the d3dpp stuct
    d3d-&gt;CreateDevice(D3DADAPTER_DEFAULT,
                      D3DDEVTYPE_HAL,
                      hWnd,
                      D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                      &amp;d3dpp,
                      &amp;d3ddev);

    return;
}

// this is the function used to render a single frame
void render_frame(void)
{
	static int i = 1;
    // clear the window to a deep blue
	if(i % 2 == 1)
		d3ddev-&gt;Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 0, 0), 1.0f, 0);
	else
		d3ddev-&gt;Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 255, 0), 1.0f, 0);
	++i;

    d3ddev-&gt;BeginScene();    // begins the 3D scene

    // do 3D rendering on the back buffer here

    d3ddev-&gt;EndScene();    // ends the 3D scene

    d3ddev-&gt;Present(NULL, NULL, NULL, NULL);    // displays the created frame

    return;
}

// this is the function that cleans up Direct3D and COM
void cleanD3D(void)
{
    d3ddev-&gt;Release();    // close and release the 3D device
    d3d-&gt;Release();    // close and release Direct3D

    return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/221973/programm-öffnet-sich-nicht-mehr-nach-minimierung</link><generator>RSS for Node</generator><lastBuildDate>Sun, 12 Apr 2026 21:32:46 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/221973.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 05 Sep 2008 18:28:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Programm öffnet sich nicht mehr nach minimierung on Fri, 05 Sep 2008 18:28:19 GMT]]></title><description><![CDATA[<p>Hi,<br />
wenn ich mein programm in die taskleiste minimiere und dann wieder öffne öffnet es sich nicht.<br />
Woran kann das liegen?<br />
Es ist eine fullscreen app.<br />
Und noch ne Frage:<br />
Was ist windowsx.h?</p>
<pre><code class="language-cpp">// include the basic windows header files and the Direct3D header file
#include &lt;windows.h&gt;
#include &lt;d3d9.h&gt;

// global declarations
LPDIRECT3D9 d3d;    // the pointer to our Direct3D interface
LPDIRECT3DDEVICE9 d3ddev;    // the pointer to the device class
// define the screen resolution
#define SCREEN_WIDTH  1024     
#define SCREEN_HEIGHT 768
#define KEY_DOWN(vk_code) ((GetAsyncKeyState(vk_code) &amp; 0x8000) ? 1 : 0)
#define KEY_UP(vk_code) ((GetAsyncKeyState(vk_code) &amp; 0x8000) ? 0 : 1) 

// function prototypes
void initD3D(HWND hWnd);    // sets up and initializes Direct3D
void render_frame(void);    // renders a single frame
void cleanD3D(void);    // closes Direct3D and releases memory

// the WindowProc function prototype
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);

// the entry point for any Windows program
int WINAPI WinMain(HINSTANCE hInstance,
                   HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine,
                   int nCmdShow)
{
    HWND hWnd;
    WNDCLASSEX wc;
	TCHAR szAppName[] = TEXT(&quot;Erstes DirectX Programm&quot;);

    ZeroMemory(&amp;wc, sizeof(WNDCLASSEX));

    wc.cbSize = sizeof(WNDCLASSEX);
    wc.style = CS_HREDRAW | CS_VREDRAW;
    wc.lpfnWndProc = (WNDPROC)WindowProc;
    wc.hInstance = hInstance;
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    //wc.hbrBackground = (HBRUSH)COLOR_WINDOW;
    wc.lpszClassName = szAppName;

    RegisterClassEx(&amp;wc);

    hWnd = CreateWindowEx(NULL,
                          szAppName,
                          szAppName,
                          WS_EX_TOPMOST | WS_POPUP,  
                          0, 0,
                          SCREEN_WIDTH, SCREEN_HEIGHT,
                          NULL,
                          NULL,
                          hInstance,
                          NULL);

    ShowWindow(hWnd, nCmdShow);

    // set up and initialize Direct3D
    initD3D(hWnd);

    // enter the main loop:

    MSG msg;

    while(TRUE)
    {
        DWORD starting_point = GetTickCount();

        if (PeekMessage(&amp;msg, NULL, 0, 0, PM_REMOVE))
        {
            if (msg.message == WM_QUIT)
                break;

            TranslateMessage(&amp;msg);
            DispatchMessage(&amp;msg);
        }

        render_frame();
		// check the 'escape' key
	    if(KEY_DOWN(VK_ESCAPE))
		   PostMessage(hWnd, WM_DESTROY, 0, 0); 

        while ((GetTickCount() - starting_point) &lt; 25);
    }

    // clean up DirectX and COM
    cleanD3D();

    return msg.wParam;
}

// this is the main message handler for the program
LRESULT CALLBACK WindowProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message)
    {
        case WM_DESTROY:
            {
                PostQuitMessage(0);
                return 0;
            } break;
    }

    return DefWindowProc (hWnd, message, wParam, lParam);
}

// this function initializes and prepares Direct3D for use
void initD3D(HWND hWnd)
{
    d3d = Direct3DCreate9(D3D_SDK_VERSION);    // create the Direct3D interface

    D3DPRESENT_PARAMETERS d3dpp;    // create a struct to hold various device information

    ZeroMemory(&amp;d3dpp, sizeof(d3dpp));    // clear out the struct for use
    d3dpp.Windowed = FALSE;    // program windowed, not fullscreen
    d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD;    // discard old frames
    d3dpp.hDeviceWindow = hWnd;    // set the window to be used by Direct3D
	d3dpp.BackBufferFormat = D3DFMT_X8R8G8B8;    // set the back buffer format to 32-bit
    d3dpp.BackBufferWidth = SCREEN_WIDTH;    // set the width of the buffer
    d3dpp.BackBufferHeight = SCREEN_HEIGHT;    // set the height of the buffer

    // create a device class using this information and information from the d3dpp stuct
    d3d-&gt;CreateDevice(D3DADAPTER_DEFAULT,
                      D3DDEVTYPE_HAL,
                      hWnd,
                      D3DCREATE_SOFTWARE_VERTEXPROCESSING,
                      &amp;d3dpp,
                      &amp;d3ddev);

    return;
}

// this is the function used to render a single frame
void render_frame(void)
{
	static int i = 1;
    // clear the window to a deep blue
	if(i % 2 == 1)
		d3ddev-&gt;Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(255, 0, 0), 1.0f, 0);
	else
		d3ddev-&gt;Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 255, 0), 1.0f, 0);
	++i;

    d3ddev-&gt;BeginScene();    // begins the 3D scene

    // do 3D rendering on the back buffer here

    d3ddev-&gt;EndScene();    // ends the 3D scene

    d3ddev-&gt;Present(NULL, NULL, NULL, NULL);    // displays the created frame

    return;
}

// this is the function that cleans up Direct3D and COM
void cleanD3D(void)
{
    d3ddev-&gt;Release();    // close and release the 3D device
    d3d-&gt;Release();    // close and release Direct3D

    return;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1577257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1577257</guid><dc:creator><![CDATA[Marc1000002]]></dc:creator><pubDate>Fri, 05 Sep 2008 18:28:19 GMT</pubDate></item></channel></rss>