【原创】VC在单文档的项目中,各个类之间的引用

1、获得edit控件指针,句柄的方法

2、获得dialog对话框指针,句柄的方法

3、获得view视图指针,句柄的方法

4、获得CMainFrame框架指针,句柄的方法

5、获得CWnd窗口的指针,句柄的方法

解答一

获得edit控件的方法很多,这里我就给你列举几个很常用的,(CEDIT *)GetDlgItem(IDC_EDIT1)->成员函数,或者是你在向导类中添加一个Cedit的成员变量也是可以直接操作edit这个控件的,至于获得句柄你应该这样,CClientDC dc(这里填写窗口的指针)

解答二,获得对话框的指针,如果你的代码在这个对话框中的话,直接用个this就可以,this->成员函数;如果对话框已经打开,你可以这样操作,首先获得这个窗口的句柄用;findwindow这个api函数,获得句柄以后然后再用Cwnd类的成员函数FromHandle获得对话框的指针;或者你直接用cwnd类的静态函数FindWindow就可以直接获得对象的指针(详细用法看我给你的mfc类库详解)

解答三:如果你的代码在view这个类中时直接用this就可以,如果代码在其他的类中时,你应该借助于mfc提供给你的全局函数AfxGetMainWnd()函数获得框架的指针【即(这里是你要得到的框架类的指针,参见解答五)AfxGetMainWnd()】,然后再用这个框架,然后再用这个框架函数GetActiveView()函数获得视图的指针,既然获得指针了, 用FromHandle就可以直接获得句柄

解答四,如果代码是在本框架中,直接用this就可以,如果在其他的类中用全局函数AfxGetMainWnd()就可以得到这个指针,句柄获得用CWND基类的静态函数FromHandle就可以获得,【注:FromHandle这个函数是个静态的函数,至于什么是静态函数你可以看看基本的c++就可以了】

解答五:这里说明一下,Cwnd的是所有窗口的基类,包括按钮控件,编辑框控件,视图类控件,他也是应用程序的容器,或得方法是用全局函数AfxGetMainWnd()函数,这里你的注意,你也许会说这个函数不是获得框架类的指针吗,其实是这样的,它是这样的首先是获得整个容器的指针,然后再用强制类型转换就可以活的子类的指针,因为框架类也是继承于Cwnd这个类,这就是面向对象中的多态和继承的好处,至于句柄直接用FromHandle静态函数,其实你获得这个句柄直接是没有啥用处的,一般都是它的基类用的多,比如说按钮,等等,

备注:转载注明出处:(vc狗编程网 http://yaofande.s36.804.cn

你可能感兴趣的:(VC)