如题,我想获得单文档工程的视图窗口的窗口句柄,但用GetActiveView()方法时,只有在我用鼠标点击了视图时,才能获得该视图窗口的句柄,但不点击时却获得为空。请问一下。要怎么解决要先点击才能获取窗口句柄的问题

解决方案 »

  1.   

    在BOOL CMainFrame::OnCreateClient中
    SetActiveView(CXXView);
      

  2.   

    你要另开一个窗口获取吗?FindWindow  \\根据窗口名获取
    GetSafehWnd 取你程序所在窗口类的句柄
    GetActiveWindow 取当前活动窗口句柄
    AfxGetMainWnd 取主窗口句柄
    GetForegroundWindow 取前台窗口句柄
      

  3.   

    我用的是系统自动生成的VIEW,,后面这个参数要怎么填,我不可能再创建一个吧
      

  4.   

    void SetActiveView(
       CView* pViewNew,
       BOOL bNotify = TRUE 
    );
      

  5.   

    不是的,我是想在mainframe里获取。。比方说我用创建了一个单文档程序,然后我在菜单添加了响应事件,然后在响应事件中,用GetActiveView()方法时,获取不到视图的窗口句柄,
    但是只要我点击一下视图区域。。再去获取时就能获取到了
      

  6.   

    rebort_Q,用你的方法的话,我可能要重新定义一个视图对像了。。
      

  7.   

    SetActiveView应该是激活某个视图,但他要一个视图的对像为参数的我现在要的就是这个视图对像的指针啊。。
      

  8.   

    谢谢rebort_Q。我在view视图创建时加了this->SetActiveWindow();就能获得了,谢谢你给我的提示
      

  9.   

    在OnDraw函数中,

    HWND hWnd;
    hWnd=this->m_hWnd;