
用记事本打开工程目录下的rc文件
搜索你的控件ID,里面有记录
以编辑框为例,搜索IDC_EDIT1找到如下文字
EDITTEXT IDC_EDIT1,64,24,55,15,ES_AUTOHSCROLL
里面64,24是指控件左上角相对窗口左上角的座标,
55,15,是指控件的宽高
修改这里的数字,改成你想要的值,然后重新打开工程就行了
至于究竟要修改成多少,可以目测,也可以下载个电脑尺(JRuler)量一量
朋友,得到图层的空间参考需要在ILayer和IGeoDataset接口之间进行转换:首先使用ILayer接口得到图层ILayer layer=mapLayer[i]; 然后转换到IGeoDataset接口,访问IGeoDataset接口的SpatialReferenceName属性即可。
你这个程序是捕捉0到9的按键状态,按下再松开时才会记录,想要识别所有按键,把for循环范围扩大。
比如for(charch=32;ch<=127;ch++)这样就包含了特殊符号及大小写字母还有数字。
但是,这个代码是有问题的!
一、你这个代码需在键位已经按下后启动才能识别,否则启动时没有按下对应键位,程序就结束了。要嵌套死循环,让其一直检测。
二、直接扩大ASCII区间,像上面的那样32~127,识别字母区间会被防毒软件直接判断为病毒!!。
三、GetAsyncKeyState不是C语言库函数,是window的函数,换其它 *** 作系统就失效。
GetAsyncKeyState返回值最高位为1则说明对应ch的键被按下,所以这里用&0x8000来判断最高位。
四、想要捕获其它软件界面内容还有很多方法,比如:
1、通过windowAPI函数FindWindow来获取窗口句柄。
2、遍历窗口下控件句柄,找到输入框句柄。
3、通过窗口句柄找到进程id(GetWindowThreadProcessId函数),再通过id获取进程句柄(OpenProcess函数)。
4、向目标进程申请内存(VirtualAllocEx),再通过PostMessage函数异步发送消息获取目标控件内的内容(具体消息要结合控件类型,另外注意PostMessage是异步执行)。
具体自行查阅资料,一言两语说不清,上面步骤需先搞懂window消息机制。
注意:以上方法依然只限window系统,且有数据保护的控件无法获取。
五、或简单暴力的方法,直接写个定时截图,只要硬盘够不停桌面截图。
但不论写什么程序,和装摄像头一样,终究都会被发现。!!!!!!!!!!!!!
GetCursorPos获取的是屏幕坐标,GetClientRect是窗口坐标,两个坐标系不匹配,PtInRect结果当然错误。
你这个程序的正确做法:
PtInRect判断应该放在函数首部,如果这个判断返值为FALSE,那么后面的坐标计算根本没有必要,效率提升不说,还避免了坐标系映射之类的可能产生的影响。
在OnMouseMove里面,GetCursorPos没用并且会降低效率。判断坐标应该使用函数参数来进行即可。
遇到坐标系不同的情况,可以使用ScreenToClient/ClientToScreen函数对,将坐标转换为相同的坐标系,再进行运算和判断。
以上就是关于MFC工程中怎么得到相对窗口的坐标全部的内容,包括:MFC工程中怎么得到相对窗口的坐标、如何用ArcEngine编程得到当前图层的坐标系、C语言问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)