程序是这样的:
Private Declare Sub 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)
    
  Const HWND_TOPMOST = -1
  Const HWND_NOTOPMOST = -2
  Const SWP_NOSIZE = &H1
  Const SWP_NOMOVE = &H2
  Const SWP_NOACTIVATE = &H10
  Const SWP_SHOWWINDOW = &H40
'********************************************************************************************
Private Sub Form_Load()
Me.Caption = "提醒"
SetWindowPos Me.hWnd, HWND_TOPMOST, 800, 200, 280, 25, SWP_NOACTIVATE + SWP_SHOWWINDOW
Call Timer1_Timer
End Sub
'****************************************************************************
Private Sub Timer1_Timer()
Timer1.Interval = 1000
Timer1.Enabled = True
Dim A(3) As Integer
A(1) = Year(Now)
A(2) = Month(Now)
A(3) = Day(Now)
下面程序有省略
If A(2) = 12 And A(3) = 29 Then
        If Hour(Now) >= 12 And Hour(Now) <= 24 Then
            'retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST, 800, 250, 300, 20, SWP_SHOWWINDOW)
            paidandate = Format(Date + 2, "yyyy/mm/dd")
            Label2.FontSize = 9
            Label2.Font = 宋体
              Label2.FontBold = True
            Label2.ForeColor = vbRed
            Label2.Caption = Date & ",派单时限为" & paidandate & "!"
            Form1.Show
        Else
            Form1.Hide
        End If现在的问题是,正常情况下,FORM1窗体始终置顶的,并且不影响网页浏览以及WORD浏览等,
但是和一些单位的程序存在冲突。
1、表现为:
当FORM1置顶显示的时候,公司的应用程序无法控制鼠标。
2、理解为:
是不是对方也设置了timer控件,存在冲突导致?---修改Timer1.Interval = 60*1000,后仍然无法解决。
3、能否:
使得form1窗体置顶,但是成为非活动窗口?不影响其他程序的应用?就像flashget一样,窗体浮动在界面上

解决方案 »

  1.   

    3、参数中加上SWP_NOACTIVATE标志。
      

  2.   

    用API函数SetWindowPos将窗体Form1置顶的时候,Form1获取焦点。这个时候,如果有其他程序要使用,必须将这个程序也置顶,同时获得焦点,前一个程序Form1自然就会失去焦点。  
      

  3.   

    加了“SWP_NOACTIVATE   +   SWP_SHOWWINDOW ”参数亚
      

  4.   

    SetWindowPos中已经显式窗体了,不需要再调用Form1.Show。
      

  5.   

    置顶 不需要用到 TIMER 吧!API 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
    需要置顶时 请输入这段SetWindowPos Me.hwnd, -1, 0, 0, 0, 0, 3取消置顶时 请输入这段SetWindowPos Me.hwnd, -2, 0, 0, 0, 0, 3都不知道Timer 有什么用!改用上面的代码简单方便 ^_^ 
      

  6.   

    Tiger_Zhao 很厉害。你说的是
    对的