怎样用程序修改其他程序状态栏第2,3,4...窗格中的文字?(40分)

  • 主题发起人 主题发起人 wuan
  • 开始时间 开始时间
W

wuan

Unregistered / Unconfirmed
GUEST, unregistred user!
&nbsp;我做了一个程序需要它去改变另外一个程序状态栏第三窗格中的文字,我用setwindowtext和sendmessage进行,发现都是只能改变第一窗格中的文字,另外我发现状态栏的第2,3,4...窗格并不是状态栏的子窗口,所以也好象没有单独的句柄!<br>&nbsp;那么,怎样用程序修改其他程序状态栏第2,3,4...窗格中的文字?<br>&nbsp; &nbsp;分不够再加。
 
用FindWindow找不到那些窗口吗?如果能找到就可以用SetWindowText和SendMessage了
 
Have you used message SB_SETTEXT?
 
to 奇侠:<br>&nbsp; 你能find吗?。。。
 
to weiwei81123:<br>&nbsp; have you tried? <br>sb_settext有这个消息吗?
 
in Commctrl
 
send message SB_SETTEXT to set them.
 
to weiwei81123:<br>&nbsp; 很好!我试了,但是发现如果传递变量只是清掉了窗口中的文字,如果传递字符串则呈现乱码,还是无法实现目的.。怎么办?
 
试了一下确实不行,看来这个消息做得不好.<br>创建一块共享内存,象这样就行了:<br>&nbsp; h := CreateFileMapping($FFFFFFFF, nil, PAGE_READWRITE, 0, Length(texttoset) + 1, 'changestatustexttest');<br>&nbsp; p := MapViewOfFile(h, FILE_MAP_WRITE, 0, 0, 0);<br>&nbsp; strpcopy(p, texttoset);<br>&nbsp; SendMessage(thehandle, sb_settext, 1, Integer(p));<br>&nbsp; UnmapViewOfFile(p);<br>&nbsp; CloseHandle(h);<br>
 
to weiwei81123:<br>&nbsp;我还是没有看到效果,发个示例不胜感谢!分先给你。
 
后退
顶部