C语言写鼠标左键检测器

鼠标左键检测器   通过单击鼠标左键来检测你的鼠标左键是否可以使用

环境介绍:

使用系统:win11 64 位操作系统

IDE工具:VS2022 (64 位) 

1.创建一个新的项目  

2.使用Windows桌面向导创建项目

3.选择到控制台应用程序(.exe)

    选择空项目 

 

4.配置项目属性,进入属性里找到链接器,将子系统又控制台改为窗口

 接下来创建头文件,随后输入以下代码就可以出现程序了

#define _CRT_SECURE_NO_WARNINGS
#include <Windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); //处理消息体

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	static TCHAR szAppName[] = TEXT("MyWindow");
	HWND hwnd;  //
	MSG msg;
	WNDCLASS wc;//窗口类

	//窗口熟悉
	wc.style = CS_HREDRAW | CS_VREDRAW;  //样式
	wc.lpszClassName = szAppName;        //类名
	wc.lpszMenuName = NULL;              //菜单
	wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH); //背景色
	wc.lpfnWndProc = WndProc;                              //处理函数,上面定义
	wc.cbWndExtra = 0;
	wc.cbClsExtra = 0;
	wc.hInstance = hInstance;                              //实例
	wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);            //图标
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);              //鼠标

	if (!RegisterClass(&wc)) {
		MessageBox(NULL, TEXT("窗口注册失败"), TEXT("错误"), MB_OK | MB_ICONERROR);
		return 0;
	}
	//创建窗口
	hwnd = CreateWindow(
		szAppName,            //类名
		TEXT("first windows"), // 标题
		WS_OVERLAPPEDWINDOW,   //风格
		CW_USEDEFAULT,         // 显示位置 x
		CW_USEDEFAULT,         // 显示位置 y
		CW_USEDEFAULT,         // 宽度 
		CW_USEDEFAULT,         // 高度
		NULL,                  //父窗口
		NULL,                  //父窗口
		hInstance,             //句柄
		NULL
	);

	ShowWindow(hwnd, iCmdShow);// 显示窗口
	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)
{
	HDC hdc; //设备环境句柄
	PAINTSTRUCT ps;//绘制矩形
	RECT rect; //矩形结构
	switch (message)
	{
	case WM_CREATE: //窗口创建完成发来消息
		MessageBox(hwnd, TEXT("程序加载中请稍等!"), TEXT("鼠标左键检测器"), MB_OK | MB_ICONINFORMATION);
		return 0;
	case WM_PAINT: //处理窗口区域无效时发来的消息
	{
		hdc = BeginPaint(hwnd, &ps);
		GetClientRect(hwnd, &rect);
		DrawText(hdc, TEXT("鼠标左键检测器!请单击鼠标左键"), -1, &rect, DT_SINGLELINE | DT_CENTER | DT_CENTER);
		
		EndPaint(hwnd, &ps);
		return 0;
	}
	case  WM_LBUTTONDOWN:
		MessageBox(hwnd, TEXT("你的鼠标左键没有问题"), TEXT("检测结果"), MB_OK | MB_ICONINFORMATION);
		return 0;
	case WM_DESTROY: //处理窗口关闭的时候发出的消息
	{
		MessageBox(hwnd, TEXT("真的吗?"), TEXT("真的要关闭吗"), MB_OK | MB_ICONINFORMATION);
		PostQuitMessage(0);
		return 0;
	}
	}
	return DefWindowProc(hwnd, message, wparam, lParam);
}

出现问题解决

错误提示: 无法解析的外部符号 _main,函数 "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ) 中引用了该符号

如何解决?

把项目属性->链接器->系统->子系统 由其他改成窗口

  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值