如何获取对话框的句柄?

dimita 2006-11-17 08:45:30
我在vb的程序中调用了word,程序运行时,点击某个按钮弹出字体对话框,语句是:
Dialogs(wdDialogFormatFont).Show 我想问的是如何能得到这个字体对话框的句柄???????谢谢
...全文
380 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
dimita 2006-11-21
  • 打赏
  • 举报
回复
我现在用这个怎么有的时候好用,
Call SetParent(117, me.hwnd)
Dialogs(wdDialogformatfont).Show
有的时候就不好用呢,为什么呀???谁能告诉我
chenhui530 2006-11-20
  • 打赏
  • 举报
回复
如果你弹出的是模式对话框就用一个计时器看能找到吗~~
VB不支持多线程麻烦不然开个线程就行了
dimita 2006-11-20
  • 打赏
  • 举报
回复
可是这个问题仍然没有解决呀,请帮帮忙吧!
dimita 2006-11-20
  • 打赏
  • 举报
回复
Dialogs(wdDialogFormatFont).Show里的wddialogformatfont在运行时的信息是117,那是不是可以写成

Call SetParent(117, me.hwnd)
Dialogs(wdDialogEditFind).Show
这样是不是应该能行呢?
cangwu_lee 2006-11-20
  • 打赏
  • 举报
回复
Hookie

*****************************************************************************
欢迎使用CSDN论坛阅读器 : CSDN Reader(附全部源代码)
http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
dimita 2006-11-20
  • 打赏
  • 举报
回复
计时器有什么用呀,不知道为什么要用它呢,我以为只要用findwindow就能找到了呢?不明白你的意思.如果把word字体的对话框作为不个外部程序呢?那样怎么能获得它的句柄呢?原来以为用setparent就能解决的问题这么麻烦,我想得脑袋都要破了!!!
dimita 2006-11-17
  • 打赏
  • 举报
回复
哦,明白了,我说为什么有是时候见到后面有个1呢!呵呵,我还没过三个月的适用期呢,见笑了!
chenhui530 2006-11-17
  • 打赏
  • 举报
回复
模式对话框就是必须等对话框关闭后才能执行下面的代码
我给你列子

form1.show
msgbox "!"

form2.show 1
msgbox "?"
上面的不需要等form1关闭就执行到了msgbox了
而下面的必须等form2关闭才能执行到msgbox
dimita 2006-11-17
  • 打赏
  • 举报
回复
什么是模式对话框我都不知道,只是我单步运行的时候,打开字体的对话框后,不去关闭,程序就不向下走了.
chenhui530 2006-11-17
  • 打赏
  • 举报
回复
又不是模式对话框
谁说要关闭才能继续下面的代码啊
dimita 2006-11-17
  • 打赏
  • 举报
回复
不行了,因为hwndwordapp总是等于0的,Dialogs(wdDialogEditFind).Show运行后,要关闭这个对话框程序才能继续执行的,所以hwndwordapp才总是0吧!
chenhui530 2006-11-17
  • 打赏
  • 举报
回复
Dialogs(wdDialogEditFind).Show
hWndWordApp = FindWindow(vbNullString, "字体")
do while hWndWordApp=0
doevents
hWndWordApp = FindWindow(vbNullString, "字体")
loop
Call SetParent(hWndWordApp, me.hwnd)
在那个click事件里我是这么写的,可是不好用呀?帮忙看看有什么问题呢?
dimita 2006-11-17
  • 打赏
  • 举报
回复
因为字体的对话框弹出来的时候,总是先释放程序的主界面,要我再次击活主界面才行.是不是因为我把word的窗体嵌入到vb的窗体中,而字体的对话框又是word自带的,所以用findwindow找不到呢?
dimita 2006-11-17
  • 打赏
  • 举报
回复
学我呀,你那样也不好用.
chenhui530 2006-11-17
  • 打赏
  • 举报
回复

Dialogs(wdDialogEditFind).Show
hWndWordApp = FindWindow(vbNullString, "字体")
Call SetParent(hWndWordApp, me.hwnd)
在那个click事件里我是这么写的,可是不好用呀?帮忙看看有什么问题呢?
dimita 2006-11-17
  • 打赏
  • 举报
回复
hWndWordApp = FindWindow(vbNullString, "字体")
Dialogs(wdDialogEditFind).Show
Call SetParent(hWndWordApp, me.hwnd)
在那个click事件里我是这么写的,可是不好用呀?帮忙看看有什么问题呢?
yangao 2006-11-17
  • 打赏
  • 举报
回复
用这个对话框的窗口标题
通过FindWindow查找

1,486

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧