永发信息网

MFC 如何用2个按钮分别实现 编辑框中的光标向上移动一行和向下移动一行

答案:3  悬赏:30  手机版
解决时间 2021-03-01 19:43
MFC 如何用2个按钮分别实现 编辑框中的光标向上移动一行和向下移动一行
最佳答案
你是否可以用键盘,如果可以的话,可以直接模拟方向键的消息让光标移动。
否则就要用SetSel设置光标位置,前提是先计算出光标位置。
下面给出键盘的方法。如果要SetSel的方法,请追问。
假设你已经关联变量CEdit m_edit;
m_edit.SendMessage(WM_KEYDOWN, VK_UP, 0);
m_edit.SendMessage(WM_KEYUP, VK_UP, 0);//向上移动

m_edit.SendMessage(WM_KEYDOWN, VK_DOWN, 0);
m_edit.SendMessage(WM_KEYUP, VK_DOWN, 0);;//向下移动
全部回答
模拟键盘消息可以实现。
void CMyTest14Dlg::OnEnKillfocusEdit1() { // TODO: 在此添加控件通知处理程序代码 m_edit.GetSel(m_i4LastSeat,m_i4LastSeat); } void CMyTest14Dlg::OnBnClickedButtonUp() { // TODO: 在此添加控件通知处理程序代码 m_edit.SetFocus(); m_edit.SetSel(m_i4LastSeat,m_i4LastSeat,FALSE); ::SendMessage(m_edit.m_hWnd,WM_KEYDOWN,38,NULL); } void CMyTest14Dlg::OnBnClickedButtonDown() { // TODO: 在此添加控件通知处理程序代码 m_edit.SetFocus(); m_edit.SetSel(m_i4LastSeat,m_i4LastSeat,FALSE); int i4lines = m_edit.GetLineCount(); int i4Curr = m_edit.LineFromChar(); if (i4Curr + 1 < i4lines) { ::SendMessage(m_edit.m_hWnd,WM_KEYDOWN,40,NULL); } }
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
赛尔号斯诺溶洞在哪
()是对施工活动实行科学管理的重要手段,它
陕西省耀县董家河镇有没有西柳村啊?地图上怎
平板电脑网速慢,手机快,为什么
科学预测是什么?
单选题MilliegoestotheReadingClub________
如图所示,一小球沿竖直放置的光滑圆环形轨道
“反应剧烈程度”是什么意思?是反应速率吗?
投资方案年销售收入2300万元,年销售成本210
家里有颜伯龙的画想知道值多少钱
用香糟卤怎么做卤牛肉最好吃
苏州市哪里最繁华
【更重要的事】更重要的事作文
如何利用360将本电脑的D、E、F、G格式化
求钢之炼金术师FAop5歌词中文意思
推荐资讯
实况足球2010如何修改操作键
全家福食品蔬菜水果店怎么去啊,有知道地址的
贷款为什么用户口本
在杭州大人送小孩上学路程有4,5公里算远吗?
我的踏板车之前非常耗油,5L/100KM了,吓人呀
乐卡汽车装饰部在哪里啊,我有事要去这个地方
处州人家在什么地方啊,我要过去处理事情
公积金利息入帐时间
软件linux服务器一般需要安装哪些软件
女人梦见麒麟
【崛起的拼音】猩球崛起2拼音翻译
村夫烤鱼在哪里啊,我有事要去这个地方
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?