The_facE 2009年06月05日
SetLayeredWindowAttributes的问题
用了一下SetLayeredWindowAttributes来进行眼色过滤,可是弄了半天没弄好。

我定义一个窗口CBmpStatic,继承自CStatic,它只负责显示一张图片,图片里只有纯红(255,0,0)和纯蓝(0,0,255)两种颜色。

然后在我建立的Dialog中加一个CBmpStatic类的成员,在OnInitDialog函数里主要代码如下:

m_bmpStatic.Create( NULL, WS_CHILD|WS_VISIBLE|SS_BITMAP, CRect(20, 20, 120, 90), this, 111 );
SetWindowLong( m_bmpStatic.GetSafeHwnd(), GWL_EXSTYLE,
GetWindowLong( m_bmpStatic.GetSafeHwnd(), GWL_EXSTYLE)|0x80000 );
HMODULE hModule = LoadLibrary( "User32.DLL" );
if( hInst )
{
typedef BOOL (WINAPI *MYFUNC)( HWND, COLORREF, BYTE, DWORD );
MYFUNC fun = NULL;
//取得SetLayeredWindowAttributes函数指针
fun=(MYFUNC)GetProcAddress( hInst, "SetLayeredWindowAttributes" );
if(fun)
fun( m_bmpStatic.GetSafeHwnd(),RGB(255, 0, 0), 0, 1 );
FreeLibrary( hInst );
}



为啥不管用捏?我看那图片清清楚楚......
...全文
267 点赞 收藏 12
写回复
12 条回复

还没有回复,快来抢沙发~

发动态
发帖子
界面
创建于2007-09-28

7970

社区成员

11.5w+

社区内容

VC/MFC 界面
社区公告
暂无公告