光栅操作码:BitBlt之dwRop
我叫Raster Operater, 这名不是白叫的,下面来研究一下API函数BitBlt.
BitBlt中最难理解的就是dwRop,不光难记,API浏览器里还不全.
以下是《三元光栅操作》,很全的.
http://www.vchome.net/tech/graphics/graph26.htm
看完之后也觉得没什么,其中高字是索引,
令(画刷)P=0xF0, (源)S=0xCC, (目标)D=0xAA, 进行所需的运算, 结果就是索引.
索引*0x10000就是dwRop.低字不用管他.
低字古里古怪的,我找不到一点规律.但据我所知,他没有任何作用.
现在我都不用API常数中的这些值了,直接用PSD着三个值算.也挺简单的.
可能高手早知道了,我还在这里唠叨.....见笑了.
另:dwRop的低字总该有些意义的.有谁知道吗?
不至于吧,这么冷清?
还是标题太没吸引里了?
自己先顶一下.
陨落雕和Zyl两位应该会有些说法,我。。。没话讲。。。
//dwRop
[in] Specifies both foreground and background ternary raster operation codes (ROPs) that the function uses to control the combination of source and destination data. The background raster operation code is stored in the high-order byte of the high-order word of this value; the foreground raster operation code is stored in the low-order byte of the high-order word of this value;
**the low-order word of this value is ignored, and should be zero.**
我也觉得低位字似乎没什么用。
寻找资料ing
我也不知道怎么用
但基本的256种足够了
'## 光栅运算常数 ##########################################
Public Enum ROP
ROP_0 = &H42 'Dest=0
BLACKNESS = ROP_0
ROP_DPSoon = &H10289 'Dest=NOT ((Patten OR Src) OR Dest)
ROP_DPSona = &H20C89 'Dest=(NOT (Patten OR Src)) AND Dest
ROP_PSon = &H300AA 'Dest=NOT (Patten OR Src)
ROP_SDPona = &H40C88 'Dest=(NOT (Patten OR Dest)) AND Src
ROP_DPon = &H500A9 'Dest=NOT (Patten OR Dest)
ROP_PDSxnon = &H60865 'Dest=NOT ((NOT (Dest XOR Src)) OR Patten)
ROP_PDSaon = &H702C5 'Dest=NOT ((Dest AND Src) OR Patten)
ROP_SDPnaa = &H80F08 'Dest=(NOT Patten) AND Dest AND Src
ROP_PDSxon = &H90245 'Dest=NOT ((Dest XOR Src) OR Patten)
ROP_DPna = &HA0329 'Dest=(NOT Patten) AND Dest
ROP_PSDnaon = &HB0B2A 'Dest=NOT (((NOT Dest) AND Src) OR Patten)
ROP_SPna = &HC0324 'Dest=(NOT Patten) AND Src
ROP_PDSnaon = &HD0B25 'Dest=NOT (((NOT Src) AND Dest) OR Patten)
ROP_PDSonon = &HE08A5 'Dest=NOT ((NOT (Dest OR Src)) OR Patten)
ROP_Pn = &HF0001 'Dest=NOT Patten
ROP_PDSona = &H100C85 'Dest=(NOT (Dest OR Src)) AND Patten
ROP_DSon = &H1100A6 'Dest=NOT (Dest OR Src)
NOTSRCERASE = ROP_DSon
ROP_SDPxnon = &H120868 'Dest=NOT ((NOT (Dest XOR Patten)) OR Src)
ROP_SDPaon = &H1302C8 'Dest=NOT ((Dest AND Patten) OR Src)
ROP_DPSxnon = &H140869 'Dest=NOT ((NOT (Patten XOR Src)) OR Dest)
ROP_DPSaon = &H1502C9 'Dest=NOT ((Patten AND Src) OR Dest)
ROP_PSDPSanaxx = &H165CCA 'Dest=(((NOT (Patten AND Src)) AND Dest) XOR Src) XOR Patten
ROP_SSPxDSxaxn = &H171D54 'Dest=NOT (((Src XOR Patten) AND (Dest XOR Src)) XOR Src)
ROP_SPxPDxa = &H180D59 'Dest=(Src XOR Patten) AND (Dest XOR Patten)
ROP_SDPSanaxn = &H191CC8 'Dest=NOT (((NOT (Patten AND Src)) AND Dest) XOR Src)
ROP_PDSPaox = &H1A06C5 'Dest=((Src AND Patten) OR Dest) XOR Patten
ROP_SDPSxaxn = &H1B0768 'Dest=NOT (((Patten XOR Src) AND Dest) XOR Src)
ROP_PSDPaox = &H1C06CA 'Dest=((Dest AND Patten) OR Src) XOR Patten
ROP_DSPDxaxn = &H1D0766 'Dest=NOT (((Patten XOR Dest) AND Src) XOR Dest)
ROP_PDSox = &H1E01A5 'Dest=(Dest OR Src) XOR Patten
ROP_PDSoan = &H1F0385 'Dest=NOT ((Dest OR Src) AND Patten)
ROP_DPSnaa = &H200F09 'Dest=(NOT Src) AND Patten AND Dest
ROP_SDPxon = &H210248 'Dest=NOT ((Dest XOR Patten) OR Src)
ROP_DSna = &H220326 'Dest=(NOT Src) AND Dest
ROP_SPDnaon = &H230B24 'Dest=NOT (((NOT Dest) AND Patten) OR Src)
ROP_SPxDSxa = &H240D55 'Dest=(Src XOR Patten) AND (Dest XOR Src)
ROP_PDSPanaxn = &H251CC5 'Dest=NOT (((NOT (Src AND Patten)) AND Dest) XOR Patten)
ROP_SDPSaox = &H2606C8 'Dest=((Patten AND Src) OR Dest) XOR Src
ROP_SDPSxnox = &H271868 'Dest=((NOT (Patten XOR Src)) OR Dest) XOR Src
ROP_DPSxa = &H280369 'Dest=(Patten XOR Src) AND Dest
ROP_PSDPSaoxxn = &H2916CA 'Dest=NOT ((((Patten AND Src) OR Dest) XOR Src) XOR Patten)
ROP_DPSana = &H2A0CC9 'Dest=(NOT (Patten AND Src)) AND Dest
ROP_SSPxPDxaxn = &H2B1D58 'Dest=NOT (((Src XOR Patten) AND (Patten XOR Dest)) XOR Src)
ROP_SPDSoax = &H2C0784 'Dest=((Dest OR Src) AND Patten) XOR Src
ROP_PSDnox = &H2D060A 'Dest=((NOT Dest) OR Src) XOR Patten
ROP_PSDPxox = &H2E064A 'Dest=((Dest XOR Patten) OR Src) XOR Patten
ROP_PSDnoan = &H2F0E2A 'Dest=NOT (((NOT Dest) OR Src) AND Patten)
ROP_PSna = &H30032A 'Dest=(NOT Src) AND Patten
ROP_SDPnaon = &H310B28 'Dest=NOT (((NOT Patten) AND Dest) OR Src)
ROP_SDPSoox = &H320688 'Dest=((Patten OR Src) OR Dest) XOR Src
ROP_Sn = &H330008 'Dest= NOT Src
NOTSRCCOPY = ROP_Sn
ROP_SPDSaox = &H3406C4 'Dest=((Dest AND Src) OR Patten) XOR Src
ROP_SPDSxnox = &H351864 'Dest=((NOT (Dest XOR Src)) OR Patten) XOR Src
ROP_SDPox = &H3601A8 'Dest=(Dest OR Patten) XOR Src
ROP_SDPoan = &H370388 'Dest=NOT ((Dest OR Patten) AND Src)
ROP_PSDPoax = &H38078A 'Dest=((Dest OR Patten) AND Src) XOR Patten
ROP_SPDnox = &H390604 'Dest=((NOT Dest) OR Patten) XOR Src
ROP_SPDSxox = &H3A0644 'Dest=((Dest XOR Src) OR Patten) XOR Src
ROP_SPDnoan = &H3B0E24 'Dest=NOT (((NOT Dest) OR Patten) AND Src)
ROP_PSx = &H3C004A 'Dest=Patten XOR Src
ROP_SPDSonox = &H3D18A4 'Dest=((NOT (Dest OR Src)) OR Patten) XOR Src
ROP_SPDSnaox = &H3E1B24 'Dest=(((NOT Src) AND Dest) OR Patten) XOR Src
ROP_PSan = &H3F00EA 'Dest=NOT (Patten AND Src)
ROP_PSDnaa = &H400F0A 'Dest=(NOT Dest) AND Src AND Patten
ROP_DPSxon = &H410249 'Dest=NOT ((Patten XOR Src) OR Dest)
ROP_SDxPDxa = &H420D5D 'Dest=(Src XOR Dest) AND (Patten XOR Dest)
ROP_SPDSanaxn = &H431CC4 'Dest=NOT (((NOT (Dest AND Src)) AND Patten) XOR Src)
ROP_SDna = &H440328 'Dest=(NOT Dest) AND Src
SRCERASE = ROP_SDna
ROP_DPSnaon = &H450B29 'Dest=NOT (((NOT Src) AND Patten) OR Dest)
ROP_DSPDaox = &H4606C6 'Dest=((Patten AND Dest) OR Src) XOR Dest
ROP_PSDPxaxn = &H47076A 'Dest=NOT (((Dest XOR Patten) AND Src) XOR Patten)
ROP_SDPxa = &H480368 'Dest=(Dest XOR Patten) AND Src
ROP_PDSPDaoxxn = &H4916C5 'Dest=NOT (((Patten AND Dest) OR Src) XOR Dest XOR Patten)
ROP_DPSDoax = &H4A0789 'Dest=((Src OR Dest) AND Patten) XOR Dest
ROP_PDSnox = &H4B0605 'Dest=((NOT Src) OR Dest) XOR Patten
ROP_SDPana = &H4C0CC8 'Dest=(NOT (Dest AND Patten)) AND Src
ROP_SSPxDSxoxn = &H4D1954 'Dest=NOT (((Src XOR Patten) OR (Src XOR Dest)) XOR Src)
ROP_PDSPxox = &H4E0645 'Dest=((Src XOR Patten) OR Dest) XOR Patten
ROP_PDSnoan = &H4F0E25 'Dest=NOT (((NOT Src) OR Dest) AND Patten)
ROP_PDna = &H500325 'Dest=(NOT Dest) AND Patten
ROP_DSPnaon = &H510B26 'Dest=NOT (((NOT Patten) AND Src) OR Dest)
ROP_DPSDaox = &H5206C9 'Dest=((Src AND Dest) OR Patten) XOR Dest
ROP_SPDSxaxn = &H530764 'Dest=NOT (((Dest XOR Src) AND Patten) XOR Src)
ROP_DPSonon = &H5408A9 'Dest=NOT ((NOT (Patten OR Src)) OR Dest)
ROP_Dn = &H550009 'Dest=NOT Dest
DSTINVERT = ROP_Dn
ROP_DPSox = &H5601A9 'Dest=(Patten OR Src) XOR Dest
ROP_DPSoan = &H570389 'Dest=NOT ((Patten OR Src) AND Dest)
ROP_PDSPoax = &H580785 'Dest=((Src OR Patten) AND Dest) XOR Patten
ROP_DPSnox = &H590609 'Dest=((NOT Src) OR Patten) XOR Dest
ROP_DPx = &H5A0049 'Dest=Dest XOR Patten
PATINVERT = ROP_DPx
ROP_DPSDonox = &H5B18A9 'Dest=((NOT (Src OR Dest)) OR Patten) XOR Dest
ROP_DPSDxox = &H5C0649 'Dest=((Src XOR Dest) OR Patten) XOR Dest
ROP_DPSnoan = &H5D0E29 'Dest=NOT (((NOT Src) OR Patten) AND Dest)
ROP_DPSDnaox = &H5E1B29 'Dest=(((NOT Dest) AND Src) OR Patten) XOR Dest
ROP_DPan = &H5F00E9 'Dest=NOT (Dest AND Patten)
ROP_PDSxa = &H600365 'Dest=(Dest XOR Src) AND Patten
ROP_DSPDSaoxxn = &H6116C6 'Dest=NOT (((Dest AND Src) OR Patten) XOR Src XOR Dest)
ROP_DSPDoax = &H620786 'Dest=((Patten OR Dest) AND Src) XOR Dest
ROP_SDPnox = &H630608 'Dest=((NOT Patten) OR Dest) XOR Src
ROP_SDPSoax = &H640788 'Dest=((Patten OR Src) AND Dest) XOR Src
ROP_DSPnox = &H650606 'Dest=((NOT Patten) OR Src) XOR Dest
ROP_DSx = &H660046 'Dest=Dest XOR SRC
SRCINVERT = ROP_DSx
ROP_SDPSonox = &H6718A8 'Dest=((NOT (Patten OR Src)) OR Dest) XOR Src
ROP_DSPDSonoxxn = &H6858A6 'Dest=NOT (((NOT (Dest OR Src)) OR Patten) XOR Src XOR Dest)
ROP_PDSxxn = &H690145 'Dest=NOT (Dest XOR Src XOR Patten)
ROP_DPSax = &H6A01E9 'Dest=(Patten AND Src) XOR Dest
ROP_PSDPSoaxxn = &H6B178A 'Dest=NOT (((Patten OR Src) AND Dest) XOR Src XOR Patten)
ROP_SDPax = &H6C01E8 'Dest=(Dest AND Patten) XOR Src
ROP_PDSPDoaxxn = &H6D1785 'Dest=NOT (((Patten OR Dest) AND Src) XOR Dest XOR Patten)
ROP_SDPSnoax = &H6E1E28 'Dest=(((NOT Src) OR Patten) AND Dest) XOR Src
ROP_PDSxnan = &H6F0C65 'Dest=NOT ((NOT (Dest XOR Src)) AND Patten)
ROP_PDSana = &H700CC5 'Dest=(NOT (Dest AND Src)) AND Patten
ROP_SSDxPDxaxn = &H711D5C 'Dest=NOT (((Src XOR Dest) AND (Patten XOR Dest)) XOR Src)
ROP_SDPSxox = &H720648 'Dest=((Patten XOR Src) OR Dest) XOR Src
ROP_SDPnoan = &H730E28 'Dest=NOT (((NOT Patten) OR Dest) AND Src)
ROP_DSPDxox = &H740646 'Dest=((Patten XOR Dest) OR Src) XOR Dest
ROP_DSPnoan = &H750E26 'Dest=NOT (((NOT Patten) OR Src) AND Dest)
ROP_SDPSnaox = &H761B28 'Dest=(((NOT Src) AND Patten) OR Dest) XOR Src
ROP_DSan = &H7700E6 'Dest = NOT (Src AND Dest)
ROP_PDSax = &H7801E5 'Dest=(Dest AND Src) XOR Patten
ROP_DSPDSoaxxn = &H791786 'Dest=NOT (((Dest OR Src) AND Patten) XOR Src XOR Dest)
ROP_DPSDnoax = &H7A1E29 'Dest=(((NOT Dest) OR Src) AND Patten) XOR Dest
ROP_SDPxnan = &H7B0C68 'Dest=NOT ((NOT (Dest XOR Patten)) AND Src)
ROP_SPDSnoax = &H7C1E24 'Dest=(((NOT Src) OR Dest) AND Patten) XOR Src
ROP_DPSxnan = &H7D0C69 'Dest=NOT ((NOT (Patten XOR Src)) AND Dest)
ROP_SPxDSxo = &H7E0955 'Dest=(Src XOR Patten) OR (Src XOR Dest)
ROP_DPSaan = &H7F03C9 'Dest=NOT (Patten AND Src AND Dest)
ROP_DPSaa = &H8003E9 'Dest=Patten AND Src AND Dest
ROP_SPxDSxon = &H810975 'Dest=NOT ((Src XOR Patten) OR (Src XOR Dest))
ROP_DPSxna = &H820C49 'Dest=(NOT (Patten XOR Src)) AND Dest
ROP_SPDSnoaxn = &H831E04 'Dest=NOT ((((NOT Src) OR Dest) AND Patten) XOR Src)
ROP_SDPxna = &H840C48 'Dest=(NOT (Dest XOR Patten)) AND Src
ROP_PDSPnoaxn = &H851E05 'Dest=NOT ((((NOT Patten) OR Src) AND Dest) XOR Patten)
ROP_DSPDSoaxx = &H8617A6 'Dest=((Dest OR Src) AND Patten) XOR Src XOR Dest
ROP_PDSaxn = &H8701C5 'Dest=NOT ((Dest AND Src) XOR Patten)
ROP_DSa = &H8800C6 'Dest=Dest AND Src
SRCAND = ROP_DSa
ROP_SDPSnaoxn = &H891B08 'Dest=NOT ((((NOT Src) AND Patten) OR Dest) XOR Src)
ROP_DSPnoa = &H8A0E06 'Dest=((NOT Patten) OR Src) AND Dest
ROP_DSPDxoxn = &H8B0666 'Dest=NOT (((Patten XOR Dest) OR Src) XOR Dest)
ROP_SDPnoa = &H8C0E08 'Dest=((NOT Patten) OR Dest) AND Src
ROP_SDPSxoxn = &H8D0668 'Dest=NOT (((Patten XOR Src) OR Dest) XOR Src)
ROP_SSDxPDxax = &H8E1D7C 'Dest=((Src XOR Dest) AND (Patten XOR Dest)) XOR Src
ROP_PDSanan = &H8F0CE5 'Dest=NOT ((NOT (Dest AND Src)) AND Patten)
ROP_PDSxna = &H900C45 'Dest=(NOT (Dest XOR Src)) AND Patten
ROP_SDPSnoaxn = &H911E08 'Dest=NOT ((((NOT Src) OR patten) AND Dest) XOR Src)
ROP_DPSDPoaxx = &H9217A9 'Dest=((Dest OR Patten) AND Src) XOR Patten XOR Dest
ROP_SPDaxn = &H9301C4 'Dest=NOT ((Patten AND Dest) XOR Src)
ROP_PSDPSoaxx = &H9417AA 'Dest=((Patten OR Src) AND Dest) XOR Src XOR Patten
ROP_DPSaxn = &H9501C9 'Dest=NOT ((Patten AND Src) XOR Dest)
ROP_DPSxx = &H960169 'Dest=Patten XOR Src XOR Dest
ROP_PSDPSonoxx = &H97588A 'Dest=((NOT (Patten OR Src)) OR Dest) XOR Src XOR Patten
ROP_SDPSonoxn = &H981888 'Dest=NOT (((NOT (Patten OR Src)) OR Dest) XOR Src)
ROP_DSxn = &H990066 'Dest=NOT (Dest XOR Src)
ROP_DPSnax = &H9A0709 'Dest=((NOT Src) AND Patten) XOR Dest
ROP_SDPSoaxn = &H9B07A8 'Dest=NOT (((Patten OR Src) AND Dest) XOR Src)
ROP_SPDnax = &H9C0704 'Dest=((NOT Dest) AND Patten) XOR Src
ROP_DSPDoaxn = &H9D07A6 'Dest=NOT (((Patten OR Dest) AND Src) XOR Dest)
ROP_DSPDSaoxx = &H9E16E6 'Dest=((Dest AND Src) OR Patten) XOR Src XOR Dest
ROP_PDSxan = &H9F0345 'Dest=NOT ((Dest XOR Src) AND Patten)
ROP_DPa = &HA000C9 'Dest=Dest AND Patten
ROP_PDSPnaoxn = &HA11B05 'Dest=NOT ((((NOT Patten) AND Src) OR Dest) XOR Patten)
ROP_DPSnoa = &HA20E09 'Dest=((NOT Src) OR Patten) AND Dest
ROP_DPSDxoxn = &HA30669 'Dest=NOT (((Src XOR Dest) OR Patten) XOR Dest)
ROP_PDSPonoxn = &HA41885 'Dest=NOT (((NOT (Src OR Patten)) OR Dest) XOR Patten)
ROP_PDxn = &HA50065 'Dest=NOT (Patten XOR Dest)
ROP_DSPnax = &HA60706 'Dest=((NOT Patten) AND Src) XOR Dest
ROP_PDSPoaxn = &HA707A5 'Dest=NOT (((Patten OR Src) AND Dest) XOR Patten)
ROP_DPSoa = &HA803A9 'Dest=(Patten OR Src) AND Dest
ROP_DPSoxn = &HA90189 'Dest=NOT ((Patten OR Src) XOR Dest)
ROP_D = &HAA0029 'Dest=Dest
ROP_DPSono = &HAB0889 'Dest=(NOT (Patten OR Src)) OR Dest
ROP_SPDSxax = &HAC0744 'Dest=((Dest XOR Src) AND Patten) XOR Src
ROP_DPSDaoxn = &HAD06E9 'Dest=NOT (((Src AND Dest) OR Patten) XOR Dest)
ROP_DSPnao = &HAE0B06 'Dest=((NOT patten) AND Src) OR Dest
ROP_DPno = &HAF0229 'Dest=(NOT Patten) OR Dest
ROP_PDSnoa = &HB00E05 'Dest=((NOT Src) OR Dest) AND Patten
ROP_PDSPxoxn = &HB10665 'Dest=NOT (((Src XOR Patten) OR Dest) XOR Patten)
ROP_SSPxDSxox = &HB21974 'Dest=((Src XOR Patten) OR (Src XOR Dest)) XOR Src
ROP_SDPanan = &HB30CE8 'Dest=NOT ((NOT (Dest AND Patten)) AND Src)
ROP_PSDnax = &HB4070A 'Dest=((NOT Dest) AND Src) XOR Patten
ROP_DPSDoaxn = &HB507A9 'Dest=NOT (((Src OR Dest) AND Patten) XOR Dest)
ROP_DPSDPaoxx = &HB616E9 'Dest=((Dest AND Patten) OR Src) XOR Patten XOR Dest
ROP_SDPxan = &HB70348 'Dest=NOT ((Dest XOR Patten) AND Src)
ROP_PSDPxax = &HB8074A 'Dest=((Dest XOR Patten) AND Src) XOR Patten
ROP_DSPDaoxn = &HB906E6 'Dest=NOT (((Patten AND Dest) OR Src) XOR Dest)
ROP_DPSnao = &HBA0B09 'Dest=((NOT Src) AND Patten) OR Dest
ROP_DSno = &HBB0226 'Dest=(NOT Src) OR Dest
MERGEPAINT = ROP_DSno
ROP_SPDSanax = &HBC1CE4 'Dest=((NOT (Dest AND Src)) AND Patten) XOR Src
ROP_SDxPDxan = &HBD0D7D 'Dest=NOT ((Src XOR Dest) AND (Patten XOR Dest))
ROP_DPSxo = &HBE0269 'Dest=(Patten XOR Src) OR Dest
ROP_DPSano = &HBF08C9 'Dest=(NOT (Patten AND Src)) OR Dest
ROP_PSa = &HC000CA 'Dest=Patten AND Src
MERGECOPY = ROP_PSa
ROP_SPDSnaoxn = &HC11B04 'Dest=NOT ((((NOT Src) AND Dest) OR Patten) XOR Src)
ROP_SPDSonoxn = &HC21884 'Dest=NOT (((NOT (Dest OR Src)) OR Patten) XOR Src)
ROP_PSxn = &HC3006A 'Dest=NOT (Patten XOR Src)
ROP_SPDnoa = &HC40E04 'Dest=((NOT Dest) OR Patten) AND Src
ROP_SPDSxoxn = &HC50664 'Dest=NOT (((Dest XOR Src) OR Patten) XOR Src)
ROP_SDPnax = &HC60708 'Dest=((NOT Patten) AND Dest) XOR Src
ROP_PSDPoaxn = &HC707AA 'Dest=NOT (((Dest OR Patten) AND Src) XOR Patten)
ROP_SDPoa = &HC803A8 'Dest=(Dest OR Patten) AND Src
ROP_SPDoxn = &HC90184 'Dest=NOT ((Patten OR Dest) XOR Src)
ROP_DPSDxax = &HCA0749 'Dest=((Src XOR Dest) AND Patten) XOR Dest
ROP_SPDSaoxn = &HCB06E4 'Dest=NOT (((Dest AND Src) OR Patten) XOR Src)
ROP_S = &HCC0020 'Dest=Src
SRCCOPY = ROP_S
ROP_SDPono = &HCD0888 'Dest=(NOT (Dest OR Patten)) OR Src
ROP_SDPnao = &HCE0B08 'Dest=((NOT Patten) AND Dest) OR Src
ROP_SPno = &HCF0224 'Dest=(NOT Patten) OR Src
ROP_PSDnoa = &HD00E0A 'Dest=((NOT Dest) OR Src) AND Patten
ROP_PSDPxoxn = &HD1066A 'Dest=NOT (((Dest XOR Patten) OR Src) XOR Patten)
ROP_PDSnax = &HD20705 'Dest=((NOT Src) AND Dest) XOR Patten
ROP_SPDSoaxn = &HD307A4 'Dest=NOT (((Dest OR Src) AND Patten) XOR Src)
ROP_SSPxPDxax = &HD41D78 'Dest=((Src XOR Patten) AND (Dest XOR Patten)) XOR Src
ROP_DPSanan = &HD50CE9 'Dest=NOT ((NOT (Patten AND Src)) AND Dest)
ROP_PSDPSaoxx = &HD616EA 'Dest=((Patten AND Src) OR Dest) XOR Src XOR Patten
ROP_DPSxan = &HD70349 'Dest=NOT ((Patten XOR Src) AND Dest)
ROP_PDSPxax = &HD80745 'Dest=((Src XOR Patten) AND Dest) XOR Patten
ROP_SDPSaoxn = &HD906E8 'Dest=NOT (((Patten AND Src) OR Dest) XOR Src)
ROP_DPSDanax = &HDA1CE9 'Dest=((NOT (Src AND Dest)) AND Patten) XOR Dest
ROP_SPxDSxan = &HDB0D75 'Dest=NOT ((Src XOR Patten) AND (Src XOR Dest))
ROP_SPDnao = &HDC0B04 'Dest=((NOT Dest) AND Patten) OR Src
ROP_SDno = &HDD0228 'Dest=(NOT Dest) OR Src
ROP_SDPxo = &HDE0268 'Dest=(Dest XOR Patten) OR Src
ROP_SDPano = &HDF08C8 'Dest=(NOT (Dest AND Patten)) OR Src
ROP_PDSoa = &HE003A5 'Dest=(Dest OR Src) AND Patten
ROP_PDSoxn = &HE10185 'Dest=NOT ((Dest OR Src) XOR Patten)
ROP_DSPDxax = &HE20746 'Dest=((Patten XOR Dest) AND Src) XOR Dest
ROP_PSDPaoxn = &HE306EA 'Dest=NOT (((Dest AND Patten) OR Src) XOR Patten)
ROP_SDPSxax = &HE40748 'Dest=((Patten XOR Src) AND Dest) XOR Src
ROP_PDSPaoxn = &HE506E5 'Dest=NOT (((Src AND Patten) OR Dest) XOR Patten)
ROP_SDPSanax = &HE61CE8 'Dest=((NOT (Patten AND Src)) AND Dest) XOR Src
ROP_SPxPDxan = &HE70D79 'Dest=NOT ((Src XOR Patten) AND (Dest XOR Patten))
ROP_SSPxDSxax = &HE81D74 'Dest=((Src XOR Patten) AND (Dest XOR Src)) XOR Src
ROP_DSPDSanaxxn = &HE95CE6 'Dest=NOT (((NOT(Dest AND Src)) AND Patten) XOR Src XOR Dest)
ROP_DPSao = &HEA02E9 'Dest=(Patten AND Src) OR Dest
ROP_DPSxno = &HEB0849 'Dest=(NOT (Patten XOR Src)) OR Dest
ROP_SDPao = &HEC02E8 'Dest=(Dest AND Patten) OR Src
ROP_SDPxno = &HED0848 'Dest=(NOT (Dest XOR Patten)) OR Src
ROP_DSo = &HEE0086 'Dest=Dest OR Src
SRCPAINT = ROP_DSo
ROP_SDPnoo = &HEF0A08 'Dest=(NOT Patten) OR Dest OR Src
ROP_P = &HF00021 'Dest=Patten
PATCOPY = ROP_P
ROP_PDSono = &HF10885 'Dest=(NOT (Dest OR Src)) OR Patten
ROP_PDSnao = &HF20B05 'Dest=((NOT Src) AND Dest) OR Patten
ROP_PSno = &HF3022A 'Dest=(NOT Src) OR Patten
ROP_PSDnao = &HF40B0A 'Dest=((NOT Dest) AND Src) OR Patten
ROP_PDno = &HF50225 'Dest=(NOT Dest) OR Patten
ROP_PDSxo = &HF60265 'Dest=(Dest XOR Src) OR Patten
ROP_PDSano = &HF708C5 'Dest=(NOT (Dest AND Src)) OR Patten
ROP_PDSao = &HF802E5 'Dest=(Dest AND Src) OR Patten
ROP_PDSxno = &HF90845 'Dest=(NOT (Dest XOR Src)) OR Patten
ROP_DPo = &HFA0089 'Dest=Dest OR Patten
ROP_DPSnoo = &HFB0A09 'Dest=(NOT Src) OR Patten OR Dest
PATPAINT = ROP_DPSnoo
ROP_PSo = &HFC008A 'Dest=Patten OR Src
ROP_PSDnoo = &HFD0A0A 'Dest=(NOT Dest) OR Src OR Patten
ROP_DPSoo = &HFE02A9 'Dest=Patten OR Src OR Dest
ROP_1 = &HFF0062 'Dest=1
WHITENESS = ROP_1
End Enum
Public Const CAPTUREBLT As Long = &H40000000
Public Const NOMIRRORBITMAP As Long = &H80000000
其实这样就行了:
Const ROP_P=0xF00000
Const ROP_S=0xCC0000
Const ROP_D=0xAA0000
Const ROP_PDSox = (ROP_D OR ROP_S) XOR ROP_P
随叫随到,哈哈....
//Const ROP_PDSox = (ROP_D OR ROP_S) XOR ROP_P
是呀,本来就是这样定义的嘛 :)
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/pantdraw_6n77.asp
the low-order word of this value is ignored, and should be zero.
低字被忽略,并且可以为零。
既然是忽略,还要弄一些奇奇怪怪的数做什么。
不知道微软在弄什么玄虚。
但这个是MaskBlt成员函数的dwRop参数说明 :D
不知道,我说的MaskBlt是被封装在MFC的CDC类中的成员函数。不过觉得没区别。
::Bitblt中有这样一段说明:
Rop3: This parameter can be any one of 256 ternary raster-operation values
说明应该只有256种。我也不知道其低位“操作码”的含义了
呵呵,散分了。
我开这个帖,本来就是想散分的。
双星的我就不给分了,不介意吧。