注册 登录
编程论坛 C++教室

窗口注册失败。。//捂脸//捂脸。。今天突然莫名的想温故一下,然而怎么都注册不起来

powers0010 发布于 2017-06-10 15:35, 2063 次点击
#include <Windows.h>

#define MAXI 1000;

LRESULT CALLBACK WndProc (HWND,UINT,WPARAM,LPARAM);

int WINAPI WinMain( __in HINSTANCE hInstance, __in_opt HINSTANCE hPrevInstance, __in LPSTR lpCmdLine, __in int nShowCmd )
{
    HWND hWnd;
    MSG msg={0};
    static  wchar_t str[]=TEXT("HelloWin") ;
    //设计窗口类
    WNDCLASSEX wndclass;
    wndclass.cbSize=sizeof(WNDCLASSEX);
    wndclass.style = CS_HREDRAW|CS_VREDRAW;
    wndclass.lpfnWndProc=WndProc;
    wndclass.cbClsExtra=0;
    wndclass.cbWndExtra=0;
    wndclass.hInstance=hInstance;
    wndclass.hIcon=NULL;
    wndclass.hCursor=LoadCursor(NULL, IDC_ARROW);
    wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
    wndclass.lpszMenuName=NULL;
    wndclass.lpszClassName=str;

    //注册窗口类
    if(!RegisterClassEx(&wndclass))
     {
         MessageBox(NULL,L"窗口注册失败",L"消息窗口",MB_ICONERROR);
        return -1;
     }

    //创建窗口

    hWnd=CreateWindow(L"Cursor",L"Cursor",WS_OVERLAPPEDWINDOW,200,100,1000,800,NULL,NULL,hInstance,NULL);

    //显示
    ShowWindow(hWnd,nShowCmd);
    UpdateWindow(hWnd);

    while (msg.message!=WM_QUIT)
    {
        if (PeekMessage(&msg,hWnd,0,0,PM_NOREMOVE))
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    //    else

    }
    return 0;
}

LRESULT CALLBACK WndProc (HWND hWnd ,UINT message,WPARAM wParam,LPARAM lParam)
{
    return 0;
}
3 回复
#2
yangfrancis2017-06-11 19:23
windows.h全小写
#3
rjsp2017-06-12 08:45
注册前少了 wndclass.hIconSm = NULL;

其它的错误
CreateWindow(L"Cursor",L"Cursor", 应该是 hWnd=CreateWindow(L"HelloWin",L"Cursor", 吧
而那个消息循环我不知道你是从哪儿抄来的
#4
powers00102017-06-12 11:10
回复 3楼 rjsp
消息循环有问题么?只是在常用循环前面加了个WM_QUIT啊
1