5811|11

70

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

WinCE中,基于对话框的程序,怎样拥有唯一的窗口类? 为了取得窗口句柄 [复制链接]

两个基于对话框的程序,  GetClassName取得的窗口类名都是Dialog,两个窗口都没有标题,所以不能通过窗口标题,使用FindWindow取得窗口句柄。那么怎样取得窗口句柄?

最新回复

这种才是正解,改一下WNDCLASS的名字应该对文件影响不大,除非其他的地方也用到了这个名字,这个方法不行,就用zjh824的第二种方法  详情 回复 发表于 2009-4-15 09:57
点赞 关注

回复
举报

55

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
使用 eVC4.0 MFC 开发
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
如果是固定窗口个数,直接指定就好了。就不用findwindow了
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

4
 
每句这两个窗口的子窗口,用子窗口区分
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 3 楼 ultrapro 的回复:
每句这两个窗口的子窗口,用子窗口区分


可以说得具体点吗?

这两个窗口属于两个不同的程序,不在同一程序内。
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

6
 
dlg.m_hWnd 即是该对话框的窗口句柄
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 5 楼 biaozai06 的回复:
dlg.m_hWnd 即是该对话框的窗口句柄


我要在一个进程内,取得另一个进程中的窗口的句柄。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

8
 
如果这两个应用的程序可以改,把它们的类名改成不一样的,在需要更改类名的对话框资源上右击,选择“属性”,打开属性对话框,可以看到有一个名为“Class Name”的属性,我们在其中输入一个自己定义的名称(如“MyPrivateClassName”)即可。但是,MFC默认设置这个属性选项是灰色不可用的,我们先要开启它。切换到资源视图,右击根节点(如“XxxXxx.rc”),选属性,去掉勾选“Enable MFC Features”项(如果是VS.Net,把“MFC Mode property”项改为False)。这样就可以修改对话框的Class Name属性了。

如果这两个应用的程序代码不能修改,必须然后通过toolhelp32函数获得该进程的进程ID和模块名(exe文件名应该是已经的吧?),然,得到后enumwindow你想要的窗口句柄.

不要说两个程序的exe文件名也一样....
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

9
 
是MFC的程序吗?
那可以在OnInitDialog()中用SetWindowText(text)来设置窗口名。
然后在另一个需要查找这个窗口HANDLE的地方用HWND hwnd=::FindWindow(NULL,text)即可
如果是win32更简单了
在CreateWindow的时候使用text作为窗口名来创建窗口
 
 
 

回复

87

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 7 楼 zjh824 的回复:
如果这两个应用的程序可以改,把它们的类名改成不一样的,在需要更改类名的对话框资源上右击,选择“属性”,打开属性对话框,可以看到有一个名为“Class Name”的属性,我们在其中输入一个自己定义的名称(如“MyPrivateClassName”)即可。但是,MFC默认设置这个属性选项是灰色不可用的,我们先要开启它。切换到资源视图,右击根节点(如“XxxXxx.rc”),选属性,去掉勾选“Enable MFC Features”项(如果是VS.Net,把“MFC Mod…


我用的eVC4.0
代码可以改,这样修改后,在模拟器里,程序无法启动。改回去,就好了。

 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

11
 
引用 8 楼 nick_TS16949 的回复:
是MFC的程序吗?
那可以在OnInitDialog()中用SetWindowText(text)来设置窗口名。
然后在另一个需要查找这个窗口HANDLE的地方用HWND hwnd=::FindWindow(NULL,text)即可
如果是win32更简单了
在CreateWindow的时候使用text作为窗口名来创建窗口


窗口没有标题栏
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

12
 
引用 7 楼 zjh824 的回复:
如果这两个应用的程序可以改,把它们的类名改成不一样的,在需要更改类名的对话框资源上右击,选择“属性”,打开属性对话框,可以看到有一个名为“Class Name”的属性,我们在其中输入一个自己定义的名称(如“MyPrivateClassName”)即可。但是,MFC默认设置这个属性选项是灰色不可用的,我们先要开启它。切换到资源视图,右击根节点(如“XxxXxx.rc”),选属性,去掉勾选“Enable MFC Features”项(如果是VS.Net,把“MFC Mod…

这种才是正解,改一下WNDCLASS的名字应该对文件影响不大,除非其他的地方也用到了这个名字,这个方法不行,就用zjh824的第二种方法
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表