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

ActiveBasicでのプログラミングでわからないこと、困ったことなどがあったら、ここで質問してみましょう(質問を行う場合は、過去ログやWeb上であらかじめ問題を整理するようにしましょう☆)。
返信する
メッセージ
作成者
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

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

#1 投稿記事 by MML »

こんにちは。ゆちボンです。質問なんですが、
(5.0で)abdev.exe、(4.xx)でProjectEditor.exeの色分けみたいなことを
プログラムでやりたいんですが、
いまいちわかりません。
リッチエディタというやつを使えばいいとは聞いたこともあるんですが、
ぜんぜん意味がわからなくて困ってます。
誰かわかる方、教えていただけないでしょうか?
C1000
記事: 185
登録日時: 2006年5月07日(日) 17:16
お住まい: 宮城県
連絡する:

#2 投稿記事 by C1000 »

同じような質問が前にあったので書いておきます。
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1

二つ目のトピック
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

#3 投稿記事 by MML »

C1000さん、ありがとうございます!!
よくわかりました。
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

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

#4 投稿記事 by MML »

質問なんですが、、、
メニューのショートカットキーを
再現するにはどうしたらいいでしょうか?

あと、ChooseColorの使い方はどうするんですか?
構造体とかみたんですけど、いまいちならなくて、、、
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

#5 投稿記事 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 配列に格納されています。
MML
記事: 154
登録日時: 2006年5月02日(火) 16:27

#6 投稿記事 by MML »

Toshiさん、こんにちは。
> > メニューのショートカットキーを
> > 再現するにはどうしたらいいでしょうか?
>
> 一般的には、"ファイル(&F)" のように括弧で & とショートカット キーにしたいアルファベットを挟みます。
> すると、実際のメニューでは "ファイル(F)" と下線付きで表示され、ショートカット キーが有効になります。
その方法ではなくと、「Ctrl + A」みたいな方法です
Toshi
記事: 98
登録日時: 2005年7月19日(火) 19:47
お住まい: 山形県
連絡する:

#7 投稿記事 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
こちらのアクセラレータ テーブルを使うことも出来ます。
ケースケ
記事: 45
登録日時: 2005年5月31日(火) 23:46
お住まい: 愛知県
連絡する:

#8 投稿記事 by ケースケ »

エディットボックスにフォーカスがあるとき、KeyDownイベントは飛んでこなかったと思うので、私はキー入力を調べる専用のマルチスレッドで対応しました。

(リッチエディットの場合どうなるのか知らないので、関係無かったら無視してください)
7
記事: 473
登録日時: 2005年5月31日(火) 18:51
お住まい: 新潟県
連絡する:

#9 投稿記事 by 7 »

こういう技術、なんて言うんですっけ???
最近全くプログラミングしないので用語も忘れてしまいました...。

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

サブクラス化!?
NoWest
記事: 264
登録日時: 2005年5月31日(火) 10:52
お住まい: 高知
連絡する:

#10 投稿記事 by NoWest »

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

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


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

こちら

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