Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Flags addieren & subtrahieren

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
26.01.2006, 19:31 Uhr
LowFly



hy,
ich weis es ist ne noob frage aber ich habs noch nie gebraucht und hab jetzt schon in verschiedenen foren danach gesucht und nichts gefunden.
wie die überschrift ja schon beschreibt stellt sich mir die frage.
wie addiere & subtrahiere ich flags voneinander.

ich nehm jetzt mal die schrift als beispiel dort gibt es dword flags.
dort kann ich die Mask mit OR in einer zeile erweitern


Code:

dwMask     = CFM_CHARSET | CFM_BACKCOLOR | CFM_FACE | CFM_ITALIC | CFM_BOLD |CFM_STRIKEOUT| CFM_UNDERLINE;




wenn ich das nun aber an bedingungen knüpfen will, wie muß ich das dann schreiben das nach beenden & erfüllung aller abfragen dwMask aussieht wie oben beschrieben.


Code:

if(A==0)
dwMask = CFM_CHARSET;

if(B==0)
dwMask = CFM_BACKCOLOR ;

if(C==0)
dwMask = CFM_FACE ;

if(D==0)
dwMask = CFM_ITALIC;

.....



und wenn ich das ganze addieren kann wie subtrahiere ich das wieder?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
26.01.2006, 20:03 Uhr
Spacelord
Hoffnungsloser Fall


Ich denke was du suchst ist der operator &=


C++:
if(A==0)
   dwMask &= CFM_CHARSET;



und um einzelne Flags zu entfernen:


C++:
dwMask &= ~CFM_CHARSET;



MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
26.01.2006, 20:03 Uhr
~Bon
Gast


Hi

Wenn die Flags bitcodiert sind kannst du das mal so versuchen:

Flag hinzufügen:
dwMask |= CFM_CHARSET;


Flag löschen:
dwMask &= ~CFM_CHARSET;
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
26.01.2006, 20:14 Uhr
Spacelord
Hoffnungsloser Fall


Jo,da hat Bon recht.
Zum hinzufügen |= .

Mein Fehler...

MfG Spacelord
--
.....Ich mach jetzt nämlich mein Jodeldiplom.Dann hab ich endlich was Eigenes.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
26.01.2006, 21:30 Uhr
overcast



Der Form halber hier noch die Abfrage nach einem gesetzten Bit:


C++:
if( dwMask & CFM_CHARSET )

oder

if( dwMask & (CFM_CHARSET | CFM_BACKCOLOR )



Gruß,
Frank.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
26.01.2006, 23:53 Uhr
LowFly



super genau das was ich gesucht bzw. wisssen wollte
dank an euch drein

Dieser Post wurde am 26.01.2006 um 23:55 Uhr von LowFly editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: