zoukankan      html  css  js  c++  java
  • 模拟按钮控件BN_CLICKED消息事件

    一、 现有一对话框如下

    单击按钮会弹出Hello消息框,如下图所示:

    现要在点击按钮时模拟的单击响应事件,实现代码如下:

    void CTestDlg::OnBnClickedBtnTest()

    {

        // TODO: Add your control notification handler code here

        WPARAM wParam;

        wParam = BN_CLICKED;

        wParam <<= 16;   // 左移16位

        wParam |= IDC_BTN_SAY_HELLO;    // 按位或

        LPARAM lParam;

        lParam = (LPARAM)::GetDlgItem(this->GetSafeHwnd(), IDC_BTN_SAY_HELLO);

        ::PostMessage(this->GetSafeHwnd(), WM_COMMAND, wParam, lParam);

    }

    如此,单击按钮就会弹出Hello消息框。

     

    二、 现有如下两个对话框程序Test.exeHisin.exe

    单击按钮会弹出Hello消息框,如下图所示:

     

    现要实现点击Hisin对话框中的按钮,模拟Test对话框中的单击事件。实现代码如下:

    void CHisinDlg::OnBnClickedBtnTest()

    {

        // TODO: Add your control notification handler code here

        HWND hWndDlgTest = ::FindWindow(NULL, TEXT("Test"));

        HWND hWndBtnSayHello = ::FindWindowEx(hWndDlgTest, NULL, NULL, TEXT("Say   Hello"));

        WPARAM wParam;

        wParam = BN_CLICKED;

        wParam <<= 16;   // 左移16位

        wParam |= ::GetDlgCtrlID(hWndBtnSayHello);

        LPARAM lParam;

        lParam = (LPARAM)hWndBtnSayHello;

        

        ::PostMessage(hWndDlgTest, WM_COMMAND, wParam, lParam);

    }

    如此,单击Hisin对话框中的按钮就会使Test对话框中弹出Hello消息框。

  • 相关阅读:
    基本MVVM 和 ICommand用法举例(转)
    WPF C# 命令的运行机制
    628. Maximum Product of Three Numbers
    605. Can Place Flowers
    581. Shortest Unsorted Continuous Subarray
    152. Maximum Product Subarray
    216. Combination Sum III
    448. Find All Numbers Disappeared in an Array
    268. Missing Number
    414. Third Maximum Number
  • 原文地址:https://www.cnblogs.com/Hisin/p/2508318.html
Copyright © 2011-2022 走看看