调用windowsAPI 写一个初始界面有左键点击事件

简介: 调用windowsAPI 写一个初始界面有左键点击事件

首先创建一个win32项目中的空项目






#include <windows.h>
//窗口过程函数
LRESULT CALLBACK DealMessage(HWND hWnd,  //窗口句柄,消息所属的窗口
    UINT uMsg,    //消息标志
    WPARAM wParam,  //附加信息
    LPARAM lParam 
)
{
  switch(uMsg)
  {
  case WM_LBUTTONDOWN:  //鼠标左键按下
  MessageBox(hWnd,TEXT("ABC"), TEXT("鼠标左键按下"),MB_OK);
  break;
  case WM_PAINT:
  {
  PAINTSTRUCT ps;    //绘图结构体
  HDC dc = BeginPaint(hWnd,&ps);  //开始
  char * p = "aaaaaaaa";
  TextOut(dc,30,30,p,strlen(p));
  EndPaint(hWnd,&ps);    //结束
  break;  
  }
  case WM_DESTROY:
  PostQuitMessage(2);  //WM_QUIT 给主函数 return msg.wParam
  break;
  default:
  return DefWindowProc(hWnd,uMsg,wParam,lParam);
  }
  return 0;
}
//WINAPI:修饰函数,规定函数参数入栈从右往左,函数调用完毕,自动清理堆栈
//CALLBACK
//搜索winmain
int WINAPI WinMain(  HINSTANCE hInstance,   //应用程序实例
  HINSTANCE hPrevInstance,    //上一个应用程序实例
  LPWSTR lpCmdLine,   //long painter string 放的是char*
  int nShowCmd        //窗口显示的样式,最大化,最小化
  )
{
  /*
  1.定义入口函数WinMain()
  2.创建一个窗口
  a)设计窗口类WNDCLASS(给成员变量赋值)
  b)注册窗口类
  c)创建窗口类
  d)显示和更新窗口
  3.消息循环
  4.窗口过程函数
  */
  HWND hWnd;
  MSG msg;
  //a)设计窗口类WNDCLASS(给成员变量赋值)
  WNDCLASS wc;
  wc.cbClsExtra = 0; //类的附加信息
  wc.cbWndExtra = 0; //窗口附件信息
  wc.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH) ; //背景色,必须写
  //wc.hCursor = NULL;  //使用默认
  wc.hCursor = LoadCursor(NULL,IDC_HELP); //加载系统默认光标
  //wc.hIcon = NULL; //可以默认
  wc.hIcon = LoadIcon(NULL,IDI_WARNING); // 加载系统默认图标
  wc.hInstance = hInstance; //应用程序实例
  wc.lpfnWndProc = DealMessage; //窗口过程函数名字,消息处理函数
  wc.lpszClassName = TEXT("MJJ");  //类的名字
  wc.lpszMenuName = NULL; //菜单名字
  wc.style = nShowCmd; //显示风格
  //b)注册窗口类  告诉系统窗口过程函数的入口地址 
  RegisterClass(&wc);
  //c)创建窗口类
  hWnd = CreateWindow(TEXT("MJJ"),TEXT("hello,windows"),WS_OVERLAPPEDWINDOW,
  CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,    //x,y高宽
  NULL,NULL,hInstance,NULL);
  //d)显示和更新窗口
  ShowWindow(hWnd,SW_SHOWNORMAL);
  UpdateWindow(hWnd);
  //3.消息循环
  //MSG msg;
  //如果接收到WM_QUIT,返回0,退出
  //如果出错,返回-1,不退出
  while(GetMessage(&msg,NULL,0,0))
  {
  //翻译工作
  //虚拟按键转为标准字符WM__CHAR
  TranslateMessage(&msg);
  //给操作系统分发消息
  DispatchMessage(&msg);
  }
  return msg.wParam;
}


基本概念与过程图:





相关文章
|
小程序 前端开发 JavaScript
小程序点击按钮出现和隐藏遮罩层
小程序点击按钮出现和隐藏遮罩层
225 0
|
4月前
|
前端开发 JavaScript
基于Vue3实现鼠标按下某个元素进行拖动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
本文介绍了如何在Vue3项目中实现一个鼠标拖动调整元素宽度的功能,并展示了点击按钮收起或展开侧边栏的效果,提供了完整的实现代码和操作演示。
810 0
基于Vue3实现鼠标按下某个元素进行拖动,实时改变左侧或右侧元素的宽度,以及点击收起或展开的功能
|
4月前
|
图形学
小功能⭐️Unity Button按钮实现鼠标移入移出触发相应事件
小功能⭐️Unity Button按钮实现鼠标移入移出触发相应事件
|
7月前
在viewWillAppear函数中禁止左滑,viewWillDisappear开启左滑动产生进入下一个页面来回滑动造成无法点击点击按钮问题
在viewWillAppear函数中禁止左滑,viewWillDisappear开启左滑动产生进入下一个页面来回滑动造成无法点击点击按钮问题
39 0
|
7月前
|
前端开发 JavaScript 数据安全/隐私保护
前端点击其他输入框的时候,对当上个输入框进行判断(鼠标移出输入框事件,和鼠标点击其他输入框触发事件)
前端点击其他输入框的时候,对当上个输入框进行判断(鼠标移出输入框事件,和鼠标点击其他输入框触发事件)
111 0
|
前端开发
添加按钮的两种方式
添加按钮的两种方式
93 0
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
selenium+python:点击元素、alert弹框、鼠标操作(左键点击、右键点击、双击、鼠标悬浮)、下拉选项框、窗口切换等操作的处
Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件
Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件
364 0
Qt [GC9-7]:控制台基本设置及增加鼠标右键菜单和键盘事件
|
搜索推荐
PyQt5 技巧篇-参数控制窗体右上角只显示关闭按钮实例演示
PyQt5 技巧篇-参数控制窗体右上角只显示关闭按钮实例演示
587 0
PyQt5 技巧篇-参数控制窗体右上角只显示关闭按钮实例演示