Java碎语
随笔 - 4, 文章 - 1, 评论 - 22, 引用 - 0
数据加载中……
获取Java程序的窗口句柄
我们知道C++的每个窗体都对应着一个句柄HWND,通过这个句柄我们可以对这个窗口以及它的资源进行各种操作,比如让它前端显示等。那么操作系统给Java编写的窗体(Frame或者JFrame的对象或者子类对象)有没有分配这个唯一的HWND呢?
用spy++查看一下,Frame或者JFrame的对象或者子类对象确实都是存在这个窗口句柄的,那么我们怎么来得到它呢?
下面就是通过JNI取得这个句柄的代码。
1
HWND GetHwndOfJavaWindow(JNIEnv
*
env, jobject window)
2
{
3
cout
<<
"
GetHwndOfJavaWindow
"
<<
endl;
4
5
HWND hwnd
=
NULL;
6
7
JAWT_DrawingSurface
*
ds;
8
JAWT_DrawingSurfaceInfo
*
dsi;
9
JAWT_Win32DrawingSurfaceInfo
*
win;
10
11
JAWT awt;
12
awt.version
=
JAWT_VERSION_1_3;
13
jboolean result
=
JAWT_GetAWT(env,
&
awt);
14
if
(result
==
JNI_TRUE)
15
{
16
ds
=
awt.GetDrawingSurface(env, window);
17
jint
lock
=
ds
->
Lock(ds);
18
if
(
lock
!=
JAWT_LOCK_ERROR)
19
{
20
dsi
=
ds
->
GetDrawingSurfaceInfo(ds);
21
win
=
(JAWT_Win32DrawingSurfaceInfo
*
) dsi
->
platformInfo;
22
23
hwnd
=
win
->
hwnd;
24
25
ds
->
FreeDrawingSurfaceInfo(dsi);
26
ds
->
Unlock(ds);
27
awt.FreeDrawingSurface(ds);
28
}
29
}
30
31
return
hwnd;
32
}
有了这个窗口句柄后,我们就可以让Java窗体也具有很多本地化的功能了,比如闪烁标题栏,禁止最大化最小化以及关闭按钮等。
posted on 2010-02-10 11:15
凯子
阅读(5894)
评论(2)
编辑
收藏
所属分类:
JNI
评论
#
re: 获取Java程序的窗口句柄[未登录]
回复
更多评论
那么如何获得里面的控件呢?能给出一个解决方案吗
2010-03-30 14:13 |
tony
#
re: 获取Java程序的窗口句柄
回复
更多评论
标记
2015-03-06 16:01 |
jycggyh
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
Powered by:
BlogJava
Copyright © 凯子
导航
BlogJava
首页
新随笔
联系
聚合
管理
<
2010年2月
>
日
一
二
三
四
五
六
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
1
2
3
4
5
6
7
8
9
10
11
12
13
常用链接
我的随笔
我的文章
我的评论
我的参与
最新评论
留言簿
(1)
给我留言
查看公开留言
查看私人留言
随笔分类
Java(1)
(rss)
JNI(1)
(rss)
Note(1)
(rss)
Swing(2)
(rss)
随笔档案
2010年2月 (5)
搜索
最新评论
1. re: Swing实现Java代码编辑器 - 语法高亮显示
非常渴望能够获得源代码,liudsnudt@126.com
--刘德生
2. re: Swing实现Java代码编辑器 - 语法高亮显示
同求源码
--jycggyh
3. re: 获取Java程序的窗口句柄
标记
--jycggyh
4. re: Swing实现Java代码编辑器 - 语法高亮显示
你好!能不能发下源代码?whboy803@163.com,感谢!
--whboy
5. re: Swing实现Java代码编辑器 - 语法高亮显示
能不能发下源代码?827972471@qq.com
--sunly
阅读排行榜
1. 获取Java程序的窗口句柄(5894)
2. Java实现远程屏幕监视(3169)
3. Swing实现Java代码编辑器 - 语法高亮显示(3084)
4. Swing实现Java代码编辑器(860)
5. 虎年的工作开始了(197)
评论排行榜
1. Java实现远程屏幕监视(10)
2. Swing实现Java代码编辑器 - 语法高亮显示(9)
3. 获取Java程序的窗口句柄(2)
4. Swing实现Java代码编辑器(1)
5. 虎年的工作开始了(0)