Как проверить, нажата ли кнопка окна C ++ - PullRequest
2 голосов
/ 25 апреля 2011

Как я могу проверить, нажата ли кнопка?
Я использую EnumChildWindows () для перечисления дочерних окон данного окна, а одно из дочерних окон - кнопка, я хочу проверить, является ли это конкретнымкнопка нажимается.
Мой код пока не знаю:

BOOL CALLBACK MyEnumProc(HWND hwnd, LPARAM lParam)
{
    char buffer[256];
    GetWindowText(hwnd, buffer, sizeof(buffer));
    cout << buffer << endl;
    return true;
}

int main()
{
    HWND hwnd = FindWindow(0, "Window to find");
    EnumChildWindows(hwnd, MyEnumProc, 0);

    return 0;
}

Ответы [ 2 ]

4 голосов
/ 25 апреля 2011

Вы можете отправить сообщение BM_GETSTATE кнопке управления, если оно будет нажато, результат будет BST_PUSHED.

1 голос
/ 25 апреля 2011

Вам нужно внедрить DLL в пространство процесса, подключить цикл сообщений окна (как вы использовали для ручного кодирования подклассного окна в собственном коде Win32 API C, Window Proc) (в режиме google) и прослушивать реальные сообщения. .

Все это для меня древняя вещь, и я боюсь, что последние версии Windows (надеюсь) сделали это немного сложнее.

Тем не менее, если вы можете доверять приложению с правильным уровнем разрешений, вы все равно сможете это сделать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...