在我的一个MFC AppWizard创建的一个SDI程序中,我想在自己的视图里创建一个按钮,于是在MyAppDoc.h中定义了一个CButton对象MyButton,CMyAppView::
OnDraw()中用pDoc->MyButton.Create()函数,可是总是不能成功。
    请问:
    1.我的程序界面是一个没有标题栏、菜单栏、工具栏的窗口,它是按钮的父窗口,这个窗口的风格,对能否创建成功按钮是否有影响?这个窗口不是一个对话框窗口。
    2.CButton::Creat(LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID)
     这个函数中nID我不知道我不知道怎么设,只好随便设一个整数,编译是可以,但运行总有问题,且按钮总显示不出来。
    恳请指教!

解决方案 »

  1.   

    把CButtons作为View的成员。
    在oninitupdate里create;
    1.我的程序界面是一个没有标题栏、菜单栏、工具栏的窗口,它是按钮的父窗口,这个窗口的风格,对能否创建成功按钮是否有影响?这个窗口不是一个对话框窗口。
    ---------------------没有影响,任何窗口作为其父窗口都行。-------------
        2.CButton::Creat(LPCTSTR lpszCaption, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID)
    ---------------这里ID,可以为一个你的系统里没有的ID就可以了------------------
      

  2.   

    我是新手,毕业设计上交日期在即,请原谅我的问题很菜!   我把自己的按钮做为MyView的成员了,在OnDraw()中仍然创建不了。我不知道
    OnInitUpdate在哪里?另外ID怎么设我也不十分清楚,能不能说详细点。最好
    有个示例。先谢过了!
      

  3.   

    OnDraw()中仍然创建不了
    根本不能在这里创建。因为他会调用N次。找本书,先看看先。
    发到[email protected]
    帮你改好。
      

  4.   

    不是在MyAppDoc中定义,要把CButton MyButton作为View的成员,然后响应TView的OnInitialUpdate消息,在该消息中创建这个对象,如MyButton.Create("Hello",BS_PUSHBUTTON|WS_VISIBLE|WS_CHILD ,CRect(0,0,100,100),this,100);
    这个UINT nID不能和你的程序中已有的ID重复。最后自己编按纽的消息响应函数