博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
创建类似软键盘的无焦点对话框程序
阅读量:6434 次
发布时间:2019-06-23

本文共 1196 字,大约阅读时间需要 3 分钟。

如果想创建一个类似windows里的屏幕键盘式的程序,由于需要将模拟键盘的输入发送到原来处于活动状态的程序,因此,我们的程序应该不改变原来的焦点。在vc6和vc#中可以通过以下方式实现:

1. VC6.0

在对话框的OnInitDialog()函数最后的初始化处,添加以下代码:

// TODO: Add extra initialization here

     LONG exs = GetWindowLong(this->m_hWnd, GWL_EXSTYLE);

     exs |= 0x08000000;//始终不处于活动状态

 

     SetWindowLong(this->m_hWnd,GWL_EXSTYLE, exs);

     SetWindowPos(&CWnd::wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);

2. VC#

在.net平台下,可以同样导入API实现无焦点程序,方法如下:

 

using System.Runtime.InteropServices; namespace CardDisp{     public partial class Form1 : Form     {         [DllImport("user32.dll", EntryPoint="GetWindowLong")]         public static extern int GetWindowLong(IntPtr hWnd, int type);         [DllImport("user32.dll", EntryPoint = "SetWindowLong")]         public static extern int SetWindowLong(IntPtr hWnd, int type,int dwNewLong);          public Form1()         {              InitializeComponent();         }          private void Form1_Load(object sender, EventArgs e)         {                         Int32 exs = GetWindowLong(Handle, -20);              exs |= 0x08000000;//始终不处于活动状态              SetWindowLong(Handle,-20, exs);         }     }}

转载于:https://www.cnblogs.com/rogee/archive/2011/02/15/1954964.html

你可能感兴趣的文章
换个姿势为安装包重签名
查看>>
算法笔记_029:约瑟夫斯问题(Java)
查看>>
BZOJ 1951: [Sdoi2010]古代猪文 [Lucas定理 中国剩余定理]
查看>>
基于scrapy爬虫的天气数据采集(python)
查看>>
Spring MVC 异步处理请求,提高程序性能
查看>>
redis StackExchange 主备 实现 demo
查看>>
将Jquery序列化后的表单值转换成Json
查看>>
GIT入门笔记(5)- 创建版本库
查看>>
jmeter之ip欺骗
查看>>
tcp_handle_req: Made 4 read attempts but message is not complete yet - closing connection
查看>>
qml demo分析(threadedanimation-线程动画)
查看>>
gradient渐变IE兼容处理
查看>>
webservice linux 杀进程
查看>>
gson 转换 List<Map> 注意事项
查看>>
Linux知识积累(8)卸载安装jdk
查看>>
基于SOA的组件化业务基础平台[转]
查看>>
Apache Commons工具集简介
查看>>
微服务开发的12项要素
查看>>
《JavaScript高级程序设计》笔记:JavaScript简介(一)
查看>>
导入要素集到SDE数据库的方法以及使用GP工具的许可问题(转载)
查看>>