form1.Show (vbModal)
minbutton=false

解决方案 »

  1.   

    是不能按最小化了﹐但是用戶一樣可以按"Alt+Tab"鍵跳到其他應用程序中﹐我的意思是想實現當用戶開這這個窗口時﹐他什么也做不了﹐那也去不了。就好象把用戶定型在當前操作窗口一樣。
      

  2.   

    禁掉Alt+Tab键
    win98里可以这样做Const SPI_SCREENSAVERRUNNING = 97Private Declare Function SystemParametersInfo Lib "User32" Alias _
        "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As _
        Any, ByVal fuWinIni As Long) As LongPrivate Sub Command1_Click()
        Dim pOld As Boolean
        Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, pOld, 0)
    End SubPrivate Sub Command2_Click()
        Dim pOld As Boolean
        Call SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, pOld, 0)
    End Sub
      

  3.   

    VB调用API函数使窗口保持在最上层 ,2让窗口拒绝接受键盘和鼠标事件   
    ---- 我们看到有的应用程序不管窗口是否活动都使窗口保持在最上层,常见的Microsoft Word的文件打开和编辑查找窗口就是这样。在VB开发中可以通过调用SetWindowsPos()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
    ---- hWnd变元是窗口的句柄;x,y是窗口的左上角的坐标;cx、cy是窗口宽度和高度;hWndInsertAfter变元是窗口清单中hWnd窗口前面的窗口句柄,有四个可选值: 序号 可 选 值 作 用
    1 HWND_BOTTOM 把窗口放在窗口清单的底部
    2 HWND_TOP 把窗口放在窗口清单的字符顺序的顶部
    3 HWND_TOPMOST 把窗口放在窗口清单的顶部
    4 HWND_NOTOPMOST 把窗口放在窗口清单的顶部,最上层窗口之下
    ---- WFlags变元为整型值,有八个可选值: 序号 可  选  值 作   用
    1 SWP_DRAWFRAME 在窗口周围画一个方框
    2 SWP_HIDEWINDOW 隐藏窗口
    3 SWP_NOACTIVATE  不激活窗口
    4 SWP_NOMOVE 保持窗口当前位置
    5 SWP_NOREDRAW 窗口不自动重画
    6 SWP_NOSIZE  保持窗口当前尺寸
    7 SWP_NOZORDER 保持窗口在窗口清单中的当前位置
    8 SWP_SHOWWINDOW 显示窗口
    ---- 下面的例子程序Test演示了对函数中的以上7个变元作正确的选择后,应用程序运行后窗口总可保持在最上层,程序清单如下: Option Explicit
    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 Const SWP_SHOWWINDOWS = &H40Private Sub Form_Load()
    Dim retValue As Long
    retValue = SetWindowPos(Me.hwnd,
     HWND_TOPMOST, Me.CurrentX, _
     Me.CurrentY, 300, 300, SWP_SHOWWINDOWS)
    End Sub
    ---- 备注:编写函数声明时,整个函数声明须在一行中写完,不可提行。一般是自动从系统中得到函数声明,方法是从VB的外接程序管理中启动“API 浏览”程序,在“API 浏览”程序中找到所需的函数声明,然后复制到VB代码中。 让窗口拒绝接受键盘和鼠标事件   
           
    声明:
    Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
    使用:
    '拒绝接受键盘和鼠标事件
    Call EnableWindow(Form.hwnd, 0)
    '允许接受键盘和鼠标事件
    Call EnableWindow(Form.hwnd, 1)
      

  4.   

    对上面的答复进行一下综合:
    1、将你要操作的窗口设置为 永远在上(always on top);
    2、将鼠标的活动范围控制于当前的窗口上,即鼠标无法移到到窗口外
      

  5.   

    简单一点form.Show vbModal, Me
    复杂的可用 zmcpu(CPU)
      

  6.   

    想再請問一句﹕當我用了zmcpu(CPU)的方法(第一種﹐截斷鼠標和鍵盤的相應那部分)﹐系統老是提示這樣的錯誤﹕Runtime error "424":object required
    這是那里出錯呢?因為VB對我來說比較陌生﹐我不知道zmcpu(CPU)說到的程序中出現的:Call EnableWindow(Form.hwnd, 0)
    當中的form是指的一個類還是具體我所在的form的名稱呢???
      

  7.   

    當中的form是指的一個類還是具體我所在的form的名稱呢???是的,要它的句柄
      

  8.   

    form1.show 1这样,就不可能转到其他窗口了。
      

  9.   

    如果我是在vba對excel編程的話﹐也同樣能用這個方法嗎??
    寫法上有什么不同??(最好是能定位在當前的excel上屏蔽鼠標和鍵盤的響應﹐具體有什么變化????)
      

  10.   

    如何让Window不接受键盘输入及Mouse Click
    就好比呼叫MsgBox之後,Form就不接受Mouse Click与KeyPress,但是Form仍可处於Activate的状态,即我们暂停了Mouse Click,KeyPress,等待我们要做事都做完了,再将之回复。不过Mouse仍可自由的移动,若要让Mouse也不能动,就使用JournalPlayBack Hook,而不是使用本方法。EnableWindow()可达目的,第二个叁数传0进入则不能输入,传1则相反Private Declare Function EnableWindow Lib "user32" (ByVal hwnd As Long, ByVal fEnable As Long) As Long
    Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)Private Sub Command1_Click()
    Call EnableWindow(Me.hwnd, 0)
    Me.Caption = "现在拒绝KeyPress, MouseClick"
    Dim i As Long
    For i = 1 To 100
    Call Sleep(100)
    DoEvents '虽有DoEvents,会发现,按Form的任何地方都没有反应
    Next i
    Me.Caption = "现在解除了"
    Call EnableWindow(Me.hwnd, 1)
    End Sub
      

  11.   

    To:zmcpu(CPU)
    首先感謝: zmcpu(CPU) 大哥的幫忙。
    請問zmcpu(CPU)﹕正如你所說的﹐在VB的form中﹐上面的程序的確沒有什么問題﹐但是當我把上面的方法移植到vba對excel編程的時候卻老是不成功﹐老是提示調用的函數沒有定義﹐另外我對VBA的編程比較陌生﹐希望: zmcpu(CPU) 能對我的問題做出比較詳細的解答。再次感謝各位
      

  12.   

    xxxx.show vbmodal就可以了。xxxx窗口就可以呆在最上层了。