📄 csdk编程代码.txt
字号:
#include
#include "resource.h" //这个头文件的作用就是定义控件等ID的数学值,全部是UINT类型的
#include "generic.h" //头文件。内容见最后面
//2个全局变量
HINSTANCE _hInst; //主程序句柄
HWND _hWnd;//主窗口句柄
char _szAppName[] = "Generic"; //程序名
char _szTitle[] = "Generic Sample Application"; //窗口名
//---------------------------------------------------------------------
//---------------------------------------------------------------------
//系统自动为下面前2个变量分配非0值
int CALLBACK WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR lpCmdLine, int nCmdShow)
//第一个是程序当前实例的句柄,第2个是程序前一个实例的句柄
//在32位操作系统中,hPrevInstance的值总为0,因为在32位系统中
//一个程序的不同实例是封装在不同的地址空间(4GB)中的
{
MSG msg;//定义一个消息,MSG是一个windows32位结构体
UNREFERENCED_PARAMETER(lpCmdLine);//避免编译器出错
if (!hPrevInstance)
if (!InitApplication(hInstance))//调用下面函数⑴
return (FALSE);//如果初始化失败,给系统返回一个程序失败:false!
if (!InitInstance(hInstance, nCmdShow))//调用下面函数(2)
return (FALSE);
//程序的主题:得到消息,处理消息,其中如果得到一个消息msg为“EXIT”指令消息的话,循环结束,程序结束
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return (msg.wParam); //事实上这最后一个msg一定是让程序关闭的msg,msg是一个结构,里面的mParam保存退出的信息
//返回给系统
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
BOOL InitApplication(HINSTANCE hInstance)//函数⑴,作用是注册程序主窗口
{
WNDCLASS wc;//wc是一个结构,含有11个参数,是11个,不是10个!
//这下面写了10个,还有一个不知道哪去了,具体请自己去查WIN21APIs,函数名字creatwindow()
wc.style = CS_HREDRAW | CS_VREDRAW;//窗口的样式
wc.lpfnWndProc = (WNDPROC)WndProc; //调用函数(3),定义这个窗口怎么样处理对应的消息
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;//程序进程的句柄
wc.hIcon = LoadIcon(hInstance, "jjhouricon");//图标句柄
wc.hCursor = LoadCursor(NULL, IDC_ARROW);//鼠标外观句柄
wc.hbrBackground = GetStockObject(WHITE_BRUSH); //程序背景颜色刷子
wc.lpszMenuName = "GenericMenu"; //菜单名
wc.lpszClassName = _szAppName;//程序名
return (RegisterClass(&wc));//注册
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)//函数(2)
{
_hInst = hInstance;
//产生窗口,但是不显示出来
_hWnd = CreateWindow(
_szAppName,//程序名
_szTitle,//窗口名
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL
);//这些具体的值的意义可以从WIN32API中获得
//确认
if (!_hWnd)
return (FALSE);
//显示窗口
ShowWindow(_hWnd, nCmdShow);
UpdateWindow(_hWnd);
return (TRUE);
}
//---------------------------------------------------------------------
//---------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam)//函数(3)
{
int wmId, wmEvent;
switch (message)
{
case WM_COMMAND://普通的命令。可以简单理解为鼠标单击菜单所产生的消息
wmId = LOWORD(wParam);//wParam是一个32位的。这里得到32位中的底16为所保存的值----消息的ID
wmEvent = HIWORD(wParam);
switch (wmId) {
case IDM_ABOUT:
DialogBox(_hInst,
"AboutBox",
hWnd,
(DLGPROC)About //调用函数(4)
);//产生关于对话框
break;
case IDM_EXIT:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -