DialogProc will nicht als Parameter ...



  • Hi @ All.

    Der folgende Code meckert beim return DialogBox. das ist so, weil er Die DialogProc nicht erkennt.
    Warum?

    Also er meckert beim kompilieren, das wäre nicht der richtige Parameter.

    #include <windows.h>
    #include <math.h>
    #include <tchar.h>
    
    #include "script.h"
    
    LRESULT CALLBACK DialogProc(HWND hwnd,UNIT message,WPARAM wParam,LPARAM lParam)
    {
    	// Dies wird sich später noch ändern
    	return 0;
    }
    
    int WINAPI WinMain(HINSTANCE hInstance,
    				   HINSTANCE hPrevInstance,
    				   LPSTR     lpCmdLine,
    				   int       nShowCmd)
    {
    	return DialogBox(hInstance, MAKEINTRESOURCE(ID_DIALOG_MAIN), NULL, DialogProc);
    }
    


  • irgendwie habe ich s jetzt.

    aber der Dialog kommt nicht. Die DialogBox function returnt -1.

    woran kann das liegen?

    #include <windows.h>
    #include <math.h>
    #include <tchar.h>
    
    #include "script.h"
    
    BOOL CALLBACK DialogProc(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
       switch(message)
       {
       case WM_INITDIALOG:
          // Hier das machen, was man sonst in WM_CREATE machen würde
          return (TRUE);
    
       case WM_DESTROY:
       case WM_CLOSE:
          // Hier wird der Dialog geschlossen
          EndDialog(hDlg,0);
          return (TRUE);
    
       case WM_COMMAND:
          // Hier werden die beiden Buttons, vom Standard-Dialog
          // des MS Visual Studio Resourcengenerators abgefragt.
          switch (LOWORD(wParam))
          {
          case IDCANCEL:
             EndDialog(hDlg,0);
             return (TRUE);
    
          case IDOK:
             Beep (1000,1000);
             return (TRUE);
    
          default:
             break;
          }
          return (FALSE);
       }
    
       return (FALSE);
    }
    
    int WINAPI WinMain(HINSTANCE hInstance,
    				   HINSTANCE hPrevInstance,
    				   LPSTR     lpCmdLine,
    				   int       nShowCmd)
    {
    	return DialogBox(hInstance, MAKEINTRESOURCE(ID_DIALOG_MAIN), NULL, DialogProc);
    }
    

    Danke.



  • Verwende statt BOOL INT_PTR.

    Was für eine Fehlerinformation bekommst Du via GetLastError?



  • InitCommonControlsEx



  • häh schrieb:

    InitCommonControlsEx

    was ist damit?? kenn ich net.



  • Script-Styler schrieb:

    häh schrieb:

    InitCommonControlsEx

    was ist damit?? kenn ich net.

    Troll



  • Gibt es nicht so etwas wie DefWindowProc für Dialoge?

    thx.



  • musst du mchen wenn dein dialog common controls benutzt.



  • Script-Styler schrieb:

    Gibt es nicht so etwas wie DefWindowProc für Dialoge?

    thx.

    ja DefDlgProc aber das hat nix mit deinem problem zu tun



  • Script-Styler schrieb:

    Gibt es nicht so etwas wie DefWindowProc für Dialoge?

    thx.

    Indirekt: ja. Den Dialog-Manager. Wenn Du return (FALSE); schreibst, signalisierst Du damit, dass die Nachricht noch nicht bearbeitet wurde.

    EDIT: Hast Du meinen ersten Post überhaupt wahrgenommen?



  • dein erster post ist quatsch codefinder. das kommt beides aufs gleiche hinaus, Common Controls sind hier das Problem.



  • häh schrieb:

    dein erster post ist quatsch codefinder. das kommt beides aufs gleiche hinaus, Common Controls sind hier das Problem.

    Nur wenn er die Xp-Styles einbindet oder ein Control verwendet, was darauf zu greift. Klar ist es möglich, aber auf beides gibt es keinen Hinweis.



  • er benutzt SysDateTimePick32, siehe anderer Thread



  • häh schrieb:

    er benutzt SysDateTimePick32, siehe anderer Thread

    Jupp, hast Recht, das hätte er vllt. mal erwähnen können, naja egal. Ist dann wahrscheinlich des Rätsels-Lösung.



  • CodeFinder schrieb:

    häh schrieb:

    er benutzt SysDateTimePick32, siehe anderer Thread

    Jupp, hast Recht, das hätte er vllt. mal erwähnen können, naja egal. Ist dann wahrscheinlich des Rätsels-Lösung.

    was soll das heißen??

    soll ich die DateTimes mal rausnehmen?? zum test.



  • Script-Styler schrieb:

    CodeFinder schrieb:

    häh schrieb:

    er benutzt SysDateTimePick32, siehe anderer Thread

    Jupp, hast Recht, das hätte er vllt. mal erwähnen können, naja egal. Ist dann wahrscheinlich des Rätsels-Lösung.

    was soll das heißen??

    soll ich die DateTimes mal rausnehmen?? zum test.

    Teste es doch einfach und frag hier nich ob du es testen sollst :p



  • naja wenn ich diese datetime-dinger rausnehme, dann passiert zwar was, aber das ist ein debug fehler. irgendwie komme ich jetzt net mehr weiter.



  • irgendwie komme ich jetzt net mehr weiter.

    dann gib doch auf



  • @tipp: nö.
    "aber nich genuch eier inner hose um sich mit dem richtigen namen anzuloggen.", (Anderer forumthread).

    Tja, was nun?



  • # was hast du vor (ideen und konzepte, kein code) und warum willst du das machen
    # dein original code, nichts abtippen oder aus dem kopf reproduzieren. (in [cpp] tags kleiden und auf den eindruck achten)
    # genug code, um das programm kompilieren zu koennen ("das sollte so kompilieren")
    # gerade so viel code, damit das problem noch besteht (alles raus, was nicht zum problem beitraegt)
    # was sollte der praesentierte code eigentlich machen
    # was macht er stattdessen (fehlermeldungen usw hier)
    # all deine eigenbemuehungen, das problem zu loesen (was kam beim googlen raus, was kam beim debugging raus,...)


Anmelden zum Antworten