📄 ex_api.cpp
字号:
// ex_API.cpp : Defines the entry point for the application.
#include "stdafx.h"
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口函数说明
int APIENTRY WinMain(HINSTANCE hInstance, //WinMain函数说明
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
char lpszClassName[]="窗口"; //窗口类名
char lpszTitle[]="Windows SDK API编程窗口示例程序"; //窗口标题名
//---------------窗口类定义-------------------------------------
/*在Windows应用程序中,窗口类定义了窗口的形式与功能。窗口类定义通过给窗口类数据结构WNDCLASS赋值完成,该数据结构中包括窗口类的各种属性。*/
WNDCLASS wndclass;
wndclass.style=0; //窗口类型为缺省类型
wndclass.lpfnWndProc=WndProc; //窗口函数为WndProc
wndclass.cbClsExtra=0; //窗口类无扩展
wndclass.cbWndExtra=0; //窗口实例无扩展
wndclass.hInstance=hInstance; //当前实例句柄
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //使用缺省图标
/*
LoadIcon():在应用程序中加载一个窗口图标
LoadIcon()函数原型为:
HICON LoadIcon(
HINSTANCE hInstance,//图标资源所在的模块句柄,NULL则使用系统预定义图标
LPCTSTR lpIconName //图标资源名或系统预定义图标标识名
) */
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH); //窗口背景为白色
wndclass.lpszMenuName=NULL; //窗口中无菜单
wndclass.lpszClassName=lpszClassName; //窗口类名为'窗口实例'
//------------------以下是进行窗口类的注册---------------------------
/*窗口类必须先注册后使用。窗口类的注册由注册函数RegisterClass()实现。
其形式为:
RegisterClass(&wndclass) &wndclass为窗口类结构
RegisterClass函数的返回值为布尔值,注册成功则返回真
*/
if (! RegisterClass(&wndclass)) //注册窗口,若失败,则发出声音
{ MessageBeep(0);
return FALSE;
}
//创建窗口操作
HWND hwnd; //窗口结构
hwnd=CreateWindow(lpszClassName, //创建窗口,窗口类名
lpszTitle, //窗口实例的标题名
WS_OVERLAPPEDWINDOW, //窗口的风格
CW_USEDEFAULT,CW_USEDEFAULT, //窗口左上角坐标为缺省值
CW_USEDEFAULT,CW_USEDEFAULT, //窗口的高度和宽度为缺省值
NULL, //此窗口无父窗口
NULL, //此窗口无主菜单
hInstance, //应用程序当前句柄
NULL); //不使用该值
ShowWindow(hwnd,nCmdShow); //显示窗口
UpdateWindow(hwnd); //绘制用户区
MSG msg; //消息结构
while( GetMessage(&msg,NULL,0,0)) //消息循环
{ TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam; //程序终止时,将信息返回操作系统
}
//-----------------------------窗口函数---------------------------------------
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
char messageleft[]="the left button have been pushed";
//单击鼠标左键,消息框将显示的提示内容
switch(message)//判断消息标识符
{
case WM_LBUTTONDOWN:
{
MessageBox(GetFocus(),messageleft,"hello",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_DESTROY:
PostQuitMessage(0); //调用该函数发出WM_QUIT消息
default: //缺省消息处理函数
return DefWindowProc(hwnd,message,wParam,lParam);
} return (0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -