急问题!(100分)

  • 主题发起人 主题发起人 zhengyun
  • 开始时间 开始时间
Z

zhengyun

Unregistered / Unconfirmed
GUEST, unregistred user!
我把屏幕取词的功能实现了,但不知道在那里可以限制取的词的范围!还有就是怎么样让这个屏幕取词的窗体永远位于其他窗体的前面呢?请诸位高手帮忙!
 
[:)]等待,不会。
 
把屏幕取词的功能实现了!高手[:D]
 
可否把屏幕取词的代码贴出来共享?:)呵呵
 
“限制取词范围”什么意思?
第二个问题,可以设这个窗体的FormStyle = fsStayOnTop
 
我的意思是:我把屏幕取出的词限制两个字,也就是就让它取两个字;如果遇到逗号或什么标点符号都不可以显示标点符号!我就是不知道在那个地方写这些代码,希望高手帮助我!
 
那位高手可以帮小弟这个忙,我在这里谢谢你们!
 
我的确切意思是:鼠标获得的是一行文字;我想得到的是一个单词;不知道怎么做了!
 
{计算显示文字的屏幕坐标}
poText.x := poDC.x + poOri.x;
poText.y := poDC.y + poOri.y;
{获取当前鼠标的坐标}
GetCursorPos(poMouse);
{如果对齐属性是居中}
if (GetTextAlign(theDC) and TA_UPDATECP) <> 0 then
begin
GetCurrentPositionEx(theDC, @poOri);
poText.x := poText.x + poOri.x;
poText.y := poText.y + poOri.y;
end;
{显示文字的长和宽}
GetTextExtentPoint(theDC, Str, Count, Size);
{鼠标是否在文本的范围内}
if (poMouse.x >= poText.x) and (poMouse.x <= poText.x + Size.cx)
and (poMouse.y >= poText.y) and (poMouse.y <= poText.y + Size.cy)
then
begin
{最多取MaxStringLen个字节}
dwBytes := min(Count, MaxStringLen);
{拷贝字符串}
CopyMemory(@(pShMem^.Text), Str, dwBytes);
{以空字符结束}
pShMem^.Text[dwBytes] := Chr(0);
{发送WM_MOUSEPT成功取词的消息给主程序}
postMessage(pShMem^.hProcWnd, WM_MOUSEPT, fTextOutA, 2);
{如果输出的不是Tab键,而且是精确匹配的}
if (string(pShMem^.Text)<>#3)and(not faint) then
pShMem^.bCanSpyNow := False;{取词结束}
end;
end;
 
这些代码需要进行改动!需要把矩形框改成是一个文字的窗体!
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
890
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部