Menupunkte lassen sich nicht öffnen auf fremden PC's, wieso ?



  • jo hm... hat sonst immer einwandfrei funktioniert ...



  • Zeig mal deine WndProc und Message Schleife, ich könnte wetten es liegt an den Nachrichten Behandlungen, bei dir gehts weil du entsprechende VC kacke hast und bei deinem Kumpel nicht, weil er es nicht hat.



  • Du willst aber net die ganze WndProc sehen oder?

    //--- Main ---------------------------------------------------------------------
    
    WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) {
    
        HWND hParent;
        WNDCLASS wc;
        MSG msg;
    
        try { // try to initial wc class
    
            wc.style = CS_HREDRAW | CS_VREDRAW;
            wc.lpfnWndProc = WinProc;
            wc.cbClsExtra = 0;
            wc.cbWndExtra = 0;
            wc.hInstance = hInstance;
            wc.hIcon = LoadIcon( hInstance, MAKEINTRESOURCE( ID_ICON_APPLICATION ) );
            wc.hCursor = LoadCursor( 0, IDC_ARROW );
            wc.hbrBackground = reinterpret_cast< HBRUSH >( GetStockObject( BLACK_BRUSH ) );
            wc.lpszMenuName = "USERMENU";
            wc.lpszClassName = szAppName;
    
            if( !( RegisterClass( &wc ) ) ) {
    
                throw 0 ;
            }
        }
        catch( ... ) {
    
            MessageBox( 0, "The window couldn't registered by windows!",
                        "Shutdown Error", MB_OK | MB_ICONERROR );
            return 0;
        }
    
        try { // try to create the window
    
            hParent = CreateWindowEx( 0,
                                      szAppName, szAppTitle,
                                      WS_SYSMENU,
                                      CW_USEDEFAULT, CW_USEDEFAULT, 355, 300,
                                      0,
                                      0,
                                      hInstance,
                                      0 );
    
            if( hParent == 0 ) {
    
                throw 0;
            }
            else {
    
                ShowWindow( hParent, nCmdShow );
                UpdateWindow( hParent );
            }
        }
        catch( ... ) {
    
            MessageBox( 0, "The window couldn't created!", "Shutdown Error",
                        MB_OK | MB_ICONERROR );
            return 0;
        }
    
        while( GetMessage( &msg, 0, 0, 0 ) ) {
    
            TranslateMessage( &msg );
            DispatchMessage( &msg );
        }
        return( msg.wParam );
    }
    


  • Ok ich kann mich irren, da es recht mager noch alles hier ist, aber ich tippe drauf, das ind der WM_COMMAND die ID´s der Menuitems auf dem Fremdrechner nicht bekannt sind, besser wer es vieleicht, das Menu nicht in der WNDCLASSEX zu setzten als Name, sondern unter WM_CREATE mit Identifizierer dem Window hinzu zufügen, ich schätze hier auf den Konflickt, das eben die Commands auf dem Fremdrechner nicht identifizierbar sind.



  • orr lol schrieb:

    Ok ich kann mich irren, da es recht mager noch alles hier ist, aber ich tippe drauf, das ind der WM_COMMAND die ID´s der Menuitems auf dem Fremdrechner nicht bekannt sind

    Nicht bekannt sind? Wie soll das denn gehen, die werden doch mit kompiliert...

    Poste mal Deinen WM_COMMAND-Handler.



  • CodeFinder schrieb:

    orr lol schrieb:

    Ok ich kann mich irren, da es recht mager noch alles hier ist, aber ich tippe drauf, das ind der WM_COMMAND die ID´s der Menuitems auf dem Fremdrechner nicht bekannt sind

    Nicht bekannt sind? Wie soll das denn gehen, die werden doch mit kompiliert...

    Poste mal Deinen WM_COMMAND-Handler.

    Habe mich abgespeckt ausgedrückt, oder finde das richtige Wort nicht, klar sind werte durch dem Kompiler vorhanden, nur ist es wohl kein Integer, sprich über #define gesetzter wert für das menu, ich rechne damit, das keine Integer verwendet werden, und genau an dieser stelle können solche Probleme entstehen.
    OK, er kann das Menu so schon zufügen, aber eben am besten mit Integer defines, wobei er es dann mit MAKEINTRESOURCE halt zufügt, und die ID´s eben klare Werte haben.



  • kann es unter anderem daran liegen, wenn ich im header file des #define, #ifndef und endif vergessaen hab?



  • Das sind nur Precompiler Comandos, je nach dem was du defined, ich rechne mal mit der Standart Header def, welche den Header ansich kenzeichnet, ne dann eigentlich nicht, wenn aber gewisse unterscheindungs defines sind, zu versionen oder sonst was, kann es schon mal probleme geben, aber nicht bei diesem von dir



  • orr lol schrieb:

    ... ich schätze hier auf den Konflickt, das eben die Commands auf dem Fremdrechner nicht identifizierbar sind.

    Und warum läufts auf seinem Rechner ? Der Fehler hier ist die Fehlerbeschreibung.



  • Ich wiederhole mich eigentlich ungern, aber:

    CodeFinder schrieb:

    Poste mal Deinen WM_COMMAND-Handler.


Anmelden zum Antworten