//COLORREF得到R,G,B三个分量
inline BYTE get_r(COLORREF rgb)
{
    return (BYTE) ((rgb >> 0 ) & 0x0000FF);
}
 
inline BYTE get_g(COLORREF rgb)
{
    return (BYTE) ((rgb >> 8 ) & 0x0000FF);
}
 
inline BYTE get_b(COLORREF rgb)
{
    return (BYTE) ((rgb >> 16 ) & 0x0000FF);
}
 
 
//简单加密:将数据lpbData的每个字节的高低4位交换
inline void ExchangeLowHigh(IN OUT LPBYTE lpbData,IN int nDataLength)
{
    //ASSERT(lpbData!=NULL);
    for (int i=0;i<nDataLength;i++)
    {
        BYTE Low=lpbData[i]&0x0F;           //取低四位
        BYTE High=(lpbData[i]&0xF0)>>4; //取高四位
 
        lpbData[i]=0;
 
        //将高四位的值设置为原来的低四位值
        lpbData[i]=lpbData[i]|(Low<<4);
 
        //将低四位的值设置为原来的高四位值
        lpbData[i]=lpbData[i]|High;
    }
}

 
//判断指定路径是否存在
#include <Shlwapi.h>
#pragma comment(lib,"Shlwapi.lib")
BOOL PathFileExists(LPCTSTR lpszPath);

//书写二进制的宏:
#define BIN(b7,b6,b5,b4,b3,b2,b1,b0) ((b7<<7)+(b6<<6)+(b5<<5)+(b4<<4)+(b3<<3)+(b2<<2)+(b1<<1)+(b0<<0))

使用方法:
BYTE byteData=BIN(1,1,0,1,1,1,1,1);


本文链接地址: 几个简单的小函数:从COLORREF得到R,G,B三个分量,高低4位交换
https://blog.qingfengju.com/index.asp?id=151

上一篇: 用hh.exe反编译chm文件
下一篇: DHTML中的行为(Behavior)

分类:Win32/C++ 查看次数:6317 发布时间:2009/9/5 10:15:37