[CONTROLS] Bitmap in Resource definieren und in Static Control zeichnen?



  • Hallo!

    Ich versuche mich gerade den ganzen Morgen schon daran, eine Headergrafik in mein Programm einzufügen. Das Problem ist, dass es nicht richtig hinhauen will. In meinem Resource Script hab ich folgendes definiert:

    // (...) andere Definitionen
    IDB_HEADER BITMAP DISCARDABLE "header.bmp"
    

    Und so versuche ich das Static Control zu erstellen:

    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) {
    // (...) andere Definitionen
    	static HINSTANCE hInst = ((LPCREATESTRUCT) lParam) -> hInstance;
    
    	switch (message) {
    		case WM_CREATE:
    			{
    // (...) andere Definitionen
    			ICOHeader = CreateWindow ( "static", "IDB_HEADER", SS_BITMAP,
    											0, 0,
    											0, 0, hWnd, NULL, hInst, NULL);
    
    				return 0;
    			}
    // (...) andere Definitionen
    	}
    	return DefWindowProc(hWnd, message, wParam, lParam);
    }
    

    Der Compiler meldet keinen Fehler, auch zur Laufzeit keine Fehler. Das Static Control, bzw. das BMP wird einfach nicht angezeigt, das restliche Fenster jedoch einwandrei. Die Datei "header.bmp" gibt es selbstverständlich.

    Was mach ich falsch?

    Gruss Dominique



  • http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/staticcontrols/usingstaticcontrols.asp

    da stehts... im Beispiel... musst halt nur IMAGE_ICON durch IMAGE_BITMAP
    ersetzten 🙂

    Man die Jugend verblödet 😃



  • Hi (D)Evil!

    Danke für die Antwort erst mal... Auch wenn sie mich leider nicht weitergebracht hat :(. Ich seh in dem Beispiel keinen direkten Zusammenhang zu meinem Problem. Klar, es geht auch hier um Static Controls, jedoch hauptsächlich um Nachrichten und wie man sie Static Controls zu schickt.

    Siehst du denn keinen Fehler in meinem Code? Also ist etwas falsch daran, hab ich einen Denkfehler? Ich denke so sollte es auch gehen, nicht?

    Ich sollte vielleicht anfügen, dass ich das nicht aus beruflichen Gründen mache. Dieses Prog ist hauptsächlich dazu da, dass ich mir C++ aneignen kann. D.h., ich würde gerne verstehen wie und warum etwas funzt und warum eben auch ned. Also bringen mich fertige Lösungen nicht weiter, sorry.

    Gruss Dominique



  • *pushpost*
    Ich steh leider immer noch vor diesem Problem.


  • Mod

    ICOHeader = CreateWindow ( "static", MAKEINTRESOURCE(IDB_HEADER),
        SS_BITMAP, 0, 0, 0, 0, hWnd, NULL, hInst, NULL);
    

    IDB_HEADER ist vermutlich eine ID, deshalb musst Du IMHO IDB_HEADER verwenden.
    Oder die ID mit einer # voranstellen und übergeben.
    wsprintf(szBuffer,"#%d",IDB_HEADER);


Anmelden zum Antworten