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

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

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
例3-26 int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CView::OnCreate(lpCreateStruct) == -1) return -1; // TODO: Add your specialized creation code here m_btn.Create("按钮",WS_CHILD |

  例3-26

  int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
  {
    if (CView::OnCreate(lpCreateStruct) == -1)
      return -1;
 // TODO: Add your specialized creation code here
    m_btn.Create("按钮",WS_CHILD | BS_DEFPUSHBUTTON,CRect(0,0,100,100), this,123);
    m_btn.ShowWindow(SW_SHOWNORMAL);
    return 0;
  }

  编译并运行Test程序,结果如图3.28所示。

图3.28 在视窗口中显示按钮

  我们可以看到按钮显示出来了,但位置发生了变化。因为这时给按钮的Create函数传递的this指针指向的是CTestView类的对象,因此,这时按钮的父窗口就是视类窗口,所以按钮在视窗口的客户区中显示。如果这时仍想让按钮的父窗口为CMainFrame类窗口,即视类窗口的父窗口,可以调用GetParent函数来获得视类的父窗口对象的指针,并将该指针传递给按钮的Create函数。这时的CTestView类OnCreate函数定义代码如例3-27所示。

  例3-27

  int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct)
  {
    if (CView::OnCreate(lpCreateStruct) == -1)
      return -1;
    // TODO: Add your specialized creation code here
    m_btn.Create("按钮",WS_CHILD | BS_DEFPUSHBUTTON, CRect(0,0,100,100), GetParent(), 123);
    m_btn.ShowWindow(SW_SHOWNORMAL);
    return 0;
  }

精彩图集

赞助商链接