新建win32 application
选择简单的win 32程序。
#include "stdafx.h"
//回调函数,由操作系统调用。 里面的参数是操作系统注入的。 函数名可以任意起
LRESULT CALLBACK Win01Proc(HWND hwnd,UINT uMsg, WPARAM wParam,LPARAM lParam){
HDC hdc;
PAINTSTRUCT ps;
switch (uMsg)
{
case WM_PAINT: //开始绘制
hdc = BeginPaint(hwnd, &ps);
hdc = GetDC(hwnd);
TextOut(hdc, 0, 0, "hello world", strlen("hello world"));
EndPaint(hwnd,&ps);
break;
case WM_CLOSE: //关闭窗口提醒
if(IDYES == MessageBox(hwnd,"退出?","title",MB_YESNO))
DestroyWindow(hwnd);
break;
case WM_DESTROY://退出程序
PostQuitMessage(0);
break;
default:
return DefWindowProc(hwnd,uMsg,wParam,lParam);
}
return 0;
}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
//定义一个窗口类
WNDCLASS mywndclass;
//获得画刷
mywndclass.hbrBackground =(HBRUSH) GetStockObject(DKGRAY_BRUSH);//设置为灰色背景
mywndclass.hCursor = LoadCursor(NULL,IDC_CROSS); //光标类型(十字)
//这不很重要,窗口过程函数!
mywndclass.lpfnWndProc = Win01Proc;
mywndclass.lpszClassName = "win01"; //注册窗口类要用到
mywndclass.hInstance= hInstance; //应用程序的实例号
mywndclass.cbClsExtra = 0;
mywndclass.cbWndExtra = 0;
mywndclass.hIcon = LoadIcon(NULL, IDI_APPLICATION); //程序光标类型
mywndclass.lpszMenuName = NULL;
mywndclass.style = CS_HREDRAW | CS_VREDRAW; //水平重画,垂直重画(类的类型)
HWND hwnd;
//注册窗口类
RegisterClass(&mywndclass);
//生成窗口. 具体参数查看MSDN
hwnd = CreateWindow("win01","我的windows程序",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,NULL);
ShowWindow(hwnd, SW_SHOWDEFAULT);
UpdateWindow(hwnd); //可有可无
MSG msg;
while(GetMessage(&msg, NULL, 0, 0)){ //消息循环
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return 0;
}