两个问题
1.我对主窗口通过SetLayeredWindowAttributes来设置指定透明颜色,其实是为了窗口背景透明,因为将窗口背景刷成了白色,所以用SetLayeredWindowAttributes将白色全透明,才实现了窗口透明,但是我为了实现窗口渐变,现在希望整个窗口也慢慢透明掉,这样也要用SetLayeredWindowAttributes函数,可以设置了窗口透明,指定的透明颜色就失效了,导致背景的白色又显示了出来,郁闷2.窗口渐变我是通过鼠标离开窗口3s后timer里调用SetLayeredWindowAttributes来设置窗口的alpha实现的。但是我希望的是渐变,所以在timer里做了个循环,
for ( g_Alpha = 255;g_Alpha>=0;g_Alpha-=ALPHA_OFFSET )
{
if ( g_Alpha <= 0 )
{
break;
}
//ᅪ재ᄆᄈᄒᄚWHITE_BRUSH
TRACE(L"g_pSetLayeredWindowAsttributes g_Alpha:%d\n", g_Alpha);
// Sleep(100);
g_pSetLayeredWindowAttributes(hWnd, 0, g_Alpha, LWA_ALPHA); }
加了sleep实现了慢慢变浅,但是这时候鼠标是动不了的,因为在循环中阻塞了,怎么能解决鼠标动不了的问题呢?
这两个问题头痛啊,主要是第一个,第二个还可以用别的方式弥补。
1.我对主窗口通过SetLayeredWindowAttributes来设置指定透明颜色,其实是为了窗口背景透明,因为将窗口背景刷成了白色,所以用SetLayeredWindowAttributes将白色全透明,才实现了窗口透明,但是我为了实现窗口渐变,现在希望整个窗口也慢慢透明掉,这样也要用SetLayeredWindowAttributes函数,可以设置了窗口透明,指定的透明颜色就失效了,导致背景的白色又显示了出来,郁闷2.窗口渐变我是通过鼠标离开窗口3s后timer里调用SetLayeredWindowAttributes来设置窗口的alpha实现的。但是我希望的是渐变,所以在timer里做了个循环,
for ( g_Alpha = 255;g_Alpha>=0;g_Alpha-=ALPHA_OFFSET )
{
if ( g_Alpha <= 0 )
{
break;
}
//ᅪ재ᄆᄈᄒᄚWHITE_BRUSH
TRACE(L"g_pSetLayeredWindowAsttributes g_Alpha:%d\n", g_Alpha);
// Sleep(100);
g_pSetLayeredWindowAttributes(hWnd, 0, g_Alpha, LWA_ALPHA); }
加了sleep实现了慢慢变浅,但是这时候鼠标是动不了的,因为在循环中阻塞了,怎么能解决鼠标动不了的问题呢?
这两个问题头痛啊,主要是第一个,第二个还可以用别的方式弥补。
解决方案 »
- 关于Cbutton 显示 Dialog 问题?
- MessageBox的标题怎么和文档标题保持一致?
- 关于自绘按钮热点设置问题.
- 【求助】用SetPixel函数对像素值进行赋值后,怎么保存下来?
- Edit Box中对输入的文字进行部分屏蔽
- 100分我想提交一个FORM中的数据,有什么办法?
- 谁能给我一个三点以上画曲线的算法,要求曲线过所有点。要最能反映变化过程的!
- 很郁闷,公司用C#但是我很喜欢VC怎么办啊??
- 关于一个查看进程的程序!!
- 这个问题困扰我很就了,自定义的类如何include进别的文件,这个问题和我昨天提的问题(Chs.h/cpp)有关,我的分不多了,只能给这点了,各位大虾帮帮我
- 关于GDI+对象的释放问题
- 求一个c/c++程序可以解决IP欺骗问题的
问题2你用独立线程处理就是了
用UpdateLayeredWindow函数
记不清了