对于DirectX的游戏窗口是不行的
DirectX是直接写显存

解决方案 »

  1.   

    请参考:
    http://expert.csdn.net/Expert/topic/762/762087.xml?temp=.8301355
    http://expert.csdn.net/Expert/topic/713/713313.xml?temp=.446499
      

  2.   

    提问:假设有窗体Form1,如何使它总在其它窗体的前面,不被任何窗体或游戏画面所覆盖,怎样在vb6.0中实现相关代码?能给出详细说明就更好了,谢!!!
    有网友回答: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_Activate() 
        SetWindowPos Me.hWnd, HWND_TOPMOST, 0,&nb! sp;0, 0, 0, SWP_NOACTIVATE Or SWP_SHOWWINDOW Or SWP_NOMOVE Or SWP_NOSIZE 
    End Sub
    以上代码调试时却不能通过,谁能纠错?
    还有可以在Form_Load()中调用这个“SetWindowPos”API吗?
    是否可以在任何事件中调用?
    谢,急~~~
      

  3.   

    Option Explicit#If Win16 Then
        Declare Sub SetWindowPos Lib "User" (ByVal hwnd As Integer, ByVal hWndInsertAfter As Integer, ByVal X As Integer, ByVal Y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal wFlags As Integer)
    #Else
        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)
    #End If
    Private Sub Form_Load()
    '_____________________________
    '设置窗体在最前面
    '________________________________
    Dim rtn
    rtn = SetWindowPos(me.hwnd, -1, 0, 0, 0, 0, 3)
    End Sub
    你再试一下!我可以调试通过!
      

  4.   

    SetWindowPos不行哦,正常的窗体可以在顶层,但并不是所有时候都好用的
    关注