• 读书札记:VC++学习之Windows程序运行原理


    #include<windows.h>

    #include<stdio.h>

     

    LRESULT CALLBACK WinSunProc(

      HWND hwnd,

      UINT uMsg,

      WPARAM wParam,

      LPARAM lParam

    );

     

    int WINAPI WinMain(

                                   HINSTANCE hInstance,

                                   HINSTANCE hPrevInstance,

                                   LPSTR lpCmdLine,

                                   int nCmdshow

    )

    {

           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;

           wndcls.lpfnWndProc=WinSunProc;

           wndcls.lpszClassName="Gem";

           wndcls.lpszMenuName=NULL;

           wndcls.style=CS_HREDRAW | CS_VREDRAW;

     

           RegisterClass(&wndcls);

     

           HWND hwnd;

           hwnd=CreateWindow("Gem","欢迎你来我的Blog http://hexxun.com/ctfysj",

                                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 0;

    }

     

    LRESULT CALLBACK WinSunProc(

      HWND hwnd,

      UINT uMsg,

      WPARAM wParam,

      LPARAM lParam

    )

    {

           switch(uMsg)

           {

           case WM_CHAR:

                  char szChar[20];

                  sprintf(szChar,"char is %d",wParam);

                  MessageBox(hwnd,szChar,"jinm",0);

                  break;

           case WM_LBUTTONDOWN:

                  MessageBox(hwnd,"mouse clicked","jinm",0);

                  HDC hdc;

                  hdc=GetDC(hwnd);

                  TextOut(hdc,0,50,"兰兰",strlen("兰兰"));

                  ReleaseDC(hwnd,hdc);

                  break;

           case WM_PAINT:

                  HDC hDC;

                  PAINTSTRUCT ps;

                  hDC=BeginPaint(hwnd,&ps);

                  TextOut(hDC,0,0,"I LOVE YOU!",strlen("I LOVE YOU!"));

            EndPaint(hwnd,&ps);

            break;

           case WM_CLOSE:

            if(IDYES==MessageBox(hwnd,"是否真的退出?","jinm",MB_YESNO))

                  {

                         DestroyWindow(hwnd);

                  }

                  break;

           case WM_DESTROY:

                  {

                         PostQuitMessage(0);

                  }

               break;

           default:

                  return DefWindowProc(hwnd,uMsg,wParam,lParam);

           }

           return 0;

    }

     

    Microsoft Visual C++ 6.0    工程简介:

    查看更多精彩图片

    atl COM APPWIZARD 创建ATL应用模块工程
    cluster resource type wizard
    创建Cluster Resource(用于WINDOWS NT)
    custom appwizard
    创建自己的应用程序向导
    database project
    创建数据库应用程序
    devstudio add-in wizard
    创建ActiveX组件或者VBScript
    isapi extension wizard
    基于internet server程序
    makefile
    创建独立于VC++开发环境的应用程序
    mfc activex controlwizard
    创建ActiveX Control应用程序
    mfc appwizard[dll] MFC
    动态链接库
    mfc appwizard[exe]
    一般的MFC的应用程序
    utility project
    创建简单使用的应用程序
    win32 aplication
    其他WIN32WINDOWS应用程序
    win32 console application WIN32
    的控制台应用程序
    win32 dynamic-link library WIN32
    的动态链接库
    win32 static library WIN32
    的静态链接库

  • 相关阅读:
    数据结构上机思考
    hdu1005,循环节
    网络赛总结
    icpc沈阳网络赛。cake cake!
    树的基础代码
    网络赛第一场
    欧拉函数
    欧拉函数
    多校第十场
    (环上)最大子段和
  • 原文地址:https://www.cnblogs.com/Gemgin/p/3136462.html
Copyright © 2020-2023  润新知