FMtrialもv3リリースした所で、次はMMLworkstationの開発の続きを。
MMLworkstationはVSTinstをGUIで読み込んだりできるようにする為に、今までの
DXライブラリの構造に加えてWindowsアプリの構造も加える必要がある。
自分でアプリ内にウィンドウを作ればいいのだけど、そんなのって今の時代は
あんまり努力としては意味が無い感じ。
でもDXライブラリは普通のWindowsアプリを作るには結構不向きで、でも
Dxライブラリを抜く事はできず、共存させていく事に。
その中でいくつかアホみたいな事でハマったのでメモ。
■子ウィンドウを出したり消したり
世の中のウィンドウアプリのサンプルは、基本的にウィンドウを出したらそれで満足
みたいで、消したり出したりしているサンプルが全く無い!!
いや、あるのかもしれんけど、ググっても全く当たってこない!!困った!!
とにかく、一回出したウィンドウを消して、次出すという行為、これ意外とムズイ!
色々やってみて、大きく二つの行為が必要だという事を把握。
・ウィンドウのクラスを登録
・ウィンドウをクリエイト
この二つを毎回やると怒られる。そこで、クラスの登録だけしておいて、ウィンドウ
が必要になったらクリエイト、いらなくなったらデストロイという流れでなんとかクリア。
多分これで大丈夫でしょう・・。
■子ウィンドウのアイコン
そしてVSTインストのセレクタを子ウィンドウで出してみて、アイコンがWindowsの
デフォルトのアイコンが出て「作り途中感」がすごい。
調べてみると、クラスを登録する時にアイコンを登録するみたいだ。
WNDCLASSのhIconにリソースのアイコンを登録するだけみたい。
でも、色々やるも出ない。
LoadIcon()には二つの引数があって、一つ目はHINSTANCE。これは問題ない。
二つ目がLPCSTRでアイコンを渡すみたいだ。
世の中のサンプルが、「"IDC_ICON"」みたいなダブルコーテーションでリソース値を
渡してるものだから、すっかりだまされた。LPCSTRだし、文字列で検索でもするの
かいな?と。
色々やって出たのは、
wc.hIcon = LoadIcon(hInstance, (LPCSTR)IDC_ICON);
これ。LPCSTRでキャストするだけだった。なんだよ!もう!!どこにもそんな事
書いてなかったよ!!もう!!こんなのただの数字じゃんか!!ぷんすか!!
結構な時間取られたよ・・全く・・。
0 件のコメント:
コメントを投稿