[トップ][一覧][最近の更新]

編集履歴:過去のバージョン

2015/09/09 09:46:03 JST時点でのオブジェクトの表示されている文字列(タイトル)を取得するだけのモジュールの内容

現在のバージョンとの差分を見る

編集履歴ページに戻る

  ブジェクトの表示されている文字列(タイトル)を取得するだけのモジュール
  {{{
  #module gettext
  
  	#define INVALID_HANDLE_VALUE $FFFFFFFF
  	#define WM_GETTEXT           $0000000D
  	#define WM_GETTEXTLENGTH     $0000000E
  
  	#uselib "user32.dll"
  	#cfunc GetWindowTextLength "GetWindowTextLengthA"  int
  
  	#deffunc textshutoku var p1 , int handle// , local textlength
  
  		if handle==INVALID_HANDLE_VALUE : return 0
  
  		textlength= GetWindowTextLength(handle)
  		//sendmsg handle, WM_GETTEXTLENGTH : textlength=stat   //sendmsgでWM_GETTEXTLENGTHを送ってもいい
  		memexpand p1,textlength+1
  		sendmsg handle, WM_GETTEXT, textlength+1,varptr(p1)
  		poke p1,textlength,0
  		return textlength
  
  #global
  
  //サンプル
  
  //ウィンドウスタイル
  #define WS_CHILDWINDOW     $40000000
  #define WS_VISIBLE         $10000000
  #define WS_VSCROLL         $00200000//縦スクロールバー
  #define WS_HSCROLL         $00100000//横スクロールバー
  #define ES_AUTOHSCROLL     $00000080//横に自動でスクロール
  #define ES_AUTOVSCROLL     $00000040//縦にに自動でスクロール
  
  //ウィンドウスタイル(エディトコントロール専用)
  #define ES_READONLY        $00000800//書き換え禁止
  #define ES_MULTILINE       $00000004//mesbox化
  #define ES_NUMBER          $00002000//数字のみを入力できるようにする
  
  //拡張ウィンドウスタイル
  #define WS_EX_CLIENTEDGE   $00000200//mesboxと同じ縁
  
  #define WM_SETTEXT         $0000000C
  
  sdim texttmp
  
  winobj "edit" , "" , WS_EX_CLIENTEDGE , WS_HSCROLL | WS_VSCROLL | WS_CHILDWINDOW | WS_VISIBLE | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL , ginfo_winx/2 , ginfo_winy-25
  
  pos ginfo_winx/2,0
  winobj "edit" , "" , WS_EX_CLIENTEDGE , ES_READONLY | WS_HSCROLL | WS_VSCROLL | WS_CHILDWINDOW | WS_VISIBLE | ES_MULTILINE | ES_AUTOVSCROLL | ES_AUTOHSCROLL , ginfo_winx-ginfo_winx/2 , ginfo_winy-25
  
  pos 0,ginfo_winy-25
  objsize ginfo_winx,25
  button gosub "左から右にコピー",*fukusha
  
  stop
  
  *fukusha
  	textshutoku texttmp , objinfo_hwnd(0)
  	sendmsg objinfo_hwnd(1) , WM_SETTEXT ,, texttmp
  	return
  }}}