ページ 1 / 1
EditBoxに特定の文字を挿入
Posted: 2006年10月20日(金) 11:23
by ゲスト
まるで分かりません。
誰か教えて下さい。お願いします。
Posted: 2006年10月20日(金) 13:02
by Indigo Visualist
「まるで分りません」ではこちらもまるで分りません。
どこが理解できないのか、何を使って調べたのか、具体的に書いて下さい。
あなたのメッセージからは「一から十まで懇切丁寧に教えて下さい」という事しか読み取れませんし、
そういった質問方法は回答者にとって失礼です。
無記名ですし、「ABのプログラミング方法すら分らない」と取られても仕方ありません。
一応最低限のことが分っていると仮定して、GetWindowTextでエディットボックスの文字列を受け取り、
文字列操作関数で希望通りの操作をしたあと、SetWindowTextでその文字列をセットする、という流れになるでしょう。
Posted: 2006年10月20日(金) 17:25
by 7
> 「まるで分りません」ではこちらもまるで分りません。
> どこが理解できないのか、何を使って調べたのか、具体的に書いて下さい。
> あなたのメッセージからは「一から十まで懇切丁寧に教えて下さい」という事しか読み取れませんし、
> そういった質問方法は回答者にとって
失礼です。
> 無記名ですし、「ABのプログラミング方法すら分らない」と取られても仕方ありません。
そうなんですけど、初心者というかプログラミング初めての方は仕方ないんじゃないでしょうか。
ActiveBasicの良い所の一つは、ユーザーが
やたら優しいことだと思っていますし、自分が昔優しくしてもらったので優しくしようと一応、心がけています。
まぁ
マナーの問題なんでしょうけどね...。
自分の場合は、どんな質問方法でも特になんとも思わないんですけど、成長が感じられないとちょっと、なんか感じますね。
ということでエディットボックスに文字列を挿入する方法。
過去に自分がここの掲示板に置いて行ったコードを引っ張ってきてちょっと弄くりました。
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
Function InText(ByVal hWnd As HWND,ByVal lpszReplace As LPCSTR,ByVal bUndo As BOOL) As LRESULT
InText=SendMessage(hWnd,EM_REPLACESEL,bUndo As WPARAM,lpszReplace As LPARAM)
End Function
' 使い方
Dim hEdit As HWND
hEdit=GetDlgItem(hMainWnd,EditBox1)
' 文字列を挿入、あるいは置換え
InText(hEdit,"Insert",TRUE)
Posted: 2006年10月21日(土) 13:14
by Indigo Visualist
すみません、少し出しゃばりすぎたようです。
先にプレビューしようとしたら間違って送信を押してしまい、そのままになってしまいました。
僕も優しくありたいとは思うんですが、最低限度というのもありますよね?
>そうなんですけど、初心者というかプログラミング初めての方は仕方ないんじゃないでしょうか。
逆に言えば、「自分はAB初心者です」と一言でも書いてあれば、ああまで厳しくは言わなかったと思います。
それすら言わないのだから、本当に優しくして欲しいという気持ちがあるのかと、疑問に思ってしまって。
重ね重ね、大変失礼しました。
Posted: 2006年10月21日(土) 14:25
by Mario2
こんなのにコメントする自分はどうかと思うのですが・・・・
やっぱり、初心者には初心者らしく、質問する際は
・したいこと
・試してみたこと
・自分で書いた、(上手くいかない)ソースがあれば、それを出す
・できれば丁寧口調で
ってことをしてくれれば答える側としても答えがいがありますね。
一般的に嫌われると思われる質問は
・命令口調。
・自分で努力もせず、全部他人任せ。
・サンプルソースを提供して欲しいと連発する人。
とかでしょうか。こういう質問者は嫌われるかと。
・・・・・・と、言ってみたものの、結局は答える側が質問文をどう受け取るか、ですね。
できれば、質問者はできるだけ自分の質問の解決となるものを提供する。回答者はそれにそってアドバイス&回答をする。ってのが望まれるのかなぁ。
長文&身勝手な発言&質問と無関係な内容、大変失礼しました。m(_ _)m
Posted: 2006年10月21日(土) 15:48
by tak
この流れに便乗して失礼します (^^;
ちょっと長いので、前置きと結論を分けて書くことにしました。 [ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]
僕は昔、一時期ネット上でも現実でも酷い時期がありまして。
いわゆる反抗期みたいなものなのかな、ちょっと事情が特殊ですが。
まぁ、僕の場合はメールでやらかしちまってたんですね。掲示板ではなくて。
事務的な連絡を除いて、当然、百通出せども百通とも返信無く。
それに合わせて、現実世界でも一人だけ浮いていました。(今も違う意味で浮きっぱなしですが:-p)
しかし、ある方(それなりに有名な方です)にメールを出したら、初めてちゃんとした返信を貰えたんです。
しかも強いお叱りの感想付きで。(先の Indigo Visualist 様以上にキツい口調でした)
その返信には言葉遣いやネット独特のマナー(ネチケット)など、細かい改善点が網羅されていました。
また、送信する前にもう一度読み直して推敲することも勧められました。
その一通の返信のおかげで、今の僕がいます。
少し態度を改善するだけで、たくさんの方とお話しすることができるようになりました。
いくらネット上のマナーとはいえ現実でも通じるところがありますから、人から相手にされなくなることも少なくなりました。
今は、ネット上はおろか現実でもこのように注意してくれる人が少なすぎると思います。(かといって、昔は多かったのかと訊かれると答えに詰まりますが)
ですから件の Indigo Visualist 様みたいな書き込みを見ると、そこはかとなく好感を持てます。
単なる罵倒や荒らしは論外ですが。
マナーの改善が必要なところはきっちりと注意することができる人が増えたらいいなと思う今日この頃。
Posted: 2006年10月22日(日) 11:24
by GUEST
SetWindowText(GetDlgItem(hMainWnd,EditBox1),"文字")
上で文字を出す事は出来ましたが、複数行の場合はどのように変えればいいかわかりません。どのようにすればいいのですか?
初心者なので質問攻めですいません。
「まるで分かりません」と完全に分からないような質問をしてしまい、本当に申し訳ありません。
Posted: 2006年10月22日(日) 12:43
by 7
挿入については解決したんでしょうか?
一応回答しておいたんですけど...。
> SetWindowText(GetDlgItem(hMainWnd,EditBox1),"文字")
> 上で文字を出す事は出来ましたが、複数行の場合はどのように変えればいいかわかりません。どのようにすればいいのですか?
文字列の中に「改行」を表すを文字を入れておけばオーケーです。改行コード。
コード: 全て選択
' SetDlgItemText(hMainWnd,EditBox1,Ex"一行目\r\n二行目")
SetWindowText(GetDlgItem(hMainWnd,EditBox1),Ex"一行目\r\n二行目")
他にもやり方は有るんですけど、初心者さんということでEx表記で作る文字列にしてみました。
ダブルコーテーションの前に
Exを付けて、ダブルコーテーションの中で
\r\nを書けば改行されます。
Posted: 2006年10月23日(月) 18:10
by GUEST
複数行の文字の挿入はできましたが、(7さん有難う御座います)
「今日は|寒い。」(|はカーソル部分)の|の所に「とても」を挿入しようとしたのですが、うまくいきません。
調べていて、↓を見つけてにゅうりょくしたのですが、入力されません。
SendMessage(hEdit,EM_REPLACESEL,TRUE,"test")
こちらの入力ミスなんでしょうか。
Posted: 2006年10月23日(月) 18:16
by MML
> 複数行の文字の挿入はできましたが、(7さん有難う御座います)
> 「今日は|寒い。」(|はカーソル部分)の|の所に「とても」を挿入しようとしたのですが、うまくいきません。
> 調べていて、↓を見つけてにゅうりょくしたのですが、入力されません。
> SendMessage(hEdit,EM_REPLACESEL,TRUE,"test")
>
> こちらの入力ミスなんでしょうか。
SendMessage(hEdit,EM_REPLACESEL,TRUE,"test")
でいいんですが、まず、「エディタ」のハンドルを取得しましたか?
していないと意味がありません。
そのあと、コンパイルしました?
僕もたまに忘れているんですが。。。
Posted: 2006年10月23日(月) 19:09
by GUEST
ハンドル・コンパイルは大丈夫なはずなんですが、まだ表示されません・・・
ハンドルは「hMainWnd」です。[/b]
Posted: 2006年10月23日(月) 19:43
by 7
> ハンドルは「hMainWnd」です。[/b]
???
ウィンドウに文字列を挿入しようとしても恐らくダメだと思います。(タイトル名に挿入されるのか?)
エディットボックスに文字列を挿入したいなら指定すべきハンドルはエディットボックスのハンドルです。
コード: 全て選択
SendDlgItemMessage(hMainWnd,EditBox1,EM_REPLACESEL,TRUE,"test")
Posted: 2006年10月23日(月) 19:47
by GUEST
こちらの勘違いのようです。うーん、恥ずかしい・・・
ゆちボンさん、7さん有難う御座います。
[/b]がなぜ出たのかは分かりません。