第三章 3-1 windows主函数以及窗口处理过程函数

来源:互联网 发布:试卷出题软件 编辑:程序博客网 时间:2024/06/08 00:02

主要分成六大步骤进行构造函数

int WINAPI WinMain(HINSTANCE hInstance,                   HINSTANCE hPrevInstance,                   LPSTR lpszCmdLine,                   int nCmdShow){    HWND hwnd;//窗口句柄    MSG msg;//消息    WNDCLASS wc;//窗口类    //1.设计一个窗口类    wc.lpfnWndProc = (WNDPROC)WndProc;//基于窗口类的所以窗口过程    wc.cbClsExtra = 0;//??    wc.cbWndExtra = 0;//??    wc.hInstance = hInstance;    wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);    wc.hCursor = LoadCursor(NULL,IDC_ARROW);    wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);    wc.lpszMenuName = NULL;    wc.lpszClassName = TEXT("MyWndClass");    //2.注册窗口类    RegisterClass(&wc);    //3.创建窗口    hwnd = CreateWindow(        TEXT("MyWndClass"),        TEXT("Hello SDK Application"),        WS_OVERLAPPEDWINDOW,        CW_USEDEFAULT,        CW_USEDEFAULT,        CW_USEDEFAULT,        CW_USEDEFAULT,        NULL,//父窗口句柄        NULL,//窗口菜单句柄        hInstance,        NULL);    //4.显示和更新窗口    ShowWindow(hwnd,nCmdShow);    UpdateWindow(hwnd);    //5.消息循环    while(GetMessage(&msg,NULL,0,0)){        TranslateMessage(&msg);        DispatchMessage(&msg);//转发到窗口过程    }    return msg.wParam;}

窗口处理过程函数

LRESULT CALLBACK WndProc(HWND hwnd,                         UINT message,                         WPARAM wParam,                         LPARAM lParam){    PAINTSTRUCT ps;//绘图结构    HDC hdc;//DC句柄    RECT rect;    //对各种消息进行处理    switch(message)    {    case WM_SIZE:        //重画 Paint        return 0;    case WM_LBUTTONDOWN://鼠标左键点击函数的消息        return 0;    case WM_PAINT: //绘制消息        hdc = BeginPaint(hwnd,&ps);        EndPaint(hwnd,&ps);        return 0;    case WM_DESTROY://销毁窗口消息(关闭)        PostQuitMessage(0);        return 0;    }    return DefWindowProc(hwnd,message,wParam,lParam);}
0 0
原创粉丝点击