Bilder in einer Win32-Anwendung



  • Also ich hab mich jetzt seit kurzem mit der Win32 meines VC++ 6.0 beschätigt.
    Dabei habe ich immer eine Weiße oberfläsche erzeugt und dann einfach iwas mit den nachrichten gemacht... Nun würde ich gerne versuchen da mal etwas neues rein zu bringen. Und zwar würde ich gerne auf dem bereits bestehenden Weißen hintergrund einfach mal ein Bild platzieren... Leider habe ich keine Ahnug wie ich das angehen soll. Auch Google gibt dazu keine so leichten informationen (Nur wie man bitmaps verändert oder so).

    Kann mir da vllt einer weiter helfen.
    Vllt gibts da nen direkten begriff nach dem ich googlen kann...
    Jede hilfe ist mir recht...

    Wenn es nicht so viel code ist, dann kann ja vllt auch mal wer ein bsp posten...

    Schon mal Herzlichen dank an alle.
    Sqwan

    PS: Vllt kann mir auch noch einer einen tip geben, nach was ich am besten suche damit ich die ganzen windoofs nachrichten (WM_IWAS, VK_IWAS) rausbekommen kann.

    Und falls wer was mit meinem letzten versuch anfangen kann, poste ich ihn einfach mal. ( Noch keine Bilder drinne)

    #include <windows.h>
    #include "stdafx.h"
    
    const UINT TimerID  = 1;
    const UINT SizeX    = 800;
    const UINT SizeY    = 200;
    const char szAppName[] = "Stop-Uhr";
    static RECT     rect;
    	   int  iMSec = 0;
    	   int  iSec  = 0;
    	   int  iMin  = 0;
    	   int  iStd  = 0;
    	   int  iTag  = 0;
    	   int	Position = 0;
    	   bool isActive = false;
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
    
    	   switch(message)
    	   {
    			case WM_SIZE:
    			{
    				rect.right  = LOWORD(lParam);
    				rect.bottom = HIWORD(lParam);
    				return 0;
    			}
    			case WM_KEYDOWN:
    			{
    				switch(wParam)
    				{
    					case VK_SPACE:
    					{
    						isActive = !isActive;
    
    						if(isActive)
    						{
    							SetTimer(hWnd, TimerID, 1000, NULL);
    						}
    						else
    						{
    							KillTimer(hWnd, TimerID);
    						}
    						return 0;
    					}
    					case VK_BACK:
    					{
    						if(isActive)
    						{
    							isActive = false;
    							KillTimer(hWnd, TimerID);
    							iMSec = 0;
    							iSec  = 0;
    							iMin  = 0;
    						}
    						InvalidateRect(hWnd, NULL, TRUE);
    						return 0;
    					}
    					case VK_ESCAPE:
    					{
    						SendMessage(hWnd, WM_CLOSE, 0, 0);
    						return 0;
    					}
    				}
    			}
    			case WM_TIMER:
    			{
    				if(iSec < 60)
    				{
    					iSec++;
    				}
    				else
    				{
    					iMin++;
    					iSec = 0;
    				}
    				InvalidateRect(hWnd, NULL, TRUE);
    				return 0;	
    			}
    			case WM_PAINT:
    			{
    				PAINTSTRUCT   ps;
    				HDC           hDC;
    				SIZE          size;
    				char          sTime[30];
    				int           iLength;
    
    				iLength = wsprintf(sTime, "lol");
    
    				hDC = BeginPaint(hWnd, &ps);
    				{
    					GetTextExtentPoint32(hDC, sTime, iLength, &size);
    
    					while(Position < 750)
    					{
    						TextOut(hDC, Position, rect.bottom / 2 - size.cy / 2, "   ", 3);
    						Position++;
    						TextOut(hDC, Position, rect.bottom / 2 - size.cy / 2, "^o-o_", 5);
    						Sleep(1);
    					}
    				}
    				EndPaint(hWnd, &ps);
    				return 0;
    			}
    			case WM_DESTROY:
    			{
    				if (isActive)
    				{
    					KillTimer(hWnd, TimerID);
    				}
    				PostQuitMessage(0);
    				return 0;
    			}
    		}
    		return DefWindowProc(hWnd, message, wParam, lParam);
    	}
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
                       PSTR szCmdLine, int iCmdShow)
    {
       MSG       msg;
       HWND      hWnd;
       WNDCLASS  wc;
    
       wc.cbClsExtra          = 0;
       wc.cbWndExtra          = 0;
       wc.hbrBackground       = (HBRUSH) GetStockObject(WHITE_BRUSH);
       wc.hCursor             = LoadCursor(NULL, IDC_ARROW);
       wc.hIcon               = LoadIcon(NULL, IDI_APPLICATION);
       wc.hInstance           = hInstance;
       wc.lpfnWndProc         = WndProc;
       wc.lpszClassName       = szAppName;
       wc.lpszMenuName        = NULL;
       wc.style               = CS_HREDRAW | CS_VREDRAW;
    
       RegisterClass(&wc);
    
       hWnd = CreateWindow(  szAppName,
                             szAppName,
                             WS_SYSMENU,
                             CW_USEDEFAULT,
                             CW_USEDEFAULT,
                             SizeX,
                             SizeY,
                             NULL,
                             NULL,
                             hInstance,
                             NULL);
    
       ShowWindow(hWnd, iCmdShow);
       UpdateWindow(hWnd);
    
       while (GetMessage(&msg, NULL, 0, 0))
       {
    	  TranslateMessage(&msg);
          DispatchMessage(&msg);
       }
       return msg.wParam;
    }
    




  • Thx... Das tut hat einige gute stichwörter für google geliefert..
    Nach sowas habe ich gesucht. Eine Anwendung habe ich leider noch nicht hinbekommen. Aber Ich hab ja noch ein bisschen Zeit...

    THX @ geeky

    Sollte jemand noch nen link haben oder stichwörter´nach denen ich Googlen kann; Dann immer her damit.

    So Long
    Sqwan


Anmelden zum Antworten