LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM);
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
char szclassname[]="Mainclass";
WNDCLASSEX wndclass;
wndclass.cbSize=sizeof(wndclass);
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=MainWndProc;
wndclass.cbWndExtra=NULL;
wndclass.cbClsExtra=NULL;
wndclass.hbrBackground=(HBRUSH)::GetStockObject(WHITE_BRUSH);
wndclass.hCursor=::LoadCursor(NULL,IDC_ARROW);
wndclass.hIcon=::LoadIcon(NULL,IDI_APPLICATION);
wndclass.hInstance=hInstance;
wndclass.lpszMenuName=NULL;
wndclass.lpszClassName=szclassname;
::RegisterClassEx(&wndclass);
HWND hwnd =::CreateWindowEx(0,szclassname,"我的第一个程序",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
if(hwnd==NULL)
{
::MessageBox(NULL,"创建窗口出错","error",MB_OK);
return -1;
}
::ShowWindow(hwnd,nCmdShow);
::UpdateWindow(hwnd);
MSG msg;
while(::GetMessage(&msg,NULL,0,0))
{
::TranslateMessage(&msg);
::DispatchMessage(&msg);
}
return 0;}
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
char szText[]="组简单的程序!";
switch(message)
{
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
hdc=::BeginPaint(hwnd,&ps);
::TextOut(hdc,10,10,szText,strlen(szText));
::EndPaint(hwnd,&ps);
return 0;
}
case WM_DESTROY:
::PostQuitMessage(0);
return 0;
}
return ::DefWindowProc(hwnd,message,wParam ,lParam);
}

解决方案 »

  1.   

    你用啥IDE啊?要宽字符串吧?
      

  2.   

    没错误,可以运行就是,创建窗口时,if(hwnd==NULL)
    {
    ::MessageBox(NULL,"创建窗口出错","error",MB_OK);
    return -1;
    } 直接hwnd =NULL了,不知道为什么返回不了窗口的句柄
      

  3.   

    RegisterClassEx(&wndclass); GetLastError 返回 ERROR_INVALID_PARAMETERWNDCLASSEX::hIconSm 未初始化
    WNDCLASSEX wndclass={0};
      

  4.   

    HWND hwnd =::CreateWindowEx(0,szclassname,TEXT("我的第一个程序"),WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);  应该是这样的
      

  5.   

    你先判断一下RegisterClassEx()是否正确返回。
      

  6.   

    GetLastError()看一下错误返回码是什么,然后根据错误码查一下原因吧
      

  7.   

    建议看看WINDOWS程序设计那本书,对你很有帮助的