Message-Only Windows

在Windows平台开发桌面应用程序的时候,经常会遇到这样一种情况:

  • 我需要定时做一些事情,但是这些事情是后台的,顶多是做完了通知一下相关的GUI控件进行刷新。

使用定时器是一个很直觉型的解决方案。但是不巧的是,在Windows平台,定时器是和窗口消息绑定在一起的。为了解决这个问题,很多人不得不去创建一个隐藏的窗口,通过这个窗口把相关的事情串联起来。

我个人认为,这不失为一个好的解决方案。但是对隐藏窗口需要多费一点口舌。

为什么这么说呢?很多人(特别是初学者),在创建这种窗口时套用常规的创建窗口的方式,唯一不同的地方是不指定WS_VISIBLE。那这样做到底有什么不好的地方?这可能需要具体问题具体分析,这里就简单罗列几个需要考虑的点:

  • 隐藏窗口是否能占有焦点?
  • 隐藏窗口是否要考虑Z-order?
  • 如果存在自动化测试,这个窗口是否需要被枚举到?

如果实际的需求是上面3个问题都应该被否定,那么应该如何创建这个隐藏的窗口呢?

我想Windows已经考虑到这种情况的存在,因此存在这么一个概念:Message-Only Windows。它的关键在HWND_MESSAGE这个特殊的父窗口句柄。具体细节不是很复杂,参考链接即可。

转载于:https://www.cnblogs.com/wpcockroach/archive/2012/04/06/2441488.html

解释这些参数optional arguments: -h, --help show this help message and exit --host HOST --port PORT --config-installer Open config web page, mainly for windows installer (default: False) --load-installer-config Load all cmd args from installer config file (default: False) --installer-config INSTALLER_CONFIG Config file for windows installer (default: None) --model {lama,ldm,zits,mat,fcf,sd1.5,cv2,manga,sd2,paint_by_example,instruct_pix2pix} --no-half Using full precision model. If your generate result is always black or green, use this argument. (sd/paint_by_exmaple) (default: False) --cpu-offload Offloads all models to CPU, significantly reducing vRAM usage. (sd/paint_by_example) (default: False) --disable-nsfw Disable NSFW checker. (sd/paint_by_example) (default: False) --sd-cpu-textencoder Run Stable Diffusion text encoder model on CPU to save GPU memory. (default: False) --local-files-only Use local files only, not connect to Hugging Face server. (sd/paint_by_example) (default: False) --enable-xformers Enable xFormers optimizations. Requires xformers package has been installed. See: https://github.com/facebookresearch/xformers (sd/paint_by_example) (default: False) --device {cuda,cpu,mps} --gui Launch Lama Cleaner as desktop app (default: False) --no-gui-auto-close Prevent backend auto close after the GUI window closed. (default: False) --gui-size GUI_SIZE GUI_SIZE Set window size for GUI (default: [1600, 1000]) --input INPUT If input is image, it will be loaded by default. If input is directory, you can browse and select image in file manager. (default: None) --output-dir OUTPUT_DIR Result images will be saved to output directory automatically without confirmation. (default: None) --model-dir MODEL_DIR Model download directory (by setting XDG_CACHE_HOME environment variable), by default model downloaded to ~/.cache (default: /Users/cwq/.cache) --disable-model-switch Disable model switch in frontend (default: False)
06-09
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值