SendMessage; Errorcode 5 : Access_Denied



  • Oh man kann wieder Reden, dass ist nett. Danke.

    Also:
    Message = Nachricht; dachte man kann das so allgemein Benutzen...

    void hideAll( void )
    {
    	ShowWindow( liFormat, SW_HIDE );
    	ShowWindow( liFile, SW_HIDE );
    	ShowWindow( liEdit, SW_HIDE );
    }
    

    mehr ist das nicht.

    Ok jetzt die lösung:
    Ich hatte inen Array of HWND, und damit ich weiß welche checkbox wo ist, habe ich defines gemacht

    //lediglich zur lesbarkeit eines array
    #define cbkMain		0
    #define cbkTXT		1
    #define cbkINI		2
    #define cbkPHP		3
    #define cbkHTM		4
    #define cbkHTML		5
    #define cbkCSS		6
    //lediglich zur lesbarkeit eines array
    #define rbsaTXT		0
    #define rbsaMND		1
    

    die Kommentare fehleten, also bin ich durch ud habe daraus

    #define cbkMain    WM_APP+X...
    

    gemacht 😃
    Natürlich war dann alles auserhalb jeder reichweite von dem Array.

    Danke.. so und jetzt zu der Fehlrnachricht:
    hihi jetzt läuft gar nichts mehr...
    Ich muss jetzt erstmal schauen wo der fehler ist, allerdings sollte keiner auftreten oder?

    Ich habe ja die defines geändert, und dass sollte sich dan überall mitändern oder?



  • lippoliv schrieb:

    (mein edit von eben)
    soll ich kündigen? Geht schlecht...
    Aber wenn ihr mir solange keine Hilfe geben wollt bis ich ne vernünftige Umgebung habe... Ganz ehrlich... Is ne scheiß Einstellung. Klar ist schon nicht soo geil, mit sonem Editor, aber was soll ich machen? Mir sind da die Hände gebunden.

    Ich versteh die Einstellung von deinem Chef nicht, einerseits sollst du lernen Code zu lesen (sei mal dahingestellt das du das mit einer ordentlich IDE genauso gut lernen kannst) aber andereseits fragst du wegen jedem scheis hier im Forum. Weis das dein Chef?

    Aber zurück zum Thema. Wie MFK schon geschrieben, wenn du keinen debugger hast dann hilf dir anders um die Fehlerquelle einzugrenzen. Mach nach jeder zeile eine MessageBox oder so, dan weist du wann der Absturz passiert.
    Und das habe ich dir schonmal gesagt, warum machst du so einen Mist?

    if( !visitMsg )
            return DefWindowProc( targetWnd, wndMsg, wParam, lParam );
    
        return visitMsg;
    

    schirrmie



  • Wohl doch ein größeres problem?

    #define WINVER 0x0600
    #include <windows.h>
    #include <windowsx.h>
    #include <stdbool.h>
    #include <richedit.h>
    #include "./wndClasses.h"
    
    #define VERSION 	"0.00.01.080214"
    #define appName 	"GUIfN"
    #define richText	WM_APP+1
    #define targetName	WM_APP+2
    #define sendBtn		WM_APP+3
    
    HWND 	myAppWnd,
    		myMsgPaper,
    		myTargetName,
    		sendButton;
    HICON	appIcon;
    char 	appTitle[120];
    
    LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM );
    bool createMainWindow( HINSTANCE );
    
    //BeginOfProgramm
    int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
    /*
    	Autor:	Oliver Lippert
    	Begin:	2008-02-14
    	End:		==============
    	Description:
    		This program is the GUI for NaDiA.
    		Some people dislike the CMD, so ther's a order to write a GUI for the NaDiA tool,
    		written by Holger Gründling and Felix Kostka, a really little part is also written by me.
    */
    {
    	MSG myWndMsg;
    
    	sprintf( appTitle, "GUIfN - The GUI for NaDiA | Version: %.7s", VERSION );
    
    	appIcon = LoadImage( hInstance, "./app.ico", IMAGE_ICON, 0, 0, LR_DEFAULTCOLOR | LR_LOADFROMFILE );
    	if( regStandardWnd( hInstance, appName, (WNDPROC)WndProc, (HBRUSH)COLOR_WINDOW, &appIcon ) &&
    		createMainWindow( hInstance ) )	//Fenster Registrieren und Hauptfenster erstellen
    	{
    		while( GetMessage( &myWndMsg, NULL, 0, 0 ) )		//Auf Nachricht warten(muss in jedes Windows-Programm)
    		{
    			TranslateMessage( &myWndMsg );	//Übersetzt von "Virtual Key" zu "Character" message
    			DispatchMessage( &myWndMsg );	//Bearbeitet die Message(std oder nach WndProc())
    		}
    	}
    }
    
    bool createMainWindow( HINSTANCE myHandleInst )
    {
    	HWND myWnd;
    	bool returnValue = true;
    	RECT parent;
    
    	myWnd = CreateWindow(
    				appName,			//Name der Fensterklasse
    				appTitle,			//Titel des Fensters
    				WS_VISIBLE,			//Stil des Fensters
    				CW_USEDEFAULT,		//Position X
    				CW_USEDEFAULT,		//Position Y
    				500,				//Breite
    				300,				//Höhe
    				NULL,				//Parent
    				NULL,				//Menue
    				myHandleInst,		//Handle des Programms
    				NULL				//Zusätzliche Daten
    			);
    
    	if( !myWnd )
    		returnValue = false;
    	else
    	{
    		myAppWnd = myWnd;
    		ShowWindow( myWnd, SW_SHOWNORMAL );
    		UpdateWindow( myWnd );		//WM_PAINT message an Fenster senden
    	}
    
    	return returnValue;
    }
    
    LRESULT CALLBACK WndProc( HWND myWnd, UINT msg, WPARAM wParam, LPARAM lParam )
    {
    	bool		visit	= false;
    	HDC			myHdc;
    	PAINTSTRUCT	myPaint;
    
    	switch( msg )
    	{
    		case WM_CREATE:
    			if( LoadLibrary( "riched32.dll" ) )
    			{
    				myMsgPaper = CreateWindow( "RICHEDIT", "", ES_NOHIDESEL | WS_CHILD | WS_VISIBLE | WS_DLGFRAME | ES_MULTILINE, 100, 60, 390, 170, myWnd, (HMENU)richText, ((LPCREATESTRUCT)lParam)->hInstance, NULL );
    				myTargetName = CreateWindow( "EDIT", "", WS_CHILD | WS_VISIBLE | WS_DLGFRAME, 100, 10, 120, 25, myWnd, (HMENU)targetName, ((LPCREATESTRUCT)lParam)->hInstance, NULL );
    				sendButton = CreateWindow( "BUTTON", "Senden", BS_FLAT | WS_CHILD | WS_VISIBLE | WS_DLGFRAME, 250, 245, 100, 25, myWnd, (HMENU)sendBtn, ((LPCREATESTRUCT)lParam)->hInstance, NULL );
    			}
    			visit = true;
    		break;
    		case WM_PAINT:
    			myHdc = BeginPaint( myWnd, &myPaint );
    			{
    				TextOut( myHdc, 70, 14, "An:", 3 );
    				TextOut( myHdc, 59, 65, "Text:", 5 );
    			}
    		break;
    
    		case WM_COMMAND:
    			switch( LOWORD(wParam) )
    			{
    				case sendBtn:
    					printf( "." );
    				break;
    			}
    		break;
    
    		case WM_CLOSE:
    			PostQuitMessage( 0 );
    		break;
    	}
    
    	if( !visit )
    		return DefWindowProc( myWnd, msg, wParam, lParam );
    
    	return visit;
    }
    

    Ganz einfach...
    habe ich nun stehen

    #define sendBtn		WM_APP+3
    

    kann ich den Button klicken bis ich blöd werd, kein punkt erscheint

    #define sendBtn		1
    

    hier jedoch ist kein Problem vorhanden... Dat läuft.
    Da kommen buttons bei jedem klicke.

    [eidt_for_schirrimme]
    Wenn mir bei uns in der Firma keine helfen kann (alle keine Zeit) muss ich mir wie du schon gesagt hast selbst helfen und im Internet fragen.
    Ausserdem ist "wegen jeden scheiß" relativ... Für mich ist vieles noch neu, und daher ein wenig schwerer zu verstehen als für dich.

    schirrimme schrieb:

    Und das habe ich dir schonmal gesagt, warum machst du so einen Mist?

    was ist daran mist?
    Bei dem default liegen mir die returns zu weit auseinander.

    [2ter edit]mit klammern um die rechnung im define gehts.



  • Hör auf, WM_APP für Steuerelement-IDs zu benutzen, das ist Quatsch.

    Und zum eigentlichen Problem: Du musst deine Defines in Klammern setzen. Solltst du dir sowieso angewöhnen, damit es eben nicht zu solchen unliebsamen Überraschungen kommt. Dank Zeigerarithmetik ist nämlich (MENU)WM_APP + 3 etwas anderes als (HMENU)(WM_APP + 3).



  • siehe edit..

    allerdings funktionierts im myNote nicht(also das ding was ich nciht gepostet habe).
    Wie was meinst du mit

    MFK schrieb:

    Hör auf, WM_APP für Steuerelement-IDs zu benutzen, das ist Quatsch.

    Was soll ich denn machen einer sagt "benutz das" ein anderer "benutz esnicht, das ist quatsch".... ???



  • lippoliv schrieb:

    allerdings funktionierts im myNote nicht(also das ding was ich nciht gepostet habe).

    Tragisch. Ich habe keine Lust mehr, für dich den Debugger zu spielen.

    lippoliv schrieb:

    Was soll ich denn machen einer sagt "benutz das" ein anderer "benutz esnicht, das ist quatsch".... ???

    Der "eine" war ich, und ich hatte dir WM_APP empfohlen, weil DU von selbstdefinierten Nachrichten erzählt hast. Du hast aber gar keine selbstdefinierten Nachrichten, also ist natürlich auch die Verwendung von WM_APP sinnlos.

    Das kommt dabei raus, wenn man unzureichende oder falsche Informationen liefert.



  • MFK schrieb:

    Ich habe keine Lust mehr, für dich den Debugger zu spielen.

    Ist ok, zwinge ja keinen 😉

    MFK schrieb:

    [...]weil DU von selbstdefinierten Nachrichten erzählt hast. Du hast aber gar keine selbstdefinierten Nachrichten,[...]

    Würdest du mir dann den Unterschied von Nachrichten und Steuerelement-IDs erklären? Weil im grunde bedeutet SendMessage ja "SendeNachricht" woo ist da also der unterschie?

    MFG und danke für alle Posts



  • lippoliv schrieb:

    Würdest du mir dann den Unterschied von Nachrichten und Steuerelement-IDs erklären? Weil im grunde bedeutet SendMessage ja "SendeNachricht" woo ist da also der unterschie?

    Grundlagen der Windows-Programmierung. Mach' Dir bitte einen Gefallen und kaufe Dir ein Buch dazu (meinetwegen gesponsort vom Chef).



  • Frag' die Doku (MSDN)...

    greetz, Swordfish



  • Frag die Doku, guter punkt, nur habe ich das Talent falsch zu suchen...
    "difference between message and command id"
    "message and command id"

    benuze ich ne falsche MSDN?
    http://msdn2.microsoft.com/en-us/default.aspx



  • Ja, du suchst falsch. Wie kommst du bei deinen Suchbegriffen darauf, dass die beiden Arten von IDs irgendwas miteinander zu tun haben (und somit ihre Unterschiede herausgestellt werden müssten)?

    Child-Window Identifier ➡ CreateWindowEx
    Das zweite Stichwort hast du bereits bekommen: ➡ WM_APP

    greetz, Swordfish


Anmelden zum Antworten