「
.NETプラグイン開発 イベント編
」を編集中 (節単位)
ナビゲーションに移動
検索に移動
警告:
ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。
ログイン
または
アカウントを作成
すれば、あなたの編集はその利用者名とともに表示されるほか、さまざまなメリットもあります。
スパム攻撃防止用のチェックです。 決して、ここには、値の入力は
しない
でください!
== キー操作イベント == 矩形選択は先に Alt を押した状態で選択を開始する必要があります。が、プラグインを使うとこの順番を逆にしても使えるようになります。 今度は「#region PreTranslateMessage のディスパッチ」を開きます。その中の OnSysKeyDown() のコメントアウトを外して、以下のコードを入力します。 <syntaxhighlight lang="csharp"> /// <summary> /// システムキーを押したときに呼ばれます。 /// </summary> /// <param name="hWnd">対象のエディタハンドル</param> /// <param name="keycode">仮想キーコード。<see cref="VIRTUAL_KEY"/> に定義されています。</param> /// <param name="repeat">リピートカウント</param> /// <param name="alt">ALT キーが押されているか</param> /// <param name="previous">直前のキー状態が指定されます。true の場合、メッセージが送られる前からキーが押されています。</param> /// <returns>メッセージ処理を継続する場合は false。</returns> public bool OnSysKeyDown(IntPtr hWnd, int keycode, int repeat, bool alt, bool previous) { // (1)Alt キーが押されたことによるイベントかを判定 if (keycode == (int)VIRTUAL_KEY.VK_MENU) { // (2)選択されていて、まだ矩形選択になっていないか // これを確認しないと何度も矩形選択処理をしてしまう var editor = new Editor(hWnd); if (editor.GetSelType() == Editor.SEL_TYPE.CHAR) { // (3)選択範囲を取得 var start = editor.GetSelStart(true); var end = editor.GetSelEnd(true); // (4)矩形選択し直す editor.Select(start, end, true, true); // (5)通常の Alt 処理をキャンセル return true; } } // (6)処理しなかった場合は本体のキー操作処理にゆだねる return false; } </syntaxhighlight> OnSysKeyDown() は Alt や Ctrl などの特別なキーを処理するためのイベントです。通常の a などのキーは OnKeyDown() になるので、使い分けに注意してください。コードとしては、矩形選択にし直す、という便利なメソッドは用意されていないので、(3)選択範囲の取得→(4)矩形選択し直し、という流れになります。(5)で true を返さないと、本体のキー処理が走るためメニューが表示されてしまいます。無闇にキャンセルしても本体や他のプラグインの邪魔をしてしまうのでよくありませんが、今回ぐらいであれば true で以降の処理をキャンセルした方が良いでしょう。
編集内容の要約:
MeryWikiへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細は
MeryWiki:著作権
を参照)。
著作権保護されている作品は、許諾なしに投稿しないでください!
このページを編集するには、下記の数式を計算してその答えを欄に入力してください (
ヘルプ
):
いちたすには =
キャンセル
編集ヘルプ
(新しいウィンドウで開きます)
スポンサーリンク
ナビゲーション メニュー
個人用ツール
ログインしていません
トーク
投稿記録
アカウント作成
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
編集
履歴表示
その他
検索
スポンサーリンク
スポンサーリンク
案内
メインページ
ヘルプ
よくある質問
マクロリファレンス
マクロライブラリ
プラグインライブラリ
構文ファイル
テーマ
寄付・開発支援
練習用ページ
開発室
開発者のブログ
ツール
スポンサーリンク