DOBON.NETプログラミング道掲示板
(現在 過去ログ2 を表示中)

[ 最新記事及び返信フォームをトピックトップへ ]

■33473 / inTopicNo.1)  外部アプリのマウスクリック無効化について。
  
□投稿者/ 谷沢 一般人(1回)-(2016/08/26(Fri) 12:39:06)
  • アイコン環境/言語:[OS : Windows 7 / 言語 : Visual Basic .NET / .NET Framework : 3.5] 
    分類:[.NET] 

    【解決したい問題】

    C++ で作られた'B'のアプリケーションを'A'の vb.netで作られたアプリケーションから起動させて、その表示位置を変更後、ENABLEDをFalseにして'B'画面をマウスでクリックした際に、呼び出し元の'A'フォームよりもも'B'フォームの画面が前面に出てしまうことを避けるようにしたいと考えています。
    'A'フォームから'B'フォームを起動させて表示位置を変更するところ
    までは成功したのですが、'B'フォームをマウスでクリックした際に前面に移動する事を制御したいのですが、方法がわかりません。
    'B'フォームの起動は
    System.Diagnostics.Process.Start("c:\bin\demo.exe")
    で行い、起動後に
    Public Function GetHDL(ByVal caption As String) As IntPtr
    'TfrmMain Teknova
    Dim hwnd As Long
    hwnd = FindWindow(vbNullString, caption)
    Return CType(hwnd, IntPtr)
    HDL=GetHDL( "Teknova")でハンドル'HDL'を取得しています。
    次に、MoveWindow(HDL, 400, 210, 800, 600, 1)でフォームの移動を
    おこないました。
    以上のように'B'フォームのハンドルを取得して移動するまでは出来たのですが、マウスのクリックイベントの無効化が出来ませんでした。
    不慣れな質問のため、趣旨をお伝えしきれていないかもしれませんが、
    ご教授いただければ幸いです。




    '
引用返信 削除キー/
■33474 / inTopicNo.2)  Re[1]: 外部アプリのマウスクリック無効化について。
□投稿者/ 魔界の仮面弁士 大御所(1048回)-(2016/08/26(Fri) 13:49:07)
  • アイコン2016/08/26(Fri) 13:54:35 編集(投稿者)

    No33473に返信(谷沢さんの記事)
    > hwnd = FindWindow(vbNullString, caption)
    > Return CType(hwnd, IntPtr)

    FindWindow を As Long で受け取り、それを IntPtr に変換するのではなく、
    FindWindow の宣言自体を As IntPtr にするべきです。


    > マウスのクリックイベントの無効化が出来ませんでした。

    ENABLEDをFalseにしたいのは、'A' (VB 側)でしょうか。
    それとも 'B' (C++ 側)でしょうか。

    B だとしたら、EnableWindow を呼び出してみてはいかがでしょう。
    現在の状態は IsWindowEnabled です。


    > 前面に移動する事を制御したい

    このあたり。

    http://www.ailight.jp/BBSDetail/Index/6bf91ba1-87d0-46a9-9f02-28490782bd04
引用返信 削除キー/
■33475 / inTopicNo.3)  Re[2]: 外部アプリのマウスクリック無効化について。
□投稿者/ 谷沢 一般人(2回)-(2016/08/26(Fri) 15:56:47)
  • アイコン魔界の仮面弁士さん
    ありがとうございました。
    大変勉強になりました。
    おかげさまで解決いたしました。

    No33474に返信(魔界の仮面弁士さんの記事)

引用返信 削除キー/



トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

Mode/  Pass/


- Child Tree -