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 );
}