「XopsAddonCreator」の開発 -37 | 2022.06.28 01:48 |
前回言ったXopsAddonCreatorの作り直し計画の件、適当に勢いに任せて
突き進んでいます。
とりあえずウインドウ周りの処理を作り込んでいました。
色がメチャクチャですが。
(クリックで拡大)
以下、中身の技術ネタです。
Windowsアプリケーションなので、ウィンドウプロシージャの処理が味噌
となります。
ウィンドウプロシージャ自体は難しくはないのですが、無計画に組み立てて
行くと、あっという間にスパゲッティソースになるので要注意です。
ウィンドウプロシージャの処理については、まだ設計・実装がFIXしているわけ
ではなく、全体をイベント駆動型にするか、指定関数を直接実行する構造に
するか、迷っています。
最初に思いついたのはイベント駆動を用いた設計でしたが、
ウインドウサイズを変更する際にウィンドウプロシージャが連続で実行される
ため、外でイベントがキャッチできず、ウインドウサイズ変更に期待通り対応
できませんでした。
どうしたものかと困りましたが、サイズ変更時にWM_SIZEをキャッチして、
関数ポインタを用いて指定関数を直接実行する構造にすれば、期待通り動作する
ことが分かりました。
現状は、イベント駆動と関数実行機能が両方載っていますが、将来的には関数
実行機能だけで良いかとは思い始めています。
せっかく作ったイベント駆動を消すのは勿体ない気持ちもありますが、まぁ
要らないものは要らないですからね。他で使えれば良いのですが。
あと、今回初めて自発的に関数ポインターを設計に組み込んで活用しましたが、
自信の中で実績がなく、デメリットや注意点が完全に把握できてないです。。
とりあえずNULL判定だけすればよい??(^^;
実績が皆無な技術を過信したまま、設計の中心に入れて良いものなのか全く
分かりません。
なお、今回色々調べた中で「メッセージクラッカー」というMicrosoft公式の
ラッパー・マクロもあることを知りましたが、結局のところはSwitch文が多少
綺麗になる程度で、目当ての使い方はできないようなので辞めました。
いやー、これはこれでOpenXOPSとは違う難しさがありますなー。
それにしても、現行XopsAddonCreatorは2012~2013年頃に作り始めており、
(現行品の系統は)もう10年前に開発したことになります。
他所でも呟きましたが、このレベルのエディタを1年程度で作り上げるって、
今思えば信じられない話です。
まだXOPS界隈に人が居る時代で周囲からの期待もありモチベーションも
高かったり、今と比べて平日も時間があったり、当時は ただただ無計画に
勢いで進めていた節もありますが、
一番大きいのは今よりも10歳若いという事実だろうなぁ。。 若いは強い。
突き進んでいます。
とりあえずウインドウ周りの処理を作り込んでいました。
色がメチャクチャですが。
(クリックで拡大)
以下、中身の技術ネタです。
Windowsアプリケーションなので、ウィンドウプロシージャの処理が味噌
となります。
ウィンドウプロシージャ自体は難しくはないのですが、無計画に組み立てて
行くと、あっという間にスパゲッティソースになるので要注意です。
ウィンドウプロシージャの処理については、まだ設計・実装がFIXしているわけ
ではなく、全体をイベント駆動型にするか、指定関数を直接実行する構造に
するか、迷っています。
最初に思いついたのはイベント駆動を用いた設計でしたが、
ウインドウサイズを変更する際にウィンドウプロシージャが連続で実行される
ため、外でイベントがキャッチできず、ウインドウサイズ変更に期待通り対応
できませんでした。
どうしたものかと困りましたが、サイズ変更時にWM_SIZEをキャッチして、
関数ポインタを用いて指定関数を直接実行する構造にすれば、期待通り動作する
ことが分かりました。
現状は、イベント駆動と関数実行機能が両方載っていますが、将来的には関数
実行機能だけで良いかとは思い始めています。
せっかく作ったイベント駆動を消すのは勿体ない気持ちもありますが、まぁ
要らないものは要らないですからね。他で使えれば良いのですが。
あと、今回初めて自発的に関数ポインターを設計に組み込んで活用しましたが、
自信の中で実績がなく、デメリットや注意点が完全に把握できてないです。。
とりあえずNULL判定だけすればよい??(^^;
実績が皆無な技術を過信したまま、設計の中心に入れて良いものなのか全く
分かりません。
なお、今回色々調べた中で「メッセージクラッカー」というMicrosoft公式の
ラッパー・マクロもあることを知りましたが、結局のところはSwitch文が多少
綺麗になる程度で、目当ての使い方はできないようなので辞めました。
いやー、これはこれでOpenXOPSとは違う難しさがありますなー。
それにしても、現行XopsAddonCreatorは2012~2013年頃に作り始めており、
(現行品の系統は)もう10年前に開発したことになります。
他所でも呟きましたが、このレベルのエディタを1年程度で作り上げるって、
今思えば信じられない話です。
まだXOPS界隈に人が居る時代で周囲からの期待もありモチベーションも
高かったり、今と比べて平日も時間があったり、当時は ただただ無計画に
勢いで進めていた節もありますが、
一番大きいのは今よりも10歳若いという事実だろうなぁ。。 若いは強い。
category : ソフト・ツール開発 | comment [0] |