请问如何实现提醒的功能??

东方冉 2004-09-13 02:17:14
我做了一个记事提醒的小程序,现在碰到个问题。
我想在某个时间(比如每天17点),弹出个对话框或者用其他方式提醒我该做某件事了。现在主要程序都编好了,就是不知道该怎么提醒我。我试过msgbox,但是优先级太低,如果我在干其他工作,msgbox无法置于最前方,起不到提醒的作用。
注:可以用声音提醒,但不能仅用声音。因为要考虑没有音箱或耳机的情况。

请问如何实现提醒的功能呢??
...全文
109 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
东方冉 2004-09-13
  • 打赏
  • 举报
回复
谢谢各位了!!

问题解决了.
我用SendMessage Me.hwnd, WM_SYSCOMMAND, SC_RESTORE, 0&实现了.
效果不太好.

lxcc(虫子|需要点勇气和信心) 给了我启发,打算有时间的话改成QQ那样,让他在系统托盘上闪烁.
lxcc 2004-09-13
  • 打赏
  • 举报
回复
学学MSN,用FlashWindow

一个例子
http://mailgate.hongen.cn/pc/program/apitutor/api0007/api01.htm
东方冉 2004-09-13
  • 打赏
  • 举报
回复
//TO zcm123(抵制日货从我做起) :

谢谢你提供的这个例子。将Visible属性置为False倒是一种解决办法。
不过因为我的程序要最小化到系统托盘,所以在窗体最小化情况下,到指定时间将其恢复,并保持始终在最前,这个功能是一定要实现的。
东方冉 2004-09-13
  • 打赏
  • 举报
回复
//TO tztz520(午夜逛街) :
你的方法只能解决form没有最小化的情况,可以使窗体处于最前方。
form最小化之后,到指定时间,窗体只会在底端状态栏上闪烁,不会处于最前方。虽然能起到一定的提醒作用,但是效果不明显啊。
zcm123 2004-09-13
  • 打赏
  • 举报
回复
给你一个例子

Dim o, i

Private Declare Function SetWindowPos& Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal Y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long)


Private Sub Form_Click()
Me.Visible = False
End Sub

Private Sub Form_Load()
o = 10
SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3
End Sub

Private Sub Form_Resize()
Label1.Width = Width - 400
Label1.Height = Height - 1200
End Sub

Private Sub Label1_Click()
Unload Me
End Sub

Private Sub Timer1_Timer()
i = i + 1

If i >= 60 * 60 Then
Me.Visible = True
Timer2.Enabled = True
Timer1.Enabled = False
i = 0
End If

End Sub

Private Sub Timer2_Timer()

If o <= 0 Then
o = 10
Timer2.Enabled = False
Me.Visible = False
Timer1.Enabled = True
Exit Sub
End If

o = o - 1

Label1.Caption = "请注意休息啊,你需要休息拉!~ " & CStr(o)

End Sub
tztz520 2004-09-13
  • 打赏
  • 举报
回复
根据以上代码,当时间到就form1.show就可以了
tztz520 2004-09-13
  • 打赏
  • 举报
回复
可以做一个最前窗体.
Private Declare Function SetWindowPos Lib "user32" (ByVal hWnd As Long, ByVal hWndInsertAfter As Long, ByVal X As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
Private Const HWND_TOPMOST = -1


Private Sub Form_Load()
Dim retValue As Long
retValue = SetWindowPos(Me.hWnd, HWND_TOPMOST, 0, 0, 0, 0, 1)

End Sub

7,765

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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