hDCSrc = GetDC(hWndSrc) '如果要考貝非客戶區則用這行
hDCSrc = GetWindowDC(hWndSrc)
hDCMemory = CreateCompatibleDC(hDCSrc)
hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)
hBmpPrev = SelectObject(hDCMemory, hBmp) '?得屏幕?性
RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS)
HasPaletteScrn = RasterCapsScrn And RC_PALETTE
PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE) '如果屏幕?象有?色板??得屏幕?色板
If HasPaletteScrn And (PaletteSizeScrn = 256) Then
'建立屏幕?色板的拷?
LogPal.palVersion = &H300
LogPal.palNumEntries = 256
r = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))
hPal = CreatePalette(LogPal)
'?新建立的?色板?如建立的?存??句柄中
hPalPrev = SelectPalette(hDCMemory, hPal, 0)
r = RealizePalette(hDCMemory)
End If '拷??象
r = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy) hBmp = SelectObject(hDCMemory, hBmpPrev) If HasPaletteScrn And (PaletteSizeScrn = 256) Then
hPal = SelectPalette(hDCMemory, hPalPrev, 0)
End If r = DeleteDC(hDCMemory)
r = ReleaseDC(hWndSrc, hDCSrc)
Dim Pic As PicBmp
Dim IPic As IPicture
Dim IID_IDispatch As GUID '填充IDispatch界面
With IID_IDispatch
.Data1 = &H20400
.Data4(0) = &HC0
.Data4(7) = &H46
End With '填充Pic
With Pic
.Size = Len(Pic) ' Pic?构?度
.Type = vbPicTypeBitmap ' ?象?型
.hBmp = hBmp ' 位?句柄
.hPal = hPal ' ?色板句柄
End With '建立Picture?象
r = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic) '返回Picture?象
SavePicture IPic,"C:\temp.bmp"
hDCSrc = GetWindowDC(hWndSrc)
hDCMemory = CreateCompatibleDC(hDCSrc)
hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)
hBmpPrev = SelectObject(hDCMemory, hBmp) '?得屏幕?性
RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS)
HasPaletteScrn = RasterCapsScrn And RC_PALETTE
PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE) '如果屏幕?象有?色板??得屏幕?色板
If HasPaletteScrn And (PaletteSizeScrn = 256) Then
'建立屏幕?色板的拷?
LogPal.palVersion = &H300
LogPal.palNumEntries = 256
r = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))
hPal = CreatePalette(LogPal)
'?新建立的?色板?如建立的?存??句柄中
hPalPrev = SelectPalette(hDCMemory, hPal, 0)
r = RealizePalette(hDCMemory)
End If '拷??象
r = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy) hBmp = SelectObject(hDCMemory, hBmpPrev) If HasPaletteScrn And (PaletteSizeScrn = 256) Then
hPal = SelectPalette(hDCMemory, hPalPrev, 0)
End If r = DeleteDC(hDCMemory)
r = ReleaseDC(hWndSrc, hDCSrc)
Dim Pic As PicBmp
Dim IPic As IPicture
Dim IID_IDispatch As GUID '填充IDispatch界面
With IID_IDispatch
.Data1 = &H20400
.Data4(0) = &HC0
.Data4(7) = &H46
End With '填充Pic
With Pic
.Size = Len(Pic) ' Pic?构?度
.Type = vbPicTypeBitmap ' ?象?型
.hBmp = hBmp ' 位?句柄
.hPal = hPal ' ?色板句柄
End With '建立Picture?象
r = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic) '返回Picture?象
SavePicture IPic,"C:\temp.bmp"
解决方案 »
- 这种效果如何实现?
- 无法插入一个select 结果集,老是提示:至少一个参数没有被指定值
- 不用定时器,怎样才能在状态栏显示时间包括秒,如"HH:MM:SS",设置状态栏的属性为什么不会显示秒?谢谢。
- 请问以下快捷键功能,应如何方可实现? 急!!!
- 请大家帮忙:高分求工具
- 刚看VB的书,请问怎样让data控件和sql_server连接!
- 如何将程序图标加到IE的工具条中?
- 如何在vb中调用数据库端的PL/SQL,能给我一个详细的例子吗?
- 怎样使用VB6中TREEVIEW控件?
- *** 请问在VB中如何启动和停止SqlServer服务? 一定给分 ***
- 谁能总结select语句所有的用法
- 已知道一个IE窗口的句柄!如何知道这个网页的HTML代码!
hDCSrc = GetWindowDC(hWndSrc)
hDCMemory = CreateCompatibleDC(hDCSrc)
hBmp = CreateCompatibleBitmap(hDCSrc, WidthSrc, HeightSrc)
hBmpPrev = SelectObject(hDCMemory, hBmp)
RasterCapsScrn = GetDeviceCaps(hDCSrc, RASTERCAPS)
HasPaletteScrn = RasterCapsScrn And RC_PALETTE
PaletteSizeScrn = GetDeviceCaps(hDCSrc, SIZEPALETTE)
If HasPaletteScrn And (PaletteSizeScrn = 256) Then
LogPal.palVersion = &H300
LogPal.palNumEntries = 256
r = GetSystemPaletteEntries(hDCSrc, 0, 256, LogPal.palPalEntry(0))
hPal = CreatePalette(LogPal)
hPalPrev = SelectPalette(hDCMemory, hPal, 0)
r = RealizePalette(hDCMemory)
End If
r = BitBlt(hDCMemory, 0, 0, WidthSrc, HeightSrc, hDCSrc, LeftSrc, TopSrc, vbSrcCopy) hBmp = SelectObject(hDCMemory, hBmpPrev) If HasPaletteScrn And (PaletteSizeScrn = 256) Then
hPal = SelectPalette(hDCMemory, hPalPrev, 0)
End If r = DeleteDC(hDCMemory)
r = ReleaseDC(hWndSrc, hDCSrc)
Dim Pic As PicBmp
Dim IPic As IPicture
Dim IID_IDispatch As GUID '填充IDispatch界面
With IID_IDispatch
.Data1 = &H20400
.Data4(0) = &HC0
.Data4(7) = &H46
End With '填充Pic
With Pic
.Size = Len(Pic)
.Type = vbPicTypeBitmap
.hBmp = hBmp
.hPal = hPal
End With
r = OleCreatePictureIndirect(Pic, IID_IDispatch, 1, IPic)
SavePicture IPic,"C:\temp.bmp"
Private Const SRCCOPY = &HCC0020Private Sub Command1_Click()
BitBlt Picture1.hDC, 0, 0, 100, 100, Me.hDC, 0, 0, SRCCOPY
SavePicture Picture1.Image, "c:\abcd.bmp"
End Sub