回复 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编辑过]