我在做一个程序,大概功能就是实现读入txt的内容,然后显示.
我用对话框做,背景设为了透明,cstatic背景也设置了透明,但是其style却设置成了simple才可以达到透明.这会使空格没有了,这并不是我想要的.这里最大的问题就是当窗口拖动的时候,背景不会更新,而且会出现重叠文字.
请问,怎样可以解决上面的问题

解决方案 »

  1.   

    试试用这种方式透明化窗口:
    现在文件上面放上定义:
    #define LWA_COLORKEY 0x00000001
    #define WS_EX_LAYERED 0x00080000 typedef BOOL (WINAPI *lpfnSetLayeredWindowAttributes)(HWND hWnd, COLORREF crKey, BYTE bAlpha, DWORD dwFlags); 
    lpfnSetLayeredWindowAttributes SetLayeredWindowAttributes; 然后把下面代码放在Dialog类的OnInitDialog函数最后(return之前),其他控件都别设置) COLORREF maskColor=RGB(0,0,0);
     
     HMODULE hUser32 = GetModuleHandle("user32.dll"); //加????接?
     SetLayeredWindowAttributes = (lpfnSetLayeredWindowAttributes)GetProcAddress(hUser32,"SetLayeredWindowAttributes"); 
      SetWindowLong(this->GetSafeHwnd(), GWL_EXSTYLE, GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE)^WS_EX_LAYERED);  SetLayeredWindowAttributes(this->GetSafeHwnd(), maskColor, 192, 2); 
     
     FreeLibrary(hUser32);