2016-11-21
一応解決・・・なのか??
謎は解明しないけど、とりあえず親部品設定した後に、子ウィンドウを最大化すると、上手くいくようです。
これはもちろん、位置の指定がってことではなく、ミニ画面にぴったり合わせて母艦を表示できるようになったってだけのコトです。
#----------------------------------------------------------- #窓ハンドル親設定の実験 テストとはフォーム。 母艦のタイトル=「親ウィンドウ」。 テストのタイトル=「子ウィンドウ」。 母艦の幅は200。母艦の高さは200。 テストの幅は200。テストの高さは200。 テストのスタイルは「枠なし」 窓ハンドル親設定((テストのハンドル),(母艦のハンドル))。 テストのXは0。テストのYは0。 # Xの位置がずれます //テストを最大化。 母艦の可視はオン。テストの可視はオン。 テストのハンドルを窓ハンドルアクティブ。 テストを赤色で画面クリア ●窓ハンドル親設定(子ハンドル,親ハンドル)=DLL("user32.dll","DWORD SetParent(DWORD, DWORD)") #-----------------------------------------------------------
というわけで、現状はこんな感じで、一応ミニ画面のところに母艦が表示されるようになって、ちゃんとスクリーンセーバーの設定画面と連動して動くようにもなりました。
*プレビュー #二重起動の防止。 プレビュータイトルとは文字列=「スクリーンセーバーサンプルのぷれびゅー画面」 #他とは容易にかぶらなそうなタイトルを指定のこと。 窓列挙。一時=それ。 一時の2で0からプレビュータイトルを表検索。 もし、それ=-1でなければ、終わる。 母艦のタイトルはプレビュータイトル #「スクリーン セーバーの設定」画面内のプレビューウィンドウ(ミニ画面)の情報を取得。 PS=PWHの窓ハンドル内サイズ取得。 Pxy=PWHの0,0を窓ハンドル画面座標計算。 #母艦にプレビューウィンドウの位置サイズを設定 母艦のスタイルは「枠なし」 母艦のクライアント幅はPS¥0,2。 母艦のクライアント高さはPS¥0,3。 母艦のハンドルをPWHに窓ハンドル親設定。 母艦を最大化。 #プレビューウィンドウに実際に表示するもの 母艦をデスクトップ色で画面クリア。 「プレビュー」を表示。 母艦の可視はオン #----------------------------------------------------------- # なでしこで作ったヤツじゃ無いウィンドウを親部品にしたり、子部品にしたりできる。 # なでしこライブラリ~ http://www26.atwiki.jp/isoroku_be/pages/66.html ●窓ハンドル親設定(子ハンドルを親ハンドルに)=DLL("user32.dll","DWORD SetParent(DWORD, DWORD)") #-----------------------------------------------------------
がっ・・・
やっぱりこれだけじゃダメだったんです。
子ウィンドウにしたら、「スクリーン セーバーの設定」画面が閉じて、母艦の親部品も無くなったら終了するかと思ったら、しなかった。
最初の実験で、母艦を閉じたらテストも終了するのは母艦を閉じてるからであって、試しにメモ帳の子部品に母艦を設定してみたら、やっぱり終了しなかった。
現状だと、ふつーに正しく「スクリーン セーバーの設定」をOKで終わらせても、表面上は見えなくなってもこっそりとタスクに残っている。これはよろしくありません。
「スクリーン セーバーの設定」ウィンドウが閉じたら、スクリーンセーバーも終了させるようにしないとならないんだよね。
それにしても・・・
「/s」と「/c」は、プログラムの最初に、コマンドライン¥1を設定することで、なでしこエディタだけで動作テストが出来るけど、プレビューだけは、スクリーンセーバーの設定の画面にインストールしないとお試し出来ないから、めんどくさー。
実行ファイルつくって、.scrにリネームして、インストールして・・・って一連の動作を、なでしこさんにやってもらうようプログラムを作れば良いんだろうけど、なんかもう、それ自体が面倒なんだよぉ~(ダメダメ;;;)
コメントを書く
トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20161121