网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
07月07日漏签0天
vb吧 关注:156,113贴子:1,166,168
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 9回复贴,共1页
<<返回vb吧
>0< 加载中...

【请教】请教关于stdPicture加载到DC的问题

  • 只看楼主
  • 收藏

  • 回复
  • xuqiancun3
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
今天遇到一个很头疼的问题,查了很多资料也没弄清楚。
就是加载一张本地图片为stdPicture,然后将stdPicture装进一个DC中,最后将这个DC画到另一个DC中。如果图片文件是jpg,BMP格式的文件,操作可以正常进行。如果图片是ico,cur格式的,就没有反应。
如果用PaintPicture方式,jpg,bmp,ico,cur 格式的都可以正常显示。
还请懂这块指教。
下面是代码


  • xuqiancun3
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Private Declare Function BitBlt Lib "gdi32" (ByVal hDestDC As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
Private Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Private Declare Function CreateCompatibleDC Lib "gdi32" (ByVal hdc As Long) As Long
Private Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, ByVal hdc As Long) As Long
Private Declare Function DeleteDC 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 GetObject Lib "gdi32" Alias "GetObjectA" (ByVal hObject As Long, ByVal nCount As Long, lpObject As Any) As Long
Private Declare Function SelectObject Lib "gdi32" (ByVal hdc As Long, ByVal hObject As Long) As Long
Private Const SRCCOPY = &HCC0020
Private Sub Command1_Click()
Dim mDC As Long
Dim tmpPic As StdPicture
Set tmpPic = LoadPicture("C:\Users\Administrator\Desktop\hbt_login.bmp")
'这里加载图片文件如果是jpg,bmp格式,窗体可以显示图片,如果是ico,cur格式,则窗体不显示图片,也不报错
Dim aHdc As Long
aHdc = GetDC(0) '获取桌面DC
mDC = CreateCompatibleDC(aHdc) '创建mDC
SelectObject mDC, tmpPic.Handle '将图片装入mdc
ReleaseDC 0, aHdc '释放aHdc
BitBlt Me.hdc, 0, 0, 200, 200, mDC, 0, 0, vbSrcCopy '将mDC画入窗体
DeleteDC mDC '删除mDC
End Sub
Private Sub Command2_Click()
Dim tmpPic As StdPicture
Set tmpPic = LoadPicture("C:\Users\Administrator\Desktop\hand.cur")
'用PaintPicture方式,jpg,bmp,ico,cur格式图片都可以显示
Me.PaintPicture tmpPic, 0, 0
End Sub


2025-07-07 05:21:33
广告
  • xuqiancun3
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
二楼贴代码,不知道有没有贴出来。还望指教。
或者还有什么别的办法,将stdPicure 显示到DC场景中吗?


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
bmpPic.type =3时用DrawIcon绘制,selectobject没有选入图标的句柄


  • xuqiancun3
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
怎么4楼没有显示出来?


  • 隨風缒夢
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

其实StdPicture的Type的值这个,1= vbPicTypeBitmap,3=vbPicTypeIcon


  • jhhead1
  • 啥也不懂
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请教:StdPicture是什么?


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 9回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示