やりたい事は、チャットクライアント(別作成)からメッセージを受け取ると、タスクバーに格納しておいた、チャットサーバー(下記ソース)を母艦(メッセージ)を画面最前面に表示し、その後、手動で最小化(タスクバーへ格納)をしたいのです。
【バージョン】
1.5332
【症状】
現在の動作では、クライアントからメッセージ受け取り時にタスクバーに最小化されている母艦を画面最前面に持ってくることはできるのですが、その後、母艦の最小化ボタンを押しても反応せず。
下記ソースではコールしていませんが、CloseWindowを使用して、最小化(タスクバーに格納)をしようとしても、母艦はのサイズは最小化されますが、タスクバーに格納できません。
ちなみに、こちらの都合上、画面最前面に固定する処理は必要なのです。
※母艦ではなく、メモ帳などを、窓ハンドルを取得し、実行すると、タスクバーへの格納までできます.
※さらに、SetWindowPos、ShowWindowの別パラメータで、無理やり母艦を最小化させようとしても反応せずでした。
【要望】
どうにか、母艦を最小化(タスクバーへの格納)する方法はないでしょうか?
【サンプルソース(一部)】
target="チャットサーバー"
母艦のスタイルは「枠可変」
母艦は「チャットサーバー」
母艦のW=700
母艦のH=300
画面メモとはメモ。その幅は630。その高さは240。
targetを窓ハンドル検索
●ShowWindow(P1,P2)=DLL("user32.dll","BOOL ShowWindow(HWND hWnd,int nCmdShow)")
●SetWindowPos(hw,hWIA,X,Y,cx,cy,uf)=DLL("user32.dll",
"BOOL SetWindowPos(
HWND hWndInsertAfter,
int X,
int Y,
int cx,
int cy,
UINT uFlags
)")
●CloseWindow(H)=DLL("user32.dll","long CloseWindow(Long hWnd)")
!「nakonet.nako」を取り込む。
サーバーとはTCPサーバー。
サーバーのポートは74987。//都合上適当
サーバーを開始。
サーバーで受信したときは
画面メモに受信データを代入する。
1秒待つ。
ShowWindow(targetを窓ハンドル検索,9)
SetWindowPos(targetを窓ハンドル検索,-1,0,0,0,0,3)//最前面固定
2秒待つ。
SetWindowPos(targetを窓ハンドル検索,-2,0,0,0,0,3)//最前面固定解除