Win32 UI拦截贴靠布局方法
在开发过程中,有一个需求是窗口可以调节大小。但是有最大和最小区间。而Win11有一个贴靠布局功能,这会导致窗口大小突破限制。所以我们需要拦截Win11的贴靠布局。在网上搜索了一番没有找到禁用方式,所以只能用过窗口尺寸改变的时候拦截了,一开始笔者找的是WM_SIZING,但是测试了一下发现贴靠布局不会走这个消息。经过测试此时会走WM_WINDOWPOSCHANGING消息。所以我们将拦截代码写在该消息下即可。
12345678910111213141516171819void xxxxx::OnWindowPosChanging(LPWINDOWPOS lpWndPos){ SetMsgHandled(FALSE); // 判断是否超出最大限度 if (lpWndPos->cx > m_sizeMax.cx lpWndPos->cy > m_sizeMax.cy) { lpWndPos->cx = m_sizeMax.cx; lpWndPos->cy = m_sizeMax.cy ...
Vue3父子组件传值双向绑定
官方链接:useVModel | VueUse中文文档 (vueusejs.com)
推荐视频
简易代码注意:当子组件参数为modelValue时,父组件的v-model后可以不跟modelValue
父组件:
12345<app-menu ref="appMenuRef" v-model:isShowToolTip="isShowToolTip" :onMenuSelect="onItemMenuSelect"/>
子组件:
123456789101112131415import { ref, defineProps, defineEmits } from "vue";import { useVModel } from "@vueuse/core";// 定义宏,用来通知父组件更新值const emit = defineEmits(["update:isShowToolTip"]);// 接 ...
Windows亚克力特效代码实现
防止失效,拷贝一份。
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133#include <windows.h>#include <dwmapi.h>// 定义一个枚举类型,表示不同的窗口组合状态enum AccentState { ACCENT_DISABLED = 0, ACCENT_ENABLE_GRADIENT = 1, ACCENT_ENABLE_TRANSPARENTGRADIENT = 2, ...
EnumWindows问题
笔者在日常开发中用到一种场景,该场景是启动一个子线程,在该线程里循环查找指定窗口是否存在。
里面用到了EnumWindows、GetClassName和GetWindowText的API。
从而引发了一个线程无法正常退出,使用WaitForSingleObject等待线程结束将永远无法结束的问题。
初步猜测可能是因为EnumWindows的回调函数中使用了GetClassName和GetWindowText的原因。这两个函数会给消息循环发消息,最后造成的阻塞问题。
这里贴出解决该问题的代码,当然此类问题最好使用其他的解决方案去规避。
1234567891011121314151617181920212223242526272829303132void XXXXX::WaitXXXXXThread(){MSG msg;BOOL bQuit = FALSE;while (!bQuit){DWORD dwRet = MsgWaitForMultipleObjects(1, &m_tThread, FALSE, INFINITE, QS_ALLINPUT);if ( ...
UE4引擎AES和HTTP请求函数寻找教程
22b67c60faae0a81b8d379477ae974cc3e848a2e55d5b1601c27d14862ad647ec7e0208f447c46792af3c0ab6799e1903b3c828e50ef3b5e84799722e35a301a6906f7b08a5919990c7ea8747e46ec0dd6e8c1aabce896aa639d8b14c32f5a1fc42dda62a7530815c955ef5de14a1f1e400750c6f3996535ca9e4e998d11850be348f4fa8ef294cca9c606b471f09d91ceb6b28752b04a0a7abb395c1817ee8675fefa81a916846cb7e52473cfa6e475414fff31bc84c4921fc653da78d49c89489c01c87dd612baa99cbb459d5add89f46aac41b0c5f3f25cbab7f094163b925fd54aca6d1cc4003d709b2d1e8ad3b30d935256734a9c910 ...
vcpkg安装指定版本教程
1、vcpkg\versions中查看所需要的版本号
2、在vcpkg.exe目录下创建vcpkg.json文件
3、编写文件
1234567891011121314{ "builtin-baseline":"", -- 随便输入一个,vcpkg会提示正确的,到时候修改就好了 "dependencies": [ { "name": "jsoncpp" -- 库名 } ], "overrides": [ { "name": "jsoncpp", -- 库名 "version-string": "1.8.0" -- 需要的库版本 } ]}
1234PS D:\sources\C++\vcpkg> vcpkg installthe top-level builti ...
ListView中highlight使用注意事项
解决方法一(推荐):将delegate元素背景色设置为半透明或全透明,这里需要注意如果你使用MouseArea来实现hover效果时,更需要注意onExited中,你是否将颜色设置成了不透明纯色。这也会导致highlight无法正常显示出来。
示例:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546ListView { id: listView anchors.fill: parent anchors.bottomMargin: 60 model: ListModel { id: listViewModel } delegate: listViewDelegate ScrollBar.vertical: ScrollBar { anchors.left: parent.right } header: listViewHeader hi ...
风车动漫刷邀请
代码:
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647import requests import json from Crypto.Cipher import DES3 from datetime import datetime from Crypto.Util.Padding import pad, unpad import base64 CODE = "" # 这里填写邀请码 def encrypt(data): key = b'OW84U8Eerdb99rtsTXWSILDO' iv = b'SK8bncVu' cipher = DES3.new(key, DES3.MODE_CBC, iv) padded_data = pad(data.encode("utf-8"), DES3.block_size) cText = ciph ...
UE4引擎bypassPak文件校验
22b67c60faae0a81b8d379477ae974cc3e848a2e55d5b1601c27d14862ad647ec7e0208f447c46792af3c0ab6799e1903b3c828e50ef3b5e84799722e35a301a6906f7b08a5919990c7ea8747e46ec0dd6e8c1aabce896aa639d8b14c32f5a1fc42dda62a7530815c955ef5de14a1f1e400750c6f3996535ca9e4e998d11850be348f4fa8ef294cca9c606b471f09d91ceb6b28752b04a0a7abb395c1817ee8675fefa81a916846cb7e52473cfa6e475414fff31bc84c4921fc653da78d49c89489c01c87dd612baa99cbb459d5add89f46aac41b0c5f3f25cbab7f094163b92fc6e4f0a8808c00f98bc510152e9393690fb9593ec40da8d1 ...
【转载】时间函数介绍
前言转自:https://blog.csdn.net/crzmy/article/details/109537825
介绍我们在衡量一个函数的运行时间,或者判断一个算法的时间效率,或者在程序中我们需要一个定时器,定时执行一个特定的操作,都会用到时间函数。编译器和操作系统为我们提供了很多时间函数,这些时间函数的精度也是各不相同。所以,如果我们想得到准确的结果,必须使用合适的时间函数。
Sleep原理:Sleep函数是使调用Sleep函数的线程休眠,线程主动放弃时间片。当经过指定的时间间隔后,再启动线程,继续执行代码。Sleep函数并不能起到定时的作用,主要作用是延时。在一些多线程中,可能会看到Sleep(0),其主要目的是让出时间片。
精度:Sleep函数的精度非常低,当系统越忙它精度就越低。它的精度取决于线程自身的优先级、其它线程的优先级,以及线程的数量等因素。
MFC的timer事件原理:timer是一个定时器,可以指定回调函数,默认是Ontimer()函数。
精度:timer事件的精度范围在ms级别,系统越忙其精度越差。
C语言的Time原理:主要用于获取当前时间。
精度:秒级别。 ...