Windows编程模型

来源:互联网 发布:淘宝双十一大红包 编辑:程序博客网 时间:2024/06/05 00:08

今天在网上看到这个图片觉得挺好的,分享下:


再简单的放一个最基本的win32程序吧:

#include <Windows.h>#include <stdio.h>INT g_count = 0;TCHAR szPrintStr[128];LRESULT CALLBACK WndProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam);int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){    static TCHAR szAppName[] = TEXT ("FirstWindow");    HWND         hwnd;    MSG          msg;    WNDCLASSEX   wndclassex = {0};    wndclassex.cbSize        = sizeof(WNDCLASSEX);    wndclassex.style         = CS_HREDRAW | CS_VREDRAW;    wndclassex.lpfnWndProc   = WndProc;    wndclassex.cbClsExtra    = 0;    wndclassex.cbWndExtra    = 0;    wndclassex.hInstance     = hInstance;    wndclassex.hIcon         = LoadIcon (NULL, IDI_APPLICATION);    wndclassex.hCursor       = LoadCursor (NULL, IDC_ARROW);    wndclassex.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);    wndclassex.lpszMenuName  = NULL;    wndclassex.lpszClassName = szAppName;    wndclassex.hIconSm       = wndclassex.hIcon;    if (!RegisterClassEx (&wndclassex))    {        MessageBox (NULL, TEXT ("RegisterClassEx failed!"), szAppName, MB_ICONERROR);        return 0;    }    hwnd = CreateWindowEx (WS_EX_OVERLAPPEDWINDOW,                   szAppName,                   TEXT ("WindowTitle"),                  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;    switch (message)    {    case WM_CREATE:        return (0);    case WM_PAINT:        hdc = BeginPaint (hwnd, &ps);wsprintf(szPrintStr,"the count is %d, the Rect : %d, %d, %d, %d",g_count++,ps.rcPaint.left,ps.rcPaint.right,ps.rcPaint.top,ps.rcPaint.bottom);        TextOut (hdc, 0, 0, szPrintStr, strlen(szPrintStr));        EndPaint (hwnd, &ps);        return (0);    case WM_DESTROY:        PostQuitMessage (0);        return (0);    }    return DefWindowProc (hwnd, message, wParam, lParam);}


原创粉丝点击