C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

■96407 / 2階層)  SendMessageの使用法
□投稿者/ 初心者 (4回)-(2020/11/20(Fri) 12:35:52)
Hongliangさん、魔界の仮面弁士さん回答ありがとうございます。
VB6をVB.netに移植したので、記述としては、かなりいい加減なコードになっていると
ご指摘にとおり思いましたが、魔界の仮面弁士さんのコードを拝見し、知識のなさを実感しました。
問題点1
MSSpy++は持ち合わせていので、WinSpy++(フリー)にて判ったことは、(Textboxか判断できませんが)
CADとは、BricsCADでV13とV20(最新)の比較です。
WinSpy++のHandleとCaptionの値の違いで、
V13時は、Captionの値は、入力したコマンドの文字列を反映してましたので、正しく処理できていた
V20では、反映しておらず、"text"が常に取得されます。(コマンド文字列が取得できないので処理できない)
思うに、表示(ここではコマンド文字列の事ですが)しているものと実際と違い、何かテクニックを使用している
のではないかと推測します。
お願いとなりますが、色々試みましたが私には、理解不能です。
何方か、BricsCAD(体験版)をインストールして頂き、
解明してもらえないでしょうか。
目的は、入力されてコマンド文字列の取得です。

問題点2(文法そのものに問題があり)
APIの定義はこんな感じです。ネットから引っ張り出して、最終的にこうなりました。
Public Declare Function SendMessageString Lib "User32.dll" Alias "SendMessageA" (ByVal hWnd As Int32, _
ByVal wMsg As Int32, ByVal wParam As Int32, ByVal lParam As String) As Int32

<System.Runtime.InteropServices.DllImport("user32.dll", CharSet:=System.Runtime.InteropServices.CharSet.Auto)> _
Public Function SendMessage( _
ByVal hWnd As Int32, _
ByVal Msg As Int32, _
ByVal wParam As Int32, _
ByVal lParam As Int32) As Integer
End Function

以下、回答
> 上記は WM_GETTEXT メッセージの話でしょうか?
はい、そうです


> 指定しているウィンドウハンドルは、そのコントロールの HWND になっていますか?
直接入力したりして試しているので間違いはないです

> ウィンドウレスコントロールが対象の場合には、SendMessage では受け取れないので、
> UI オートメーションなどを使って値を取得する必要があるかもしれません。
??

>>オーバーロードを使わずに別名関数として API を宣言している点も、.NET っぽくないですし。
オーバーロードの用法は分かりませんが、文法的に間違いが多いので、魔界の仮面弁士さんに作って
頂いたものを移植して、トライしていきます。
因みに、「Option Strict On」を指定したら、100個以上ありました、いや〜まいったな!

時間が掛かると思いますが、よろしくお願いいたします。


編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[1]: SendMessageの使用法 /魔界の仮面弁士 →Re[3]: SendMessageの使用法 /魔界の仮面弁士
 
上記関連ツリー

SendMessageの使用法 / 初心者 (20/11/19(Thu) 18:50) #96397
Re[1]: SendMessageの使用法 / Hongliang (20/11/19(Thu) 20:03) #96400
Re[1]: SendMessageの使用法 / 魔界の仮面弁士 (20/11/19(Thu) 20:09) #96403
  └ SendMessageの使用法 / 初心者 (20/11/20(Fri) 12:35) #96407 ←Now
    └ Re[3]: SendMessageの使用法 / 魔界の仮面弁士 (20/11/20(Fri) 16:28) #96409
      └ Re[4]: SendMessageの使用法 / 初心者 (20/11/21(Sat) 11:39) #96414
        └ Re[5]: SendMessageの使用法 / Azulean (20/11/21(Sat) 17:57) #96415
          └ Re[6]: SendMessageの使用法 / 初心者 (20/11/23(Mon) 15:02) #96442

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信