Application

VizCommand #36 viewコマンドで画像(ビットマップファイル)の表示

画像を表示するviewコマンドを実装する。まず、WindowListItem.cppで、 OnCreateで、赤のペン、ブラシを、黒のペン、ブラシに変更。Console.cppで、 "view"と入力されたら、SendMessageでUM_STREAMCOMMAND。StreamConsole.hは、 OnViewを追加。StreamConsole…

VizCommand #35 walkコマンドでフォルダの移動

linuxコマンドのcdに相当するフォルダ移動コマンドwalkを実装する。Console.hで、 Consoleオブジェクトが生成された時のデフォルトカレントパスとしてm_tstrDefaultCurrentPathを用意。 コンストラクタもtstrDefaultCurrentPathを引数に取るものを追加。 そ…

VizCommand #34 アイテムズパネルが大きくなるたびに自動的に下にスクロール

これまで、アイテムズパネルが大きくなってスクロールバーが出てきて、どんどんウィンドウリストアイテムが追加されていっても、下に自動でスクロールされることはなく、自分で下までスクロールしないといけなかったが、今回は自動スクロールに対応する。res…

VizCommand #33 listコマンドの相対パス対応

これまではlistコマンドに渡すパスは絶対パスであったが、そろそろ相対パスにも対応したい。ConsoleCore.hで、 SetCurrentPath、GetCurrentPath、そしてGetFullPathを用意。ConsoleCore.cppで、 SetCurrentPathでは、Win32APIのSetCurrentDirectoryでカレン…

VizCommand #32 listコマンドでパラメータ無しの場合にカレントパスを補完&デフォルトのカレントパスをマイドキュメントに変更

そろそろ、パラメータ無しでlistコマンドを使えるようにしたい。ConsoleCore.hで、 m_tstrMyDocumentPathとGetMyDocumentPathを追加。ConsoleCore.cppは、 このようにマイドキュメント(現在のユーザのドキュメント)のパスを取得。 GetMyDocumentPathで取得し…

VizCommand #31 listコマンドのCCommandクラス対応

コメントアウトしていたlistコマンドもCCommandに対応させる。Command.hに、 GetParamを追加。 また、tstring&ではなく、通常のtstringに変更。 (GetCommandNameも)Command.cppで、 GetParamは、m_vectstrCommandTokenの範囲内なら、index番目を返す。 そう…

VizCommand #30 コマンドの定義

コマンド文字列をハンドラにそのまま渡して、各所で(しかも何度も)パースさせるのもちょっと酷い。 そこで、コマンド文字列じゃなく、パース済みのコマンドオブジェクトを渡すようにコマンドクラスを定義する。Command.hを追加して、 CCommandのメンバ変数は…

VizCommand #29 コンソールとファイルリストを連続して交互に表示

コンソールとファイルリストを連続して交互に表示する。StreamConsole.cppで、 OnCreateで、m_nId番目のアイテムとしてコンソールを挿入して表示するようにし、m_nIdを1増やす。 OnListでもm_nId番目のアイテムとしてファイルリストを表示し、m_nIdを1増やす…

VizCommand #28 listコマンドでリストビューでファイルリストを表示

アイコン表示のファイルリストを表示する"list"コマンドを実装する。resource.hで、 独自メッセージとしてUM_STREAMCOMMANDを定義。StreamConsole.hに、 リソースIDを持つメンバm_nId、OnUserMessage、OnStreamCommand、OnListを追加。StreamConsole.cppで、…

VizCommand #27 リストコントロールパネルの定義&リストコントロールの定義

リストコントロールパネルとその中のリストコントロールを定義する。ListControlPanel.hを追加し、 CListControlオブジェクトポインタm_pListControlを持つユーザコントロールCListControlPanel。ListControlPanel.cppは、 こんな感じ。ListControl.hは、 カ…

VizCommand #26 上キーが押された時の処理

上キーが押された時に、上に行かないように止める。ConsoleCore.cppで、 OnKeyDownで上キーが押されたら、-1を返して入力キャンセル。いくら上に押しても上には行かない。・上キーが押された時の処理 · bg1bgst333/VizCommand@eddbc7c · GitHub

VizCommand #25 コマンドが見つからない時のエラー&マウス左ボタンクリックで一瞬見えるキャレットを非表示にする

コマンドが無い場合のエラーと、左クリックでフォーム文字列を押された時の処理を実装する。Window.hで、 OnLButtonDownを追加。Window.cppで、 と というようにOnLButtonDownを実装。CustomControl.cppも、 OnLButtonDownを呼ぶ。ConsoleCore.hも、 OnLButt…

VizCommand #24 レスポンス中の改行を数えてその分だけ大きくする

レスポンスが複数行の場合、改行の数の分だけCConsoleを大きくしないとすべて表示できない。ConsoleCore.cppで、 改行の数だけm_iLineHeightを足してMoveWindowし、UM_SIZECHILDも送っている。Console.cppで、 "Hello, world!"に改行コード"\r\n"をつけてみ…

VizCommand #23 helloコマンドの実装

"hello"と入力したら、"Hello, world!"と返す、"hello"コマンドを実装する。resource.hで、 独自メッセージUM_CONSOLECORECOMMAND、UM_RESPONSEMESSAGE、UM_FINISHRESPONSEを追加。ConsoleCore.hは、 入力されたコマンドに対する処理を実行するウィンドウの…

VizCommand #22 コマンド文字列の取得

入力されたコマンド文字列だけを抜き出す。ConsoleCore.hで、 m_tstrCommandStringを追加。 GetCommandStringの戻り値をtstringにする。ConsoleCore.cppでは、 コンソール全体の文字列から、入力開始位置までを引いた分を抜き出す。 リターンキーが押された…

VizCommand #21 マウスの左クリックでキャレット位置を変更されたときの動作

バックスペースや左キーを防止しても、マウスの左クリックでキャレット位置をフォーム文字列などにセットできてしまうので、これも防止する。Window.hで、 OnLButtonUpを追加。Window.cppで、 マウスの左ボタンが離された時のWM_LBUTTONUPの時、OnLButtonUp…

VizCommand #20 左キーが押されたときの処理

左キーが押された時も、フォーム文字列の前で止める。Window.hで、 OnKeyDownの戻り値をvoidからintに変更。Window.cppで、 WM_KEYDOWNでOnKeyDownが-1なら入力キャンセル。 0を返す。ScalableEditBox.hでも、 OnKeyDownの戻り値をintに。ScalableEditBox.cp…

VizCommand #19 バックスペースキーが押されたときの処理

バックスペースキーが押された時、自分が入力したコマンド文字列より前のフォーム文字列などを削除しないように止める。Window.hで、 OnCharを追加。Window.cppで、 WM_CHARでOnCharを呼ぶ。 戻り値-1なら0を返して入力キャンセルをする。 通常は入力キャン…

VizCommand #18 フォームの出力

コマンドを入力するフォーム文字列を出力できるようにする。ConsoleCore.hで、 m_ptszCommandStringはやめて、ホームフォルダパスm_tstrProfilePath、現在のパスm_tstrCurrentPath、フォーム文字列m_tstrFormString、最終的に出力するm_tstrOutputFormString…

VizCommand #17 コンソール周辺のクラスを追加

いよいよコンソール周辺のクラスを追加していく。resource.hで、 GUI出力機能を持つコンソールとしてIDC_STREAMCONSOLEをリソースIDに定義。WindowListItemsPanel.cppで、 ペンとブラシを黒に。StreamConsole.hを追加して、 CWindowListControlの派生クラス…

VizCommand #16 アイテムおよびアイテムズパネルもスカラブルエディットボックスパネルのリサイズに追随する

ウィンドウリストアイテムやウィンドウリストアイテムズパネルが、スカラブルエディットボックスのリサイズに追随することで、違うアイテムが影響を受けても問題ないようにする。WindowListItemsPanel.hに、 OnUserMessage、OnSizeChildを追加。WindowListIt…

VizCommand #15 親ウィンドウのサイズを子ウィンドウのサイズに合わせる&スカラブルエディットボックスパネルの定義

スカラブルエディットボックスの親クラス、スカラブルエディットボックスパネルを定義する。 そして、スカラブルエディットボックスのサイズが1行分大きくなったら、スカラブルエディットボックスパネルのサイズも1行分大きくなり表示テキストが隠されないよ…

VizCommand #14 スカラブルエディットボックスの定義

改行するたびに1行分大きくなり、バックスペースで1行分のテキストが減るたびに小さくなる「スカラブルエディットボックス」を定義する。resource.hで、 リソースIDとしてIDC_SCALABLEEDIT1を追加。 また、ちょっと数字を変えている。Window.hは、 ブラシハ…

VizCommand #13 削除時の調整

アイテム削除時にPADDINGの調整をしてなかったので、それをする。WindowListItemsPanel.cppで、 削除時のPADDING。MainWindow.cppで、 アイテムを3つ挿入し、1番目を削除してみる。1番目が削除されても上下はずれてない。 何番目か見えるように左右はちょっ…

VizCommand #12 PADDINGマクロの定義

さすがに固定で3pxというのはどうかと思うので、PADDINGマクロ定数を用意し、それの値を3と定義する。resource.hで、 と定義し、 このように使う。 修正箇所がたくさんあるので割愛。表示には変化なし。・PADDINGマクロの定義 · bg1bgst333/VizCommand@1c4f0…

VizCommand #11 アイテムや子ウィンドウなどの下と右を調整

左と上は3pxごとに空けることができたが、右と下がまだ3pxごとに空いてないので調整する。WindowListItemsPanel.hに、 OnSizeを追加。WindowListItemsPanel.cppは、 Insertで指定するアイテムの幅をm_iWidth - (3 * 2)、高さをiHeight - (3 * 2)とする。 OnS…

VizCommand #10 エディットボックスパネルの定義

エディットボックスの外枠となる親ウィンドウエディットボックスパネルを定義する。WindowListItemsPanel.cppで、 アイテムをInsertするとき、3pxの余白を作る。WindowListControl.cppでも、 m_pWindowListItemsPanel->Createで3px空ける。MainWindow.cppで…

VizCommand #9 ウィンドウリストコントロールなどObjeqtNoteの進捗をVizCommandにも反映

ObjeqtNoteの進捗をVizCommandに反映。 量が多いので詳細は割愛。 1つウィンドウリストアイテムを挿入して、子コントロールとしてエディットボックスも配置。VizCommandでもウィンドウリストコントロールが使えるようになった。・ウィンドウリストコントロー…

ObjeqtNote #41 アイテムの子ウィンドウマップ

ウィンドウリストアイテムの子コントロールは、アイテム内のマップで管理するようにすると、アイテムを破棄したときに一緒に破棄してくれる。resource.hに、 アイテムの子コントロールの開始リソースIDを定義し、追加するたびに増やしていく。WindowListItem…

ObjeqtNote #40 ウィンドウリストアイテムを取得して中に子エディットボックスを作成する

挿入したウィンドウリストアイテムの中にさらに子コントロールを作る。 今回はエディットボックスを配置する。WindowListItemsPanel.hで、 ウィンドウリストアイテムを取得するメンバ関数Getを追加する。WindowListItemsPanel.cppでは、 GetでiIndex番目をイ…

ObjeqtNote #39 削除時に全てのアイテムの高さの合計に合わせてウィンドウリストアイテムズパネルの大きさをリサイズ

今度は削除時のリサイズ。WindowListItemsPanel.cppで、 今度は削除した後の高さを計算してMoveWindowする。MainMenuBar.cppでは、 "名前を付けて保存"で0番目を削除するようにする。3個の状態で、"名前を付けて保存"すると、2個になり、さらに"名前を付けて…

ObjeqtNote #38 挿入時に全てのアイテムの高さの合計に合わせてウィンドウリストアイテムズパネルの大きさをリサイズ

挿入したアイテム達の高さに、ウィンドウリストアイテムズパネルも合わせたい。WindowListItemsPanel.cppで、 Insertでアイテムを挿入した後に、計算した高さの合計iTotalHeightでMoveWindowする。WindowListControl.cppで、 アイテムズパネルの高さは最初10…

ObjeqtNote #37 ウィンドウリストアイテムの削除

今度は、ウィンドウリストアイテムの削除を実装する。WindowListItemsPanel.hに、 Removeを追加。WindowListItemsPanel.cppで、 Removeは、基本的にはInsertと逆の動きをすればいい。WindowListControl.hも、 Removeを追加。WindowListControl.cppは、 m_pWi…

ObjeqtNote #36 ウィンドウリストアイテムの挿入

いよいよウィンドウリストコントロールにウィンドウリストアイテムを挿入していく。resource.hで、 ウィンドウリストアイテムは複数挿入するので、最初に割り当てるリソースIDをIDC_WINDOWLISTITEM_ID_STARTとし、そこからアイテムが増えるごとに1足したもの…

ObjeqtNote #35 スクロール動作の実装

ウィンドウリストコントロールのスクロールバーをスクロールさせることで、ウィンドウリストアイテムズパネルが移動するようにする。WindowListItemsPanel.cppで、 ちょっと色を変更。WindowListControl.hで、 スクロール情報m_ScrollInfoとOnHScrollとOnVSc…

ObjeqtNote #34 ウィンドウリストアイテムズパネルのリサイズ

ウィンドウリストアイテムズパネルは、アイテムが増えるごとにリサイズして大きくなっていく。 メインメニューの"開く"をクリックしたら、リサイズする処理を実装する。WindowListControl.hに、 挿入メンバ関数Insertを追加する。WindowListControl.cppで、 …

ObjeqtNote #33 ウィンドウリストアイテムズパネルの定義

ウィンドウリストコントロールの中には、ウィンドウリストアイテムズパネルを配置する。まず、resource.hで、 リソースIDを定義。WindowListItemsPanel.hを追加し、 こちらもユーザコントロール。 ペンやブラシのハンドル、RegisterClass、コンストラクタ、…

ObjeqtNote #32 ウィンドウ破棄時の処理&わかりやすいように背景に色を付ける

そろそろウィンドウ破棄時の処理を実装する。 また、それぞれの子ウィンドウがわかりやすいように背景に色を付ける。Window.hで、 DestroyとOnCloseを追加。Window.cppで、 Destroyでは、このウィンドウ自身をDestroyWindowで破棄。 OnCloseでは、Destroyを…

ObjeqtNote #31 ウィンドウリストコントロールの定義

いよいよ、ウィンドウリストコントロールを実装する。 本格的にウィンドウリストコントロールを使うのは、VizCommandだが、ObjeqtNoteでも使う可能性があるので、まずはこちらで実装する。まず、resource.hに、 ウィンドウリストコントロールのリソースIDを…

ObjeqtNote #30 InvalidateRectで更新することで簡単にスクロール描画

ScrollWindowだと、思ったような描画ができないので、InvalidateRectで更新を要求し、OnPaintで描画していくようにした。PictureBox.hは、 レンジをコメントアウトしておく。PictureBox.cppでは、 SetImageで画像をセットしたら、スクロールバーの位置m_iHSc…

ObjeqtNote #29 ScrollWindowで下にスクロールできたが様々な問題が発生

下にスクロールすると、画像が上に移動するようにしていく。PictureBox.cppのOnPaintで、 iDrawWidth、iDrawHeightが描画する幅と高さ。 そして、m_ScrollInfo.nPosが増えるたびに、上にずれていくので描画する領域は減っていく。 そして、新たに下から出て…

ObjeqtNote #28 垂直方向スクロールバーの動作

垂直方向についても実装する。PictureBox.cppのCPictureBox::OnVScrollで、 OnHScrollと同様にそれぞれの操作に対する処理を書く。下に動かしても止まるので、ちゃんと上手くいっている。・垂直方向スクロールバーの動作 · bg1bgst333/ObjeqtNote@3376781 · …

ObjeqtNote #27 水平方向スクロールバーの動作

水平方向のスクロールバーを制御する処理を実装する。Window.hでは、 OnHScroll、OnVScrollを追加。Window.cppでは、 WM_HSCROLLでOnHScroll、WM_VSCROLLでOnVScrollを呼ぶ。 OnHScroll、OnVScrollには何も定義しない。CustomControl.cppでは、 こちらでも、…

ObjeqtNote #26 ビットマップをピクチャーボックスのサイズにカットして表示

ビットマップが大きいと、ピクチャーボックスが拡大して表示する。 しかし、今回は、ピクチャーボックスのサイズにカットして表示する。まず、Window.hで、 OnPaintを追加する。Window.cppでは、 WM_PAINTでOnPaintを呼ぶ。 OnPaintの定義では、特にここでは…

ObjeqtNote #25 ピクチャーボックスを作成して画像を表示

ピクチャーボックスを作成して、ビットマップ画像を表示する。PictureBox.hを追加して、 CCustomControlの派生クラス、CPictureBoxを定義。 メンバ変数はビットマップハンドルm_hBitmap、メンバ関数はCreate、Load、SetImageの3つ。PictureBox.cppは、 Creat…

ObjeqtNote #24 選択したファイルの拡張子を取得する

久しぶりのObjeqtNoteの修正。 スタティックなGetOpenFileNameを実装して、選択したファイルの拡張子を取得する。BinaryFile.hで、 シェルAPIを使うので、shlwapi.hを追加する。リンクにも追加する。 staticなpublicメンバGetOpenFileNameを追加で定義。Bina…

ObjeqtNote #23 エディットボックスをウィンドウ一杯に広げる

こっちもエディットボックスを一杯に広げて使うので広げる・・・。こんな感じになる・・・。 スクロールもできる・・・。・エディットボックスをウィンドウ一杯に広げる · bg1bgst333/ObjeqtNote@e6af71f · GitHub

Aoi #22 エディットボックスをウィンドウ一杯に広げる

そろそろ、テキストエディタなので、エディットボックスをウィンドウ一杯に広げたい・・・。まず、Window.hで、 MoveWindowとOnSizeを追加・・・。 MoveWindowは位置とサイズを指定する感じ・・・。Window.cppで、 MoveWindowは引数をメンバにセットしつつ、…

ObjeqtNote #22 テキストファイル(*.txt)のフィルタを追加

こちらもtxtファイルのフィルタを追加・・・。txtを選択できる・・・。・テキストファイル(*.txt)のフィルタを追加 · bg1bgst333/ObjeqtNote@ed71c91 · GitHub

Aoi #21 テキストファイル(*.txt)のフィルタを追加

ここまでbinファイルしか保存できなかったので、txtファイルのフィルタも追加する・・・。TextFile.hに、 txtファイルのフィルタを追加・・・。MainMenuBar.cppに、 と、 というようにフィルタ文字列の作成にtxtの処理も追加・・・。開いて、テキストファイ…