我知道有函数:
SetLayeredWindowAttributes(hwnd,crKey,bAlpha,dwFlags)hwnd是透明窗体的句柄,
crKey为颜色值,
bAlpha是透明度,取值范围是[0,255],
dwFlags是透明方式,可以取两个值:         当取值为LWA_ALPHA时,crKey参数无效,bAlpha参数有效;         当取值为LWA_COLORKEY时,bAlpha参数有效而窗体中的所有颜色为crKey的地方将变为透明。        LWA_ALPHA = 0x2        LWA_COLORKEY=0x1 要使使窗体拥有透明效果,首先要有WS_EX_LAYERED扩展属性 (旧的sdk没有定义这个属性,所以可以直接指定为0x80000). WS_EX_LAYERED = 0x80000 
   

解决方案 »

  1.   

    局部透明没有试过.不过可以参考下面的连接
    http://topic.csdn.net/t/20040128/21/2684509.html
      

  2.   

    属性Opacity可以设置透明度的.
      

  3.   

    弄一个panel控件可不可以?  我乱猜的...
      

  4.   

    可能有办法,
    1。启动窗体后,抓当前窗体图,保存为bmp
    2。添加IMessageFilter,尝试拦截所有可能重绘的消息:WM_PAINT,WM_EARSEBKGROUND这两个消息自己绘制为之前的图,然后处理WM_LBUTTONDOWN....WM_MOUSEDOWN这些输入输出消息。
    3。如果输入输出消息,就不拦截,但要重新处理抓图。对特殊块,设置alpha为50%。自己没做过。估计不行。再想想。
      

  5.   

    http://www.bokebb.com/dev/cn/vc/interface/20056305003_4066236.shtml
      

  6.   

    我也没有做过,不知道行不行,给你一个思路,
    MFC中可以将一个窗体分割成多个子窗体,不知道C#中可不可以,这样的话,你就可以单独操作每一个自窗体!you can try!
      

  7.   

    给你个程序你看看是个透明的TextBox
      

  8.   

    可以到 http://download.csdn.net/user/lr21shiji/ 找