15,979
社区成员
发帖
与我相关
我的任务
分享
#include <windows.h>
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);//窗口函数声明
/*入口函数 WinMian*/
int CALLBACK WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR
lpCmdLine,int nCmdShow){
WNDCLASS wndclass;//定义窗口类结构变量
HWND hwnd;//定义窗口句柄
MSG msg;//定义消息结构变量
/*定义窗口类的各属性*/
wndclass.style=CS_HREDRAW|CS_VREDRAW;//改变窗口大小则重画
wndclass.lpfnWndProc=WndProc;//窗口函数为WndProc
wndclass.cbClsExtra=0;//窗口类无扩展
wndclass.cbWndExtra=0;//窗口实例无扩展
wndclass.hInstance=hInstance;//注册窗口类实例句柄
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);//用箭头光标
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);//背景为白色
wndclass.lpszMenuName=NULL;//窗口默认无菜单
wndclass.lpszClassName="window窗口创建";//窗口类名为window窗口创建
/*注册窗口类*/
if(! RegisterClass(&wndclass)) return FALSE;
/*创建窗口*/
hwnd=CreateWindow("window窗口创建",//窗口类名为window窗口创建
"windows窗口创建",//窗口名为window窗口创建
WS_OVERLAPPEDWINDOW,//重叠式窗口
CW_USEDEFAULT,CW_USEDEFAULT,//左上角屏幕坐标默认值
CW_USEDEFAULT,CW_USEDEFAULT,//窗口宽度和高度默认值
NULL,//此窗口无父窗口
NULL,//此窗口无主菜单
hInstance,//创建此窗口的实例句柄
NULL);//此窗口无创建参数
/*显示并更新窗口*/
ShowWindow(hwnd,nCmdShow);//显示窗口
UpdateWindow(hwnd);//更新窗口的客户区
/*消息循环*/
while(GetMessage(&msg,NULL,0,0)){
TranslateMessage(&msg);//键盘消息转换
DispatchMessage(&msg);//派送消息给窗口函数
}
return msg.wParam;//返回推出值
}
/*窗口函数*/
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
//根据消息值转相应的消息处理
switch(message){
case WM_PAINT://重画窗口客户区消息处理
HDC hdc;//定义设备描述表句柄
PAINTSTRUCT ps;//定义绘图信息结构变量
hdc=BeginPaint(hwnd,&ps);//获取要重的窗口的设备描述表句柄
TextOut(hdc,10,20,"哈哈,Windows编程创建的窗口!",28); //输出文本
EndPaint(hwnd,&ps);//结束要重的窗口
return 0;
case WM_DESTROY://撤销窗口消息处理
PostQuitMessage(0);//产生对出程序消息WM_QUIT
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
//其他转默认窗口函数
}