Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Sheddex

unregistriert

11

06.11.2007, 17:52

Falls du schonmal ein Fenster mit der WinAPI erstellt hast, sollte dir zumindest die Verwendung "von außen" bekannt sein:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#define Flag0 0
#define Flag1 1

void Func(unsigned long Flags)
{
  if (Flags & Flag0)
    //Flag0 ist gesetzt


  if (Flags & Flag1)
    //Flag1 ist gesetzt

}

//Aufruf:

Func(Flag0 | Flag1);


Ich hoffe, das ist selbst erklärend... ansonsten nachfragen.

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

12

06.11.2007, 18:00

C-/C++-Quelltext

1
Databyte meinte dass vor dem & die bedingung steht und danach welcher wert genommen werden soll.. David meinte dann dass das äquivalent zu meinem problem folgender code ist:


Sorry Sorry Sorry :oops: :oops: :oops: :oops: :oops: :oops:

Mein Fehler !

Ich meinte nicht das & sondern das ?

Das & ist ein bitweisen operator siehe auch hier.

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

13

06.11.2007, 18:23

oho.. und bei der abfrage:

if ( tm.tmPitchAndFamily & 1 )

kommt jetzt entweder 1 oder 0 raus :)
ich denk ich habs gecheckt!

dane für die antworten!
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

Databyte

Alter Hase

Beiträge: 1 040

Wohnort: Na zu Hause

Beruf: Student (KIT)

  • Private Nachricht senden

14

06.11.2007, 18:47

Genau.. wenn du FLAGS wie DragonFlame machen willst:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#define FLAG1  1  // Bits: 00000001

#define FLAG2  2  // Bits: 00000010

#define FLAG3  4  // Bits: 00000100

...
void Func(BYTE EING)   // Ich mach mal BYTE ( unsigned char ) draus

{ 
  if (EING & Flag1) 
    //Flag1 ist gesetzt 


  if (EING & Flag2) 
    //Flag2 ist gesetzt 

} 

// Aufruf

Func( Flag1 | Flag2 );

//    FLAG1  00000001

//  | FLAG2  00000010

//     =     00000011

//





  if (EING & Flag1) 
    //Flag1 ist gesetzt 


// Beim überprüfen:

//     EING   00000011

//  &  FLAG1  00000001

//     =      00000001

//

// Bedeutet, dass das ergebnis ungleich 1 ist = true


...


Viel erfolg noch :D

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

15

06.11.2007, 18:51

Zitat von »"Databyte"«


// Bedeutet, dass das ergebnis ungleich 1 ist = true


Kapier ich nicht! :?
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

16

06.11.2007, 19:07

Zitat von »"David_pb"«

Zitat von »"Databyte"«


// Bedeutet, dass das ergebnis ungleich 1 ist = true


Kapier ich nicht! :?


Die UND-Verknüpfung liefert als Ergebnis nur an den Stellen ein 1-Bit, an denen beiden Operanden ein 1-Bit besitzen.

soweit ist es zumindest beschrieben bei dem link den Databyte gepostet hat:

http://www.cpp-tutor.de/cpp/le03/le03_02.htm#bit

klingt aber einleuchtend, und habs auch probiert.. funktioniert so ^^

*edit:
oh ich glaub ich weiss was du meinst David.. da hat sich jemand vertippt ^^
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

17

06.11.2007, 19:18

hätte da noch ne frage..

im buch von petzold wird gezeigt wie ich nur so viele zeilen anzeigen lassen kann wie platz im client bereich da ist..

dann sagt er noch man könne ganz einfach die anzahl der zeichen anzeigen lassen die platz haben. sprich: wenn zu wenig platz da ist, werden diese nicht angezeigt..

Zitat


You can calculate the number of full lines of text displayable within the client area with the formula:


cyClient / cyChar

This can be 0 if the height of the client area is too small to display a full character. Similarly, the approximate number of lowercase characters you can display horizontally within the client area is equal to


cxClient / cxChar


das mit den zeilen ist verständlich, aber ich weiss jetzt nicht wirklich wie ich das jetzt mit dem text machen soll..

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
    case WM_PAINT:
        hdc = BeginPaint(hwnd, &ps);

        for (i = 0; i < cyClient / cyChar; i++)
        {
            TextOut(hdc, 0, cyChar * i, sysmetrics[i].szLabel, lstrlen(sysmetrics[i].szLabel));
            TextOut(hdc, 22 * cxCaps, cyChar * i, sysmetrics[i].szDesc, lstrlen (sysmetrics[i].szDesc));            
            
            SetTextAlign(hdc, TA_RIGHT | TA_TOP);

            TextOut(hdc, 22 * cxCaps + 40 * cxChar, cyChar * i, szBuffer, wsprintf(szBuffer, TEXT("%5d"), GetSystemMetrics(sysmetrics[i].iIndex)));
            
            SetTextAlign(hdc, TA_LEFT | TA_TOP);
        }
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

18

07.11.2007, 09:38

Zitat von »"$nooc"«


oh ich glaub ich weiss was du meinst David.. da hat sich jemand vertippt ^^


Da bin ich ja beruhigt!

Zitat von »"$nooc"«


das mit den zeilen ist verständlich, aber ich weiss jetzt nicht wirklich wie ich das jetzt mit dem text machen soll..


Was genau willst du damit machen?
@D13_Dreinig

$nooc

Alter Hase

  • »$nooc« ist der Autor dieses Themas

Beiträge: 873

Wohnort: Österreich / Kärnten

Beruf: Schüler

  • Private Nachricht senden

19

07.11.2007, 18:10

hat sich bereits erledigt, danke :D
Am Anfang der Weisheit steht die eigene Erkenntnis, dass man selbst nichts weiß! - Sokrates

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

20

07.11.2007, 20:29

Zitat von »"$nooc"«

hat sich bereits erledigt, danke :D


Bitte, keine Ursache!
@D13_Dreinig

Werbeanzeige