by koko!yo » 2006年4月13日(木) 17:48
> > GetObjectType関数で
> > 調べてみると 3 という答えが返ってきます。
> > どうやら 文字オブジェクトのようです。
> どうして文字オブジェクトだと思ってしまったのでしょうか?
> AB付属のヘルプを見ると、明示的に書かれてはいませんけど、3 は OBJ_DC 、つまりデバイスコンテキストだということを示しています。
> ちなみに、GetDC()関数の戻り値を指定している場合、もちろん OBJ_DC (3です)が返ります。
>
> > ウインドウ内の文字(テキスト)を
> > getdc関数を用いて取得する方法はあるのでしょうか?
> デバイスコンテキストに描写されている文字列の取得は分かりません...。
>
> 単に、リストボックスの文字列を取得したいのであれば、リストボックスに LB_GETTEXT メッセージを送信します。
> 動かしてないのでバグるかもしれませんけど、選択されている文字列を取得します。
>
[ここをクリックすると内容が表示されます] [ここをクリックすると非表示にします]コード: 全て選択
'------------------------------------------------------------
> ' リストボックスで選択されている文字列を取得
> '------------------------------------------------------------
> Function lb_getSelectString(ByVal hWnd As HWND) As BytePtr
> Dim index As Long
> Dim length As Long
> index=SendMessage(hWnd,LB_GETCURSEL,NULL,NULL)
> If index<>LB_ERR Then
> length=SendMessage(hWnd,LB_GETTEXTLEN,index,NULL)
> lb_getSelectString=calloc(length+1)
> SendMessage(hWnd,LB_GETTEXT,index,lb_getSelectString)
> End If
> End Function
>
> '使い方
> Dim pStr As BytePtr
> pStr=lb_getSelectString(GetDlgItem(hMainWnd,ListBox1))
> MessageBox(hMainWnd,pStr,"選択されている文字列",MB_OK)
> free(pStr)
7さん早速 参考 ソース ありがとうございました。
そのまま コピーして 試してみましたが どうもそれらしい
文字が取得出来ているようなのですが、メッセージボックスの表示
が 文字バケして 確証がもてません。
例 オォ・・・・ と言うようなメッセージです。
何故でしょう? どこか やり方が悪いのでしょうか?
by koko!yo
> > GetObjectType関数で
> > 調べてみると 3 という答えが返ってきます。
> > どうやら 文字オブジェクトのようです。
> どうして文字オブジェクトだと思ってしまったのでしょうか?
> AB付属のヘルプを見ると、明示的に書かれてはいませんけど、3 は OBJ_DC 、つまりデバイスコンテキストだということを示しています。
> ちなみに、GetDC()関数の戻り値を指定している場合、もちろん OBJ_DC (3です)が返ります。
>
> > ウインドウ内の文字(テキスト)を
> > getdc関数を用いて取得する方法はあるのでしょうか?
> デバイスコンテキストに描写されている文字列の取得は分かりません...。
>
> 単に、リストボックスの文字列を取得したいのであれば、リストボックスに LB_GETTEXT メッセージを送信します。
> 動かしてないのでバグるかもしれませんけど、選択されている文字列を取得します。
> [hide][code]'------------------------------------------------------------
> ' リストボックスで選択されている文字列を取得
> '------------------------------------------------------------
> Function lb_getSelectString(ByVal hWnd As HWND) As BytePtr
> Dim index As Long
> Dim length As Long
> index=SendMessage(hWnd,LB_GETCURSEL,NULL,NULL)
> If index<>LB_ERR Then
> length=SendMessage(hWnd,LB_GETTEXTLEN,index,NULL)
> lb_getSelectString=calloc(length+1)
> SendMessage(hWnd,LB_GETTEXT,index,lb_getSelectString)
> End If
> End Function
>
> '使い方
> Dim pStr As BytePtr
> pStr=lb_getSelectString(GetDlgItem(hMainWnd,ListBox1))
> MessageBox(hMainWnd,pStr,"選択されている文字列",MB_OK)
> free(pStr)[/code][/hide]
7さん早速 参考 ソース ありがとうございました。
そのまま コピーして 試してみましたが どうもそれらしい
文字が取得出来ているようなのですが、メッセージボックスの表示
が 文字バケして 確証がもてません。
例 オォ・・・・ と言うようなメッセージです。
何故でしょう? どこか やり方が悪いのでしょうか?
by koko!yo