MFC 如何获取各类窗口的句柄

比如你需要在视图中获取对话框窗口的句柄,那可以直接在对话框类中什么一个静态成员变量

static CWnd *Left_cwnd;//用来记录左边对话框的句柄

然后在对话框初始化函数BOOL CLeftDockDialog::OnInitDialog()中赋值Left_cwnd = this;

就可以了。

当需要在其他窗口访问对话框句柄时,直接访问该静态成员变量就好了

HWND h = CLeftDockDialog::Left_cwnd->GetSafeHwnd();

然后其他窗口向对话框发送消息:

PostMessage(h, WM_COMMAND, MAKEWPARAM(IDOK, BN_CLICKED), NULL);

附带窗口类和窗口句柄的转换:

窗口类就是CWnd,窗口句柄就是HWND。CWnd和HWND之间互相转换代码如下:

    CWnd *pWnd;
    HWND hWnd;
    hWnd = pWnd->GetSafeHwnd();        //CWnd->HWND
    pWnd = CWnd::FromHandle(hWnd); //HWND->CWnd

注意:模态对话框是不能传递消息的,非模态对话框之间是能传递消息的。

转载于:https://my.oschina.net/u/3874841/blog/3094941

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值