1.如何是EDIT控件响应鼠标双击消息?
2.自定义一个类A,有函数Draw(),想在Draw()中,实现绘图功能,如何得到一个设备场镜?不能使用传入的CDC *pDC!!!!!!!!!!!!!!

解决方案 »

  1.   

    1 EDIT属性选中notify。
      然后选择响应鼠标双击事件。写响应函数代码。2 可以
      

  2.   

    我的EDIT的属性中没有notify,STATIC控件有,不解,我设置错了???
      

  3.   

    2.要实现绘图就要取得设备环境。
    不传入那就直接获得,如获得一个控件的dc可以用CWnd::GetDC
    有一点需要声明的是,不在视图中的OnDraw、OnPaint、OnEarseBkGround等函数中画的东东,当视图重画时就还原了。
      

  4.   

    kongyunzhongque(云雀):
    使用CDC *pDC=GetDC();编译说GetDC()的参数不对,应如何设置?
      

  5.   

    你的类如果不是窗口的,当然不能这么用,相当于::GetDC()了。
    其实完全可以,比如你的类中的函数:
    CMyClass::Draw(CDC *pDC)
    {
    }
    在需要绘图的地方这么调用(比如在CMyView::OnPaint()里):
    CPaintDC dc(this);
    CMyClass myClass;
    myClass.Draw(&dc);
      

  6.   

    Mackz(在相互) :不能使用传入的CDC *pDC!!!!!!!!!!!!!!
      

  7.   

    控件指针还没有取出来,怎么调用GetDC,除非你自定义的类是从CWnd继承下来的。
    看看MSDN吧!
    要取得当前视图的指针,可以用
    CView * pView =AfxGetMainWnd()->GetActiveView();
    CDC *pDC =pView->GetDC();
      

  8.   

    .如何使EDIT控件响应鼠标双击消息?!!!!!!!!!!!!!!
      

  9.   

    1.用截获鼠标消息的方法吧~~!!1
    重载PreTranslateMessage函数
    再在里面判断
    BOOL CTestView::PreTranslateMessage(MSG* pMsg) 
    {
    // TODO: Add your specialized code here and/or call the base class
    if(pMsg->hwnd==::GetDlgItem(m_hWnd,IDC_EDIT))
    if(pMsg->message==WM_LBUTTONDBLCLK)
    OnModify();//双击事件时实现功能的函数
    return CFormView::PreTranslateMessage(pMsg);
    }
    2.如何得到一个设备场镜?
    Draw()
    {
    CDC* pDC=GetDlgItem(IDC_要画图的控件)->GetDC();
    ........画图......
    ReleaseDC(pDC);
    }
      

  10.   

    countryboy(阿泰)你第一个问题给的方法,在客户区任意处双击鼠表都能执行OnModify(),我要的是只能在EDIT控件上好使,别处无效的效果!!!!!!!!!!!!!!!!!!