关于文本框和程序启动时怎么样得到的CAPS LOCK情况?

skydqboy 2003-04-11 09:47:02
我想在任务栏上显示当前文本框(富文本框)中光标所在的行和列,那行和列怎么样得到啊?
还有一个是在此程序启动时怎么样判断CAPS LOCK是否已经按下,这样在程序启动时能识别出来??
...全文
68 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
skydqboy 2003-04-11
  • 打赏
  • 举报
回复
void __fastcall TForm1::RichEdit1MouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
AnsiString column = SendMessage(RichEdit1->Handle,EM_LINEFROMCHAR,-1,0)+1; AnsiString row = SendMessage(RichEdit1->Handle,EM_LINEINDEX,-1,0)+1;
StatusBar1->SimpleText="行: "+column+" 列: "+row;
}

这好像也不行啊.
xc2927 2003-04-11
  • 打赏
  • 举报
回复
应该有获得Cap Lock的API,查查,告诉你
xuv2002 2003-04-11
  • 打赏
  • 举报
回复
在RichEdit1的OnMouseDown 和 OnKeyDown 事件里面分别
写上以上代码试试
skydqboy 2003-04-11
  • 打赏
  • 举报
回复
AnsiString column = SendMessage(RichEdit1->Handle,EM_LINEFROMCHAR,-1,0)+1; AnsiString row = SendMessage(RichEdit1->Handle,EM_LINEINDEX,-1,0)+1;
StatusBar1->SimpleText="行: "+column+" 列: "+row;

这个好像不对啊,不能跟这着变化啊,还有那个列只往上增加不会减少的,还有什么方法在任务栏上显示?
xuv2002 2003-04-11
  • 打赏
  • 举报
回复
第一个问题简单
AnsiString column = SendMessage(RichEdit1->Handle,EM_LINEFROMCHAR,-1,0)+1; //+1表示第一行为1 ,以下相同
AnsiString row = SendMessage(RichEdit1->Handle,EM_LINEINDEX,-1,0)+1;
第二个不知道
BCB 2003-04-11
  • 打赏
  • 举报
回复
第二个问题API能解决,让别人先答吧
skydqboy 2003-04-11
  • 打赏
  • 举报
回复
行啊好像能用了只要写一个OnMouseDown OnKeydown 就可以了.(对字母)
但老大啊,我写一个汉字,就要占加2啊,而来应该加1的啊,这怎么办??
xuv2002 2003-04-11
  • 打赏
  • 举报
回复
或是这样
在RichEdit1 的OnMouseUp,OnMouseDown OnKeydown OnKeyup
都写
AnsiString column =RichEdit1->CaretPos.y+1;
AnsiString row = RichEdit1->CaretPos.x+1;
StatusBar1->SimpleText="行: "+column+" 列: "+row;
适合VB+ADO+ACCESS初学者。 设计窗体的详细操作步骤 房产信息管理系统是以VB为开发平台、ADO和SQL为数据库引擎和操作语言、ACCES为数据库而开发的集房产信息添加、修改、删除、查找功能于一体的房产信息管理系统。 本系统由1个主窗体和3个子窗体构成,分别为主窗体、添加房产信息窗体、修改房产信息窗体、查找房产信息窗体。 主窗体 界面及功能: 包含主菜单、工具条和信息显示区及状态栏等元素。主菜单包含了系统的所有功能操作,工具条列出了常用的功能,信息显示区显示了数据库中的房产信息,状态栏显示了数据库中的房产信息总量、Caps Lock灯状态、Num Lock灯状态和实时的日期、时间等。 详细设计: 1. 窗体启动过程:Main入口->检查是否重复启动程序->建立全局数据库连接->显示主窗体; 2. 窗体退出过程:关闭全局数据库连接->检查子窗体是否被加载并卸载已加载子窗体->卸载主窗体; 3.“添加房产信息”功能:加载“添加房产信息”窗体; 4.“修改房产信息”功能:检查数据库是否为空->检查Listview中是否有信息被选中->加载“修改房产信息”窗体; 5.“删除房产信息”功能:检查数据库是否为空->检查Listview中是否有信息被选中->确认删除选中的房产信息->搜索选中的房产信息并执行删除->调用House_Show更新主窗体信息显示区; 6.“查找房产信息”功能:检查数据库是否为空->加载查找房产信息窗体; 7.“显示全部信息”功能:调用House_Show刷新主窗体信息显示区内容。 “添加房产信息”窗体 界面及功能: 包含了五个文本框用于填写要添加的房产信息。 详细设计: 填写房产信息->点击添加按钮->调用KeyCheck进行关键字唯一性验证->调用Check检查输入的房产信息->调用AddHouse添加房产信息到数据库并调用House_Show更新主窗体信息显示区。 “修改房产信息”窗体 界面及功能: 同房产信息添加窗体一样,包含用于修改房产信息的五个文本框。 详细设计: 添加主窗体信息显示区内选中的房产信息到文本框->修改房产信息->点击修改按钮->调用Check检查输入的房产信息->调用EditHouse修改数据库中的房产信息并调用House_Show更新主窗体信息显示区。 “查找房产信息”窗体 界面及功能: 包含两个单选框和两个文本框用于确认查找依据和输入查找内容。 详细设计: 选择查找依据并输入查找内容->点击查找按钮->调用Check检查输入的查找内容->调用FindHouse1或FindHouse2进行查找并将结果显示到主窗体信息显示区。

604

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder VCL组件使用和开发
社区管理员
  • VCL组件使用和开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧