以下是Win32 Application工程。下边是所有的代码。
目的是为了创建一个窗体,所以用了CWnd,但不知为什么,程序一执行就出错。
问了N多人,但没人知道为什么,谁能把它改好?感激不尽。
要求:Win32 Application工程。目的:创建一个窗体
#include "stdafx.h"
//#include "windows.h"
#include "Afxwin.h"
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
CRect rect(0,0,100,100);
CWnd* pWnd = new CWnd;
/*以下是CreateEx各参数的意义
// pWnd->CreateEx()
//DWORD   扩展样式
//LPCSTR  类名
//LPCSTR  标题名
//DWORD   样式
//RECT    窗口大小
//CWnd*   父窗口句柄
//UINT    自身ID
//lpParam 默认为NULL
*/
pWnd->CreateEx(0,
         AfxRegisterWndClass(0,AfxGetApp()->LoadStandardCursor(IDC_ARROW)),
"标题",WS_POPUP | WS_VISIBLE | WS_VISIBLE,rect,NULL,NULL,NULL );
Sleep(5000);
return 0;
}

解决方案 »

  1.   

    个人觉得,如果是Win32 Application,那就没有使用MFC的必要,如果是MFC应用程序,那就不这样做了,不然干嘛VC开发环境中要把两者进行区别。兄弟是不是有点钻牛角尖了,:):)
      

  2.   

    Win32工程要想支持MFC窗口类,的确是超难谁会没事了研究这个……
      

  3.   

    CWND这些类都是派生自CObject的,其实是C API的C++ 封装,不过由于类与类之间联系太多,要在WIN32里用MFC,不容易但是也不是不可能,不过你既然要用WIN32写程序,为什么又要用MFC呢?如果真是为研究目的,不如自己实现API封装的类,再不就用WTL
      

  4.   

    对SDK不熟,它有没有实例句柄?觉得要么不可能,要么一句话而已。
      

  5.   

    pWnd->CreateEx(/*...*/);
    Sleep(5000);
    return 0;这种做法也有问题,创建完了窗口以后,休眠线程,然后return……
    且不管窗口能不能创建、显示,CreateEx并不是像DoModal那样直到窗口销毁才返回,而是创建之后返回,所以你的窗口只有5秒的生存周期,而且还不会有响应。
      

  6.   

    要用CWnd,最好也要同时用CWinApp。其实楼上各位都说了,何必呢,有点钻牛角尖了。
      

  7.   

    To Featured:
    int APIENTRY WinMain(HINSTANCE hInstance,
                         HINSTANCE hPrevInstance,
                         LPSTR     lpCmdLine,
                         int       nCmdShow)
    第一个参数就是实例句柄
      

  8.   

    好像没必要这样做吧 干脆用MFC算了
      

  9.   

    但用不了MFC啊。因为特殊要求。
    那我想在Win32 Application中想打开一个对话框,并能控制他的显示位置、大小。并能控制它关闭。这有没有实现的方法呢。求救啊。
      

  10.   

    Win32下面就不能用对话框了吗?不知道你怎么学的。DiglogBox现成的函数调用。
      

  11.   

    Programming Windows 楼主找来看看吧
      

  12.   

    用对话框资源,然后
    DialogBox() 或 DialogBoxParam()
      

  13.   

    int APIENTRY WinMain(HINSTANCE hInstance,
     HINSTANCE hPrevInstance,
     LPSTR lpCmdLine,
     int nCmdShow)
    {
    AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0);
    CRect rect(0,0,100,100);
    CWnd* pWnd = new CWnd;
    /*以下是CreateEx各参数的意义
    // pWnd->CreateEx()
    //DWORD 扩展样式
    //LPCSTR 类名
    //LPCSTR 标题名
    //DWORD 样式
    //RECT 窗口大小
    //CWnd* 父窗口句柄
    //UINT 自身ID
    //lpParam 默认为NULL
    */
    pWnd->CreateEx(0,
    AfxRegisterWndClass(0,AfxGetApp()->LoadStandardCursor(IDC_ARROW)),
    "标题",WS_POPUP | WS_VISIBLE | WS_VISIBLE,rect,NULL,NULL,NULL );
    Sleep(5000);
    return 0;
    }
      

  14.   

    哇,厉害哦。。 masterz  不亏为五星级的牛人。加了一句代码就搞定了。 
    pf!
    PF!
    皮肤!
    佩服!