龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VC开发 >

VC++深入详解:在窗口中显示按钮(2)[组图](3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
运行Test程序,读者会发现按钮的位置与在CMainFrame中创建按钮的位置一样,可见按钮的位置与其父窗口有关,而不是与创建它的代码所在的类有关。 另外,

  运行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中找到需要的函数。

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接