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

投稿日: 2003/04/09(Wed) 19:43
投稿者peta
Eメール
URL
タイトルRe^6: コモンダイアログの表示(WinXPでは)

> > (1) ウィンドウハンドル hDlg, hwndDef, hwndLV, hwndTB の内、
> > 1つ以上がゼロである。
>
> ハンドルはすべて取得できております。
>
> > (2) ツールバー詳細ボタンIDが &HA004 ではない。
>
> 詳細ボタンはWin98とWinXPでは少し違うようなので多分こちらかと思うのですが
> 詳細ボタンのIDはどのようにして調べればいいのでしょうか?

詳細ボタンを押すと、hDlgにWM_COMMANDが送られるので、
そのwParamのLOWORD値を調べれば判ります。

' ツールバー詳細ボタンID確認用に改造
Private Function FileDlgHookProc(ByVal nCode As Long, _
                                 ByVal wParam As Long, _
                                 cwp As CWPSTRUCT) As Long
    If (nCode >= 0) Then
        Static hDlg As Long
        Static hwndLV As Long
        Static fReadyLV As Boolean
        Select Case cwp.Message
        Case WM_NOTIFY
            Dim hwndDef As Long
            '  -----------------
            ' Dim hwndTB As Long   ' コメントアウト
            Static hwndTB As Long  ' Static に変更
            '  -----------------
            If (hwndLV = 0) Then
                hDlg = GetParent(cwp.hwnd)
                hwndDef = FindWindowEx(hDlg, 0, "SHELLDLL_DefView", vbNullString)
                hwndLV = FindWindowEx(hwndDef, 0, "SysListView32", vbNullString)
                If (hwndLV <> 0) Then
                    hwndTB = FindWindowEx(hDlg, 0, "ToolBarWindow32", vbNullString)
                    '  ------- ここから、コメントアウト -------
                    ' Call SendMessage(hDlg, WM_COMMAND, &HA004&, ByVal hwndTB)
                    ' Call SetLVColumnWidth(hwndLV, 0, 10)
                    ' fReadyLV = True
                    '  ------- ここまで、コメントアウト -------
                End If
            End If
        Case WM_WINDOWPOSCHANGED
            If (fReadyLV) Then
                Call SetLVColumnClick(hwndLV, 3)
                Call SetLVColumnWidth(hwndLV)
                fReadyLV = False
                hDlg = 0
                hwndLV = 0
                Call UnHook
            End If
        '  ------- ここから、追加 -------
        Case WM_COMMAND
            If (cwp.lParam = hwndTB) Then
                Debug.Print "&H" & Hex(cwp.wParam And &HFFFF&)
            End If
        '  ------- ここまで、追加 -------
        End Select
    End If
    FileDlgHookProc = CallNextHookEx(m_hHook, nCode, wParam, cwp)
End Function


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

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

- Web Forum -