windows 编程 第一程序

由于windows编程是基于window操作系统的编程,window内众多函数、方法已经被封装,因此window编程得注意编程的格式

window编程顺序: 1  设计一个窗体

         2  注册这个窗体

           3  创建这个窗体

         4   更新这个窗体的内容

           5  由于windows系统是基于消息响应的,所以程序必须得获取系统消息

         6 获取消息后,然后再响应消息,即处理消息        

#include<windows.h>

LRESULT CALLBACK WndProc( HWND hwnd,UINT message, WPARAM wParam, LPARAM lParam);   // 申明消息处理函数

int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE prehInstance,
LPTSTR lpCmdLine,
int nShow
)
{
// 1. 创建一个窗体类
WNDCLASS ws;

ws.cbClsExtra = 0;
ws.cbWndExtra = 0;
ws.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
ws.hCursor = NULL;
ws.hIcon = NULL;
ws.hInstance = hInstance;
ws.lpfnWndProc = WndProc;
ws.lpszClassName = TEXT("Hello");
ws.lpszMenuName =NULL;
ws.style = CS_VREDRAW | CS_HREDRAW;

// 2. 注册窗体类
if( !RegisterClass(&ws) ) return -1;

// 3.创建窗体
HWND hwnd = CreateWindow( TEXT("Hello"), TEXT("my first window"), WS_VISIBLE|WS_BORDER,10,10,400,300,NULL,NULL,hInstance,NULL);

// 4.更新窗体内容
UpdateWindow(hwnd);
ShowWindow(hwnd,SW_SHOWNORMAL);

// 5.获取系统消息
MSG msg;
while( GetMessage( &msg, NULL, 0, 0 ) )
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
return 1;
}


// 6.消息处理
LRESULT CALLBACK WndProc( HWND hwnd,UINT message, WPARAM wParam, LPARAM lParam)
{
if( message == WM_DESTROY )
{
PostQuitMessage(1);
}
return DefWindowProc( hwnd, message, wParam, lParam );
}

原文地址:https://www.cnblogs.com/ATMvip/p/2946754.html