ページ 11

行番号機能

Posted: 2007年1月24日(水) 22:27
by 雷電
アナウンスにあったやつを改造しているのですが、なかなか上手くいきません。
ABのエディターのような感じにしたいのですが、どうすればいいでしょうか?

Re: 行番号機能

Posted: 2007年1月24日(水) 22:44
by 7
> アナウンスにあったやつを改造しているのですが、なかなか上手くいきません。
どう上手くいかないんでしょう?
僕が面倒臭がって実行しないのも悪いんですけど、もっとはっきりと書いてください。

どういう改造をしようとしているんでしょうね?

Posted: 2007年1月25日(木) 18:33
by 雷電
ABのエディターの行番号は、エディットボックスの左についていますが、
改造しているのは、右側。要は、書くところにまで進出しているということです。

また、書体を変えるようにしているので、それにもあわせて考えなくてはいけないと思っています。
でもなかなか上手くいかないというのが現状です。

Posted: 2007年1月25日(木) 19:35
by 7
> ABのエディターの行番号は、エディットボックスの左についていますが、
> 改造しているのは、右側。要は、書くところにまで進出しているということです。
???

行番号を表示する領域を左側から右側に変えたいってことでしょうか?
左側の行番号の領域から文字列を描写する右側の領域にまで行番号が飛び出してしまっているのを直したいってことでしょうか?
行番号を表示する領域は肝心な話とは関係なく、右側の文字列を描写する領域を作りたいっていうことでしょうか?

> また、書体を変えるようにしているので、それにもあわせて考えなくてはいけないと思っています。
一体なんの書体を変えようとしているんでしょう? 行番号の書体ですか?

よく分からないんですけど...。

Posted: 2007年1月25日(木) 21:28
by 雷電
こんな感じになってしまっています。。。
http://raiden.no.land.to/soft/AME.zip

何かがおかしいのだと思います。
※ウイルスは混入されていません

Posted: 2007年1月25日(木) 22:28
by 7
元のコードを実行した訳じゃないのでよく分からないんですけど、グローバル変数 LeftMargin に値が代入されてないんじゃないでしょうか?
行番号がエディットボックスの外側に描写されてるので LeftMargin0 か大きすぎるような気がします。

以下のコードは実行されてますか?

コード: 全て選択

Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
    Dim hdc As HDC
    Dim buf[9] As DWord

    hEdit=GetDlgItem(hMainWnd, EditBox1)
    SetFocus(hEdit)
    hdc=GetDC(hEdit)
    GetCharWidth32(hdc, Asc("0"), Asc("9"), buf)
    LeftMargin=buf[0]*4+3
    ReleaseDC(hEdit, hdc)
End Sub
行番号領域の描写がエディットボックスの外側に描写されない、とも言えますけど...。

Posted: 2007年1月26日(金) 18:12
by 雷電
デバッグしてみると、LeftMarginは35でした。
bufは全て8。

ウィンドウメッセージは次のように処理しています。
問題ありますか?