如何在VB中将BMP文件转成JPG文件?

koala1025 2003-09-14 07:23:08
在VB中能否实现将BMP文件转成JPG文件?该用什么方法?

还有一个问题,怎样才能使焦点始终保持在一个窗体上?

多谢高手指点。
...全文
82 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsr66 2003-09-15
  • 打赏
  • 举报
回复
第二个问题我能力有限,没有更好的方法,有的方法不太合理和太占资源了。我倒有个变通的的方法,也可以实现你的目的。例程如下,可以通过热键唤出你所要的窗口,比如,下面的程序用CTRL+ALT+C唤出Form1 ,

'在模块Moudle1中写下列代码:

Public Const WM_HOTKEY = &H312
Public Const MOD_ALT = &H1
Public Const MOD_CONTROL = &H2
Public Const MOD_SHIFT = &H4
Public Const GWL_WNDPROC = (-4)
Public preWinProc As Long
Public Modifiers As Long
Public uVirtKey As Long
Public idHotKey As Long
Private Type taLong
ll As Long
End Type
Private Type t2Int
lWord As Integer
hWord As Integer
End Type

Declare Function SetWindowLong Lib "user32" Alias _
"SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias _
"GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As _
Long) As Long
Declare Function CallWindowProc Lib "user32" Alias _
"CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal _
hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, _
ByVal lParam As Long) As Long
Declare Function RegisterHotKey Lib "user32" (ByVal _
hWnd As Long, ByVal id As Long, ByVal fsModifiers _
As Long, ByVal vk As Long) As Long
Declare Function UnregisterHotKey Lib "user32" _
(ByVal hWnd As Long, ByVal id As Long) As Long

Public Function Wndproc(ByVal hWnd As Long, ByVal _
Msg As Long, ByVal wParam As Long, ByVal lParam _
As Long) As Long

If Msg = WM_HOTKEY Then
If wParam = idHotKey Then
Dim lp As taLong, i2 As t2Int
lp.ll = lParam
LSet i2 = lp
If (i2.lWord = Modifiers) And i2.hWord = uVirtKey Then
Form1.ShowForm
End If
End If
End If
'如果不是热键信息则调用原来的程序
Wndproc = CallWindowProc(preWinProc, hWnd, Msg, _
wParam, lParam)
End Function


'---在窗体Form1中写入如下代码:
Private Sub Form_Load()
Dim ret As Long

'记录原来的window程序地址
preWinProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
'用自定义程序代替原来的window程序
ret = SetWindowLong(Me.hWnd, GWL_WNDPROC, AddressOf Wndproc)

idHotKey = 1
Modifiers = MOD_ALT + MOD_CONTROL 'Alt+Ctrl 键
uVirtKey = vbKeyC 'C键
ret = RegisterHotKey(Me.hWnd, idHotKey, Modifiers, uVirtKey)
End Sub

Private Sub Form_Unload(Cancel As Integer)
Dim ret As Long
'取消Message的截取,使之送往原来的windows程序
ret = SetWindowLong(Me.hWnd, GWL_WNDPROC, preWinProc)
Call UnregisterHotKey(Me.hWnd, uVirtKey)
End Sub

Public Sub ShowForm()
Form1.Show
End Sub
Fengq 2003-09-14
  • 打赏
  • 举报
回复
image控件
aalei 2003-09-14
  • 打赏
  • 举报
回复
用setupfactory,它会自动扫描你用到了哪些ocx,tlb,dll等
koala1025 2003-09-14
  • 打赏
  • 举报
回复
谢谢荞麦大侠!
第二个问题是这样的:我有一个应用程序(只允许用键盘操作),重新启动后有时焦点不在窗体上,不能做任何操作。我必须用鼠标将焦点转移过来,然后才能操作。
我不知道是什么原因造成的,不知是不是可以将焦点强制保留在我的应用程序的窗体上。

fafan 2003-09-14
  • 打赏
  • 举报
回复
用setupfactory,它会自动扫描你用到了哪些ocx,tlb,dll等
Neoking 2003-09-14
  • 打赏
  • 举报
回复
把.bmp文件读进来(例如显示在image控件中),然后以.jpg保存不行吗???
lsr66 2003-09-14
  • 打赏
  • 举报
回复
已发,请查收。
经过测试,可用。
koala1025 2003-09-14
  • 打赏
  • 举报
回复
TO:荞麦
我的邮箱是KOALA1025@SOHU.COM
谢谢!
koala1025 2003-09-14
  • 打赏
  • 举报
回复
我是想在VB的程序里自动实现BMP转JPG的功能
lsr66 2003-09-14
  • 打赏
  • 举报
回复
问题一:转换方法1,理解BMP和JPG的文件格式,自己编写转换程序。
转换方法2,用现成的函数库,我有一个dll和VB例程,压缩后245K,留下邮箱,
可以发给你。
问题二:不是很理解你的意思。
rainstormmaster 2003-09-14
  • 打赏
  • 举报
回复
用第3方控件,很多的,可以用google搜索一下

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧