memopad.exe 制作の備忘録
Windows 標準の「メモ帳」の機能はそのままに、背景色・文字色・フォントを自由に変えられるエディタを作るプロジェクトの記録。
大きなファイルを開くと固まる不具合(FB-19)は v0.10.0 で解消し(本文のエディタを Scintilla に変更)、 インストーラの配布を再開しました。最新は v0.10.1(開いた直後のウィンドウ移動のカクつきを修正)で、 不具合のある v0.6.0〜v0.9.1 は取り下げたままです。 経緯は step3 の 15 節にまとめています。
プロジェクトの目的
シンプルなエディタとしてメモ帳を使う機会は多いが、背景色と文字色を自由に設定できない点に不満がある(フォントはメモ帳でも変更できる)。そこで、メモ帳の使い勝手を保ったまま次の機能を加えた memopad.exe を制作する。
- 背景色・文字色の変更(標準色 16 色+カラーピッカーで簡単に変更できること)
- インストーラ形式で配布できること
| 項目 | 内容 |
|---|---|
| 制作環境(予定) | Visual Studio 2022(C#)、Inno Setup(インストーラ) |
| 調査対象のメモ帳 | Windows 11 Pro 上の Windows メモ帳(Store 版)11.2607.14.0 |
| 完了の定義 | step3 のフィードバックが 0 件になった時点を v1.0 とする |
進行 step と備忘録
step1:メモ帳の機能洗い出し
本家メモ帳のメニュー・設定・ショートカット・ダイアログを UI Automation で列挙し、スクリーンショット付きで整理。memopad で再現する範囲を仕分けする。
step2:memopad.exe の作成
step1 の仕分けに基づき C#/WPF(.NET 9)で実装。タブ・検索置換・印刷などメモ帳の機能に、背景色・文字色(標準 16 色+カラーピッカー)とテーマを加え、Inno Setup でインストーラを作る。
step3:完成品のフィードバック対応
実際に使って気づいた点を 1 件ずつ記録し、バージョンを分けて対応する。v0.2.0 で IME 入力の遅延をメモ帳並みに改善(エディタを RichEdit に置き換え)、v0.3.0 でタブ→メニュー→本文の並びと高さをメモ帳に合わせ、v0.4.0 で「色変更」ダイアログ(PICO-8 の 16 色)に統合、v0.5.0 で目に優しい配色 16 パターンを追加した。v0.8.0 で起動時間をメモ帳と同等にして MemoPad に改名、v0.9.0〜v0.9.1 でタイトル行のウィンドウ操作、メニューの見た目、ドラッグ&ドロップで開いた直後の状態を直した。v0.9.2 でホイールで最後の行まで送れない不具合と、折り返しなしで横にスクロールできない不具合を直した。v0.10.0 では、大きな日本語ファイルで画面が固まる不具合(FB-19)のために本文のエディタを RichEdit から Scintilla に差し替え、v0.10.1 で開いた直後のウィンドウ移動のカクつき(FB-21)を直した。フィードバックが 0 件になったら v1.0。
更新履歴
- 2026-09-13:v0.10.1 で「大きなファイルを開いた直後だけウィンドウ移動がカクつく」不具合(FB-21)を修正した。原因は Scintilla が折り返しの計算を空き時間に 10 ms ずつ進めていることで、対策 4 案を入力レスポンス・起動時間とあわせて実測し、ウィンドウの移動・リサイズ中だけ計算を止める案を選んだ(ドラッグ中の位置の更新間隔 71.4 ms → 16.7 ms、入力・起動・見た目は変化なし。step3 の 16 節)。
- 2026-09-13:v0.10.0 の動作確認が済み、インストーラの配布を再開した。あわせて FB-21 の原因を調べた(step3 の 15.9)。
- 2026-09-12:v0.10.0 で本文のエディタを RichEdit から Scintilla に差し替え、大きなファイルで固まる不具合(FB-19)を解消した。10 MB・12 万行の日本語ファイルで、操作を受け付けない時間の最長が 43.5 秒 → 0.03 秒。原因は日本語と英字が混ざった行の文字幅を GDI に問い合わせる処理で、RichEdit の設定でも Windows App SDK の WinUI でも避けられなかった。
- 2026-09-12:大きなファイル(10 MB/12 万行の日本語テキスト)を開くと固まり、その後の操作でも固まる不具合(FB-19)の報告を受け、GitHub Releases のインストーラをすべて取り下げた。サイトとソース コードの公開は継続し、原因調査と修正に入る。
- 2026-09-11:v0.9.2 でマウス ホイールが末尾の空行まで届かない不具合を修正(ホイールを自前のなめらかスクロールに置き換え)。あわせて、確認中に見つけた「右端で折り返す」オフで横スクロールバーが出ない不具合を修正。起動時間と大きなファイルの読み込み時間が変わらないことも実測した。
- 2026-09-08:v0.9.1 でドラッグ&ドロップで開いたファイルが編集済みになる不具合を修正。メニューの字下げをメモ帳と同じ控えめな量に調整。
- 2026-09-08:v0.9.0 でタイトル行のドラッグ移動・ダブルクリックでの最大化・四辺のリサイズを修正(当たり判定を親ウィンドウへ譲るようにした)。メニューの字下げと文字の上下位置をメモ帳に合わせた。
- 2026-09-08:v0.8.0 でメイン ウィンドウを Windows Forms に作り直し、起動時間をメモ帳と同等(ウィンドウ表示 221 ms 対 211 ms)にした。あわせて名称を MemoPad に改め、アイコンを新デザインに差し替えた。
- 2026-09-08:v0.7.0 で起動時間を調査・短縮(ソフトウェア描画、設定 JSON のソース ジェネレーター化、アセンブリの先読み)。WPF の下限が約 400 ms でメモ帳(約 200 ms)に届かないことが判明した。
- 2026-09-07:v0.6.0 でアプリ アイコンを新デザインに変更。GitHub Pages で紹介ページと備忘録を公開。
- 2026-09-07:v0.5.2 で検索バーの×・プレビュー枠の高さ・キャプション ボタンのツールチップの表示崩れ(3 回目のフィードバック)を修正。
- 2026-09-07:v0.5.1 でタブをクリックしても切り替わらない不具合(2 回目のフィードバック)を修正。
- 2026-09-07:v0.5.0 で配色パターン 16 種(プレビュー付き)を追加。初回フィードバック 4 件を対応済みにした。
- 2026-09-07:v0.4.0 で「背景色」「文字色」を「色変更」ダイアログに統合し、16 色を PICO-8 パレットにした。
- 2026-09-07:v0.3.0 で上部の並び(タブ→メニュー→本文)と高さをメモ帳に合わせた。
- 2026-09-07:step3(フィードバック対応)の備忘録を公開。v0.2.0 で IME 入力の遅延を改善。
- 2026-09-06:step2(memopad.exe の作成)の備忘録を公開。
- 2026-09-06:サイト開設。step1(メモ帳の機能洗い出し)を公開。