TITLE: [150] Re: リストビューへのアイテムの追加 DATE : 2001-10-25 23:34:00 -------------------------------------------------- a-murata さん、お返事有り難うございます。 リストビューの所わかりました。 メニューの項目の追加と同じでしたね。 # 僕のホームページのeVBのところで説明していたのにねぇ・・・ > やはり標準では行全体の選択というのは無理なんでしょうかね。でもQMi > lとか、そのほかのリストビュー的なコントロールを使うものについては、 > できてしまっているようですし、やはりeVBようのコントロールの問題か > もしれませんね。 APIのSendMessageを使ってリストビューコントロールに LVS_EX_FULLROWSELECTを設定できれば、1行選択できるのだそうです。 しかし、SendMessageの第1引数にリストビューコントロールのハンドル (hWnd)が必要なのですけれど、それがどうも取得できないようです。 この問題が解決できれば、きっとうまくいくはずですけれど、eVBのヘル プにはHWndというプロパティーが載っているのに、ListViewのプロパティ には、これが存在しないのですよね。 どうやると、コントロールのハンドルが取得できるのでしょうかね? と思って、ネットを歩いていたら見つけました。 <ソースの先頭あたりに置いてください> Const LVM_FIRST = &H1000 Const LVM_SETEXTENDEDLISTVIEWSTYLE = &H1036 Const LVM_GETEXTENDEDLISTVIEWSTYLE = &H1037 Const LVS_EX_FULLROWSELECT = &H20 Public Declare Function GetFocus Lib "Coredll" () As Long Public Declare Function SendMessage Lib "Coredll" Alias "SendMessageW" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Long) As Long Public LVM_Style As Long Public LVM_Handle As Long <そして、リストビューのGotFocusハンドラで次のように書きます> Private Sub ListViewCtrl1_GotFocus() On Error Resume Next 'リストビューのハンドル取得 すばらしい!! LVM_Handle = GetFocus LVM_Style = SendMessage(LVM_Handle, LVM_GETEXTENDEDLISTVIEWSTYLE, 0, 0) LVM_Style = LVM_Style Or LVS_EX_FULLROWSELECT Call SendMessage(LVM_Handle, LVM_SETEXTENDEDLISTVIEWSTYLE, 0, LVM_Style) End Sub しかし、僕の所ではこれを実行するとチェックボックスが左に着くだけで、 行選択にはなりません。もう一歩です。