ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年4月26日(金) 07:13

全ての表示時間は UTC+09:00 です




新しいトピックを投稿する  トピックへ返信する  [ 15 件の記事 ] 
作成者 メッセージ
投稿記事Posted: 2006年12月12日(火) 16:37 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
こんにちは。ゆちボンです。

EDITBOXで検索をしたいのですが、
どのメッセージをどんな風に送ればいいのかがわかりません。

あと、EDITBOXでカーソル座標を取得したいのですが、「何文字目」ではなく、
左上から横に何ドット(X)たてに何ドット(Y)を取得したいのですがどうすればいいのでしょうか?

現在、EDITBOXとGDIを使って色分けエディタを作っているので、
ぜひ知りたいです。
よろしくお願いします。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月12日(火) 22:59 
GetCaretPos関数で取得できます。
格納された座標はクライアント座標なので気をつけてください。


通報する
ページトップ
   
 記事の件名:
投稿記事Posted: 2006年12月13日(水) 17:15 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
> GetCaretPos関数で取得できます。
> 格納された座標はクライアント座標なので気をつけてください。
あ、そういう方法があったのですね!
ありがとうございます!!


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月20日(水) 17:46 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
すいません、もうひとつ教えてください。
EDITBOXで検索する際、送信するメッセージはなんですか?
「EM_」ってついていると思うのですが...


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月20日(水) 20:45 
オフライン

登録日時: 2005年5月31日(火) 18:51
記事: 473
お住まい: 新潟県
> すいません、もうひとつ教えてください。
> EDITBOXで検索する際、送信するメッセージはなんですか?
> 「EM_」ってついていると思うのですが...
皆さんがどうやっているのか分かりませんけど自分は、GetWindowText()関数でエディットボックスに設定されている文字列を取得し、その文字列に対し検索したい文字列を検索するようにしています。
独自に検索アルゴリズムを考えるのが面倒くさかったら標準装備されてるInStr(ですっけ?)とかいう関数があるのでそれを使うと簡単です。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月21日(木) 16:20 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
> 皆さんがどうやっているのか分かりませんけど自分は、GetWindowText()関数でエディットボックスに設定されている文字列を取得し、その文字列に対し検索したい文字列を検索するようにしています。
> 独自に検索アルゴリズムを考えるのが面倒くさかったら標準装備されてるInStr(ですっけ?)とかいう関数があるのでそれを使うと簡単です。
InStrでやると、選択したときに、ずれるんですよ。
何かよい方法があればお教えください。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月21日(木) 17:48 
オフライン

登録日時: 2005年5月31日(火) 18:51
記事: 473
お住まい: 新潟県
> InStrでやると、選択したときに、ずれるんですよ。
> 何かよい方法があればお教えください。
InStr関数の戻り値は1から始まるのでズレるんだと思います。戻り値を-1してみてその値が-1ならエラーになると考え直してください。

昔書いた文字列検索関数を見つけたのですが素晴らしく汚くてコメントも書いてないし実装したときの記憶も淡くなってて移植に手こずってます...。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月21日(木) 17:56 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
> InStr関数の戻り値は1から始まるのでズレるんだと思います。戻り値を-1してみてその値が-1ならエラーになると考え直してください。
>
> 昔書いた文字列検索関数を見つけたのですが素晴らしく汚くてコメントも書いてないし実装したときの記憶も淡くなってて移植に手こずってます...。
すいません、言い方を間違えました。
EDITBOXでは内部で「文字数」で扱っているのでずれます。
InStrはバイト数で返ってくるので...
だから、EM_GETSELを送るとずれたんだと思います。
着色は高速にしたいので...なにか言い方法があればお教えください。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月21日(木) 18:16 
オフライン

登録日時: 2005年5月31日(火) 17:14
記事: 231
お住まい: 茨城県
EM_FINDTEXTでどうでしょうか?以下のサイトが参考になるかもしれません。
http://yokohama.cool.ne.jp/chokuto/urawaza/message/


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月21日(木) 18:24 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
> EM_FINDTEXTでどうでしょうか?以下のサイトが参考になるかもしれません。
> http://yokohama.cool.ne.jp/chokuto/urawaza/message/
ありがとうございます。
でも、EDITBOXで使用できるのでしょうか?
今から試してみます。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月21日(木) 19:20 
オフライン

登録日時: 2005年5月31日(火) 18:51
記事: 473
お住まい: 新潟県
> すいません、言い方を間違えました。
> EDITBOXでは内部で「文字数」で扱っているのでずれます。
> InStrはバイト数で返ってくるので...
???
EDITBOXっていうのは自作したエディットボックスでしょうか???

普通のエディットボックスで以下のコードを実行した場合もズレますか?

EditBox1に対照文字列を入力して、EditBox2に検索文字列を入力。
CommandButton1かなにかを押したときに以下のコードが実行されるようにしてください。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月22日(金) 21:09 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
> EDITBOXっていうのは自作したエディットボックスでしょうか???
いえ、RADで投入できる普通のエディットボックスです。
着色は単純にDCを使って上から重ねるという単純な方法を
使用しようと思っているだけです。


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月22日(金) 22:36 
オフライン

登録日時: 2005年5月31日(火) 18:51
記事: 473
お住まい: 新潟県
> いえ、RADで投入できる普通のエディットボックスです。
なら、前も書きましたけどInStr関数の戻り値から-1にした数値を始点、InStr関数の戻り値+検索したい文字列の長さ-1を終点にEM_GETSELで選択するだけでズレはなくなると思うんですけど...。
ズレずにちゃんと選択されてるのは自分の環境だけなんでしょうか...?


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月22日(金) 22:46 
オフライン

登録日時: 2006年8月21日(月) 14:26
記事: 104
お住まい: 兵庫県
僕の環境でもちゃんと動いています。
これは、あるボタンを押したときに起こるイベントのコードです。
参考にしてください。
最近、文字列検索と文字列置換えの機能を追加したばかりです。

_________________
===============================
MyHomePage;; raiden.no.land.to/
===============================


通報する
ページトップ
 記事の件名:
投稿記事Posted: 2006年12月29日(金) 08:07 
オフライン

登録日時: 2006年5月02日(火) 16:27
記事: 154
7さん、雷電さん、ありがとうございます。
ちゃんとうごいています。

本当にありがとうございました。


通報する
ページトップ
期間内表示:  ソート  
新しいトピックを投稿する  トピックへ返信する  [ 15 件の記事 ] 

全ての表示時間は UTC+09:00 です


オンラインデータ

このフォーラムを閲覧中のユーザー: なし & ゲスト[46人]


トピック投稿:  可
返信投稿:  可
記事編集: 不可
記事削除: 不可
ファイル添付: 不可

検索:
ページ移動:  
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean