当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

VC++深入详解:在窗口中显示按钮(2)

    根据运行结果,我们可以看到该按钮显示在工具栏上了,这是因为按钮当前的父窗口是CMainFrame类窗口,即主框架窗口。该窗口中,标题栏和菜单都位于非客户区,而工具栏位于它的客户区(关于窗口的客户区和非客户区的内容将在下一章讲解)。我们程序中的按钮是在主框架窗口的客户区出现的,并且其位置由CRect(0,0,100,100)参数指定,说明其左上角就是其父窗口客户区的(0,0)点,因此,该按钮就在程序的菜单下、工具栏上显示出来了。

    读者可以设想一下,如果我们改在CTestView类中创建这个按钮,会是什么样的结果呢?首先,我们把CMainFrame中创建按钮的代码(即上述例3-25所示代码中第1行和第2行代码)注释起来,然后为CTestView类定义一个CButton类型的成员变量m_btn.但是接下来,我们发现CTestView类中没有OnCreate函数。我们知道,Windows下的程序都是基于消息的,无论MFC程序,还是SDK程序都是这样的。既然窗口在创建时都会产生一个WM_CREATE消息,那么就可以让CTestView响应这个消息,也就是为这个类添加WM_CREATE消息的处理函数。

    在VC++中,为一个类添加某个消息的处理函数的方法是:在ClassView标签页上,在该类名上单击右键,从弹出的快捷菜单上选择「Add Windows Message Handler…」菜单命令,这时将弹出如图3.27所示的添加消息处理函数的窗口。

VC++深入详解:在窗口中显示按钮(2)

    图3.27 添加消息处理函数的窗口

    在该窗口左边的Windows消息列表中找到并选中WM_CREATE消息,然后单击Add Handler按钮,接着再单击Edit Existing按钮,或者在选中需要处理的消息之后,直接单击Add and Edit按钮。这时,就为CTestView类添加了WM_CREATE消息的处理函数OnCreate,并且光标将定位于该函数的定义处。我们就在该函数的尾部添加显示按钮的代码,与CMainFrame中的代码相同,可以直接复制过来,结果如例3-26所示。

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接