在一个基于BCG的MDI程序里,有菜单栏,工具栏,有悬浮框,
用MainFrame的GetClientRect得到的rect,是包含菜单栏,工具栏,状态栏的
我怎么才能获取不包含菜单栏主客户区域的范围呢?就是不要菜单,工具,状态栏什么的
但又不能用view的GetClientRect,因为那样得到下图中的灰色区域
http://hi.csdn.net/attachment/201011/9/2878174_1289272496ae36.jpg

解决方案 »

  1.   

    各个 child 窗口后面那个黑黑的,
    窗口类是 MDICLient, 框架窗口的子窗口.
      

  2.   

    呵呵,我这里网速很IMBA,几次想回复都失败了
    我试了下,可以了,谢谢哈
      

  3.   

    我没找到MDICLient,不过根据你的提示用的下面的代码,是可以的,呵呵,而且它自己去掉了被悬浮窗口的覆盖的位置,很强
    CRect rectMClient;
    CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
    ::GetWindowRect(pFrame->m_hWndMDIClient,&rectMClient);
    BOOL bInClient = PtInRect(&rectMClient,pt);另外问下,你说的MDIClient,全称是?
      

  4.   

    上面的代码没弄好CRect rectMClient;
    CMainFrame* pFrame = (CMainFrame*)AfxGetMainWnd();
    ::GetWindowRect(pFrame->m_hWndMDIClient,&rectMClient);
    BOOL bInClient = PtInRect(&rectMClient,pt);