ich brauch ein beispiel..



  • wie benutze ich eine ressourcendatei?

    ich weiss wie man buttons, fenster per "hand" erstellt.. aber wie mach ich das wenn ich eine ressourcen datei hab wo alles schon drin ist?

    ein kleines beispiel wäre da sehr hilfreich

    vieln dank



  • Du kannst m.H. von Resourcendateien nur Dialoge / Toolbars / ... erstellen - Beispiele dafür findest du zuhauf in der MSDN bzw. im PSDK.

    M.T.



  • Kann mir mal jemand sagen warum die Messagebox net angezeigt wird..?

    resource.rc

    //Microsoft Developer Studio generated resource script.
    //
    #include "resource.h"
    
    #define APSTUDIO_READONLY_SYMBOLS
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 2 resource.
    //
    #include "afxres.h"
    
    /////////////////////////////////////////////////////////////////////////////
    #undef APSTUDIO_READONLY_SYMBOLS
    
    /////////////////////////////////////////////////////////////////////////////
    // Deutsch (Deutschland) resources
    
    #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_DEU)
    #ifdef _WIN32
    LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
    #pragma code_page(1252)
    #endif //_WIN32
    
    #ifdef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // TEXTINCLUDE
    //
    
    1 TEXTINCLUDE DISCARDABLE 
    BEGIN
        "resource.h\0"
    END
    
    2 TEXTINCLUDE DISCARDABLE 
    BEGIN
        "#include ""afxres.h""\r\n"
        "\0"
    END
    
    3 TEXTINCLUDE DISCARDABLE 
    BEGIN
        "\r\n"
        "\0"
    END
    
    #endif    // APSTUDIO_INVOKED
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // Dialog
    //
    
    IDD_DIALOG DIALOG DISCARDABLE  0, 0, 186, 95
    STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
    CAPTION "Dialog"
    FONT 8, "MS Sans Serif"
    BEGIN
        DEFPUSHBUTTON   "OK",IDOK,129,7,50,14
        PUSHBUTTON      "Abbrechen",IDCANCEL,129,24,50,14
    END
    
    /////////////////////////////////////////////////////////////////////////////
    //
    // DESIGNINFO
    //
    
    #ifdef APSTUDIO_INVOKED
    GUIDELINES DESIGNINFO DISCARDABLE 
    BEGIN
        IDD_DIALOG, DIALOG
        BEGIN
            LEFTMARGIN, 7
            RIGHTMARGIN, 179
            TOPMARGIN, 7
            BOTTOMMARGIN, 88
        END
    END
    #endif    // APSTUDIO_INVOKED
    
    #endif    // Deutsch (Deutschland) resources
    /////////////////////////////////////////////////////////////////////////////
    
    #ifndef APSTUDIO_INVOKED
    /////////////////////////////////////////////////////////////////////////////
    //
    // Generated from the TEXTINCLUDE 3 resource.
    //
    
    /////////////////////////////////////////////////////////////////////////////
    #endif    // not APSTUDIO_INVOKED
    

    resource.h

    //{{NO_DEPENDENCIES}}
    // Microsoft Developer Studio generated include file.
    // Used by resource.rc
    //
    #define IDD_DIALOG                      101
    
    // Next default values for new objects
    // 
    #ifdef APSTUDIO_INVOKED
    #ifndef APSTUDIO_READONLY_SYMBOLS
    #define _APS_NEXT_RESOURCE_VALUE        102
    #define _APS_NEXT_COMMAND_VALUE         40001
    #define _APS_NEXT_CONTROL_VALUE         1000
    #define _APS_NEXT_SYMED_VALUE           101
    #endif
    #endif
    

    winmain.c

    #include <windows.h>
    #include "resource.h"
    
    LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
    
    int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, 
                       PSTR szCmdLine, int iCmdShow)
    {
        DialogBox( hInstance, MAKEINTRESOURCE(IDD_DIALOG), NULL, WndProc ); 
    
        return TRUE; 
    }
    
    LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        HWND hwndButton1, hwndButton2; 
        hwndButton1 = GetDlgItem(hWnd, IDOK);
        hwndButton2 = GetDlgItem(hWnd, IDCANCEL);
    
        switch (message)
        {
            case WM_COMMAND:
            {
                if (lParam == (LPARAM)hwndButton1)
                {
                    if (HIWORD(wParam) == BN_CLICKED)
                    SendMessage(hWnd, WM_CLOSE, 0, 0);
                }
                return 0;
    
                if (lParam == (LPARAM)hwndButton2)
                {
                    if (HIWORD(wParam) == BN_CLICKED)
                    {
                        MessageBox(NULL, "hahaha", "witzig witzig", MB_ICONINFORMATION | MB_OK | MB_DEFBUTTON1);
                    }
                return 0;
                }
            }
    
            case WM_DESTROY:
            {
                PostQuitMessage(0);
                return 0;
            }
        }
        return DefWindowProc(hWnd, message, wParam, lParam);
    }
    


  • LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
    {
        HWND hwndButton1, hwndButton2; 
        hwndButton1 = GetDlgItem(hWnd, IDOK);
        hwndButton2 = GetDlgItem(hWnd, IDCANCEL);
    
        switch (message)
        {
            case WM_COMMAND:
            {
               switch(LOWORD(wParam))
               {
               case IDOK:
                   SendMessage(hWnd, WM_CLOSE, 0, 0);
                   return TRUE;
    
               case IDCANCEL:
                   MessageBox(NULL, "hahaha", "witzig witzig", MB_ICONINFORMATION | MB_OK | MB_DEFBUTTON1);
                   return TRUE;
    
               default:
                   break;
                }
            }
    
            case WM_CLOSE:
                EndDialog(hWnd, 0);
                PostQuitMessage(0);
                return TRUE;
    
        }
        return FALSE;
    }
    

    [ Dieser Beitrag wurde am 30.05.2003 um 14:43 Uhr von Hepi editiert. ]



  • egal welche button ich drück es kommt die meldung.. und bei ESC und ALT+F4 auch.. also hepi: es tut net so richtig wie es soll

    kann es sein das du nicht unterscheidest welchen button grad die nachricht sendet?

    [ Dieser Beitrag wurde am 30.05.2003 um 14:15 Uhr von greeder editiert. ]



  • Original erstellt von greeder:
    kann es sein das du nicht unterscheidest welchen button grad die nachricht sendet?

    Was meinst Du was

    switch(LOWORD(wParam))
    

    macht?

    Geh zu Winapi.net und schau Dir an, wie man WIRKLICH rein dialogfeld-basierende Anwendungen erstellt!

    Diese Nachrichtenschleife wird in JEDEM meiner dialogfeldbasierenden Programme genau so verwendet, OHNE Probleme!

    [ Dieser Beitrag wurde am 30.05.2003 um 14:45 Uhr von Hepi editiert. ]



  • merci..

    ich hatte schon immer den drang sachen zu verkomplizieren 🙂


Anmelden zum Antworten