那直接调CButton::Create就行了,MFC里的类和窗口类不是一码事,别搞混了。如果你一定要用API来建标准BUTTON,在CreateWindow或CreateWindowEx的类名中填"BUTTON"就可以了

解决方案 »

  1.   

    比如我有class CMyButton : public CButton,如果我在CreateWindow中填BUTTON的话,那
    CMyButton的特性如何体现呢
      

  2.   

    窗口子类化
    SubWindowsClass()
      

  3.   

    CreateWindow只能建标准BUTTON
    virtual void PreSubclassWindow( );
    BOOL SubclassWindow( HWND hWnd );
      

  4.   

    你可以用LONG GetWindowLong(
                 HWND hWnd,  // handle to window
                 int nIndex  // offset of value to retrieve
                 );
    其中hWnd指定你刚刚创建的那个窗口句柄,nIndex指定为GWL_WNDPROC它会返回一个函数地址的类型是HRESULT WindowProc(WPARAM wParam,LPARAM lParam);要记住这个地址哟!
    然后用LONG SetWindowLong(
              HWND hWnd,       // handle to window
              int nIndex,      // offset of value to set
              LONG dwNewLong   // new value
              );
    前两个参数同上!第三个是自己的函数地址设进去要强转为LONG型的!一般把自己不处理的消息用上一个你得到的那个函数来处理!最后不要忘了设回来呀
      

  5.   

    CString wndclass = AfxRegisterWndClass(窗口类样式,鼠标指针句柄,背景画刷句柄,图标句柄);CWnd::Create(wndclass, 标题,样式,大小RECT,父窗口类指针,LPARAM);