当前位置:首页 » 业界相关

如何实现不规则的窗体,就想windows mediaplayer一样。

 Advertisement:

热门软件下载:


关键是form是一幅图(gif,jpg)。整样画?请给出例子和源码。

推荐阅读

  • NVIDIA停止ULI南桥供应 ATI芯片市场受阻 [详细内容]
  • 第二届中国软件技术大会[04.12.04] [详细内容]
  • 波导A130的缺点(我个人意见) [详细内容]
  • 西京两分公司通过军用元器件供应资格审核 [详细内容]
  • 飞利浦倡导音箱升级 4.1声道380元 [详细内容]
  • X799各项综合点评 [详细内容]
  • 中国科学院物理所超大磁电阻研究获新进展 [详细内容]
  • 网友回答:
    网友:beyondstudio

    function   tform1.createregion(wmask:tbitmap;wcolor:tcolor;hcontrol:thandle):   hrgn;  
      var  
          dc,   dc_c:   hdc;  
          rgn:   hrgn;  
          x,   y:   integer;  
          coord:   tpoint;  
          line:   boolean;  
          color:   tcolor;  
      begin  
          dc   :=   getwindowdc(hcontrol);  
          dc_c   :=   createcompatibledc(dc);  
          selectobject(dc_c,   wmask.handle);  
          beginpath(dc);  
          for   x:=0   to   wmask.width-1   do  
          begin  
              line   :=   false;  
              for   y:=0   to   wmask.height-1   do  
              begin  
                  color   :=   getpixel(dc_c,   x,   y);  
                  if   not   (color   =   wcolor)   then  
                  begin  
                      if   not   line   then  
                      begin  
                          line   :=   true;  
                          coord.x   :=   x;  
                          coord.y   :=   y;  
                      end;  
                  end;  
                  if   (color   =   wcolor)   or   (y=wmask.height-1)   then  
                  begin  
                      if   line   then  
                      begin  
                          line   :=   false;  
                          movetoex(dc,   coord.x,   coord.y,   nil);  
                          lineto(dc,   coord.x,   y);  
                          lineto(dc,   coord.x   +   1,   y);  
                          lineto(dc,   coord.x   +   1,   coord.y);  
                          closefigure(dc);  
                      end;  
                  end;  
              end;  
          end;  
          endpath(dc);  
          rgn   :=   pathtoregion(dc);  
          releasedc(hcontrol,   dc);  
          result   :=   rgn;  
      end;  
     

    .  

    相关评论

    Login