2011-04-25 21 views
1

感谢Rob肯尼迪的回答我的问题上how to set the Skype Chat window text.在外部应用程序的文本区域设置木-位置?

但是,每当我设置使用

SendMessage(RichEditWnd,WM_SETTEXT,0,Integer(PChar(Edit1.Text))); 

然后当我点击Skype的聊天编辑控件中的文本,该CARRET被放置在开始并且需要点击一下以使其再次“正确”。

是否有一个Windows消息设置carret位置?或者至少我可以用来将Carret位置设置为文本末尾的东西? :)

回答

3

是的,有:EM_EXSETSEL

wParam0,和lParam应该是一个指针,指向包含在选择的第一和最后一个字符结构TCharRange。你希望它们相等(即选择零个字符)。

例如,

var 
    cr: TCharRange; 
begin 
    cr.cpMin := 2; 
    cr.cpMax := 2; 
    SendMessage(RichEdit1.Handle, EM_EXSETSEL, 0, integer(@cr)); 

只会在丰富的编辑控制第三个字符之前设置插入符。

+0

TCharRange在什么单位声明? :) – Jeff 2011-04-25 12:33:52

+0

@Jeff:'RichEdit' – 2011-04-25 12:34:10

+0

顺利 - 谢谢你,我的朋友! :) – Jeff 2011-04-25 12:36:17

相关问题