你用自己的程序做一个拦截程序
我会在VB里的,在VC里 你自己看着班
Option ExplicitPrivate Sub Command1_Click()
    Unload Me
End SubPrivate Sub Form_Load()
    prevWndProc = GetWindowLong(Me.hWnd, GWL_WNDPROC)
    SetWindowLong Me.hWnd, GWL_WNDPROC, AddressOf WndProc
End SubPrivate Sub Form_Unload(Cancel As Integer)
    SetWindowLong Me.hWnd, GWL_WNDPROC, prevWndProc
End SubPrivate Sub Form_Paint()
    ForeColor = vbBlue
    Cls
    Print
    Print "我虽然没有标题区,但您可以在工作区按下鼠标,"
    Print "然后把我拖曳到其它地方."
End Sub'模块里的代码
Option ExplicitPublic Const GWL_WNDPROC = (-4)Public Const WM_NCHITTEST = &H84
Public Const HTCLIENT = 1
Public Const HTCAPTION = 2Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic prevWndProc As LongFunction WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    WndProc = CallWindowProc(prevWndProc, hWnd, Msg, wParam, lParam)
    '这里是关键,如果但是的非工作取得地方,然后法一个假消息window,然她认为是单击在窗体的标题区
    If Msg = WM_NCHITTEST And WndProc = HTCLIENT Then
        WndProc = HTCAPTION
    End If
End Function
'这样回答你满意吗?

解决方案 »

  1.   

    要最小化或最大化,你要用 CWnd::ShowWindow
    void CMyView::OnMyCreateframe() 
    {
       CFrameWnd* pFrameWnd = new CFrameWnd;
       CRect myRect;
       GetClientRect(myRect);
       pFrameWnd->Create(NULL, "My Frame");
       pFrameWnd->CalcWindowRect(&myRect, CWnd::adjustBorder);
       pFrameWnd->MoveWindow(0, 0, myRect.Width(), myRect.Height());
       pFrameWnd->ShowWindow(SW_SHOW);
    }
    '查一下msdn就可以知道啦
      

  2.   

    [email protected]
    多谢!
      

  3.   

    prog_st(st):能否把画柱状图和圆饼图的程序也给一份?不在另开贴了,再加50!
      

  4.   

    prog_st(st): 也给我一份好吗? [email protected] 多谢