RC6向けSDKで、オブジェクトパネルの表示の更新と、ドキュメントの
記載漏れを直しました。
2006-07-13 16:15
確認しました。
早い対応ありがとうございます。
バージョンアップがんばってください。
2006-07-15 14:28
>RC6向けSDKで、オブジェクトパネルの表示の更新と、ドキュメントの
>記載漏れを直しました。
まだおかしなようですが・・・。
例えば全オブジェクトにロックをかけると
カレントオブジェクトのみに表示が反映されます。
変更自体はかけられているようですが、オブジェクトパネル全体に
無効領域が出来ていない為のようです。
他ウィンドウをかぶせたりしてWM_PAINTを外部から発行させると
想定通りの動作をします。
(分かりにくい表現かもしれませんが分かりますか?)
プラグインからオブジェクトパネルのハンドルを取得して
再描画をかけることで対処できますが、
MQ_RefreshWindow()のようにメタセコ側から
再描画をかけていただけると安心して使えます。
2006-07-16 16:19
RC7に入れ替えてしまったのでrc6の動作は解りませんが
当方では問題なさそうです。
いちおメタセコ単独で起動し、
自作の「表示の反転」等のプラグインを動かしても
全てのオブジェクトの表示に反映されています。
2006-07-17 01:53
>まだおかしなようですが・・・。
>例えば全オブジェクトにロックをかけると
>カレントオブジェクトのみに表示が反映されます。
あらためて調べなおしましたが、プラグイン内で例えばロック状態を変更してから
メッセージボックスを表示すると、元々フォーカスがオブジェクトパネルにある場合に
フォーカスがメッセージボックスへ移る瞬間、元々フォーカスのあった
カレントオブジェクト領域のみが再描画されるようです。
再描画はプラグインの処理(MQModifyObject()など)が返った後に行っているので、
プラグイン内で処理を止めることをしない限りは問題ないと思うのですが、
具体的にどういった処理をしているのでしょうか?
2006-07-19 11:32
>具体的にどういった処理をしているのでしょうか?
例えばモーフタッゲットを作った場合、一定の規則で作ったオブジェクトの中の
一つを表示させた場合があります。
選択オブジェクトがモーフィング対象であった場合、
OnUpdateObjectList()で処理をしたいのですが、
上記にもある通り、ビュー画面上では反映されますが、
オブジェクトパネルには上手く反映されません。
以下、検証ソース
OnUpdateObjectList(MQDocument doc)
{
for(int i=0; i<doc->GetObjectCount();i++)
{
MQObject obj = doc->GetObject(i);
obj->SetLocking(TRUE);
}
}
呼び出しのタイミングの問題だとは思いますが、
このようなケースで不便があるのは面倒です。
2006-07-27 20:56
>呼び出しのタイミングの問題だとは思いますが、
>このようなケースで不便があるのは面倒です。
OnUpdateObjectList()自体がオブジェクト属性の変更に対する応答なので、
その中でさらに属性を変更するのはあまり推奨しませんが、
このOnUpdateObjectList()はどの操作を行った後に呼ばれたものでしょうか。
こちらで確認できたのは
・オブジェクトパネル上の可視・鍵アイコンをドラッグでON/OFF切り替えした時
・オブジェクトの設定ダイアログで編集禁止をOFFにしてダイアログを閉じた直後
の2つですが、他にありますか?
2006-07-30 14:45
Ver2.5 Beta1でいくつかの箇所をOnUpdateObjectList()が呼び出されてから
リストが更新されるようにしてみました。
これでどうでしょうか?
2006-07-30 15:57