Bitamps in Varibale laden aber wie wieder am Bildschirm ausgeben



  • Hallo ich habe ein Programm und zwar werden bei mir Bittmaps in Variablen geladen.

    Und nun bin ich mir nicht sicher wie diese Ausgegeben werden und deshalb wollte ich fragen ob dies der Programmteil dafür ist. DA ich nicht so viel Ahnung mit Zeigern habe.

    extern GLOBALHANDLE InitModulAuswahlSpeicher(ProgrammInformation *info)
    {
    int i,j;
    HGLOBAL	SpeicherHandle;
    BlockSpeicherFeld *Zeiger;
    	// Werte für die Bildlaufleiste auf Null setzen 
    	(*info).AuswahlLeiste.Vertdif = 0;
    	(*info).AuswahlLeiste.VertMax = 0;
    	(*info).AuswahlLeiste.VertPos = 0;
    	// Speicher reservieren
    	//AuswahlZeiger = (BlockSpeicherFeld *) malloc (AnzahlElemente * sizeof(BlockSpeicherFeld));
    	SpeicherHandle =  GlobalAlloc(GHND,((*info).AnzahlElemente + 1) * sizeof(BlockSpeicherFeld));
    	if(!SpeicherHandle)
    					return FALSE;
    	Zeiger = (BlockSpeicherFeld *) GlobalLock(SpeicherHandle);
    	// Block Bezeichnungen
    	char PinBez [] [4] ={	"   ",
    							"E_ ",
    							"A_ ",
    							"A_ ",
    							"M_ ",
    							"M_ ",
    							"M_ ",
    							"A_ ",
    							"AND",
    							"OR ",
    
    							"XOR",
    							"T_ ",
    							"1"  ,
    							"POR",
    							"EA_",
    							"EA_",
    							"M_"
    						};
    	BlockTypen	Modultypen[] = {Leer,
    								Eingang,
    								Ausgang,
    								R_Ausgang,
    								Merker_Ausgang,
    								Merker_Eingang,
    								Register_Merker,
    								Register_Ausgang,
    								Und,
    								Oder,
    								XOR,
    								Timer,
    								High,
    								POR,
    								MAKRO,
    								EA_Eingang,
    								EA_Ausgang,
    
    								};
    	// Die Standardwerte
    	(*Zeiger).aktiviert			= FALSE;
    	(*Zeiger).xPosition			= 1;
    	(*Zeiger).yPosition			= 0;
    	(*Zeiger).AnzEingaenge		= 0;
    	(*Zeiger).Bausteinnummer	= 0;
    	(*Zeiger).TextDarstellen	= FALSE;
    	(*Zeiger).vorhanden			= TRUE; // Zum Init werden alle Module generiert. Auch die EA - Elemente
    	for(i=0;i <= 8 ;i++)
    						{	
    						(*Zeiger).NegEingang[i] = FALSE;
    						(*Zeiger).NegAusgang[i] = FALSE;
    						};
    	strcpy((*Zeiger).Pin,TEXT("   "));
    	//Alle Elemente auffüllen und die einzelnen Fenster für die Modulauswahl erstellen													//Diese steht dann an der erste Stelle
    	for(i=1;i <= (*info).AnzahlElemente;i++)
    		{
    		(*(Zeiger + i))  = *Zeiger;
    		(*(Zeiger + i)).Bausteinnummer = i;
    		(*(Zeiger + i)).Bausteintyp = Modultypen[i];
    		strcpy((*(Zeiger + i)).Pin, PinBez[i]);
    		for (j = 0; j < 8; j++)
    			{
    			(*(Zeiger + i)).NegAusgang[j] = FALSE;
    			(*(Zeiger + i)).NegEingang[j] = FALSE;
    			};								
    		};	
    	(*(Zeiger + 1)).AnzEingaenge = 0;
    	(*(Zeiger + 2)).AnzEingaenge = 1;
    	(*(Zeiger + 3)).AnzEingaenge = 1;
    	(*(Zeiger + 4)).AnzEingaenge = 0;
    	(*(Zeiger + 5)).AnzEingaenge = 0;
    	(*(Zeiger + 6)).AnzEingaenge = 3;
    	(*(Zeiger + 7)).AnzEingaenge = 3;
    	(*(Zeiger + 8)).AnzEingaenge = 2;
    	(*(Zeiger + 9)).AnzEingaenge = 2;
    	(*(Zeiger + 10)).AnzEingaenge = 2;
    	(*(Zeiger + 11)).AnzEingaenge = 1;
    	(*(Zeiger + 12)).AnzEingaenge = 0;
    	(*(Zeiger + 13)).AnzEingaenge = 0;
    	(*(Zeiger + 14)).AnzEingaenge = 0;
    	(*(Zeiger + 15)).AnzEingaenge = 2;
    	(*(Zeiger + 16)).AnzEingaenge = 2;
    	(*Zeiger).Bausteinnummer = (*info).AnzahlElemente;	
    	if((*info).SPS_Typ == EX16)
    		{
    		(*(Zeiger + 14)).vorhanden = FALSE;
    		(*(Zeiger + 15)).vorhanden = FALSE;
    		};
    	GlobalUnlock(SpeicherHandle);
    	return SpeicherHandle;
    }
    

  • Mod

    Dies Ding hat nichts mit Bitmaps zu tun. Ob es mit Deiner graphioschen Ausgabe zusammenhängt kann ich Dir nicht sagen.





  • mercer schrieb:

    Hi,
    schau mal hier:

    http://www.henkessoft.de/C++/MFC/mfc_einsteigerbuch_kapitel4.htm

    Gruß

    ich danke dir. meine bilder sind auch in der resource gespeichert. ich werde es mir durchlesen.


Anmelden zum Antworten