回复 10楼 时间的熵
谢谢!继续研究一下
#include<windows.h> //Windows编程的头文件 LRESULT CALLBACK WindowProc(HWND hWnd,UINT uMessage,WPARAM wParam,LPARAM lParam){ //Windows中窗口的消息处理函数,LRESULT在winnt.h中定义为long(也就是长整型), //CALLBACK指回调函数。该函数的参数意义如下: //hWnd:窗口的句柄 //uMessage:接收的消息。具体的消息会在下面解释 //wParam和lParam:该消息的具体内容。现在无需理解 switch(uMessage){ case WM_PAINT: //窗口需要重新绘制。 //窗口中的动画都是不断绘制的结果。 HDC hDc; //创建设备环境句柄。 PAINTSTRUCT ps; //创建绘制用的结构。 hDc=BeginPaint(hWnd,&ps);//开始绘制,获取设备环境句柄。 TextOutA(hDc,10,10,"一个窗口",8); //在窗口hWnd的坐标(10,10)处输出文字。第5个参数是文字的长度。 //因为一个汉字占2个字节,所以长度应为8。 EndPaint(hWnd,&ps);//结束窗口hWnd的绘制。 return 0; //结束此消息的处理。 case WM_DESTROY: //窗口正在销毁。 PostQuitMessage(0);//结束消息循环(见下文)。 return 0; //结束此消息的处理。 } return DefWindowProcA(hWnd,uMessage,wParam,lParam); //因为窗口消息很多,所以Windows提供了此函数来默认处理其他的窗口消息。 } int WINAPI WinMain //Windows程序的开始点。再也不需要main()了 (HINSTANCE hInstance, //该程序的实例句柄 HINSTANCE hPrevInstance,//不会用到,也不需解释 LPSTR lpCmdLine, //该程序运行的命令行 int nCmdShow){ //该程序窗口的显示方式 WNDCLASSEXA wndc; //窗口的类,用于描述窗口 wndc.cbSize=sizeof(wndc); //类的大小 wndc.style=CS_HREDRAW|CS_VREDRAW; //只要大小改变就发送WM_PAINT消息,即重新绘制窗口 wndc.lpfnWndProc=WindowProc; //窗口消息处理函数的指针 wndc.cbClsExtra=0; wndc.cbWndExtra=0; //这两行代码指定没有额外需要使用的内存 wndc.hInstance=hInstance; //实例句柄 wndc.hIcon=LoadIcon(NULL,IDI_APPLICATION);//使用默认应用程序图标 wndc.hCursor=LoadCursor(NULL,IDC_ARROW);//使用默认的光标 wndc.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//使用白色背景画刷 wndc.lpszMenuName=NULL; //我们没有菜单,也就没有菜单名 wndc.lpszClassName="windowclass"; //类名,随便取一个就行 wndc.hIconSm=NULL; //不提供类的小图标 RegisterClassExA(&wndc); //注册该窗口类 HWND hWnd=CreateWindowExA( //我们要开始创建窗口了 0, //没有扩展样式 "windowclass", //类名 "window", //窗口标题 WS_OVERLAPPEDWINDOW, //常见的窗口风格 66, //初始X坐标 66, //初始Y坐标 666, //窗口宽度 666, //窗口高度 NULL, //父窗口句柄 NULL, //菜单句柄 hInstance, //又是熟悉的实例句柄 NULL); //用户数据 if(hWnd==NULL) //Oops,创建窗口失败了 return -1; ShowWindow(hWnd,nCmdShow); //按照nCmdShow的方式显示hWnd窗口 UpdateWindow(hWnd); //更新窗口,即重新绘制 MSG msg; //Windows中消息的结构 while( //期待已久的消息循环 GetMessage(&msg,NULL,0,0)){ //直到窗口销毁才推出循环 TranslateMessage(&msg); //为了一些关于键盘的消息,需要转换键盘输入 DispatchMessage(&msg); //将消息发送给WindowProc } return msg.wParam; //返回消息的具体信息 }
[此贴子已经被作者于2021-2-2 20:34编辑过]