无焦点窗口创建(转)

部署运行你感兴趣的模型镜像
窗口无焦点弹出的方法

在windows的窗口系统中,popup窗口的焦点是与它的活动状态密切相关的。只要使   
  popup窗口不获得活动状态,popup窗口就不会自动获得焦点。具体方法如下:   
  1.   在创建popup窗口时不要有WS_VISIBLE风格,然后调用SetWindowPos函数显示   
  创建的窗口,参数uFlag取值SWP_SHOWWINDOW     and     SWP_NOACTIVATE,这样就可以保证   
  窗口在创建是不会得到活动状态,也就不会获得焦点。   
  2.   响应WM_MOUSEACTIVATE消息,返回MA_NOACTIVATE表示窗口在鼠标点击时不需要   
  获得活动状态,这样就可以保证在鼠标点击时窗口不会自动获得焦点。   
  至于鼠标输入的响应,本就与窗口是否获得焦点无关,不会受到影响。 


原文地址:http://blog.youkuaiyun.com/abcpanpeng/article/details/5099580

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

在LVGL(Light and Versatile Graphics Library)中,创建焦点窗口可以通过以下步骤实现: 1. **初始化LVGL库**:首先需要初始化LVGL库。 2. **创建窗口**:使用`lv_obj_create`函数创建一个基本的窗口对象。 3. **设置焦点**:使用`lv_group_t`来管理焦点,并通过`lv_group_add_obj`将窗口对象添加到组中。 4. **设置输入设备**:将输入设备(如键盘或触摸屏幕)设置为焦点组的管理设备。 以下是一个简单的示例代码: ```c #include "lvgl/lvgl.h" // 初始化LVGL lv_init(); // 创建一个基本的窗口对象 lv_obj_t * win = lv_win_create(lv_scr_act(), NULL); lv_win_set_title(win, "焦点窗口"); // 创建一个焦点组 lv_group_t * group = lv_group_create(); lv_group_set_default(group); // 将窗口对象添加到焦点组 lv_group_add_obj(group, win); // 初始化输入设备(例如:键盘) lv_indev_drv_t kb_drv; lv_indev_drv_init(&kb_drv); kb_drv.type = LV_INDEV_TYPE_KEYPAD; kb_drv.read_cb = keyboard_read; // 自定义读取回调函数 lv_indev_t * kb_indev = lv_indev_drv_register(&kb_drv); // 将输入设备设置为焦点组的管理设备 lv_indev_set_group(kb_indev, group); // 自定义读取回调函数 bool keyboard_read(lv_indev_drv_t * drv, lv_indev_data_t * data) { // 这里实现读取键盘输入的逻辑 return false; } // 主循环 while(1) { lv_task_handler(); delay_ms(5); } ``` 在这个示例中,我们首先初始化LVGL库,然后创建一个基本的窗口对象。接着,我们创建一个焦点组并将窗口对象添加到该组中。最后,我们初始化一个输入设备(如键盘)并将其设置为焦点组的管理设备。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值