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

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

 2008-11-24 19:38:15 来源:WEB开发网   
核心提示: 例3-26int CTestView::OnCreate(LPCREATESTRUCT lpCreateStruct){if (CView::OnCreate(lpCreateStruct) == -1)return -1;// TODO: Add your specialized cre

例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所示。

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

图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;
  }

Tags:VC 深入 详解

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