[[BORLAND C++ CWCC]]
RETURN
CWCC#10 CWCC 1.1.0 2nd Release Edition
なんだかんだ言っても、すぐに続編造ってるじゃん?と言われそうだが、公開するライブラリの構築は、遠い昔に終わっていて、試用やらサンプル造りなどで、色々と時間を食っていたのだ。この文書を書いたりしている方が遅いので、その辺のタイムラグが有るのだ。仲間内リリースからは、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]を開くと、ユーザ定義のヘルプが表示出来るようになっている。

    参考になるだろうか?
    サンプル
2002/05/22
HomeSweetHome2
Ozzy's Software