au3记事本模拟制作过程的问题,请大家帮忙看下。
1、在打开记事本的时候,无输入文字和输入文字鼠标不选中复制这些都是不能用的。怎么判断鼠标是否选中文字,怎么把鼠标选中的文字弄到剪切板去
2、这个图片中格式的前面的选择(带勾的那个)怎么弄出来的、
希望懂得帮小弟一下,给些想法也可以。
先谢过了。。{:face (270):}
两个没显示的图片、、{:face (394):} lz是想用autoit开发一个记事本? 回复 3# netegg
嗯。看了入门的文档、想拿这个试试。 本帖最后由 netegg 于 2012-12-30 19:34 编辑
回复 4# WLMSN
工程不小,鼓励下吧
大概说下,算不上指导,字符类的api几乎都要用上,剪贴板,同步,消息,至于界面元素就不多说了 回复 5# netegg
大哥,au3中有判断鼠标是否选中文本的函数没?
还有有没有获取鼠标选中的文本的函数
可以给些思路嘛、 实时跟踪鼠标位置,改变场景颜色 回复 7# netegg
我试试,谢谢大哥。 回复 1# WLMSN
楼主有志气啊,呵呵~~
就当灌水吧,回复个,长点积分也好~
1.判断鼠标是否选中文字,你可以直接使用UDF函数_GUICtrlEdit_GetSel(),它返回一个数组,第一个元素表示选择的起始位置,第二个当然就是结束啦,当没有选择文本时,两个元素数值相等,指示当前光标的所在的位置,所以你可以通过比较两个元素的值是否相等来确定有没有选中文本,从而设置相应的菜单是否可用;
至于将文字弄到剪贴板中,如果是在编辑框中,那个系统自己会处理的,不用管,如果是菜单中选择的话,你可以使用最笨的办法,就是直接发送CTRL+C,当然也可以使用发送消息的办法(具体翻看帮助文档及UDF中的源码吧)
2.那个菜单选中就打勾的话,直接设置控件状态为选中即可
guictrlsetstate($CTRL_ID,$GUI_CHECKED) 回复 9# annybaby
哇哦,我试下那个函数。这个思路太 好了、
CTRL+C的方法。。。可以是可以,就是想他内部怎么弄的、
勾选也知道了、非常感谢、、{:face (88):} 回复 10# WLMSN
安装包里有好多_sendmessage相关的示例函数,UDF等都可以学习,消息常量也可以查看帮助文档附录部分,或者是相关的头文件或者网上找资源,好多的~~ 本帖最后由 风行者 于 2012-12-31 02:29 编辑
可以判断鼠标左键弹起时,有没有选择文本 示例:
#include <WinApi.au3>
#include <Constants.au3>
#Include <GuiEdit.au3>
Global Const $WM_SYSCOMMAND = 0x0112
Global Const $WM_LBUTTONUP = 0x0202
$gui = GUICreate("测试", 700, 600)
$edit = GUICtrlCreateEdit("你好这是一个测试哈哈",50,50,300,100)
GUISetState() ;显示窗口
GUIRegisterMsg($WM_SYSCOMMAND,"WM_SYSCOMMAND")
$wProcOld = GUIRegisterMsgEx($edit, "_MyWindowProc") ;窗口子类化
While 1
Sleep(100)
WEnd
Func WM_SYSCOMMAND($hWnd, $sMsg, $sWParam, $slParam)
Switch $sWParam
Case 61536;$SC_CLOSE
Exit
EndSwitch
EndFunc
Func GUIRegisterMsgEx($ctrID, $funcName) ;控件id,函数名
Local $wProcNew = DllCallbackRegister($funcName, "ptr", "hwnd;uint;long;ptr")
Local $wProcOld = _WinAPI_SetWindowLong(GUICtrlGetHandle($ctrID), $GWL_WNDPROC, DllCallbackGetPtr($wProcNew))
Return $wProcOld
EndFunc ;==>GUIRegisterMsgEx
Func _MyWindowProc($hWnd, $uiMsg, $wParam, $lParam)
Switch $uiMsg
Case $WM_LBUTTONUP
$sel = _GUICtrlEdit_GetSel($edit)
MsgBox(0,"","你选择了:"&StringMid(GUICtrlRead($edit),$sel+1,$sel-$sel))
EndSwitch
;向默认窗口进程传递未处理过的消息
Return _WinAPI_CallWindowProc($wProcOld, $hWnd, $uiMsg, $wParam, $lParam)
EndFunc ;==>_MyWindowProc 回复 11# annybaby
_GUICtrlEdit_GetSel(),大哥这个函数好给力。根据你的描述,我试验了下,可以实现判断是否选中文本、前面那个勾选的也行。
谢谢大哥。。。。{:face (293):} 回复 13# 风行者
左键弹起。。意思没懂,好好参考大哥你的代码看看、
谢谢大哥帮助。{:face (55):}
页:
[1]
2