能力值:
( LV2,RANK:10 )
|
-
-
2 楼
C++ 不过关~~~ 写不出来....delphi没装.
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
也挺简单的~~~ 但是c++就......
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
终于把C++的写出来了
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
我这只小菜鸟终于完成了艰巨的任务.... [QUOTE=]CPoint point;
CRect rect;
GetWindowRect(&rect);
HWND hwnd=::GetFocus();
HWND pHwnd=::GetForegroundWindow();
CString cs;
AttachThreadInput(GetCurrentThreadId(),::GetWindowThreadProcessId(pHwnd,NULL),TRUE); ::GetCaretPos(&point);
::ClientToScreen(hwnd,&point);
if(pHwnd!=GetSafeHwnd())
{
AfxGetMainWnd()->SetWindowPos(&wndTopMost,point.x+5,point.y+15,rect.left,rect.bottom,SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
cs.Format("%d",hwnd);
SetWindowText("当前窗口句柄:"+cs);
cs.Format("%d %d",point.x,point.y);
CWnd::GetDlgItem(IDC_STATIC)->SetWindowText("当前点:"+cs);
ShowWindow(SW_SHOW);
UpdateData();[/QUOTE]
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
谢谢楼上这位热心的朋友,非常感谢您的热情帮忙。但您给出的方法正是我现在的方法,还是用GetCaretPos,但这个API明显是有缺陷的,至少在IE7里是完全不能用的(返回0,0)。
我给的这个别人的程序,反汇编后,发现他根本没有用GetCaretPos,但他基本上可以在任何起方都取得到光标位置,包括IE7。
|
能力值:
( LV13,RANK:530 )
|
-
-
8 楼
HWND __cdecl sub_44DAD4()
{
HWND result; // eax@1
struct tagGUITHREADINFO pgui; // [sp+8h] [bp-34h]@1
POINT pt; // [sp+0h] [bp-3Ch]@2
pgui.cbSize = 48;
GetGUIThreadInfo(0, &pgui);
result = pgui.hwndCaret;
if ( pgui.hwndCaret )
{
pt.x = pgui.rcCaret.right;
pt.y = pgui.rcCaret.bottom;
ClientToScreen(pgui.hwndCaret, &pt);
Controls__TControl__SetLeft();
result = (HWND)Controls__TControl__SetTop();
}
return result;
}
Hey-rayed.
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
站在高人肩上就是不一样 代码备份一下
[QUOTE=] HWND hwnd;
GUITHREADINFO pg;
POINT point;
pg.cbSize=48;
::GetGUIThreadInfo(NULL,&pg);
hwnd=pg.hwndCaret;
if (pg.hwndCaret)
{
point.x=pg.rcCaret.right;
point.y=pg.rcCaret.bottom;
::ClientToScreen(pg.hwndCaret,&point);
AfxGetMainWnd()->SetWindowPos(&wndTopMost,point.x,point.y,0,0,SWP_NOACTIVATE|SWP_NOSIZE|SWP_SHOWWINDOW);
}[/QUOTE]
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
谢谢楼上的两位朋友,真的非常感谢!解决了这个一直困扰我的问题。
PS:KYLE XY的前面部分挺好看的。 :)
|
|
|