📄 smain7_2.cpp
字号:
// 主文件smain7_2.cpp
// 包含标准头文件
#include "sstdafx7_2.h"
HWND g_hWnd = NULL; // 用来保存窗口句柄的变量
HINSTANCE g_hInst = NULL; // 用来保存应用程序实例的句柄变量
// 消息处理函数,Windows系统规定每个消息处理函数的定义形式都相同
LRESULT CALLBACK WndProc(
HWND hWnd, // 窗口句柄
UINT nMessage, // 所发出的消息
WPARAM wParam, // 参数1
LPARAM lParam // 参数2
)
{
switch(nMessage)
{
// 响应WM_LBUTTONDOWN消息
case WM_LBUTTONDOWN:
MessageBox(hWnd, "收到WM_LBUTTONDOWN消息!", "通知", MB_OK);
break;
// 响应WM_RBUTTONDOWN消息
case WM_RBUTTONDOWN:
MessageBox(hWnd, "收到WM_RBUTTONDOWN消息!", "通知", MB_OK);
break;
// 响应WM_CREATE消息
case WM_CREATE:
MessageBox(hWnd, "收到WM_CREATE消息!", "通知", MB_OK);
break;
// 响应WM_DESTROY消息
case WM_DESTROY:
MessageBox(hWnd, "收到WM_DESTROY消息!", "通知", MB_OK);
PostQuitMessage(0);
break;
// 必须调用函数DefWindowProc( ),这是Windows系统所规定的
default:
return DefWindowProc(hWnd, nMessage, wParam, lParam);
}
return FALSE;
}
// 应程序入口函数(此程序第一个被执行)
int WINAPI WinMain(
HINSTANCE hInstance, // 程序实例句柄
HINSTANCE hPrevInstance, // 为保持与Win16兼容的句柄
LPSTR lpCmdLIne, // 命令行参数
int nCmdShow // 初始化窗口显示方式
)
{
WNDCLASS oWnd; // 窗口类,可为WNDCLASS
MSG msgTmp; // Windows消息
HWND hWnd; // 窗口句柄
g_hInst = hInstance;
// 定义窗口信息,以便创建窗口
oWnd.style = CS_HREDRAW|CS_VREDRAW; // 窗口类型
oWnd.lpfnWndProc = (WNDPROC)WndProc; // 窗口处理函数为WndProc( )
oWnd.cbClsExtra = NULL; // 窗口类无扩展
oWnd.cbWndExtra = NULL; // 窗口实例无扩展
oWnd.hInstance = hInstance; // 当前实例句柄
oWnd.hIcon = LoadIcon(NULL,IDI_APPLICATION); // 窗口最小化图标为默认图标
oWnd.hCursor = LoadCursor(NULL,IDC_ARROW); // 用箭头作为鼠标图标
oWnd.hbrBackground = (HBRUSH)GetStockObject(4); // 以白色作为窗口颜色
oWnd.lpszMenuName = NULL; // 窗口无菜单
oWnd.lpszClassName = "第一个程序"; // 窗口所属类名
// 注册窗口类
if(!RegisterClass(&oWnd))
{
MessageBeep(0); // 如注册失败则发出警告
return FALSE;
}
// 创建窗口
g_hWnd = CreateWindow(
"第一个Windows程序", // 注册的窗口类名
"第一个Windows程序", // 窗口标题名
WS_OVERLAPPEDWINDOW, // 窗口的风格
CW_USEDEFAULT, // 显示窗口的左上角的X坐标,取默认值
CW_USEDEFAULT, // 显示窗口的左上角的Y坐标,取默认值
CW_USEDEFAULT, // 显示窗口的右下角的X坐标,取默认值
CW_USEDEFAULT, // 显示窗口的右下角的Y坐标,取默认值
NULL, // 此窗口无父窗口
NULL, // 菜单句柄(此处设为没有菜单句柄)
hInstance, // 程序实例句柄
NULL // 指向一个传递给窗口的指针型参数,此处设置为空
);
if (g_hWnd == NULL)
return FALSE; // 创建窗口失败,返回FALSE
ShowWindow(g_hWnd, nCmdShow); // 显示窗口
UpdateWindow(g_hWnd); // 更新窗口
while (GetMessage(&msgTmp, NULL, 0, 0)) // 消息循环
{
TranslateMessage(&msgTmp); // 翻译消息
DispatchMessage(&msgTmp); // 将消息传递给处理函数
}
return msgTmp.wParam; // 返回消息的附加参数
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -