SetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE,GetWindowLong(this->GetSafeHwnd(),GWL_EXSTYLE)^0x80000);
HINSTANCE hInst = 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(this->GetSafeHwnd(),0,128,0x2);
FreeLibrary(hInst);
}这是我现在所用的方法...由于使用SetWindowLong改变了对话框的属性 因此不能满足我程序的需求 ...
首先我想知道可不可以不用0x80000属性来完成透明对话框的任务
如果不行 我想请教另一种透明的方法 请大家指点
HINSTANCE hInst = 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(this->GetSafeHwnd(),0,128,0x2);
FreeLibrary(hInst);
}这是我现在所用的方法...由于使用SetWindowLong改变了对话框的属性 因此不能满足我程序的需求 ...
首先我想知道可不可以不用0x80000属性来完成透明对话框的任务
如果不行 我想请教另一种透明的方法 请大家指点
解决方案 »
- 关于CStdioFile写文件乱码问题
- VC 嵌套word2003 打开指定位置word文件的一些问题?
- VC代码实现退出系统
- CFile::open这样写对吗
- ーーー请问:有没有人编写过鼠标程序。我想要个实例代码,期待回答。
- 大侠请进:可设置字体和颜色的按钮
- 我sink网易邮箱邮箱的submit事件,为什么不行呢?
- 多线程中加载DLL 问题
- COM接口能否知道它的调用端的关闭时机
- 怎样把CSting,float,date型转换成char型,速求高手帮忙,为谢!
- 请高手指点按钮在windows窗口中的位置问题
- 我用TerminateProcess去关闭一个隐藏的程序,结果关闭不了。难道对隐藏的程序无效。为什么
SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE,
GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_LAYERED);
// Make this window 70% alpha
::SetLayeredWindowAttributes(GetSafeHwnd(), 0, (255 * 70) / 100, LWA_ALPHA);
WS_EX_LAYERED属性就是0x8000 这种方法就是我的方法 是不可以的
CRgn rgn,tmp;
CRect rc;
m_Static.GetWindowRect(&rc);
rgn.CreateRectRgn(0,0,rc.Width()-1,rc.Height()-1); for(point.x = 0 ; point.x <= rc.Width();point.x++)
{
for(point.y = 0 ; point.y <= rc.Height();point.y++)
{
if(rc.PtInRect(point))
{
tmp.CreateRectRgn(point.x,point.y,point.x+1,point.y+1);
rgn.CombineRgn(&rgn,&tmp,RGN_XOR);
tmp.DeleteObject();
}
}
}
SetWindowRgn((HRGN)rgn,TRUE);
我想问下楼主 这个你试过没? 我试验的结果是可以实现全部透明
其中的m_Static为在对话框上拉的一块Static控件的关联变量
在一个对话框的InitDialog中return true之前加如上面代码试试先在对话框上拉一个Static框 关联m_Static
要么自绘窗口风格还会影响到程序?
我还是没明白m_Static是什么 我把m_Static改成DlgWelcome* myDlg= new DlgWelcome;中的myDlg可是不起作用 而且我的要求是半透明效果
你说的这个对我倒是有所启发...现在的问题是这种实现半透明方法在设定对话框WS_EX_LAYERED属性后...对话框总跑到程序的后面去...如果不设置这种属性 ...本来是前端显示的