想做一个程序实现以下功能:在其它的程序中进行粘贴时,首先对剪贴板的内容进行判断,把其中适合的粘贴进去,不适合的就不粘贴。如:先定义一个热键CTRL+ALT+A ,然后另外有一个程序有3个编辑框,这时剪贴板的内容为123456789,当该程序的第一个编辑框获得焦点时,按热键,则第一个编辑框粘贴进123,第二个编辑框粘贴进456,第三个编辑框粘贴进789。方案:要先取得程序窗口的句柄,再获得第一个编辑框的id,然后取剪贴板的内容粘贴前3个数123粘贴到第一个编辑框,再获取第一个编辑框的next,粘贴456,再取next,粘贴789。问题:1 . 如何取这个程序的窗口的句柄(这个程序是别人的,而且不是固定的一个程序);
2 . 如果挨个取编辑框的id。这个方案不知可行否,各位有什么更好的方案?
2 . 如果挨个取编辑框的id。这个方案不知可行否,各位有什么更好的方案?
解决方案 »
- vs2010是否可用2008 sp1的msdn?
- 右键动态创建菜单,消息响应函数中如何对菜单进行设置?
- 如何获取一个DWORD型变量的值?
- http://topic.csdn.net/t/20050806/13/4192710.html 中你的荧光笔是怎么实现的?
- 随机数组成的图形,怎么判断波峰和波谷???
- 使用ADO的问题,请专家帮忙解答
- 怎样动态产生视图?例如树控件双击,就动态生成一个视图?高手指点啊,在线等呢
- 我用MFC的制作的OCX中的一个对话框中插入加一个OCX,可是对话框就无法显示出来了,请意问在OCX中是不是不能再插入另一个OCX了呢?
- error LNK2001: unresolved external symbol __imp__cryptEnd@0
- Socket里面ShutDown和Close函数分别有什么作用?
- 如何将数据库中的数据导出到Excel
- 高分求解:webbrowser控件的使用问题...
FindWindow2 . 如果挨个取编辑框的id。
GetWindow(parent_handle, GW_CHILD);
GetWindow(current_handle, GW_HWNDNEXT);
or
EnumWindowsProc
2.EnumChildWindows具体用法请参考msdn
CWnd* pp = pWnd->GetFocus();
CString str;
pp->GetWindowText(str);//在这句出错
static CWnd* PASCAL GetFocus( );Return ValueA pointer to the window that has the current focus, or NULL if there is no focus window.
显而易见,这时pp是NULL
CWnd *temp=GetFocus();
CString str;
if(temp)
{
temp->GetWindowText(str);
AfxMessageBox(str);
}
else
AfxMessageBox("Have no focus!");