• 全部
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

如何用对话之外的其它按钮控制对话框的关闭和打开 !

hnxk 2001-07-22 01:31:21
在主对话框上有两个子对话框,怎样使两个子对话框能关闭对方。

由于两个子对话框都只有ID,没有title.没法用

HWND hwnd=::FindWindow(NULL,"NAME");
if (hwnd) {
::PostMessage(hwnd,WM_CLOSE,0,0);

的方法来做,

请问有什么办法来实现?

多谢
...全文
41 点赞 收藏 2
写回复
2 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
Fantasia 2001-07-22
就如楼上所述,只要创建时保存了窗口句柄,想怎么干都可以。
回复
TIYer 2001-07-22
1.可以用 SendMessage 函数 发送 WM_DESTROY 消息关闭
函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);

参数:

hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。

Msg:指定被发送的消息。

wParam:指定附加的消息指定信息。

IParam:指定附加的消息指定信息。

返回值:返回值指定消息处理的结果,依赖于所发送的消息。

备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。
如果指定的窗口是由调用线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。


2。 用DestroyWindow()函数
函数功能:是与函数EnumChilWindows一起使用的由应用程序定义的回调函数。它接收子窗口句柄。类型 WNDENUMOROC定义了指向这个回调函数的指针。EnumChildProc是一个应用程序定义的函数名的位置标志符。

函数原型:BOOL CALLBACK EnumChildProc(HWND hWnd,LPARAM IParam);

参数:

hWnd:指向在EnumChildWlndows中定义的父窗口的子窗口句柄。

lparam:指定在EnumchildWindows中给出的应用程序定义值。

返回值:为继续列举,回调函数必须返回TRUE;为停止列举,回调函数必须返回FALSE。

备注:回调函数可以执行任何要求的任务。应用程序必须通过将其地址传送给EnumChildwindows函数来注册这个回调函数。




回复
相关推荐
发帖
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
帖子事件
创建了帖子
2001-07-22 01:31
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……