BOOL CALLBACK EnumProcTxt(HWND hwnd, LPARAM lParam)
{
if(hwnd == NULL)
return FALSE;
else
{
int id = -1;
id = ::GetDlgCtrlID(hwnd);
if(id == 0xF)
::SendMessage(hwnd, WM_SETTEXT, NULL, (LPARAM)lParam);
}
return TRUE;
}
CWnd *gpWnd =NULL;
void CTestDlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
//执行记事本程序
WinExec("notepad.exe", SW_SHOW);
Sleep(1000);
gpWnd = FindWindow(NULL, _T("无标题 - 记事本"));
HWND parent = gpWnd->m_hWnd;
// 向新建的文本框中输入信息
EnumChildWindows(parent, EnumProcTxt, (LPARAM)_T("你好,记事本!"));
}
void CTestDlg::OnBnClickedButton2()
{
// TODO: 在此添加控件通知处理程序代码
if(!gpWnd)
return;
HWND parent = gpWnd->m_hWnd;
// 选择记事本的文件菜单下的保存菜单项
::SetForegroundWindow(parent);
keybd_event(VK_MENU, 0, 0, 0);
Sleep(10);
keybd_event(VK_MENU, 0, KEYEVENTF_KEYUP, 0);
keybd_event('F', 0, 0, 0);
Sleep(10);
keybd_event('F', 0, KEYEVENTF_KEYUP, 0);
keybd_event('S', 0, 0, 0);
Sleep(10);
keybd_event('S', 0, KEYEVENTF_KEYUP, 0);
}
void CTestDlg::OnBnClickedButton3()
{
// TODO: 在此添加控件通知处理程序代码
if(!gpWnd)
return;
HWND parent = gpWnd->m_hWnd;
::SetForegroundWindow(parent);
::SendMessage(parent, WM_SYSCOMMAND, SC_KEYMENU, (WPARAM)'F'); // 只能展开文件菜单,无法后续选择菜单项
}
C++ 向记事本程序发送菜单消息
猜你喜欢
转载自blog.csdn.net/dxm809/article/details/114108357
今日推荐
周排行