分享

透明窗口的制作(MFC) - foolish

 jinye6 2011-04-10

在OnInitial()函数中添加如下的代码:

 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;              
  fun=(MYFUNC)GetProcAddress(hInst,   "SetLayeredWindowAttributes");  
  if(fun)fun(this->GetSafeHwnd(),0,129,4);
  FreeLibrary(hInst);    
 }

以上是全透明的窗口,在Windows XP VC6上调试通过。

如果是制作半透明的窗口,则为:

  fun=(MYFUNC)GetProcAddress(hInst,   "SetLayeredWindowAttributes");  
  if(fun)fun(this->GetSafeHwnd(),0,129,2);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多