当前位置:首页
开发技术指南» 文章正文
    引言:

 ·如何直接运行安装.cab文件    »显示摘要«
    摘要: 当我直接打开cab文件的时候,系统调用winrar来打开, 我想让这个.cab文件运行,并能执行里面的安装信息!!怎么做? 用什么命令??? ......
    摘要: 现在需要显示一个savefiledialog但调用这个会自动保存一个文件,我只想显示saveas的dialog并取得文件名其他的事自己做,请问有没有办法。 ......


图片组合,详细解答谢谢

图片组合问题,在CSND技术论坛上有不少贴子,但我没有找到一个具体、详细的资料,  
  如果哪位有相应的代码,请上传,让大家对此有一些较深的认识!谢谢各位了。

NO.1   作者: WallesCai

什么图片?如何组合?  
  这样的问题如何回答?

NO.2   作者: sdrcxzy

借地方提问题,楼主别介意:  
  比如图1中间有一个封闭的不规则区域,如何用图2填充,如何实现?

NO.3   作者: hot1kang1

我在   问专家里发现的代码   合并图片   把要合并的图片都放到PICTUER1上就行了    
   
  Private   Const   RASTERCAPS   As   Long   =   38  
  Private   Const   RC_PALETTE   As   Long   =   &H100  
  Private   Const   SIZEPALETTE   As   Long   =   104  
   
  Private   Type   RECT  
          Left   As   Long  
            As   Long  
          Right   As   Long  
          Bottom   As   Long  
  End   Type  
   
  Private   Declare   Function   CreateCompatibleDC   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long)   As   Long  
  Private   Declare   Function   CreateCompatibleBitmap   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long,   ByVal   nWidth   As   Long,   _  
                                                      ByVal   nHeight   As   Long)   As   Long  
  Private   Declare   Function   GetDeviceCaps   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long,   ByVal   iCapabilitiy   As   Long)   As   Long  
  Private   Declare   Function   GetSystemPaletteEntries   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long,   ByVal   wStartIndex   As   Long,   _  
                                                      ByVal   wNumEntries   As   Long,   lpPaletteEntries   As   PALETTEENTRY)   _  
                                                      As   Long  
  Private   Declare   Function   CreatePalette   Lib   "GDI32"   (   _  
                                                      lpLogPalette   As   LOGPALETTE)   As   Long  
  Private   Declare   Function   SelectObject   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long,   ByVal   hObject   As   Long)   As   Long  
  Private   Declare   Function   BitBlt   Lib   "GDI32"   (   _  
                                                      ByVal   hDCDest   As   Long,   ByVal   XDest   As   Long,   _  
                                                      ByVal   YDest   As   Long,   ByVal   nWidth   As   Long,   _  
                                                      ByVal   nHeight   As   Long,   ByVal   hDCSrc   As   Long,   _  
                                                      ByVal   XSrc   As   Long,   ByVal   YSrc   As   Long,   ByVal   dwRop   As   Long)   _  
                                                      As   Long  
  Private   Declare   Function   DeleteDC   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long)   As   Long  
  Private   Declare   Function   GetForegroundWindow   Lib   "USER32"   ()   _  
                                                      As   Long  
  Private   Declare   Function   SelectPalette   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long,   ByVal   hPalette   As   Long,   _  
                                                      ByVal   bForceBackground   As   Long)   As   Long  
  Private   Declare   Function   RealizePalette   Lib   "GDI32"   (   _  
                                                      ByVal   hDC   As   Long)   As   Long  
  Private   Declare   Function   GetWindowDC   Lib   "USER32"   (   _  
                                                      ByVal   hWnd   As   Long)   As   Long  
  Private   Declare   Function   GetDC   Lib   "USER32"   (   _  
                                                      ByVal   hWnd   As   Long)   As   Long  
  Private   Declare   Function   GetWindowRect   Lib   "USER32"   (   _  
                                                      ByVal   hWnd   As   Long,   lpRect   As   RECT)   As   Long  
  Private   Declare   Function   ReleaseDC   Lib   "USER32"   (   _  
                                                      ByVal   hWnd   As   Long,   ByVal   hDC   As   Long)   As   Long  
  Private   Declare   Function   GetDesktopWindow   Lib   "USER32"   ()   As   Long  
   
  Private   Type   PicBmp  
          Size   As   Long  
  Type   As   Long  
          hBmp   As   Long  
          hPal   As   Long  
          Reserved   As   Long  
  End   Type

NO.4   作者: hot1kang1

 
  Private   Declare   Function   OleCreatePictureIndirect   _  
                                                      Lib   "olepro32.dll"   (PicDesc   As   PicBmp,   RefIID   As   GUID,   _  
                                                      ByVal   fPictureOwnsHandle   As   Long,   IPic   As   IPicture)   As   Long  
   
  #ElseIf   Win16   Then  
   
  Private   Const   RASTERCAPS   As   Integer   =   38  
  Private   Const   RC_PALETTE   As   Integer   =   &H100  
  Private   Const   SIZEPALETTE   As   Integer   =   104  
   
  Private   Type   RECT  
          Left   As   Integer  
            As   Integer  
          Right   As   Integer  
          Bottom   As   Integer  
  End   Type  
   
  Private   Declare   Function   CreateCompatibleDC   Lib   "GDI"   (   _  
                                                      ByVal   hDC   As   Integer)   As   Integer  
  Private   Declare   Function   CreateCompatibleBitmap   Lib   "GDI"   (   _  
                                                      ByVal   hDC   As   Integer,   ByVal   nWidth   As   Integer,   _  
                                                      ByVal   nHeight   As   Integer)   As   Integer  
  Private   Declare   Function   GetDeviceCaps   Lib   "GDI"   (   _  
                                                      ByVal   hDC   As   Integer,   ByVal   iCapabilitiy   As   Integer)   As   Integer  
  Private   Declare   Function   GetSystemPaletteEntries   Lib   "GDI"   (   _  
                                                      ByVal   hDC   As   Integer,   ByVal   wStartIndex   As   Integer,   _  
                                                      ByVal   wNumEntries   As   Integer,   _  
                                                      lpPaletteEntries   As   PALETTEENTRY)   As   Integer  
  Private   Declare   Function   CreatePalette   Lib   "GDI"   (   _  
                                                      lpLogPalette   As   LOGPALETTE)   As   Integer  
  Private   Declare   Function   SelectObject   Lib   "GDI"   (   _  
                                                      ByVal   hDC   As   Integer,   ByVal   hObject   As   Integer)   As   Integer  
  Private   Declare   Function   BitBlt   Lib   "GDI"   (   _  
                                                      ByVal   hDCDest   As   Integer,   ByVal   XDest   As   Integer,   _  
                                                      ByVal   YDest   As   Integer,   ByVal   nWidth   As   Integer,   _  
                                                      ByVal   nHeight   As   Integer,   ByVal   hDCSrc   As   Integer,   _  
                                                      ByVal   XSrc   As   Integer,   ByVal   YSrc   As   Integer,   _  
                                                      ByVal   dwRop   As   Long)   As   Integer  
  Private   Declare   Function   DeleteDC   Lib   "GDI"   (   _  
                                                      ByVal   hDC   As   Integer)   As   Integer  
  Private   Declare   Function   GetForegroundWindow   Lib   "USER"   _  
                                                      Alias   "GetActiveWindow"   ()   As   Integer  
  Private   Declare   Function   SelectPalette   Lib   "USER"   (   _  
                                                      ByVal   hDC   As   Integer,   ByVal   hPalette   As   Integer,   ByVal   _  
                                                      bForceBackground   As   Integer)   As   Integer  
  Private   Declare   Function   RealizePalette   Lib   "USER"   (   _  
                                                      ByVal   hDC   As   Integer)   As   Integer  
  Private   Declare   Function   GetWindowDC   Lib   "USER"   (   _  
                                                      ByVal   hWnd   As   Integer)   As   Integer  
  Private   Declare   Function   GetDC   Lib   "USER"   (   _  
                                                      ByVal   hWnd   As   Integer)   As   Integer  
  Private   Declare   Function   GetWindowRect   Lib   "USER"   (   _  
                                                      ByVal   hWnd   As   Integer,   lpRect   As   RECT)   As   Integer  
  Private   Declare   Function   ReleaseDC   Lib   "USER"   (   _  
                                                      ByVal   hWnd   As   Integer,   ByVal   hDC   As   Integer)   As   Integer  
  Private   Declare   Function   GetDesktopWindow   Lib   "USER"   ()   As   Integer  
   
  Private   Type   PicBmp  
          Size   As   Integer  
  Type   As   Integer  
          hBmp   As   Integer  
          hPal   As   Integer  
          Reserved   As   Integer  
  End   Type  
   
  Private   Declare   Function   OleCreatePictureIndirect   _  
                                                      Lib   "oc25.dll"   (PictDesc   As   PicBmp,   RefIID   As   GUID,   _  
                                                      ByVal   fPictureOwnsHandle   As   Integer,   IPic   As   IPicture)   _  
                                                      As   Integer  
  #End   If  
  #If   Win32   Then  
  Public   Function   CaptureWindow(ByVal   hWndSrc   As   Long,   _  
                                                              ByVal   Client   As   Boolean,   ByVal   LeftSrc   As   Long,   _  
                                                              ByVal   Src   As   Long,   ByVal   WidthSrc   As   Long,   _  
                                                              ByVal   HeightSrc   As   Long)   As   Picture  
   
          Dim   hDCMemory   As   Long  
          Dim   hBmp   As   Long  
          Dim   hBmpPrev   As   Long  
          Dim   r   As   Long  
          Dim   hDCSrc   As   Long  
          Dim   hPal   As   Long  
          Dim   hPalPrev   As   Long  
          Dim   RasterCapsScrn   As   Long  
          Dim   HasPaletteScrn   As   Long  
          Dim   PaletteSizeScrn   As   Long  
  #ElseIf   Win16   Then  
  Public   Function   CaptureWindow(ByVal   hWndSrc   As   Integer,   _  
                                                              ByVal   Client   As   Boolean,   ByVal   LeftSrc   As   Integer,   _  
                                                              ByVal   Src   As   Integer,   ByVal   WidthSrc   As   Long,   _  
                                                              ByVal   HeightSrc   As   Long)   As   Picture  
   
          Dim   hDCMemory   As   Integer  
          Dim   hBmp   As   Integer  
          Dim   hBmpPrev   As   Integer  
          Dim   r   As   Integer  
          Dim   hDCSrc   As   Integer  
          Dim   hPal   As   Integer  
          Dim   hPalPrev   As   Integer  
          Dim   RasterCapsScrn   As   Integer  
          Dim   HasPaletteScrn   As   Integer  
          Dim   PaletteSizeScrn   As   Integer  
  #End   If  
          Dim   LogPal   As   LOGPALETTE  
   
            Depending   on   the   value   of   Client   get   the   proper   device   context.  
          If   Client   Then  
                  hDCSrc   =   GetDC(hWndSrc)     Get   device   context   for   client   area.  
          Else  
                  hDCSrc   =   GetWindowDC(hWndSrc)     Get   device   context   for   entire  
                    window.  
          End   If  
   
            Create   a   memory   device   context   for   the   copy   process.  
          hDCMemory   =   CreateCompatibleDC(hDCSrc)  
            Create   a   bitmap   and   place   it   in   the   memory   DC.  
          hBmp   =   CreateCompatibleBitmap(hDCSrc,   WidthSrc,   HeightSrc)  
          hBmpPrev   =   SelectObject(hDCMemory,   hBmp)  
   
            Get   screen   properties.  
          RasterCapsScrn   =   GetDeviceCaps(hDCSrc,   RASTERCAPS)     Raster  
            capabilities.  
          HasPaletteScrn   =   RasterCapsScrn   And   RC_PALETTE     Palette  
            support.  
          PaletteSizeScrn   =   GetDeviceCaps(hDCSrc,   SIZEPALETTE)     Size   of  
            palette.  
   
            If   the   screen   has   a   palette   make   a   copy   and   realize   it.  
          If   HasPaletteScrn   And   (PaletteSizeScrn   =   256)   Then  
                    Create   a   copy   of   the   system   palette.  
                  LogPal.palVersion   =   &H300  
                  LogPal.palNumEntries   =   256  
                  r   =   GetSystemPaletteEntries(hDCSrc,   0,   256,   _  
                          LogPal.palPalEntry(0))  
                  hPal   =   CreatePalette(LogPal)  
                    Select   the   new   palette   into   the   memory   DC   and   realize   it.  
                  hPalPrev   =   SelectPalette(hDCMemory,   hPal,   0)  
                  r   =   RealizePalette(hDCMemory)  
          End   If

NO.5   作者: hot1kang1

 
            Copy   the   on-screen   image   into   the   memory   DC.  
          r   =   BitBlt(hDCMemory,   0,   0,   WidthSrc,   HeightSrc,   hDCSrc,   _  
                  LeftSrc,   Src,   vbSrcCopy)  
   
            Remove   the   new   copy   of   the   on-screen   image.  
          hBmp   =   SelectObject(hDCMemory,   hBmpPrev)  
   
            If   the   screen   has   a   palette   get   back   the   palette   that   was  
            selected   in   previously.  
          If   HasPaletteScrn   And   (PaletteSizeScrn   =   256)   Then  
                  hPal   =   SelectPalette(hDCMemory,   hPalPrev,   0)  
          End   If  
   
            Release   the   device   context   resources   back   to   the   system.  
          r   =   DeleteDC(hDCMemory)  
          r   =   ReleaseDC(hWndSrc,   hDCSrc)  
   
            Call   CreateBitmapPicture   to   create   a   picture   object   from   the  
            bitmap   and   palette   handles.   Then   return   the   resulting   picture  
            object.  
          Set   CaptureWindow   =   CreateBitmapPicture(hBmp,   hPal)  
  End   Function  
   
  #If   Win32   Then  
  Public   Function   CreateBitmapPicture(ByVal   hBmp   As   Long,   _  
                                                                          ByVal   hPal   As   Long)   As   Picture  
   
          Dim   r   As   Long  
  #ElseIf   Win16   Then  
  Public   Function   CreateBitmapPicture(ByVal   hBmp   As   Integer,   _  
                                                                          ByVal   hPal   As   Integer)   As   Picture  
   
          Dim   r   As   Integer  
  #End   If  
          Dim   Pic   As   PicBmp  
            IPicture   requires   a   reference   to   "Standard   OLE   Types."  
          Dim   IPic   As   IPicture  
          Dim   IID_IDispatch   As   GUID  
   
            Fill   in   with   IDispatch   Interface   ID.  
          With   IID_IDispatch  
                  .Data1   =   &H20400  
                  .Data4(0)   =   &HC0  
                  .Data4(7)   =   &H46  
          End   With  
   
            Fill   Pic   with   necessary   parts.  
          With   Pic  
                  .Size   =   Len(Pic)     Length   of   structure.  
                  .Type   =   vbPicTypeBitmap     Type   of   Picture   (bitmap).  
                  .hBmp   =   hBmp     Handle   to   bitmap.  
                  .hPal   =   hPal     Handle   to   palette   (may   be   null).  
          End   With  
   
            Create   Picture   object.  
          r   =   OleCreatePictureIndirect(Pic,   IID_IDispatch,   1,   IPic)  
   
            Return   the   new   Picture   object.  
          Set   CreateBitmapPicture   =   IPic  
  End   Function  
   
          只要使用以下语句就可以完成你所要求的任务?  
          SavePicture   CaptureWindow(Picture1.hWnd,   False,   0,   0,   _  
                    Picture1.ScaleX(Picture1.Width,   vbTwips,   vbPixels),   _  
                    Picture1.ScaleY(Picture1.Height,   vbTwips,   vbPixels))   _  
                    ,   "C:\test.bmp"  
          这时保存的是可见部分,如果要保存不可见的PictureBox中的背景,可以这样:  
          Picture2.Picture   =   Picture1.Picture  
          Picture2.PaintPicture   CaptureWindow(Picture1.hWnd,   False,   0,   0,   _  
                    Picture1.ScaleX(Picture1.Width,   vbTwips,   vbPixels),   _  
                    Picture1.ScaleY(Picture1.Height,   vbTwips,   vbPixels)),   0,   0  
   
  Private   Sub   Command1_Click()  
              SavePicture   CaptureWindow(Picture1.hWnd,   False,   0,   0,   _  
                    Picture1.ScaleX(Picture1.Width,   vbTwips,   vbPixels),   _  
                    Picture1.ScaleY(Picture1.Height,   vbTwips,   vbPixels))   _  
                    ,   "C:\test.bmp"  
  End   Sub  
   
  Private   Sub   Command2_Click()  
  RichTextBox1.Font.Size   =   20  
  End   Sub  
   
          SavePicture   Picture2.Picture   "c:\test.bmp"  
          事实上,CaptureWindow可以截取任何窗口的图象。  
   
   
  Private   Sub   Form_Load()  
  RichTextBox1.Width   =   Picture1.Width  
   
  RichTextBox1.Height   =   Picture1.Height  
  RichTextBox1.   =   0  
  RichTextBox1.Left   =   0  
  End   Sub  
   
 

NO.6   作者: hot1kang1

http://www.china-askpro.com/vbasic17.shtml  
   
   
  发错了代码       原帖在这         我发了3次发不了了   :)


    摘要: 我刚接触c#不长时间,但是一个web项目要求要能够播放视频文件。我现在不知道从何处入手。希望大家不吝赐教。 如果有成熟的模块或程序当然更好,有好的播放控件也可以。我的视频文件在数据库中的存储内容为"wav/红日.wmv" 。 谢谢大家,问题如能解决,分数可再加 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE