class CMy4View : public CFormView
怎样得到CMy4View对应的对话框的句柄?thx
(我想在 CMy4View内对对话框的控件做一些操作)

解决方案 »

  1.   

    不用句柄吧,直接用: CWnd* pWnd = GetDlgItem(IDC_MYCTRL);
      

  2.   

    似乎并这种访问能力 ,象CEditView中有一个CEdit& 那样。
    但并不妨事。
    您可以象基于对话框的程序一样直接调用那些操纵控件的函数,因为它们都是在CWnd类定义的虚函数,现在我明白为会么SetDlgItemText()这类函数居然不是CDialog的成员函数,而放在CWnd那里,多方便呀。
      

  3.   

    mrlp() 
    但我在CMy4View下用GetDlgItem 得不到控件句柄啊,因为句柄是在对话框里,我又没对话框句柄
     zhi_wu(今夜不寂寞) 
    是啊,我单步运行的时候的确CMy4View构造函数运行的时候是看到了对话框的生成,我不知道是否对话框句柄保存在了某个变量里or可以用某个函数得到,so...我还是不知道怎么得到对话框句柄等待解答ing
      

  4.   


    不需要用api,所以不用句柄,直接用CWnd::GetDlgItem()
     CWnd* pWnd = GetDlgItem(IDC_MYCTRL);
      

  5.   

    Lemon_2000(柠檬) 
    直接用CWnd::GetDlgItem()
     CWnd* pWnd = GetDlgItem(IDC_MYCTRL);在CMy4View的某个函数里直接CWnd* pWnd = GetDlgItem(IDC_MYCTRL)?"
    明天我去试试
    (mfc的getdlgitem怎么封装的啊?this指针现在指向的应该是CMy4View,怎么其中调用函数可以得到对话框的句柄,能详细点吗?)
      

  6.   

    我的问题解决了
    不过为什么同样的代码
    if(m_map.m_hWnd)
     m_map.SetWindowPos(&wndTopMost,0 ,0,1050,650,SWP_SHOWWINDOW);

    我写在void CMy4View::Onsize函数里影响的是m_map对应的控件大下
    但写在void CMy4View::OnInitialUpdate()函数里影响的却是m_map对应控件所在对话框的大小(费解ing,如能解答,另开帖子给分50)