|
no prev page |
1/1ページ(1件) |
no next page |
|
|
|
ティアのたわごと☆其の496
Win32でのプログラミング歴は10年以上でAPIなんかは一通り使いこなしたというか、ODBCとかMAPIとかは残念ながら、使う事がなかったので、未着手ですか
それ以外は、どんとこ〜いってくらいにはなりました。
でも、MFCは未だ、始めて2年目
まだまだ初心者です。
MFCがAPIと開発者の利便性を仲介する役なのは、知らない人は知らないでしょうが
まぁこれがあった方が便利な側面もあると言う事です。
どの程度かというと、あまり知られていませんが、IEなどのActiveXをVCで実装する場合、Win32で利用するのは、半端じゃなく大変です。
APIを何個並べれば表示できるのか・・・
でもMFCなら、何とかクラス(ActiveXのI/FをMFCで表現したもの)に右クリックプラス少々操作でしてくれるので、あとは他のクラスと一緒に使えばいいんです。
とても便利
まぁそんな事もあり、いくつか物にも依りますが、MFCを利用したアプリケーションの開発もしてまいりました。
なにってねぇ・・・IEを利用すればそれだけでHTMlドキュメント表示できるし、あれを利用すれば、PDFがあっさり表示できるし、まぁいろいろ??
で、でもMFCはまだあまり使い慣れていないというか・・・
CreateDialogParamは何処じゃ〜〜〜〜と、永遠探し続けたりもしました。
当然ですが、MFCには有りませんw
CWndのCreateExに有る物の、これでダイアログボックスを作成するのは至難の業
でも、これってね、結局どれもこれも同じ事なんだけど
適当にメソッドを追加して、
COriginal_Dialog *cod;
cod=new COriginal_Dialog;
で作成した後に
cod->SetlParam(xxxx);
とかであっさり値を送れて
その後に
cod->Create(IDD_Dialog1);
とかで十分再現が出来る
良いんだか悪いんだか?
これと同じ様な事で、さっきは永遠悩んでいたんだけど
終了時の処理を
onCloseにいろいろ書いていたんだけど、それはあくまで、windowを閉じるときに設定していたから、アプリケーションを途中で終了させた場合は、そのままではWM_CLOSEは送られない
これはWin32のプログラムでも全く同じだけどね、
だからあたしは
cod->CloseWindow();
を実行したんだけど、何度やっても終了時にエラーが出る(笑
この辺りは、APIの仕様に慣れすぎている事の弊害なんだけどね
CloseWindow()
はWM_CLOSEを送る命令なんだけど
MFCはあくまでAPIと利便性の橋渡しをしているだけで
オブジェクトに対して直接操作する上記CloseWindow()でWM_CLOSEを送ってしまうと
CWndの方のCloseWindowが直接呼ばれ、CDialog無視して作業が進行するわけ
だからCDialogのスーパークラスいかが先に破棄されていたのよね
もうちょっと頭使えよ>MFC
って事なんですが、
MFCのCDialogのonCloseを直接呼ばないと正常な終了処理をしてくれないんですよ
まぁ当然と言えば当然かもしれないけど、
自分でWindowループを作っていたときは親のWindowで受信した命令は全ての子、全ての孫、ひ孫・・・・までメッセージをちゃんと送信してたから
そもそも同じウィンドウで CWndはCDialogのスーパークラスだし?
CWndのCloseWindow 実行したらCDialogのonCloseも実行すると思うじゃん?
っていうか、CWndはCdialogのスーパークラスだから、CDialogの存在を検知する事は不可能なんですが・・・・
CDialog側が、スーパークラスのメソッドの呼び出しはそれなりに監視すべきだと思うのですよ
まぁ今更言っても無駄でしょうが?
MFCもいまはどうなっているのか・・・・そろそろ.Net Frameworkで作成しなければいけない時機になるのでしょうか?
あたしは、ほぼ未着手
だって?MFC出た当初も遅くて、不具合多くて、途中で仕様が変わったりして使えない(今でも内部はMFCではなくWin32or64で作成)って事だったのですが、
.Net Frameworkも今同じ事を繰り返し・・・
知ってます?完全な上位互換じゃないのよ、だから
1.1 2.0 3.0は別個にインストールされて、それぞれがそのまま残ってて
アプリケーションを実行するときに制作時に使ったバージョンのライブラリがリンクされる
途中で仕様を変えるな〜〜〜
プログラマの嘆き
まぁそんな感じで、いまだ殆ど手を出していないわけです。
まぁVistaも多少落ち着いたし、そろそろ?
使えるようにしないとね?
|
閉じる
|
|
|
|
|
|
no prev page |
1/1ページ(1件) |
no next page |
|