📄 ex2_2.cpp
字号:
//【例2.2】显示一个窗口的Windows应用程序。
#include<windows.h> //包含windows.h头文件
LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM );//窗口函数声明
/*入口函数 WinMain()*/
int APIENTRY 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 = "Ex2_2"; //窗口类名为Ex2_2
//注册窗口类。若失败则返回
if(! RegisterClass(&wndclass)) return FALSE;
//创建窗口
hwnd = CreateWindow("Ex2_2", //窗口类名 Ex2_2
"Ex2_2", //窗口名EX2_2
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)) { //获取消息,遇WM_QUIT退出循环
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, 0, 0,"This is my Windows application.",26); //输出文本,仅显示了26个字母
EndPaint(hwnd,&ps); //结束要重画的窗口
return 0;
case WM_DESTROY: //撤消窗口消息
PostQuitMessage(0); //产生退出程序消息WM_QUIT
return 0;
}
return DefWindowProc(hwnd, message, wParam, lParam); //其它转缺省窗口函数
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -