ページ 11

改行できません。間違いを直していただけませんか?

Posted: 2005年11月17日(木) 20:32
by 矢田裕康
エディットボックスに改行して下の様に表示したいです。
 ABCD=10
 EFG =20

Sub MainWnd_CmdBtn1_Click()
Dim lpByte As BytePtr
Dim buf As String
Dim CRLF As String
Dim a As Long

CRLF=Ex"\r\n"
a=10
buf="ABCD="+Str$(a)+CRLF
buf=buf+"EFG ="+Str$(a*2)

lpByte=malloc(100)
lstrcpy(lpByte,buf)

SetDlgItemText(hMainWnd,EditBox1,buf)

free(lpByte)
End Sub
メッセージボックスには改行できます
CRLF=Chr$(13)+Chr$(10)にしても改行できません
N88で作ったプログラムを改良して、メニューとボタン付のウィンドウで、5行ほど表示する計算プログラムを作りたいです。よろしくお願いいたします。

Re: 改行できません。間違いを直していただけませんか?

Posted: 2005年11月17日(木) 20:42
by Mario2
ウィンドウプロパティでEditBox1の「複数行」・「改行を許可」にチェックは入っているでしょうか?まず、チェックが入っているか確認してみてください。
あと、この「lpByte」は何の目的で使っているのでしょうか?何も使っていない場合は、以下のようにできます。

コード: 全て選択

Sub MainWnd_CmdBtn1_Click()
Dim buf As String
Dim CRLF As String
Dim a As Long

CRLF=Ex"\r\n"  
a=10
buf="ABCD="+Str$(a)+CRLF
buf=buf+"EFG ="+Str$(a*2)

SetDlgItemText(hMainWnd,EditBox1,buf)

End Sub
あと、もう少しすっきりできます。

コード: 全て選択

Sub MainWnd_CmdBtn1_Click()
Dim buf As String
Dim a As Long

a=10
buf="ABCD="+Str$(a)+Ex"\r\n"+"EFG ="+Str$(a*2)

SetDlgItemText(hMainWnd,EditBox1,buf)

End Sub
見やすさで考えると、上のコードは見にくいですけど…。

Re: 改行できません。間違いを直していただけませんか?

Posted: 2005年11月17日(木) 21:11
by hira
見やすさで考えると、上のコードは見にくいですけど…。
こうすると少しは見やすくなるかもしれません。

コード: 全て選択

Sub MainWnd_CmdBtn1_Click()
Dim buf As String
Dim a As Long

a=10
buf=ZeroString(100)
wsprintf(buf,Ex"ABCD=%d\r\nEFG =%d",a,a*2)

SetDlgItemText(hMainWnd,EditBox1,buf)

End Sub
やっぱり見にくいか…(^^;

改行できません。間違いを直していただけませんか?

Posted: 2005年11月17日(木) 21:29
by 矢田裕康
有難うございました。「複数行」にチェック 全く気が付きませんでした。
チェックしてコンパイル仕直したら改行できました。
メモリは確保しなくても良いということですね。
丸2日悩んでしまいました。うまく出来たら会社で材料計算に使ってもらおうと思っています。