请教一下,怎么能获得到当窗口中的一个按钮移动前后的坐标??? 请教一下,怎么能获得到当窗口中的一个按钮移动前后的坐标???比如:我想获得在下象棋(不是我写的程序,是其他应用程序)时,棋子的移动(这是的移动并不是通过鼠标点击的方式,比如:当电脑方下棋时)前后的坐标!!有哪位知道,帮帮小弟,用编程怎么获得呀?!!!好多的象棋程序的棋子都是画出来的!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你在按钮类中添加CPoint的成员变量m_ptOld来保存上次移动后的坐标,m_ptCur来保存当前坐标,每次移动后就更新坐标数据就可以了啊。 那些棋子不是按钮都是画出来的,原理是把客户区分成若干个小块,每一个小块是一个矩形,鼠标点击以后,判断所在的点在那个矩形,然后在矩形中绘制。用ptinrect()函数。 可以通过图象的RGB来判断棋子有没移动, 这个就复杂了点。需要用FindWindow来找到窗体,然后用SetClassLong来重写它的窗体消息处理过程,就可以获得鼠标按下的地址了。FindWindow的原型:HWND FindWindow( LPCTSTR lpClassName,//窗体的类名,如果不知道就可以用vc带的spy++工具查看那个游戏的窗体类名 LPCTSTR lpWindowName//窗体的标题);用SetClassLong来改写窗体的WNDPROC:WNDPROC oldProc=(WNDPROC)SetClassLong(hStart,GCL_WNDPROC,(LONG)MyWndProc); 还有一种简便有效的方法就是使用鼠标钩子来解决:SetWindowsHookExhttp://www.ccw.com.cn/htm/app/aprog/01_7_31_3.asp 窗口被遮挡后再出来,在上面绘制的东西恢复不了。怎么办? 怎么使 CTreeCtrl 初始显示的时候,树呈打开状态 郁闷只有10分了,但求各位大哥帮帮忙阿!!! 到了Vista平台,MFC会怎样? 请问 COM/COM+有没有必要学习? 非常奇怪的问题............ 类型问题 菜菜鸟的几个问题,关于进程和线程。 再不行就只有吐血或自杀(一个HELLO world!!!!!!!!!!!!!!!) 请问arc是什么格式文件? 金属材料表面高度数据的去噪算法。 请教一个数据显示的实现问题
FindWindow的原型:
HWND FindWindow(
LPCTSTR lpClassName,//窗体的类名,如果不知道就可以用vc带的spy++工具查看那个游戏的窗体类名
LPCTSTR lpWindowName//窗体的标题
);
用SetClassLong来改写窗体的WNDPROC:
WNDPROC oldProc=(WNDPROC)SetClassLong(hStart,GCL_WNDPROC,(LONG)MyWndProc);
http://www.ccw.com.cn/htm/app/aprog/01_7_31_3.asp