各位:
  关于SetROP2函数,它可以接受的绘图模式有16种,比如R2_COPYPEN, R2_MERGEPEN什么的。我看书上说这16种可能性就是两个变量进行布尔运算的所有可能(AND,OR,XOR,NOT四种运算符),可这16种是怎么通过排列组合算出来的呢,这要请教各位了,谢谢。

解决方案 »

  1.   

    BOOL bool1;
    BOOL bool2;bool1(0/1) OR   bool2(0/1)
               AND
               NOT
               XORbool1 = 0 时: 8个
    bool1 = 1 时: 又8个
      

  2.   

    谢谢两位的回答,不过我还是不明白,以下16种组合:(P代表画笔,D代表屏幕的原色,就是这两个颜色运算的结果)
    R2_BLACK                D = 0 
    R2_NOTMERGEPEN          D = ~(D | P) 
    R2_MASKNOTPEN           D = D & ~P 
    R2_NOTCOPYPEN           D = ~P 
    R2_MASKPENNOT           D = P & ~D 
    R2_NOT                  D = ~D 
    R2_XORPEN               D = D ^ P 
    R2_NOTMASKPEN           D = ~(D & P) 
    R2_MASKPEN              D = D & P 
    R2_NOTXORPEN            D = ~(D ^ P) 
    R2_NOP                  D = D 
    R2_MERGENOTPEN          D = D | ~P 
    R2_COPYPEN              D = P
    R2_MERGEPENNOT          D = P | ~D 
    R2_MERGEPEN             D = P | D 
    R2_WHITE                D = 1 ~是一元运算的,能简单得用2的4次方得出来吗。
    还有,比如D=D, D=1, D=0怎么用D和P的布尔运算得出来。