编写一个Windows窗口应用程序

来源:互联网 发布:淘宝卖家开通直播入口 编辑:程序博客网 时间:2024/04/19 13:54

编写一个Windows窗口应用程序

使用VS2008,64位编译器。

  • 1.打开VS2008,新建一个空项目
  • 打开VS2008,新建一个空项目
  • 2.在项目中添加.cpp文件
  • 这里写图片描述
  • 3.输入代码如下
#include <windows.h>#include <stdio.h>LRESULT CALLBACK WinHuProc(    HWND hwnd,      // handle to window    UINT uMsg,      // message identifier    WPARAM wParam,  // first message parameter    LPARAM lParam   // second message parameter                            );int WINAPI WinMain(    HINSTANCE hInstance,        // handle to current instance    HINSTANCE hPrevInstance,    // handle to previous instance    LPSTR lpCmdLine,            // command line    int nCmdShow                // show state                   ){    //设计一个窗口类    WNDCLASS wndcls;    wndcls.cbClsExtra=0;    wndcls.cbWndExtra=0;    wndcls.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);    wndcls.hCursor=LoadCursor(NULL,IDC_CROSS);    wndcls.hIcon=LoadIcon(NULL,IDI_ERROR);    wndcls.hInstance=hInstance;     //应用程序实例句柄由WinMain函数传进来    wndcls.lpfnWndProc=WinHuProc;    wndcls.lpszClassName="simpleframe";    wndcls.lpszMenuName=NULL;    wndcls.style=CS_HREDRAW | CS_HREDRAW;    RegisterClass(&wndcls);    //创建窗口,定义一个变量用来保存成功创建窗口后返回的句柄    HWND hwnd;    hwnd=CreateWindow("simpleframe","12345",        WS_OVERLAPPEDWINDOW,0,0,600,400,NULL,NULL,hInstance,NULL);    //显示及刷新窗口    ShowWindow(hwnd,SW_SHOWNORMAL);    UpdateWindow(hwnd);    //定义消息结构体,开始消息循环    MSG msg;    while (GetMessage(&msg,NULL,0,0))    {        TranslateMessage(&msg);        DispatchMessage(&msg);    }    return msg.wParam;}    //编写窗口过程函数    LRESULT CALLBACK WinHuProc(        HWND hwnd,      // handle to window        UINT uMsg,      // message identifier        WPARAM wParam,  // first message parameter        LPARAM lParam   // second message parameter        )    {        switch(uMsg)        {        case WM_CHAR:            char szChar [20];            sprintf (szChar,"char code is %d",wParam);            MessageBox(hwnd,szChar,"char",0);            break;        case WM_LBUTTONDOWN:            MessageBox(hwnd,"mouse clicked","message",0);            HDC hdc;            hdc=GetDC(hwnd);        //不能再响应WM_PAINT消息时调用            TextOut (hdc,0,50,"程序员之家",strlen("程序员之家"));            //ReleaseDC (hwnd,hdc);            break;        case WM_PAINT:            HDC hDC;            PAINTSTRUCT ps;            hDC=BeginPaint(hwnd,&ps);       //BeginPaint 只能在响应WM_PAINT消息时调用            TextOut(hdc,0,0,"12345",strlen("12345"));            EndPaint(hwnd,&ps);            break;        case WM_CLOSE:            if (IDYES == MessageBox(hwnd,"是否真的结束?","message",MB_YESNO))            {                DestroyWindow(hwnd);            }            break;        case WM_DESTROY:            PostQuitMessage(0);            break;        default:            return DefWindowProc(hwnd,uMsg,wParam,lParam);        }        return 0;    }
  • 4.选择x64编译器
  • 这里写图片描述
  • 5.编译运行

- 这里写图片描述

代码来源:《VC深入详解》第一章

原创粉丝点击