コンボボックスのエディットウィンドウハンドルを取得          <TOP>


FindWindowEx クラス名 、または キャプションを与えてウィンドウのハンドルを取得
SendMessage ウィンドウにメッセージを送信
SetWindowText ウィンドウのタイトルを変更
 

 

'================================================================
'= コンボボックスのエディットウィンドウハンドルを取得
'=   (FindWindowEx2.bas)
'================================================================
#include "Windows.bi"

#define CB_ADDSTRING &H143              'コンボボックスのリストボックスに文字列を追加する
#define CB_SETITEMDATA &H151            'アプリケーション定義の値を設定する

' クラス名 、または キャプションを与えてウィンドウのハンドルを取得
Declare Function Api_FindWindowEx& Lib "user32" Alias "FindWindowExA" (ByVal hWndParent&, ByVal hWndChildAfter&, ByVal lpszClass$, ByVal lpszWindow$)

' ウィンドウにメッセージを送信
Declare Function Api_SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hWnd&, ByVal wMsg&, ByVal wParam&, lParam As Any)

' ウィンドウのタイトルを変更
Declare Function Api_SetWindowText& Lib "user32" Alias "SetWindowTextA" (ByVal hWnd&, ByVal lpString$)

Var Shared Combo1 As Object
Var Shared Button1 As Object

Combo1.Attach GetDlgItem("Combo1") : Combo1.SetFontSize 12
Button1.Attach GetDlgItem("Button1") : Button1.SetFontSize 14

'================================================================
'=
'================================================================
Declare Sub Button1_on edecl ()
Sub Button1_on()
    Var hwndEdit As Long
    Var Ret As Long
   
    hwndEdit = Api_FindWindowEx(Combo1.GethWnd, 0&, ByVal 0, ByVal 0)
   
    Ret = Api_SetWindowText(hwndEdit, "FindWindowEx 取得!")
   
    Ret = Api_SendMessage(Combo1.GethWnd, CB_ADDSTRING, 0&, "FindWindowEx:Editハンドル:" & Str$(hwndEdit))
End Sub

'================================================================
'=
'================================================================
While 1
    WaitEvent
Wend
Stop
End