如何使任务栏的窗口变色

taohua300 2010-10-27 11:03:35
类似于QQ来信息时,如果聊天的窗口不是当前窗口,该任务栏窗口变色
...全文
458 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
都市夜猫 2010-10-27
  • 打赏
  • 举报
回复
Declare long FlashWindow in win32api Long, Long
FlashWindow(Thisform.hWnd, 1) && 0 恢复

taohua300 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xilaianzxsc 的回复:]
这个我不会...不好意思
[/Quote]
嗯,谢谢
xilaianzxsc 2010-10-27
  • 打赏
  • 举报
回复
这个我不会...不好意思
十豆三 2010-10-27
  • 打赏
  • 举报
回复
还有这个:

以下为向一个窗口多个控件发消息(写内容及单击按钮)

Declare Long FindWindow In WIN32API String lpClassName,String lpWindowName &&函数返回与指定字符创相匹配的窗口类名或窗口名的最顶层窗口的窗口句柄。这个函数不会查找子窗口。
Declare Long FindWindowEx In WIN32API Long hwndParent,Long hwndChildAfter,String @lpszClass,String @lpszWindow &&该函数获得一个窗口的句柄,该窗口的类名和窗口名与给定的字符串相匹配。这个函数查找子窗口,从排在给定的子窗口后面的下一个子窗口开始。在查找时不区分大小写。
Declare Long SendMessage In WIN32API Long hWnd,Long Msg,Long wParam,String @IParam &&该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
Declare Long GetDlgItem In WIN32API Long HWnd,Long lnIDDlgItem &&通过窗口(控件的父窗口)句柄和控件ID来返回控件句柄。使用该函数时,你可以指定任何窗口,而不只是对话框窗口,只要 hDlg 指定的是一个父窗口并且子窗口具有标识符(在调用 CreateWindow 或 CreateWindowEx 函数创建子窗口时通过 hMenu 参数设置),GetDlgItem 将返回一个有效的子窗口句柄。
#Define EM_REPLACESEL 0xC
#Define BM_CLICK 0xF5
llHandle=FindWindow(Null,'窗口的Caption')
If llHandle>0
hWnd1=GetDlgItem(llHandle,1011) && 1011为控件ID
SendMg='8888'&&指定要发送的消息
SendMessage(hWnd1,EM_REPLACESEL,0,SendMg)&&往输入框自动发送消息
hWnd1=GetDlgItem(llHandle,1012)
SendMg='888888'
SendMessage(hWnd1,EM_REPLACESEL,0,SendMg)
hWnd1=GetDlgItem(llHandle,1001)
SendMg='88888888'
SendMessage(hWnd1,EM_REPLACESEL,0,SendMg)
SendHwnd=FindWindowEx(llHandle,0,'Button','按钮Caption')
If SendHwnd<>0
SendMessage(SendHwnd,BM_CLICK,0,'')&&自动按下按钮
Endif
Endif
十豆三 2010-10-27
  • 打赏
  • 举报
回复
十豆三 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 taohua300 的回复:]
我系统说一下需求,请版主指点

通过 FindWindow 查找某个特定窗口(假设 A),如果找到 窗口A,就修改窗口A中edit控件的值(通过A中的自定义方法),然后判断是否是当前窗口,如果不是,则闪烁窗口。
现在就是不知道怎样去操纵A中的控件
[/Quote]

<WIN API-VFP获取第三方窗体的控件信息(句柄,窗口ID,进程ID,类名,标题)>
http://blog.csdn.net/apple_8180/archive/2010/03/27/5422154.aspx

taohua300 2010-10-27
  • 打赏
  • 举报
回复
我系统说一下需求,请版主指点

通过 FindWindow 查找某个特定窗口(假设 A),如果找到 窗口A,就修改窗口A中edit控件的值(通过A中的自定义方法),然后判断是否是当前窗口,如果不是,则闪烁窗口。
现在就是不知道怎样去操纵A中的控件
taohua300 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 dkfdtf 的回复:]
引用 6 楼 taohua300 的回复:
在有一个问题,如何通过发送窗口消息的方式去执行另一个窗口的方法?
或者怎从A表单操纵B表单的内的控件?(不通过do form name 的方式)


例如:

打开 vfp
创建一个表单
其中只放一个按钮
按钮 Click 事件中写:MessageBox('1111111')
然后
在命令窗口中输入
RAISEEVENT(_Sc……
[/Quote]
这样是不是要通过遍历_Screen.Forms(1).caption 来确定要操纵的窗口 ?
对于_Screen隐藏了的也可以么 ?
都市夜猫 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 taohua300 的回复:]
在有一个问题,如何通过发送窗口消息的方式去执行另一个窗口的方法?
或者怎从A表单操纵B表单的内的控件?(不通过do form name 的方式)
[/Quote]

例如:

打开 vfp
创建一个表单
其中只放一个按钮
按钮 Click 事件中写:MessageBox('1111111')
然后
在命令窗口中输入
RAISEEVENT(_Screen.Forms(1).command1, 'click')

taohua300 2010-10-27
  • 打赏
  • 举报
回复
多谢两位
在有一个问题,如何通过发送窗口消息的方式去执行另一个窗口的方法?
或者怎从A表单操纵B表单的内的控件?(不通过do form name 的方式)
yrt888 2010-10-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 dkfdtf 的回复:]
Declare long FlashWindow in win32api Long, Long
FlashWindow(Thisform.hWnd, 1) && 0 恢复
[/Quote]

的确是这样,学习了!
狂龙骄子 2010-10-27
  • 打赏
  • 举报
回复
*那个叫闪烁窗口,用API函数,VFP 8.0测试OK

Declare Long FlashWindow In "user32" Long nHwnd, Long bInvert
?FlashWindow(Thisform.hwnd, 100)
*参考介绍:
*nHwnd:指定闪烁窗口句柄
*bInvert:逻辑值,值为 1 时闪一次;值为 0 时停止闪

*也可以加一个Timer控件实现多次闪烁

2,723

社区成员

发帖
与我相关
我的任务
社区描述
VFP,是Microsoft公司推出的数据库开发软件,用它来开发数据库,既简单又方便。
社区管理员
  • VFP社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧