vc++ SendMessage和WM_SETTEXT问题.

2024-05-14

1. vc++ SendMessage和WM_SETTEXT问题.

::SendMessage(Ahwnd,WM_SETTEXT,0,_T("hehe"));

参数错啦~第三个参数无用, 第四个才是c字符串~
wParam
This parameter is not used. 
lParam
Pointer to a null-terminated string that is the window text.

vc++ SendMessage和WM_SETTEXT问题.

2. gettext的参数的问题

GetText 方法
      

用于返回 Clipboard 对象中的文本字符串。不支持命名参数。

语法

object.GetText (format)

GetText 方法的语法包含下列部分:

部分 描述 
object 必需的。一个对象表达式,其值为“应用于”列表中的一个对象。 
format  可选的。一个数值或常数,如“设置值”中所描述的,它指定 Clipboard 对象的格式。必须用括号将常数或数值括起来。 


设置值

format 的设置值有: 

常数 值 描述 
vbCFLink &HBF00 DDE 对话信息  
vbCFText 1 (缺省值)文本 
vbCFRTF &HBF01 RTF(.rtf 文件) 


说明

上述常数在 Visual Basic (VB)对象浏览器中的对象库里列出。

如果 Clipboard 对象中没有与期望的格式相匹配的字符串,则返回一个零长度字符串 ("")。

3. 我用vc sendmessage向一个编辑框传字符串!例如要传"text"到hwnd该怎么写啊?最

SendMessage发WM_GETTEXT/WM_SETTEXT消息获取/设置控件的内容

我用vc sendmessage向一个编辑框传字符串!例如要传"text"到hwnd该怎么写啊?最

4. sendmessage、postmessage和直接调用该对话框的方法,有何区别,那个好一点?

sendmessage、postmessage都属于消息传递机制,和直接调用该对话框相比,它俩都是间接调用,即可以模拟直接调用的过程;
sendmessage、postmessage的区别:
1 函数的返回值不同,前者返回消息处理结果,后者是BOOL表示是否传递成功;
2 postmessage是异步,即把消息放入消息队列后,就不管处理结果就走了;sendmessage是同步,即它会等消息处理完才返回;
3 因此在同一个线程中,用sendmessage处理速度更快;在多线程之间,一般postmessage这样更方便,即把消息放入目标窗口的信息队列中,然后由目标窗口通过消息循环自行派发处理。
综上,直接调用窗口更类似sendmessage,但是用消息传递函数更直接,更接近底层调用;当时方便的话,当然还是你直接调用窗口简单。

5. vb中sendmessage的WM_GETTEXT怎么用啊?想用它获取其他窗口编辑框中的文字。

tempstr = Space(90000) strlong = Len(tempstr) rtn = SendMessage(hwnd, WM_GETTEXT, strlong, ByVal tempstr)

vb中sendmessage的WM_GETTEXT怎么用啊?想用它获取其他窗口编辑框中的文字。

6. VB下 GetWindowText 或 SendMessage WM_GETTEXT 获取文本不全

用这个试试,HwndVal是句柄
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
dim retlength As Long
dim retstring As String
Const WM_GETTEXT = &HD
Const WM_GETTEXTLENGTH = &HE
retlength = SendMessage(HwndVal, WM_GETTEXTLENGTH, 0, 0)
retstring = String(retlength, 0)
SendMessageByString HwndVal, WM_GETTEXT, retlength + 1, retstring
 
retstring就是返回值

7. 怎样将String转换为PChar?谢谢!(在使用SendMessage)谢谢了,大神帮忙啊

var s; string;sendmessage(listbox1.handle,lb_addstring,0,longint(PChar(s)));  查看原帖>>

怎样将String转换为PChar?谢谢!(在使用SendMessage)谢谢了,大神帮忙啊

8. sendmessage WM_GETTEXT delphi 这个!~~

a:= findwindowex(a,0,'edit',nil); 
返回的结果可能为0,所以取不到