顺便问一下如何设置光标的位置,我用SetCursorPos()为什么不起作用。最要能给我一个现成的例子
谢谢了
6 个解决方案
#1
SetCursorPos
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPos(int X,int Y);
参数:
X:指定光标的新的X坐标,以屏幕坐标表示。
Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPos(int X,int Y);
参数:
X:指定光标的新的X坐标,以屏幕坐标表示。
Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
#2
那获取当前光标位置那
GetCursorPos()?
怎么用阿?
GetCursorPos()?
怎么用阿?
#3
不知道你是指在什么控件里的光标,如果是在文本框或rich edit中,可以用EM_SETSEL消息试试。
::SendMessage(hWnd, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);
::SendMessage(hWnd, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);
#4
LZ没有MSDN?
#5
得到光标的行数、列数,hFocus为edit或richedit的HWND
int LineIndex,LineNum,SelStar,ColNum;
LineNum = ::SendMessage(hFocus,EM_LINEFROMCHAR,(WPARAM)-1,0);//行数
LineIndex = ::SendMessage(hFocus,EM_LINEINDEX,(WPARAM)-1,0);
SelStar = (int)LOWORD(::SendMessage(hFocus,EM_GETSEL,NULL,NULL));
ColNum = SelStar - LineIndex;//列数
int LineIndex,LineNum,SelStar,ColNum;
LineNum = ::SendMessage(hFocus,EM_LINEFROMCHAR,(WPARAM)-1,0);//行数
LineIndex = ::SendMessage(hFocus,EM_LINEINDEX,(WPARAM)-1,0);
SelStar = (int)LOWORD(::SendMessage(hFocus,EM_GETSEL,NULL,NULL));
ColNum = SelStar - LineIndex;//列数
#6
Mr_Stone :是在CEditView中
#1
SetCursorPos
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPos(int X,int Y);
参数:
X:指定光标的新的X坐标,以屏幕坐标表示。
Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
函数功能:该函数把光标移到屏幕的指定位置。如果新位置不在由 ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内。
函数原型:BOOL SetCursorPos(int X,int Y);
参数:
X:指定光标的新的X坐标,以屏幕坐标表示。
Y:指定光标的新的Y坐标,以屏幕坐标表示。
返回值:如果成功,返回非零值;如果失败,返回值是零,若想获得更多错误信息,请调用GetLastError函数。
备注:该光标是共享资源,仅当该光标在一个窗口的客户区域内时它才能移动该光标。
#2
那获取当前光标位置那
GetCursorPos()?
怎么用阿?
GetCursorPos()?
怎么用阿?
#3
不知道你是指在什么控件里的光标,如果是在文本框或rich edit中,可以用EM_SETSEL消息试试。
::SendMessage(hWnd, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);
::SendMessage(hWnd, EM_SETSEL, (WPARAM)pos, (LPARAM)pos);
#4
LZ没有MSDN?
#5
得到光标的行数、列数,hFocus为edit或richedit的HWND
int LineIndex,LineNum,SelStar,ColNum;
LineNum = ::SendMessage(hFocus,EM_LINEFROMCHAR,(WPARAM)-1,0);//行数
LineIndex = ::SendMessage(hFocus,EM_LINEINDEX,(WPARAM)-1,0);
SelStar = (int)LOWORD(::SendMessage(hFocus,EM_GETSEL,NULL,NULL));
ColNum = SelStar - LineIndex;//列数
int LineIndex,LineNum,SelStar,ColNum;
LineNum = ::SendMessage(hFocus,EM_LINEFROMCHAR,(WPARAM)-1,0);//行数
LineIndex = ::SendMessage(hFocus,EM_LINEINDEX,(WPARAM)-1,0);
SelStar = (int)LOWORD(::SendMessage(hFocus,EM_GETSEL,NULL,NULL));
ColNum = SelStar - LineIndex;//列数
#6
Mr_Stone :是在CEditView中