lihonggen0你好:
我做一个程序是用于自动复制阿里旺旺聊天窗体的内容(是指实时显示聊天文字的那个窗体,不是文字输入框),我已经获得该聊天显示控件RichEdit20A的句柄,可是接下去写sendmessage()函数发消息EM_GETTEXTEX消息到那个RichEdit20A时,不明白sendmessage()函数在发送EM_GETTEXTEX消息时,wParam和lParam两个参数是代表什么意思?虽然看了很多资料还有愚钝不是很明白,查了google,baidu都查不到详细的说明和实例,那是相当郁闷,所以想求教下您,谢谢了!
还有网上找了很多资料,不过都是c或者c++的资料,里面有GETTEXTEX对象。在vb中怎么样才能用这个对象,要重新用一个结构体定义这个对象,还是引用哪个dll就OK,就可以正常使用GETTEXTEX这个对象呢?还有GETTEXTEX里面成员(cb、flags、codepage、lpDefaultChar、lpUsedDefChar)的值在sendmessage()函数发送EM_GETTEXTEX消息时各是什么意思?以下是网上找到的C++的代码:
TCHAR buf[200];
GETTEXTEX gt;
gt.cb=200;
gt.flags=GT_DEFAULT;
gt.codepage=CP_ACP;
gt.lpDefaultChar=NULL;
gt.lpUsedDefChar=NULL;
SendMessage(hEdit,EM_GETTEXTEX,(WPARAM)>,(LPARAM)buf);
红色标记的地方我就是看不懂什么意思?假设已知RichEdit20A句柄,程序复制RichEdit20A中的内容在vb中语句应该是怎么样的写法,最好能有实例,写出语句给我看下,谢谢了,希望你知道话能帮下忙!
我做一个程序是用于自动复制阿里旺旺聊天窗体的内容(是指实时显示聊天文字的那个窗体,不是文字输入框),我已经获得该聊天显示控件RichEdit20A的句柄,可是接下去写sendmessage()函数发消息EM_GETTEXTEX消息到那个RichEdit20A时,不明白sendmessage()函数在发送EM_GETTEXTEX消息时,wParam和lParam两个参数是代表什么意思?虽然看了很多资料还有愚钝不是很明白,查了google,baidu都查不到详细的说明和实例,那是相当郁闷,所以想求教下您,谢谢了!
还有网上找了很多资料,不过都是c或者c++的资料,里面有GETTEXTEX对象。在vb中怎么样才能用这个对象,要重新用一个结构体定义这个对象,还是引用哪个dll就OK,就可以正常使用GETTEXTEX这个对象呢?还有GETTEXTEX里面成员(cb、flags、codepage、lpDefaultChar、lpUsedDefChar)的值在sendmessage()函数发送EM_GETTEXTEX消息时各是什么意思?以下是网上找到的C++的代码:
TCHAR buf[200];
GETTEXTEX gt;
gt.cb=200;
gt.flags=GT_DEFAULT;
gt.codepage=CP_ACP;
gt.lpDefaultChar=NULL;
gt.lpUsedDefChar=NULL;
SendMessage(hEdit,EM_GETTEXTEX,(WPARAM)>,(LPARAM)buf);
红色标记的地方我就是看不懂什么意思?假设已知RichEdit20A句柄,程序复制RichEdit20A中的内容在vb中语句应该是怎么样的写法,最好能有实例,写出语句给我看下,谢谢了,希望你知道话能帮下忙!
解决方案 »
- VB 两个独立的工程怎么进行数据传输?
- 在简体系统简体VB里做的程序在繁体系统中运行文字会不会乱码?
- 请问为何我的打印结果总是偏位呀?打印出的票据不在指定的位置上。(请高手赐教我第一次写打印程序)
- 麻烦高手来看下!
- 元旦到了,发过帖庆祝一下
- 自编程序打包安装后,程序运行一段时间后,他会自动关掉,无任何错误提示!请各位大侠提供宝贵参考意见,不然老板炒我了!!!
- 关于winSock控件的通信问题
- 当在一个IE页面按下鼠标的时候,如何让我的程序知道
- winsock传输时,怎么才能完整的计算出整个包的长度呀
- 有关安装VB的问题
- MSFlexGrid 指定单元格背景颜色更改
- 分析从GPS接收的数据,航向角及方位角
cb As Long
flags As Long
codepage As Long
lpDefaultChar As Long
lpUsedDefChar As Long
End TypePrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, ByVal lParam As Long) As LongPrivate Declare Function GetLastError Lib "kernel32" () As Long
Private Sub Command1_Click()
Dim buf As String
Dim gt As GETEXTEX
buf = Space(240)
RichTextBox1.Text = "测试数据总共二十四个字节"
gt.cb = 24
gt.flags = 0
gt.codepage = 1200
gt.lpDefaultChar = 0
gt.lpUsedDefChar = 0 Call SendMessage(ByVal RichTextBox1.hwnd, ByVal 1118&, ByVal VarPtr(gt), ByVal StrPtr(buf))
MsgBox GetLastError
MsgBox buf
End Sub
很感谢你帮助,能说明下上面一句中红色标记的地方是什么意思吗,1118&,我运行了上面代码,剪切板没有复制的内容,感觉这样的效果和buf=RichTextBox1.Text,然后msgbox buf是一样的。因为我复制内容后,还要粘贴到另一个程序的RichEdit20A的输入框中,所以剪切板要有复制的内容,或者不采用这种方法,也可以直接将buf中的内容直接通过sengmessage()发送到另一个程序的RichEdit20A的输入框中,也OK的,这点我自己先试试。主要还是不明白上面标记红色地方是什么意思“1118&”
你也可以先定义
const EM_GETTEXTEX = 1118&
然后使用EM_GETTEXTEX.使用API,建议去查MSDN。