VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/04/11(Fri) 04:15
投稿者peta
Eメール
URL
タイトルRe:コモンダイアログ...

> 最初 If 文をコメントアウトして取得したIDと同じIDが取得できhwnd も取得できましたが
> やはり、Call SendMessage(hDlg, WM_COMMAND, &H702C, ByVal 0&) でも詳細にできません
> でした。hDlg の部分を変更しても同じくなにも変化ありませんでした。

Win98も同様に、LOWORD(cwp.wParam) = &H702 が検出されました。
但し、hwnd は、"SHELLDLL_DefView"クラスの hwndDef です。
試しに、Call SendMessage(hDlg, WM_COMMAND, &HA004, ByVal hwndTB)
の代わりに、Call SendMessage(hwndDef, WM_COMMAND, &H702C, ByVal 0&)
を使用したら、詳細表示されました。

もし、これでもダメでしたら、リストビューのビュースタイルを直接変更する方法  
    Call SetLVViewStyle(hwndLV)
があります。但し、有効なのは初期表示のみです。

Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _
        (ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _
        (ByVal hWnd As Long, ByVal nIndex As Long, _
         ByVal dwNewLong As Long) As Long
Private Const GWL_STYLE = (-16)
Private Const LVS_TYPEMASK = &H3&
Private Const LVS_REPORT = &H1&

Private Sub SetLVViewStyle(ByVal hwndLV As Long, _
                           Optional ByVal dwViewStyle As Long = LVS_REPORT)
    If (dwViewStyle < 0 Or dwViewStyle > 3) Then Exit Sub
    If (hwndLV = 0) Then Exit Sub
    Dim dwStyle As Long
    dwStyle = GetWindowLong(hwndLV, GWL_STYLE)
    If ((dwStyle And LVS_TYPEMASK) <> dwViewStyle) Then
        dwStyle = (dwStyle Xor LVS_TYPEMASK) Or dwViewStyle
        Call SetWindowLong(hwndLV, GWL_STYLE, dwStyle)
    End If
End Sub


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -