按钮也是窗口,也有窗口句柄,方法如下:
1.先用EnumWindows 枚举所有窗口,在其回调函数中找到对话框窗口句柄。
2.再调用EnumChildWindows枚举该对话框中的子窗体,找到相应的按钮窗口句柄。
3.然后该干什么就干什么。

程序代码:
#include <Windows.h>
#include <tchar.h>
#include <iostream>
using namespace std;
BOOL CALLBACK EnumChildProc(HWND hwnd,LPARAM lParam)
{
if (hwnd == NULL)
{
return FALSE;
}
TCHAR szTitle[MAX_PATH] = {0};
GetWindowText(hwnd, szTitle, ARRAYSIZE(szTitle));
if (_tcsicmp(szTitle, _T("取消")) == 0)
{
SetWindowText(hwnd, _T("修改按钮文字"));
int z = 0;
}
return TRUE;
}
BOOL CALLBACK EnumWindowsProc(HWND hwnd,LPARAM lParam)
{
if (hwnd == NULL)
{
return FALSE;
}
TCHAR szTitle[MAX_PATH] = {0};
GetWindowText(hwnd, szTitle, ARRAYSIZE(szTitle));
if (_tcsicmp(szTitle, _T("查找")) == 0)
{
EnumChildWindows(hwnd, EnumChildProc, NULL);
}
return TRUE;
}
int main(int,char**)
{
EnumWindows(EnumWindowsProc, NULL);
cin.get();
return EXIT_SUCCESS;
}
测试:
打开notepad.exe ,随便输入点什么,按Ctrl+F,然后执行上面的代码。