なんだかんだ言っても、すぐに続編造ってるじゃん?と言われそうだが、公開するライブラリの構築は、遠い昔に終わっていて、試用やらサンプル造りなどで、色々と時間を食っていたのだ。この文書を書いたりしている方が遅いので、その辺のタイムラグが有るのだ。仲間内リリースからは、1週間程度の試用期間が有って、みんなが文句たらたら言うから、仕方なく、改版を始めたのである。
さて、リリース版のCWCCは、仲間内では、結構好評だった。事務的なツールであれば、比較的簡単に作成出来るし、DOS版のソフトも移植出来た。何より、面倒くさいウインドウクラスやら、インスタンス等を管理しなくて済むって事で、すぐに試したい簡単なツールには、最適という声も聞かれたのだ。しかしながら、使われれば使われる程、要望も多いものなのである。そんなもの、ソースを公開してるんだから自分で何とかしろ!と言ったら、ソースコードが汚くて読めないと言われてしまった(T^T)不幸だ…
- ユーザダイヤログの実装
さて、一番要求の多かったのがこれだ。そんなのGUIのプログラムにしてしまえよ!って言うのは簡単だったのだが、それもちと悔しいので、ちょっと考えてみる事にした。確かに、自分で定義したダイヤログが使えれば、プログラムの幅が、ぐ〜んと広がるのだ。ダイヤログプロシージャは、ユーザが書くって条件で、機能追加を行った。リソースエディタで、ちょこっと造ったダイヤログが、ユーザインタフェースの幅を広げてくれるだろう。
- リペイント
CwccCanvasに、メンバ関数CwccCanvas::RePaint()を追加した。Update()と、何が違うのかというと、キャンバスウインドウに、WM_PAINTのイベントが上がるか、上がらないかの差になる。OnPaintGC()関数は、キャンバスウインドウに、WM_PAINTのイベントが上がると呼ばれる関数なので、Update()では呼ばれない事になる。すると、ユーザがCwccCanvasクラスを継承した時に困るのだ。折角のOnPaintGC()が、キャンバスが書き直されるまで実行されないのである。描いた絵は、その場で見たいのがユーザの心理なら、やはり、この関数は必要になってくるのである。
- カーソル表示の追加
ユーザは、色々文句言うのだ。CwccGetStr,CwccGetch,CwccGetcharでは、コンソールにカーソル表示が欲しいとぬかしやがった。確かに、カーソルが無いのに文字入力するのは、ちょっと分からない気もするので、一応、要望の有った関数実行時だけは、対応する事にしたのだ。どうやって表示してるかってゆーと、500msのタイマを掛けて、カーソル位置に、'|'のマークを表示させて、また500ms経過したら、バックスペース(0x08)にて消して…を繰り返している。
- ユーザ編集
画面が流れちゃうし、コピーも出来ないから、ログ採るとか、何とかしろよ!と言われてしまった。ログについては、ちょっとリスクが有るので、ユーザに任せる事にして、プログラム終了後に、エディット可能にするメニューがあれば良いかな?と思って付けてみた。メニューの[Screen]→[Edit]にて、コンソールは、編集可能なエディットコントロールになるので、コピーするなり、コメント付けるなり操作が出来るのである。
- ユーザヘルプ
自分で組んだプログラムなのに、ヘルプメニューは、CWCCのバージョン表示だけかよって感じで、ユーザのヘルプ機能も搭載した。
第2版パッケージダウンロード
第2版ライブラリソースのダウンロード
ライブラリの版数は、1.1.0
(ソースは、暗号化されているので、メールにて、デコーダを入手して下さい)
- 追加関数リスト
- void CwccUserDialog(char *DlgName,DLGPROC UDlgProc) ;
ユーザダイヤログ関数。ユーザが、リソースエディタ等で、作成したダイヤログボックスを、ユーザインタフェースとして、使用出来るインタフェース,但し、ダイヤログ・プロシージャは、ユーザ管理とし、モーダルダイヤログとして動作する。
- void CwccCursor(int sw) ;
カーソルのON/OFF。コンソール上の、カーソルを意図的に表示しない場合に使用する。1を指定した場合は、カーソルは表示,0の場合は、カーソルは非表示となる。
- void CwccHelpMessage(char *help) ;
ユーザヘルプのメッセージを登録する。これによって登録が為されると、以降、メニューの、[Help]→[about..ThisApp]によって、自分のアプリの説明が表示される。最大で、255byteまでのメッセージが登録出来る。
- void CwccCanvas::RePaint(void) ;
グラフィック・キャンバスに、MW_PAINTのイベントを発生させる。実装済みの関数Updateでは、CwccCanvasを継承したクラスにて拡張したOnPaintGC()が即時に呼ばれないので、このコマンドを使用して、リフレッシュする方法を採る。
- サンプル
ワンパターンと言われそうだが、バイオリズムである。公開するには、適当なサンプルが、なかなか無いのだ。今回も、CWCC1.1.0の機能を、全て使ったという訳にはいかなかったが、こんな感じで、プログラムが書けるよ…というイメージのサンプルとして参考にしてほしい。CWCC自体が、正常にインストールされていれば、MS-DOSプロンプトから,
>cwcc samp05 -Rsamp.rc[CR] |
にて、コンパイル出来ると思う。前回のサンプルから、入力インタフェースをダイヤログに変えてみた。[Help]を開くと、ユーザ定義のヘルプが表示出来るようになっている。
参考になるだろうか?
サンプル
|