创建类似于输入法窗口的非激活窗口
来源:互联网 发布:windows phone 之家 编辑:程序博客网 时间:2024/04/28 22:02
创建类似于输入法窗口的非激活窗口
周银辉
我们注意到输入法的候选词窗口是不会被激活而获得输入焦点的, 一个很明显的现象是当你用鼠标点击该窗口时, 系统焦点不会转移到该窗口上, 原来获得焦点的窗口不会失去焦点. 这很棒, 如何实现呢?
很简单, 只要将窗口的ExStyle设置为WS_EX_NOACTIVATE(0x8000000)即可. (另外, 值得注意的是, 如果窗口在任务栏显示图标的话, 仍可以通过任务栏图标来激活它)
方式1, winform窗口中, 通过重写CreateParams属性来修改ExStyle:
方式2, 通过SetWindowLong函数来设置窗口的ExStyle
周银辉
我们注意到输入法的候选词窗口是不会被激活而获得输入焦点的, 一个很明显的现象是当你用鼠标点击该窗口时, 系统焦点不会转移到该窗口上, 原来获得焦点的窗口不会失去焦点. 这很棒, 如何实现呢?
很简单, 只要将窗口的ExStyle设置为WS_EX_NOACTIVATE(0x8000000)即可. (另外, 值得注意的是, 如果窗口在任务栏显示图标的话, 仍可以通过任务栏图标来激活它)
方式1, winform窗口中, 通过重写CreateParams属性来修改ExStyle:
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_NOACTIVATE;
return cp;
}
}
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_NOACTIVATE;
return cp;
}
}
方式2, 通过SetWindowLong函数来设置窗口的ExStyle
public const int GWL_EXSTYLE = -20;
public const int WS_EX_NOACTIVATE = 0x8000000;
[DllImport("user32.dll")]
public static extern int SetWindowLong(IntPtr window, int index, int value);
[DllImport("user32.dll")]
public static extern int GetWindowLong(IntPtr window, int index);
static void Test(IntPtr hwnd)
{
SetWindowLong(hwnd, GWL_EXSTYLE,
GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
}
调用上面的Test(IntPtr hwnd)方法就可以了, 对于WPF程序, 可以通过new WindowInteropHelper(myWindow).Handle来获取窗口句柄
public const int WS_EX_NOACTIVATE = 0x8000000;
[DllImport("user32.dll")]
public static extern int SetWindowLong(IntPtr window, int index, int value);
[DllImport("user32.dll")]
public static extern int GetWindowLong(IntPtr window, int index);
static void Test(IntPtr hwnd)
{
SetWindowLong(hwnd, GWL_EXSTYLE,
GetWindowLong(hwnd, GWL_EXSTYLE) | WS_EX_NOACTIVATE);
}
- 创建类似于输入法窗口的非激活窗口
- 创建类似于输入法窗口的非激活窗口--续
- 创建类似于输入法窗口的非激活窗口
- 创建类似于输入法窗口的非激活窗口
- 创建类似于iTunes的窗口
- 创建非矩形窗口
- MFC程序多窗口引起的激活和非激活问题
- 完全激活窗口的实现
- 生成类似于弹出窗口的页面
- 如何在游戏窗口中激活当前输入法
- windows mobile 1.如何真正的退出程序而不隐藏窗体。2.让窗体跟着输入法窗口上移。3.如何创建非全屏Form
- C# 激活 非活动窗口 并自动 复制 粘贴 回车
- 窗口激活-无焦点窗口禁止激活
- 简单的窗口创建
- MFC 窗口的创建
- 浮动窗口的创建。
- 框架窗口的创建
- 多窗口的创建
- SICP学习笔记(1.1.1~1.1.3)
- 一点SICP资料
- [趣味编程]时序图可以这样画
- 利用SendMessage实现窗口拖动
- [WPF]实现密码框的密码绑定
- 创建类似于输入法窗口的非激活窗口
- WPF中的MVVM模式
- 如何在XAML中转义大括号
- [转]VS DEBUG 小技巧
- .net中模拟键盘和鼠标操作
- 如何实现.net程序的进程注入
- [转]Managed, Unmanaged, Native: What Kind of Code Is This?
- 如何为窗体应用程序显示控制台
- 如何修改.net framework
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
万古大龙尊 辰星言一
辰宝车行车轮大战2
辰辉
虚天主宰 辰辉
洪荒青竹道 辰逸
辰鹰
辰龙3d捕鱼街机版
铁血大后方 辰龙在天
辰龙广场二手房
赵辰龙
辰龙巳蛇
辰龙集团
辰龙是什么意思
辰龙图片
辰龙化工招聘
圣斗士之神之化身 辰龙
韩漫临辱贩卖机全文免费阅读
韩漫临辱贩卖机第18话免费
韩漫临辱贩卖机
辱妻
妻辱
辱妻下载
什么是褥疮
褥疮是什么
一期褥疮图片
老人褥疮
褥疮鉴别诊断
褥疮名词解释
辱疮
疮疥
敛疮
辶
.辶
辶笔顺
辶的笔顺
辶字旁的字
辶怎么读
辶几画
辶字旁的字有哪些
辶有几画
辶字旁的写法