c++ mfc和win32项目

  win32项目是一个底层的窗口的实现过程,它采用的库仅仅是windows.h,我们通过winain作为函数的入口,然后经过窗口类的内容的填写,窗口的注册,创建,显示刷新,到最后的消息循环,这是一个win32项目的基本流程.

#include     
  
LRESULT CALLBACK myWndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam);   
     
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)      
{      
  const static TCHAR appName[] = TEXT("Hello world");      
  WNDCLASSEX myWin;      
  myWin.cbSize = sizeof(myWin);      
  myWin.style = CS_HREDRAW | CS_VREDRAW;      
  myWin.lpfnWndProc = myWndProc;      
  myWin.cbClsExtra = 0;      
  myWin.cbWndExtra = 0;      
  myWin.hInstance = hInstance;      
  myWin.hIcon = 0;      
  myWin.hIconSm  = 0;      
  myWin.hCursor = 0;      
  myWin.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);      
  myWin.lpszMenuName = 0;      
  myWin.lpszClassName = appName;      
  //Register      
  if (!RegisterClassEx(&myWin)) return 0;      
  const HWND hWindow = CreateWindow(      
    appName,      
    appName,      
    WS_OVERLAPPEDWINDOW,      
    CW_USEDEFAULT,      
    CW_USEDEFAULT,      
    CW_USEDEFAULT,      
    CW_USEDEFAULT,      
    0,      
    0,      
    hInstance,      
    0);      
  ShowWindow(hWindow,iCmdShow);      
  UpdateWindow(hWindow);      
  {      
    MSG msg;      
    while(GetMessage(&msg,0,0,0))      
    {      
      TranslateMessage(&msg);      
      DispatchMessage(&msg);      
    }      
    return (int)msg.wParam;      
  }      
}      
     
LRESULT CALLBACK myWndProc(HWND hWindow, UINT msg, WPARAM wParam, LPARAM lParam)      
{      
  if (msg==WM_PAINT)      
  {      
    PAINTSTRUCT ps;      
    const HDC hDC = BeginPaint(hWindow,&ps);      
    RECT rect;      
    GetClientRect(hWindow,&rect);      
    DrawText(hDC,TEXT("HELLO WORLD"),-1,&rect, DT_SINGLELINE | DT_CENTER | DT_VCENTER);      
    EndPaint(hWindow,&ps);      
    return 0;      
  }      
  else if (msg==WM_DESTROY)      
  {      
    PostQuitMessage(0);      
    return 0;      
  }      
  return DefWindowProc(hWindow,msg,wParam,lParam);      
}

   MFC项目是利用mfc(微软的基础类库)来编写windows应用程序,相比上面用windows的API编写,MFC编写起来更加的便利其具体的实现过程的原理和之前都差不多.我们可以在vs上通过向导来生成MFC工程,一般情况下我们都新建立基于对话框的应用程序,我们可以在Solution Explorer视图中看到,此工程的文件要比单文档应用程序少的多,在Class View中主要有三个类:CAboutDlg、CAdditionApp和CAdditionDlg。CAboutDlg是应用程序的“关于”对话框类,CAdditionApp是由CWinApp派生的类,CAdditionDlg是主对话框类,主对话框也就是此应用程序运行后显示的主要界面。

原文地址:https://www.cnblogs.com/yskn/p/9677516.html