(5.0で)abdev.exe、(4.xx)でProjectEditor.exeみたいな色分け
(5.0で)abdev.exe、(4.xx)でProjectEditor.exeみたいな色分け
こんにちは。ゆちボンです。質問なんですが、
(5.0で)abdev.exe、(4.xx)でProjectEditor.exeの色分けみたいなことを
プログラムでやりたいんですが、
いまいちわかりません。
リッチエディタというやつを使えばいいとは聞いたこともあるんですが、
ぜんぜん意味がわからなくて困ってます。
誰かわかる方、教えていただけないでしょうか?
(5.0で)abdev.exe、(4.xx)でProjectEditor.exeの色分けみたいなことを
プログラムでやりたいんですが、
いまいちわかりません。
リッチエディタというやつを使えばいいとは聞いたこともあるんですが、
ぜんぜん意味がわからなくて困ってます。
誰かわかる方、教えていただけないでしょうか?
同じような質問が前にあったので書いておきます。
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1
二つ目のトピック
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1
二つ目のトピック
http://www.activebasic.com/forum/viewto ... A%AC%A4%B1
ショートカットキーなど、、
質問なんですが、、、
メニューのショートカットキーを
再現するにはどうしたらいいでしょうか?
あと、ChooseColorの使い方はどうするんですか?
構造体とかみたんですけど、いまいちならなくて、、、
メニューのショートカットキーを
再現するにはどうしたらいいでしょうか?
あと、ChooseColorの使い方はどうするんですか?
構造体とかみたんですけど、いまいちならなくて、、、
> メニューのショートカットキーを
> 再現するにはどうしたらいいでしょうか?
一般的には、"ファイル(&F)" のように括弧で & とショートカット キーにしたいアルファベットを挟みます。
すると、実際のメニューでは "ファイル(F)" と下線付きで表示され、ショートカット キーが有効になります。
> あと、ChooseColorの使い方はどうするんですか?
> 構造体とかみたんですけど、いまいちならなくて、、、
このコードでダイアログが表示されます。
選択された色は CC.rgbResult に格納され、
ユーザーが作成した色は CustomColors 配列に格納されています。
> 再現するにはどうしたらいいでしょうか?
一般的には、"ファイル(&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 配列に格納されています。
すみません、意味を取り違えてしまいました。
任意のキーの組み合わせが押されたら何か処理をさせたいということでしょうか。
Ctrl+A なら、WM_KEYDOWN が飛んできたときに
キーが A で、なおかつ Ctrl キーも一緒に押されていたのであれば処理をさせる、という流れになります。
RAD の場合はこうなります。
もし Ctrl+B, Ctrl+C, Ctrl+D などといったショートカットをいくつも作りたい場合は、
とすることも出来ますし、
http://members.at.infoseek.co.jp/teflon ... ix_02.html
こちらのアクセラレータ テーブルを使うことも出来ます。
任意のキーの組み合わせが押されたら何か処理をさせたいということでしょうか。
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
コード: 全て選択
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
こちらのアクセラレータ テーブルを使うことも出来ます。
自分はこうしています [ここをクリックすると内容が表示されます]
こういう技術、なんて言うんですっけ???コード: 全て選択
Dim hEdit As HWND
Dim pWndProc As LONG_PTR
Function MainEditProc(ByVal hWnd As HWND,ByVal dwMsg As DWord,ByVal wParam As WPARAM,ByVal lParam As LPARAM) As DWord
Select Case dwMsg
Case WM_KEYDOWN
If (GetAsyncKeyState(VK_CONTROL) And &H8000) Then
Select Case wParam
Case 65 'Ctrl+A
OutputDebugString("Ctrl+Aが押されました。")
End Select
End If
End Select
MainEditProc=CallWindowProc(pWndProc As VoidPtr,hWnd,dwMsg,wParam,lParam)
End Function
Sub MainWnd_Destroy()
SetWindowLong(hEdit,GWL_WNDPROC,pWndProc)
End Sub
Sub MainWnd_Create(ByRef CreateStruct As CREATESTRUCT)
hEdit=GetDlgItem(hMainWnd,EditBox1)
pWndProc=SetWindowLong(hEdit,GWL_WNDPROC,AddressOf(MainEditProc) As Long)
End Sub
最近全くプログラミングしないので用語も忘れてしまいました...。
過去ログ検索中......
サブクラス化!?
> Toshiさん、こんにちは。
> > > メニューのショートカットキーを
> > > 再現するにはどうしたらいいでしょうか?
> >
> > 一般的には、"ファイル(&F)" のように括弧で & とショートカット キーにしたいアルファベットを挟みます。
> > すると、実際のメニューでは "ファイル(F)" と下線付きで表示され、ショートカット キーが有効になります。
> その方法ではなくと、「Ctrl + A」みたいな方法です
おそらく、ゆちボンさんが実装したいのは「アクセラレータ」というWindowsの機能の事だと思います。アクセラレータテーブルと呼ばれるものにメニューIDと対応するキーを登録しておくことでショートカットを実現できます。
AB4にはアクセラレータを実装する機能は付いていないので自力で実装することになりますが、実際にABによるアクセラレータの実装例が載っているユーザのHPがありますので紹介しときます。
こちら
直リンクで申し訳ありませんが、てふろんさんのページです。