SENDMESSAGE ,VB问题

来源:百度知道 编辑:UC知道 时间:2024/05/15 00:21:44
已知一个外部框的句柄为RichTXT,让它接收一段在text1里指定好的字串

SendMessage RichTXT, EM_REPLACESEL, 0, ByVal Text1

执行以后,框里显示了该字串,也就是接收成功.
好的,重点来了.
可以考虑实现两点其中一点即可:
1.C盘下有个图片文件"c:\公司产品.jpg",如何让该图也通过
SendMessage RichTXT, EM_REPLACESEL, 0, ByVal Text1
这样的方式传送到那个外部框.
2.我把一张图片复制进剪切板里,通过执行
SendMessage RichTXT, EM_REPLACESEL, 0, ByVal Text1
此类操作让图到达外部框.

两种方式都可以选择解决1,或2种,提供方法.

谢谢各位,一小时内上线视察,满意马上散分~~

EM_REPLACESEL 是使用指定的文本替换选中的文本
这里要粘贴的是图片就应该使用 WM_PASTE 了

第2种方式:

Private Const WM_USER = &H400
Private Const EM_REPLACESEL = WM_USER + 18
Private Const WM_PASTE = &H302
Private Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Private Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Private Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String)

Private Sub Command1_Click()
SendMessageBynum& RichTXT.hwnd, WM_PASTE, 0, 0

End Sub

第1种方式:
简单的办法就是添加一个PictureBox设置Visible为False
利用PictureBox将图片复制到剪贴板再使用第2种方式完成

Priva