现在的位置: 首页 > 自动控制 > 工业·编程 > 正文

透明窗体的实现

2014-03-22 05:27 工业·编程 ⁄ 共 476字 ⁄ 字号 暂无评论

今天有找到个 API 函数实现窗体的透明,原来微软提供的接口还蛮丰富的。半透明对话框在OnInitDialog()中添加以下代码即可:

// 透明窗口

//加入WS_EX_LAYERED扩展属性

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, 220, 2);

  FreeLibrary(hInst);

}

给我留言

留言无头像?