2009-10-24 58 views
-1

例如,假设我在编辑以下文本(\ t是针对制表符,它不是文本) '\ t \ t \ t某个文本...' 并且我的输入键盘位置正好在'S'之前是没有选定的文本) ,我想在'S'之前获得标签数量(在这种情况下,它是3)如何从某些文本输入中获取文本缩进(制表符)?

那么如何获得使用Win32 API的标签数?

p.s. 也许一些函数来获取整个当前行(然后解析文本)?

编辑: 所以我希望我的程序(即在后台运行,并没有GUI)来确定当前活动的任何文本编辑器中当前活动行的选项卡数(我在编辑中) 。

+3

你能解释一下这与你添加到这个问题中的任何标签有什么关系吗?如果你正在编辑文本,你在编辑什么? Win32 API如何适应这一点? C#,C++和Java与它有什么关系?在我看来,如果你有一个包含文本的字符串,在任何编程语言中,计算紧接在感兴趣索引之前的选项卡是一件简单的事情。 – 2009-10-24 23:52:55

+0

C#,C++和Java开发人员通常使用Win32 API来获取当前活动窗口,插入位置或当前活动行。所以我希望我的程序(即在后台运行并且没有GUI)确定当前活动(正在编辑)的任何文本编辑器中当前活动行的选项卡数量。 – dede 2009-10-25 00:01:37

+0

@Greg:为什么投票下来? – dede 2009-10-25 00:27:41

回答

1

对于某些应用程序(如标准的Windows记事本),可以从其他应用程序执行此操作。记事本本身在可调整大小的窗口内大于Win32 "Edit" control,因此所有常规的Win32编辑控件消息都可用于获取实际文本和插入位置等。

但是,在任何Windows文本编辑器的一般情况下,应用程序不需要使用Win32 Edit控件进行文本编辑(实际上,这样做只是重新创建记事本)。没有标准的Win32 API方法来找出脱字符指向的位置,因为应用程序可以自由地以任何它认为合适的方式在屏幕上绘制文本(并且会将该文本内部存储在应用程序中,而没有相应的API供您使用呼叫)。

0

最好的Java编码习惯是尽可能使你的代码操作系统平台独立。如果您试图实现本质上与Windows相关的实用程序(例如,严重依赖于Win32 API),最好使用C++或C#而不是Java。

相关问题