- 2024-08-17由字节对齐引发的一场“血案“
最近在搞个网络通信协议,采用socketudp传输,运行时,居然报段错误了,经过debug,发现居然是因为字节对齐问题导致的。这个问题在实现通信协议,是经常会遇到的问题,为了方便读者理解,我把内容做了简化,分享给大家。1、协议说明通信协议信令格式如下:typedefstructprotocol_msg_s{
- 2024-07-26qt 连接扫码枪,检查串口插拔
boolMainWindow::nativeEvent(constQByteArray&eventType,void*message,long*result){Q_UNUSED(result);Q_UNUSED(eventType);MSG*pMsg=reinterpret_cast<MSG*>(message);if(pMsg->message==WM_KEYUP){ushort
- 2024-04-10一个使用HOOK/WH_GETMESSAGE解决软件交互问题的案例
一、问题背景:1、某设计软件AD,可以打开/编辑二维电路设计界面,其交互方式如下:(1)鼠标右键按下拖动(2)鼠标滚轮上下移动(3)鼠标滚轮按下+鼠标移动缩放(4)ctrl+鼠标滚轮缩放 该软件的交互方式可以通过软件设置修改,但是基本的使用习惯就是如此,用户的一个场景是通过每台机器msts
- 2024-01-29MFC对话框处理Esc和Enter键,避免对话框关闭
要在MFC对话框中处理ESC和ENTER消息,避免对话框退出,您可以重写对话框类的PreTranslateMessage函数,并在该函数中处理这些消息。首先,打开对话框类的头文件(.h文件),添加以下声明:afx_msgBOOLPreTranslateMessage(MSG*pMsg);然后在.cpp文件中,实现PreTranslateMessage函数:
- 2024-01-23MFC 基于对话框的程序如何屏蔽掉 ENTER 键和 ESC 键退出的情况
重写PreTranslateMessage(MSG*pMsg)函数。protected: HICONm_hIcon; //生成的消息映射函数 virtualBOOLOnInitDialog(); afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam); afx_msgvoidOnPaint(); afx_msgHCURSOROnQueryDragIcon();afx_msgBOOLPreTra
- 2023-11-04[MFC]区分USB扫码枪和键盘输入的实现
不久前在帮客户做一个生产软件,要用到扫码枪输入一定长度的条码并且有条码长度防呆,结果发现手头的扫码枪居然是模拟键盘输入将条码数据直接发送到焦点控件中的(USB口的扫码枪),比如EditControl,而由于业务要求,不允许生产线上员工手工输入条码内容,因此我将文本框设为只读,想不到扫码枪
- 2023-11-02EMWIN GUI 消息
消息1.WM_PAINT1.1作用重绘页面1.2触发机制程序首次启动时;窗口被移动;1.3官方事例点击查看代码voidWinHandler(WM_MESSAGE*pMsg){switch(pMsg->MsgId){caseWM_PAINT://触发重绘GUI_SetBkColor(0xFF00);GUI_Clear();GUI_DispStringAt("He
- 2023-06-29PMSG永磁同步发电机并网仿真模型 主要包括发电机、整流器、逆变器(双pwm控制)、电网、控制、显示等部分
PMSG永磁同步发电机并网仿真模型(1)主要包括发电机、整流器、逆变器(双pwm控制)、电网、控制、显示等部分;(2)风机最大功率跟踪mppt采用最佳叶尖速比法;(3)机侧控制(发电控制):采用转速、电流双闭环控制,均采用PI,磁链解耦;调制策略采用SVPWM;(4)网侧控制(并网控制):采用电压、电流双闭环控制,均采
- 2023-01-10关于MFC对话框的OnOK调用与不调用的现象
MFC中OnOK一个新建的MFC项目,运行起来后,点击回车,相当于按下OnOK,程序退出。这符合微软的标准GUI程序。回车键按钮默认调用了OnOK(),Esc键按钮默认调用了OnCancel()。OnOK不调
- 2022-10-31[单片机框架] [app_led] 利用软定时器实现闪烁和呼吸等灯光模式
使用例子:任意地点初始化:app_led_init();app_led_indicate(灯号,灯光类型,周期时间,重装载值);注:需要先实现对应PWM函数文件代码如下app_led.c/***************************
- 2022-10-05VC雕虫小技集(五)
VC雕虫小技集(五)何志丹1,vc中右键点击一个类或宏,可以察看他的定义,但如何返回初始地方呢?installvisualassist,anduseAlt+leftarrow按菜单中的后退(<-转45度)按