WEB开发网
开发学院软件开发VC VC++深入详解:在窗口中显示按钮(2) 阅读

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

 2008-11-24 19:38:15 来源:WEB开发网   
核心提示: 运行Test程序,读者会发现按钮的位置与在CMainFrame中创建按钮的位置一样,VC++深入详解:在窗口中显示按钮(2)(3),可见按钮的位置与其父窗口有关,而不是与创建它的代码所在的类有关,如果不知道某个函数的名称,可以凭感觉利用单词的组合来拼写,另外,如果想在创建按钮之后立即显示

运行Test程序,读者会发现按钮的位置与在CMainFrame中创建按钮的位置一样,可见按钮的位置与其父窗口有关,而不是与创建它的代码所在的类有关。

另外,如果想在创建按钮之后立即显示,可以将其窗口风格指定为WS_VISIBLE,这时,就不需要再调用ShowWindow函数了。即此时按钮的创建和显示只需要下面这一条代码即可:

m_btn.Create("按钮",WS_CHILD | WS_VISIBLE | BS_DEFPUSHBUTTON, CRect(0,0, 100,100), GetParent(),123);  

小技巧:Windows中很多函数名都是一些有意义的单词的组合,并且每个单词的首字母大写。例如,如果想要得到某个类的父窗口,我们可以猜想这个函数名应该是Get再加上ParentWindow这样的。打开MSDN的索引标签页,键入GetParentWindow,发现没有这个函数,但有一个GetParent函数。打开这个函数,发现就是我们所要的函数。在编程时,通过这种方法,可以快速找到所需要的函数。

本例中,我们选择的是BS_DEFPUSHBUTTON按钮风格类型,读者可以试着使用其他类型的风格,例如BS_AUTORADIOBUTTON、BS_CHECKBOX等,看看结果如何。

通过这个CButton对象的创建,希望读者能更好地理解C++窗口类对象和窗口之间的关系。当我们将按钮窗口销毁,它所对应的m_btn这个C++对象并没有销毁,因为它是CTestView类的一个成员变量,它的生命周期与CTestView对象是一致的。只要CTestView对象没有销毁,该按钮对象就一直存在,在程序中仍可以访问这个对象。

另外,我们发现在调用CButton的ShowWindow函数时,也没有传递一个窗口句柄,因为CButton类是CWnd类的子类,因此,它已有一个用于保存窗口句柄的成员变量m_hwnd。这样,CButton的成员函数可以直接使用这个变量,并不需要再传递窗口句柄了。

另一点需要注意的是,按钮的父窗口不同,其显示位置也会有所差异。

最后,我们在写程序时,如果不知道某个函数的名称,可以凭感觉利用单词的组合来拼写,通过这种方法一般都能在MSDN中找到需要的函数。

上一页  1 2 3 

Tags:VC 深入 详解

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接