建立的vc工程包括x.cpp  x.rc.  ChildView.cpp  MainFrm.cpp  StdAfx.cpp 及其相关的头文件;问题是,我想在客户区里加一个按钮,及其响应的响应函数;1、在MainFrm.cpp  里面添加代码,可以显示按钮,但是不响应函数;2、在x.pp 或者ChildView.cpp 里面添加代码,不显示按钮
请问这个问题怎么解决啊。。在线等高手。。

解决方案 »

  1.   

    添加按钮:CButton m_button.Create (_T ("Sample text"), WS_CHILD | WS_VISIBLE |  BS_PUSHBUTTON, CRect (100,100,120,120), this, 222);按钮消息映射:    ON_BN_CLICKED (222, OnPushButton)
      

  2.   

    添加按钮:CButton m_button.Create (_T ("Sample text"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect (100,100,120,120), this, 222);
    ===================
    你上面的写法能过编译吗?定义和Create写在一起?
    先给视图类加一个CButton的成员变量m_button;
    然后在视图类的WM_CREATE消息处理函数中创建就行了:
    int CMy4444View::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    if (CView::OnCreate(lpCreateStruct) == -1)
    return -1;
    m_button.Create (_T ("Sample text"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect (100,100,120,120), this, 222);
    // TODO:  在此添加您专用的创建代码
    return 0;
    }
    另外,CRect (100,100,120,120),这个矩形也太小了,上面的字符根本就显示不出来。改大点吧。
      

  3.   

    红猪大哥,我按您说的重新建立工程添加代码,可以正常编译执行,但是我还有几个疑问:1、您说的在WM_CREATE消息中添加代码,我的工程里面在试图类中根本不存在OnCreate()函数啊。。只有一个PreCreateWindow(),但是在它里面添加按钮,对话框里不显示按钮;
    我是在OnDraw()里面添加的;2、关于MFC中各个文件之间的关系,经常让我头疼能不能介绍相关的文章或者书籍给我读一下啊?谢谢了!
      

  4.   

    在视图类的OnInitUpdate()函数中加试试
      

  5.   

    1、您说的在WM_CREATE消息中添加代码,我的工程里面在试图类中根本不存在OnCreate()函数啊。。只有一个PreCreateWindow(),但是在它里面添加按钮,对话框里不显示按钮;
    我是在OnDraw()里面添加的
    =====================
    OnCreate是WM_CREATE消息的处理函数,默认情况下没有加这个函数,你在消息映射中添加WM_CREATE消息的处理函数,它就出来了。关于MFC中各个文件之间的关系,经常让我头疼能不能介绍相关的文章或者书籍给我读一下啊?
    ========================
    这些文件的关系一般入门MFC书中都有介绍吧。其实也简单,以单文档为例:有一个CMainFrame这个对应着主框架类,也就是视图类的父窗口,对应文件应该是MainFrm.cpp和MainFrm.h,一般有CXXXApp类,是应用程序类,对应文件名和你的工程名应该相同。另外一个视图类和一个文档类都是很明显的。
      

  6.   

    =====================
    OnCreate是WM_CREATE消息的处理函数,默认情况下没有加这个函数,你在消息映射中添加WM_CREATE消息的处理函数,它就出来了。
    呵呵我那个问题真的低级问题。。多谢了啊。。
      

  7.   

    =====================
    在视图类的OnInitUpdate()函数中加试试
    =====================正解啊!多谢啦!