ページ 11

(5.0で)abdev.exe、(4.xx)でProjectEditor.exeみたいな色分け

Posted: 2006年8月24日(木) 11:36
by MML
こんにちは。ゆちボンです。質問なんですが、
(5.0で)abdev.exe、(4.xx)でProjectEditor.exeの色分けみたいなことを
プログラムでやりたいんですが、
いまいちわかりません。
リッチエディタというやつを使えばいいとは聞いたこともあるんですが、
ぜんぜん意味がわからなくて困ってます。
誰かわかる方、教えていただけないでしょうか?

Posted: 2006年8月24日(木) 20:12
by C1000
同じような質問が前にあったので書いておきます。
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1

二つ目のトピック
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1

Posted: 2006年8月25日(金) 08:49
by MML
C1000さん、ありがとうございます!!
よくわかりました。

ショートカットキーなど、、

Posted: 2006年8月25日(金) 12:36
by MML
質問なんですが、、、
メニューのショートカットキーを
再現するにはどうしたらいいでしょうか?

あと、ChooseColorの使い方はどうするんですか?
構造体とかみたんですけど、いまいちならなくて、、、

Posted: 2006年8月25日(金) 19:21
by Toshi
> メニューのショートカットキーを
> 再現するにはどうしたらいいでしょうか?

一般的には、"ファイル(&F)" のように括弧で & とショートカット キーにしたいアルファベットを挟みます。
すると、実際のメニューでは "ファイル(F)" と下線付きで表示され、ショートカット キーが有効になります。

> あと、ChooseColorの使い方はどうするんですか?
> 構造体とかみたんですけど、いまいちならなくて、、、

コード: 全て選択

Dim CustomColors[ELM(16)] As DWord
Dim CC As CHOOSECOLOR
With CC
	.lStructSize=Len(CC)
	.lpCustColors=VarPtr(CustomColors)
End With

ChooseColor(CC)
このコードでダイアログが表示されます。
選択された色は CC.rgbResult に格納され、
ユーザーが作成した色は CustomColors 配列に格納されています。

Posted: 2006年8月28日(月) 11:05
by MML
Toshiさん、こんにちは。
> > メニューのショートカットキーを
> > 再現するにはどうしたらいいでしょうか?
>
> 一般的には、"ファイル(&F)" のように括弧で & とショートカット キーにしたいアルファベットを挟みます。
> すると、実際のメニューでは "ファイル(F)" と下線付きで表示され、ショートカット キーが有効になります。
その方法ではなくと、「Ctrl + A」みたいな方法です

Posted: 2006年8月28日(月) 19:34
by Toshi
すみません、意味を取り違えてしまいました。
任意のキーの組み合わせが押されたら何か処理をさせたいということでしょうか。

Ctrl+A なら、WM_KEYDOWN が飛んできたときに
キーが A で、なおかつ Ctrl キーも一緒に押されていたのであれば処理をさせる、という流れになります。
RAD の場合はこうなります。

コード: 全て選択

Sub MainWnd_KeyDown(KeyCode As Long, flags As Long)
	If KeyCode=Asc("A") And GetKeyState(VK_CONTROL)<0 Then
	'何か
	End If
End Sub
もし Ctrl+B, Ctrl+C, Ctrl+D などといったショートカットをいくつも作りたい場合は、

コード: 全て選択

Sub MainWnd_KeyDown(KeyCode As Long, flags As Long)
	If GetKeyState(VK_CONTROL)<0 Then
		Select Case KeyCode
			Case Asc("A")
				'何か
			Case Asc("B")
				'何か
			Case Asc("C")
				'何か
		End Select
	End If
End Sub
とすることも出来ますし、
http://members.at.infoseek.co.jp/teflon ... ix_02.html
こちらのアクセラレータ テーブルを使うことも出来ます。

Posted: 2006年9月01日(金) 05:04
by ケースケ
エディットボックスにフォーカスがあるとき、KeyDownイベントは飛んでこなかったと思うので、私はキー入力を調べる専用のマルチスレッドで対応しました。

(リッチエディットの場合どうなるのか知らないので、関係無かったら無視してください)

Posted: 2006年9月01日(金) 20:16
by 7
こういう技術、なんて言うんですっけ???
最近全くプログラミングしないので用語も忘れてしまいました...。

過去ログ検索中......

サブクラス化!?

Posted: 2006年9月02日(土) 00:18
by NoWest
> Toshiさん、こんにちは。
> > > メニューのショートカットキーを
> > > 再現するにはどうしたらいいでしょうか?
> >
> > 一般的には、"ファイル(&F)" のように括弧で & とショートカット キーにしたいアルファベットを挟みます。
> > すると、実際のメニューでは "ファイル(F)" と下線付きで表示され、ショートカット キーが有効になります。
> その方法ではなくと、「Ctrl + A」みたいな方法です

おそらく、ゆちボンさんが実装したいのは「アクセラレータ」というWindowsの機能の事だと思います。アクセラレータテーブルと呼ばれるものにメニューIDと対応するキーを登録しておくことでショートカットを実現できます。


AB4にはアクセラレータを実装する機能は付いていないので自力で実装することになりますが、実際にABによるアクセラレータの実装例が載っているユーザのHPがありますので紹介しときます。

こちら

直リンクで申し訳ありませんが、てふろんさんのページです。