読者です 読者をやめる 読者になる 読者になる

VizCommand #1 新生VizCommand & ウィンドウの表示

『VizCommand』も改めて組み直し・・・。 UIの構成が難しいが、機能優先にしたいところ・・・。Win32プロジェクトの空のプロジェクトでWinMain.cppを追加して、とし、バージョン情報も、として、ウィンドウ表示・・・。・新生VizCommand · bg1bgst333/VizCom…

ObjeqtNote #1 新生ObjeqtNote & ウィンドウの表示

『ObjeqtNote』も作り直し・・・。 『Aoi』とどう役割分担するか、まだ悩み中・・・。 こちらはどんどん機能載せていきたい・・・。Win32プロジェクトの空のプロジェクトでWinMain.cppを追加して、と、『Aoi』とほぼ一緒・・・。バージョン情報も、こんな感…

Aoi #1 新生Aoi & ウィンドウの表示

新年(ブログの日付上)1発目は、Application開発の仕切り直しから・・・。テキストエディタ『Aoi』の作り直し・・・。プロジェクトの作成・・・。 gitのレポジトリのトップにプロジェクトを作るように変更・・・。でも変わらず空のプロジェクト・・・。ソース…

VizCommand #11 スケーラブルエディットボックスの作成

改行すると、1行分大きくなり、バックスペースキーを押したときに1行少なくなったら、1行分小さくなるスケーラブルエディットボックスを作る・・・。ScalableEdit.hは、行の高さ、行間、行数をメンバとして持っている・・・。 Createでは、高さを指定する引…

VizCommand #10 エディットコントロールのサブクラス化

エディットコントロールなどの既定のウィンドウクラスからなるウィンドウの場合、サブクラス化でウィンドウプロシージャを差し替えなければ、イベントを拾うことができない・・・。 CWindowを改修して、エディットコントロールのイベントを拾えるようにする…

VizCommand #9 エディットパネルにエディットコントロールの設置

エディットパネルにエディットボックスを設置する・・・。Edit.hは、とりあえず子ウィンドウセット一式を・・・。Edit.cppは、Createで、とりあえずクラス名に"Edit"ウィンドウクラス、スタイルにES_MULTILINEとES_AUTOVSCROLLをセット・・・。 EditPanel.h…

VizCommand #8 ウィンドウリストアイテムの子ウィンドウのサイズをウィンドウリストアイテムのサイズに応じて変化させる.

ウィンドウリストアイテムの子ウィンドウを配置したら、ウィンドウサイズを変えてもサイズを維持するという場合もあるが、変更後のサイズに追随したいというのもあるだろう・・・。 今回は、ウィンドウリストアイテムに比べ、ひとまわり小さい子ウィンドウを…

VizCommand #7 ウィンドウリストアイテムの子ウィンドウの管理

ウィンドウリストアイテムの管理は、CWindowListView(さらにその内部のCWindowListItemsPanel)で行うが、それより下のウィンドウの管理はMainWindow側にしようと思う・・・。これ以上階層化すると大変そうなので・・・。 ウィンドウリストアイテムのハンドル…

VizCommand #6 スクロールバー対応

ウィンドウリストビューにスクロールバーを実装していく・・・。その前に、スクロールでウィンドウリストアイテムを1つずつ動かすのはちょっとパフォーマンス的に微妙なので、WindowListViewとWindowListItemの間にWindowListItemsPanelという新しいクラスを…

VizCommand #5 ウィンドウリストアイテムの削除時に以降のアイテムを上にずらす

挿入時に以降を下にずらす処理はできていたが、削除時に以降を上にずらす処理はできていなかったので、そちらを対応・・・。削除前に削除する要素の高さを保持しておいて、削除したあとに、挿入と同様に後ろの要素を上にずらす・・・。マイナス(-1)、サイズ…

VizCommand #4 ウィンドウリストアイテムの追加と削除

いよいよ、ウィンドウリストビューにアイテムとなるウィンドウを追加していく・・・。まず、新しい項目で、WindowListItem.hを追加・・・。ウィンドウの位置とサイズをメンバに・・・。 あと、ちょっとしたテキスト表示用の文字配列・・・。WindowListItem.c…

TwRIBE #3 子ウィンドウの作成

TwRIBEのほうは、ObjeqtNote、VizCommandと同様に、WindowListViewを追加・・・。違う部分というと、コードネームを"Omiya"から"Minami-Urawa"に変更・・・。 これでZincとコードネームが入れ替わった・・・。 また、PrivateBuildもその後ろに'#'付きで付け…

Haiiro #3 子ウィンドウの作成

Haiiroも子ウィンドウを追加・・・。 ただし、こちらはゲームなので、ゲーム描画の基本となる子ウィンドウGraphicsViewを追加する・・・。新しい項目の、GraphicsView.hを追加・・・。こんな感じ・・・。GraphicsView.cppは、CreateでスタイルをWS_VSCROLLか…

VizCommand #3 子ウィンドウの作成

こちらも、子ウィンドウWindowListViewを追加する・・・。と作成して、コードはObjeqtNoteとほぼ同じ・・・。違いというと、MainWindow.cppで、メニュー関連の処理が無いぐらいかな・・・。 なのでOnCommandもない・・・。まあ、こんな感じ・・・。VizComman…

ObjeqtNote #4 子ウィンドウの作成

子ウィンドウを作成し、追加する・・・。 今回は、ウィンドウをアイテムとするリストビューWindowListViewを自作して追加する・・・。新しい項目で、WindowListView.hを追加・・・。子ウィンドウなのでリソースIDを定義・・・。 ハンドラOnCloseと、OnClose…

ObjeqtNote #3 メニューの追加

メニューを追加する・・・。リソースを追加・・・。Menu・・・。新規・・・。開く・・・。上書き保存・・・。名前を付けて保存・・・。区切り線を入れて、アプリケーションの終了・・・。最後にIDR_MENU1をIDR_MAINMENUに変更・・・。ファイルを追加・・・。…

TwRIBE #2 ウィンドウのクラス化

最後にこれもウィンドウのクラス化・・・。ウィンドウクラス名が"TwRIBE_MainWindow"、ウィンドウ名が"TwRIBE"に・・・。 それ以外はVizCommandと同じ・・・。と表示・・・。TwRIBE/winapi/win32_blank/vs14/src/TwRIBE at develop · bg1bgst333/TwRIBE · Gi…

Haiiro #2 ウィンドウのクラス化

こちらもウィンドウのクラス化・・・。ウィンドウクラス名を"Haiiro_MainWindow"、ウィンドウ名を"Haiiro"とする・・・。また、CApplicationのRunは、PeekMessageでメッセージが来ていない時、アイドル状態時の処理OnIdleを実行するようにしている・・・。On…

VizCommand #2 ウィンドウのクラス化

こちらもウィンドウのクラス化・・・。といっても、ウィンドウクラス名が"VizCommand_MainWindow"、ウィンドウ名が"VizCommand"に変わったぐらいで、あとはObjeqtNoteと同じ・・・。という感じで表示・・・。VizCommand/winapi/win32_blank/vs14/src/VizComm…

ObjeqtNote #2 ウィンドウのクラス化

一気にウィンドウのクラス化を進める・・・。ファイルを追加・・・。Window.hから追加・・・。ウィンドウマップ、staticなRegisterClassにウィンドウプロシージャ、Createはいろんな指定ができるようにとりあえず3つ・・・。 ダイナミックウィンドウプロシー…

TwRIBE #1 バージョン情報の追加

TwRIBEも・・・。大宮・・・。 (Zincを京浜東北線、こっちを埼京線にしてしまったが、Twitterは水色だから逆だったと後悔・・・。)これでビルド・・・。こうなる・・・。TwRIBE/winapi/win32_blank/vs14/src/TwRIBE at develop · bg1bgst333/TwRIBE · GitHub

Haiiro #1 バージョン情報の追加

灰色もバージョン追加・・・。武蔵丘・・・。 VALUE "PrivateBuild", "1"も追加・・・。これでビルド・・・。こうなる・・・。Haiiro/winapi/win32_blank/vs14/src/Haiiro at develop · bg1bgst333/Haiiro · GitHub

VizCommand #1 バージョン情報の追加

こっちもバージョン情報を追加・・・。Versionで新規作成・・・。こんな感じ・・・。 和光検車区・・・。閉じて、PrivateBuildを1にして追加・・・。これをビルドすると、こうなる・・・。VizCommand/winapi/win32_blank/vs14/src/VizCommand at develop · b…

ObjeqtNote #1 バージョン情報の追加

本当に久しぶりに手を付ける・・・。 といっても、バージョン情報を追加するだけ・・・。リソースを追加・・・。Versionを選択・・・。こんな感じ・・・。 これだけだと、PrivateBuild追加できないので、一旦閉じてObjeqtNote.rcを編集・・・。VALUE "Privat…

RegisterClassEx

RegisterClassExは、ウィンドウクラスを登録するWindowsAPI・・・。RegisterClassEx 関数この関数で登録する構造体はWNDCLASSEXとなる・・・。 WNDCLASSとの違いは、構造体のサイズを指定するところと、大きなアイコンとは別に小さなアイコンを設定できると…

CreateWindowEx

CreateWindowExは、ウィンドウを作成するWindowsAPI・・・。CreateWindowEx 関数CreateWindowとの違いは、第1引数に拡張スタイルを指定できることである・・・。今回は、メインウィンドウの中に、"STATIC"ウィンドウクラスの子ウィンドウを作成し、その子ウ…

CommandLineToArgvW

CommandLineToArgvWは、GetCommandLineなどで取得した1つのコマンドライン引数文字列を分解して、複数の引数文字列配列へのポインタや、引数の数を返すWindowsAPI・・・。CommandLineToArgvW 関数GetCommandLineで取得した引数文字列は、スペースを含んだ生…

TwRIBE #0 ウィンドウの表示

最後はTwitterクライアント、TwRIBE・・・。モバイルもやりたいけど、その前にデスクトップでいろいろ試したい・・・。まあ、退路を断って行かないと・・・。Win32・・・。空・・・。新しい項目・・・。WinMain.cpp・・・。として、となる・・・。 しばらく…

Haiiro #0 ウィンドウの表示

Haiiroも手を付ける・・・。ゲームなので、ソースは公開してこうとおもうが、リソースはどうしようか検討中・・・。Win32・・・。空プロ・・・。ソースを追加・・・。WinMain.cpp・・・。でこれに、と書いて、実行すると、と表示される・・・。 前回、前々回…

VizCommand #0 ウィンドウの表示

VizCommandも立ち上げ・・・。びじゅあるなコマンドプロンプトのようなターミナルのような、Ultimate Command Prompt Terminalにしていく予定・・・。で、こっちもウィンドウ表示から・・・。Win32・・・。空プロ・・・。で、WinMain.cppを追加して、とする…

ObjeqtNote #0 ウィンドウの表示

遂に・・・、 今度こそ・・・、 とうとう・・・、 ようやく・・・、ObjeqtNoteの開発に着手し始めた・・・。いろんなファイルをいい感じに表示、編集できるUltimate File Editorを目指してる・・・。で、今回はウィンドウ表示だけ・・・。基幹プロジェクトは…

GetCommandLine

GetCommandLineは、コマンドライン引数文字列を取得するWindowsAPI・・・。GetCommandLine 関数_tWinMain関数のlpCmdLineにもコマンドライン引数文字列は格納されているが、実行ファイル名が含まれていない・・・。 実行ファイル名を含めたコマンドライン引…

Aoi #6 ファイルの読み書き

いよいよファイルを読み書きする・・・。これまで、"開く"と"名前を付けて保存"は、同じOnCommandに置いていたが、OnFileOpenとOnFileSaveAsにハンドラを分けることになった・・・。このように呼び出しが分かれている・・・。でOnFileOpenは、OPENFILENAME構…

Aoi #5 エディットボックスの設置

いよいよエディットボックスを設置する・・・。 CEditクラスを作ってもいいがそれだと手間がかかるので、今回は手早くCreateWindowで作る・・・。まず、エディットボックスは子ウィンドウなので、resource.hに、マクロIDC_EDIT1だけ定義・・・。CMainWindow…

Aoi #4 ダイナミックウィンドウプロシージャの導入

そろそろ、CApplicationクラスとCWindowクラスに基本的な機能を残して、アプリ独自の機能をCMainApplicationクラスとCMainWindowクラスに移したいとおもう・・・。CApplication::InitInstanceを純粋仮想関数にして、新たに追加した派生クラスCMainApplicatio…

Aoi #3 メニューの設置

メニューを追加する・・・。リソースを追加・・・。Menuを選択・・・。IDをIDR_MAINMENUとする・・・。"ファイル(&F)"とする・・・。その下は"開く(O)..."として、IDは、"IDM_FILE_OPEN"とする・・・。さらにその下は"名前を付けて保存(&A)..."で、"IDM_FILE…

Aoi #2 アプリケーションクラス(CApplicationの追加)

前回、ウィンドウクラスCWindowを実装したので、今度はアプリケーションクラスCApplicationを実装する・・・。Application.hを追加し、CWindowオブジェクトのポインタm_pMainWindowにメインウィンドウオブジェクトポインタを格納しておく・・・。 あとは、初…

Aoi #1 ウィンドウのクラス化(CWindowの追加)

ウィンドウを表示したので、今度はウィンドウをクラス化・・・。Window.hを追加し、m_hWndはCWindowオブジェクトが持つウィンドウのハンドル・・・。 ウィンドウクラス登録関数のRegisterClassはstaticメンバとして持ってきた・・・。 ウィンドウクラス名を…

Aoi #0 ウィンドウの表示

今日から、新カテゴリApplicationで、アプリ開発の進捗を書いていく・・・。最初ということで、基本的なアプリ、テキストエディタから・・・。Aoiという名前にした・・・。で今回はウィンドウ表示だけ・・・。Traditional ClassicなWin32プロジェクトで作成…

エディットボックスのクラス化(WindowsAPI)

エディットボックスに入力されたテキストを取得、またはエディットボックスにテキストをセット、といった部分をクラス化・・・。基底クラスとなるCEditの定義は、tstringをdefineしてstd::wstringとstd::stringのUNICODE切り替えに対応・・・。そのtstringの…

エディットボックスの表示(WindowsAPI)

あるボタンを押したら、エディットボックスに入力されたテキストを取得してメッセージボックスで表示し、別のボタンを押したら、エディットボックスに別のテキストをセットする・・・。"アップデートの確認"ボタンとは別に、新しいボタンを配置・・・。今回…

ボタンのクラス化(WindowsAPI)

ボタンのクラス化は結構大変・・・。ボタンが押された時、WM_COMMANDは親ダイアログに通知されるので、親ダイアログのハンドラにそれに対する処理を書けばいい・・・。しかし、それだと親ダイアログが肥大化しそうなので、各ボタンクラスオブジェクトにその…

ボタンの表示(WindowsAPI)

ダイアログにOKボタンとは別の新たなボタンを配置してみる・・・。ツールボックスでButtonを選択・・・。このように配置・・・。Captionも"Button1"から、"アップデートの確認"に変更・・・。IDも"IDC_BUTTON1"から、"IDC_BUTTON_UPDATECHECK"に変更・・・。…

ダイアログのクラス化(WindowsAPI)

ダイアログをクラス化する・・・。ウィンドウクラスと統一してもいいが、動作が若干違うので個別にダイアログクラスを作る・・・。と、というように前回同様のメニューを用意・・・。ダイアログも、前回同様・・・。基底クラスとなるCDialogクラスは、m_mapD…

ダイアログの表示(WindowsAPI)

ダイアログを表示する・・・。今回は、モーダルで・・・。リソースを追加する・・・。まずはMenuで、これまで通りの項目を挿入・・・。新たにヘルプ(&H)というメインメニューのアイテムを作って、バージョン情報(&A)というサブアイテム・・・。IDをID_APP_AB…

メニューウィンドウ(WindowsAPI)

メニューを載せたウィンドウCMenuWindowをメインウィンドウCMainWindowのベースとなるようにしてみる・・・。MenuWindow.hのCMenuWindowのメンバに、CMenuオブジェクトポインタm_pMenuを用意・・・。SetMenuは、オリジナルのメニューセット関数・・・。引数…

メニューのクラス化(WindowsAPI)

今度はメニューをクラス化してみる・・・。メニューリソースを追加したら、ここまで項目を決めて、IDなども変える・・・。Menu.hのCMenuは、こんな感じ・・・。 m_hWndはメニューを持つウィンドウのハンドル・・・。 ここでもm_pAppをこれに渡して、ここから…

メニューの表示と選択(WindowsAPI)

メニューを表示し、選択されたら、その項目のリソースIDマクロ名を表示する・・・。リソースを追加・・・。Menuを選択・・・。メインメニューの項目1から入力していく・・・。"ファイル(&F)"とする・・・。"(&F)"は、ショートカットキーがFであることを指す…

ウィンドウのクラス化(WindowsAPI)

「ウィンドウをただ表示する」からかなりハードルが上がって、Win32だとクラスを自作しないといけないので、ウィンドウをクラス化してみる・・・。 MFC風な設計をベースに、いろいろ試行錯誤してなんとかクラスに押し込めている・・・。まず、WinMain.cppに_…

ウィンドウの表示(WindowsAPI)

ウィンドウを表示する・・・。Win32プロジェクト・・・。空のプロジェクトで・・・。ソース追加・・・。Window.cppとして、ウィンドウクラス名を"Window"とし、あとは既定のものをウィンドウクラスwcに設定・・・。 メニューはなし・・・。RegisterClassでwc…