Windows API实现最最简单的窗口程序



  弹出消息框:

#include 
int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
{
MessageBox (NULL, TEXT ("Hell World"), TEXT ("HelloMsg"), 0) ;
return 0 ;
}



简单的window 窗口 :

#include 
#include 
//自定义消息循环相应函数
LRESULT CALLBACK myWndProc(HWND hWnd,
                                  UINT Msg,
                                  WPARAM wParam,
                                  LPARAM lParam)
{
        switch (Msg)
        {
        case WM_CLOSE:
                if(MessageBox(hWnd,"你要关闭窗口吗?","提示!",MB_OKCANCEL) == IDOK)
                        DestroyWindow(hWnd);
                break;
        case WM_DESTROY:
                PostQuitMessage(0);
                break;
        default:
                return DefWindowProc(hWnd,Msg,wParam,lParam);
        }
        return 0;
}

//主函数
int WINAPI WinMain(
                                   HINSTANCE hInstance,
                                   HINSTANCE hPrevInstance,
                                   LPSTR lpCmdLine,
                                   int nShowCmd)
{
        WNDCLASS wndcls;
        wndcls.cbClsExtra = 0;
        wndcls.cbWndExtra = 0;
        wndcls.hbrBackground = (HBRUSH)GetStockObject(WHITE_PEN);
        wndcls.hCursor = LoadCursor(NULL,IDC_ARROW);
        wndcls.hIcon = LoadIcon(NULL,IDI_APPLICATION);
        wndcls.hInstance = hInstance;
        wndcls.lpfnWndProc = myWndProc;
        wndcls.lpszClassName = "haoge";
        wndcls.lpszMenuName = NULL;
        wndcls.style = CS_HREDRAW | CS_VREDRAW;

    /*  WNDCLASS结构体也可以用{}的形式初始化

	WNDCLASSEX wc = { sizeof(WNDCLASSEX), CS_CLASSDC, MsgProc, 0L, 0L,
		hInst, NULL, NULL, NULL, NULL,
		"AppClass", NULL };*/
        
        RegisterClass(&wndcls);
        
        HWND hWnd = CreateWindow("haoge","豪哥",WS_OVERLAPPEDWINDOW
                | WS_VISIBLE,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
                CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
        //消息循环
        MSG Msg;
        while(GetMessage(&Msg,hWnd,NULL,NULL))
        {
                TranslateMessage(&Msg);
                DispatchMessage(&Msg);
        }

        return 0;
}



#include 

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

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
        PSTR szCmdLine, int iCmdShow)
{
        static TCHAR szAppName[] = TEXT("Hello, TopSage.com");
        HWND         hwnd;
        MSG          msg;
        WNDCLASS     wndclass;

        wndclass.style         = CS_HREDRAW | CS_VREDRAW;
        wndclass.lpfnWndProc   = WndProc;
        wndclass.cbClsExtra    = 0;
        wndclass.cbWndExtra    = 0;
        wndclass.hInstance     = hInstance;
        wndclass.hIcon         = LoadIcon (NULL, IDI_APPLICATION);
        wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW);
        wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);
        wndclass.lpszMenuName  = NULL;
        wndclass.lpszClassName = szAppName;

        if (!RegisterClass(&wndclass))
        {
                MessageBox (NULL, TEXT("Windows NT以上Windows版本运行"), 
                        szAppName, MB_ICONERROR);
                return 0;
        }
        hwnd = CreateWindow(szAppName,
                TEXT("TopSage.com"),
                WS_OVERLAPPEDWINDOW,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                CW_USEDEFAULT,
                NULL,
                NULL,
                hInstance,
                NULL);

        ShowWindow(hwnd, iCmdShow);
        UpdateWindow(hwnd);

        while (GetMessage(&msg, NULL, 0, 0))
        {
                TranslateMessage(&msg);
                DispatchMessage(&msg);
        }
        return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT message,
        WPARAM wParam, LPARAM lParam)
{
        HDC         hdc;
        PAINTSTRUCT ps;
        RECT        rect;

        switch (message)
        {
        case WM_PAINT:
                hdc = BeginPaint(hwnd, &ps);

                GetClientRect(hwnd, &rect);

                DrawText(hdc, TEXT ("大家网,大家的网上学习家园!"), -1, &rect,
                        DT_SINGLELINE | DT_CENTER | DT_VCENTER);
                EndPaint(hwnd, &ps);
                return 0;

        case WM_DESTROY:
                PostQuitMessage(0);
                return 0;
        }
        return DefWindowProc(hwnd, message, wParam, lParam);
}




你可能感兴趣的:(Windows API实现最最简单的窗口程序)