SSブログ
[PR]本のベストセラー

VC++4.0開発ガイド [プログラミング]

VC++4.0についてきた本なんだけど捨てる前に読んでみた

一般的なプログラムをAppWizardで開発する方法
実行形式
・実行可能ファイル(exe)
・DLL
・カスタムAppWizard

画面
・MDI
・SDI
・ダイアログ

機能
・ODBC/ODA
・OLE
・メニューとダイアログ

これらをえらんでスケルトンを作る

マウスの入力などのイベントルーチンを対応づける
デバッグ形式でコンパイル→デバッグ→実行形式をビルド

チュートリアルはSCribbleというドローソフト
画面にかかれたものをストロークとして保存し、描画するもの。
ドキュメントとビューの説明、イベントと対応するルーチンのコード追加方法の説明
ダイアログボックスを作りドローの幅を変更する機能を追加
メニューエディタをカスタマイズする方法

SCribbleを複数ビューしているとき、一つのビューの変更を他のビューに通知UpdateAllViews
SCribbleの描画を効率化する、再描画のとき、ストロークのリストをすべて表示するのではなく、関係するぶぶんだけを描画するようにする。OnUpdateの変更
スクロール機能の追加メッセージWM_HSCROLL、WM_VSCROLLの応答を書く。(ClassWizardを使う)でもドキュメントのサイズを決定すればあとはクラスがやってくれるからOnDrawは変更しなくてよい
画面分割の追加 ClassWiewのメンバ変数にCSpぃってrWndを追加
印刷イメージの拡大100単位はデフォルトだと100ピクセル
ページ設定、メンバ関数のオーバーライドOnPreparPrintingなど
状況依存ヘルプをAppWizardでつくりMAKEHELP.BATを実行

SCribbleにOLEサポート追加
①フルサーバーオプションでAppWizard実行
②SCribbleのプロジェクトをディレクトリにコピー
③プリコンパイル済みヘッダーにAFXOLE.Hを追加
④アプリケーションオブジェクトにOLE固有のサーバーコード追加
⑤Class CSCribbleDoc::public CDocument → Class CSCribbleDoc::public COleServerDocというようにすべてのCDocumentを置換
⑥REGEDITまたはColeTemplateServer::UpdateRegistryでアプリケーションから登録

OLEコンテナ作成方法
コンテナ・・・ドキュメントに埋め込みアイテムやリンクアイテムを取り込むことができる

OLEオートメーションサーバー・・・プログラミング可能なオブジェクトを公開
AppWizardでスケルトンをつくり、OLEオートメーションのプロパティとメソッドにコード追加
ディスパッチインターフェイス内でメンバ変数の公開
また、その派生クラスの作成方法(派生もとを基本クラスに指定して新規作成)

OLEコントロールCircleの開発解説
ControlWizardをつかってテンプレート作成(コントロールはビルドの過程で自動的に登録)
背景をペイントするプロパティをClassWizardで追加
カスタム通知プロパティの追加(LEがサポートする4種類御カスタムプロパティ)
カスタム入力プロパティ追加(OLEコントロールクラスのプロパティに取得/設定メソッドの組み合わせでアクセスする
特殊効果の追加(Circleにかかれた円の内部でマウスの左ボタンをクリックするとコントロールが異なる色で点滅)の方法
①プロパティ追加
②WM_LBUTTONDOWN WM_LBUTTONDBCLK の対応関数の変更
③ヒットテスト・・・現在座標が円のなかか?
カスタムイベントの追加
テキストとフォント処理・・・OnDrowの変更、プロパティページを追加
ディフォルトのプロパティページの変更・・・プロパティページのページIDテーブルの最初がディフォルト
データバインディング。。。カスタムの取得/設定型プロパティ
バージョンとシリアル化・・・コントロールのバージョン情報をシリアル化

データベースを使用したアプリケーションの開発
例ではAccessを使用、32bitAccessODBCドライバは自動でインストールされるらしい
①AppWizardでファイルサポートなしのデータベースビューを選択
②ClassViewでCSえcちおnSetを選択しテーブル列とレコードセットのデータメンバーを対応付け
③CSectionFOrmレコードビュークラスがつくられる
 CEnrollDocドキュメントクラスが作られる

作ったあぷりを、選択されたデータから新しくレコードセット求めるよう変更
レコードの追加(AddNew→UpDateData→Update)と削除(Delete)
変更(CRecordView→Edit→UpDateData→UpDate)

DAO版でも同じチュートリアルをやっていた
CDあおRecordSetオブジェクトをうめこみ
ClassWizardを使ってフォームコントロールとレコードセットフィールドを対応づける
他はあまりかわっていなかったようなきがした。



nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

※ブログオーナーが承認したコメントのみ表示されます。

トラックバック 0

[PR]Kindle ストア ベストセラー

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。