调用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;
}


基本概念与过程图:





相关文章
|
5月前
|
小程序 前端开发 JavaScript
小程序点击按钮出现和隐藏遮罩层
小程序点击按钮出现和隐藏遮罩层
158 0
|
7月前
|
iOS开发
iOS MFMessageComposeViewController不显示取消按钮,导航条上白色,无取消按钮,无法返回应用...
iOS MFMessageComposeViewController不显示取消按钮,导航条上白色,无取消按钮,无法返回应用...
28 0
|
2月前
uniapp popup弹出窗详解以及相关属性
uniapp popup弹出窗详解以及相关属性
60 3
|
3月前
|
前端开发 JavaScript 数据安全/隐私保护
前端点击其他输入框的时候,对当上个输入框进行判断(鼠标移出输入框事件,和鼠标点击其他输入框触发事件)
前端点击其他输入框的时候,对当上个输入框进行判断(鼠标移出输入框事件,和鼠标点击其他输入框触发事件)
43 0
|
4月前
|
小程序
小程序页面左右滑动
小程序页面左右滑动
|
5月前
|
小程序 JavaScript
小程序底部动画弹框
小程序底部动画弹框
41 0
|
5月前
layer 父弹出框上弹出子弹框窗体大小问题
layer 父弹出框上弹出子弹框窗体大小问题
对话框完全显示后,马上执行一个按钮的事件
对话框完全显示后,马上执行一个按钮的事件
|
8月前
|
前端开发
添加按钮的两种方式
添加按钮的两种方式
43 0
VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
VC下利用Picture控件实现png图片按钮(鼠标初始、按下、松开、获得焦点四种状态)
107 0