[リストへもどる]
一括表示

投稿時間:2003/04/11(Fri) 10:54
投稿者名:Esc
Eメール:
URL :
タイトル:
続・コモンダイアログの表示(WinXPでは)
>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)
>があります。但し、有効なのは初期表示のみです。

色々調べて頂きありがとうございます。
上記いずれも試して見ましたがどちらも反応はありませんでした。

投稿時間:2003/04/11(Fri) 15:24
投稿者名:peta
Eメール:
URL :
タイトル:
Re: 続・コモンダイアログの表示(WinXPでは)
> > >最初 If 文をコメントアウトして取得したIDと同じIDが取得できhwnd も取得できましたが
> > >やはり、Call SendMessage(hDlg, WM_COMMAND, &H702C, ByVal 0&) でも詳細にできませんでした。

確認し忘れたんですが、この時のhwndは、hDlgですか?それとも、hwndDefですか?


> >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)
> >があります。但し、有効なのは初期表示のみです。
>
> 上記いずれも試して見ましたがどちらも反応はありませんでした。

ウィンドウのハンドルが全て取得できているのなら、あとはコントロールに
メッセージを送るタイミングの問題かもしれません。
例えば、WM_NOTIFYではウィンドウハンドル取得のみにして、
変更は、WM_WINDOWPOSCHANGEDで処理するとか?

XPを触ったことがないので、ここまでが私の限界です。
あとは地道にメッセージを解析するしかないでしょう。

とりあえず、現状のテスト可能なフルコードを載せてみて下さい。
そうすれば、ここの常連さんや他の方々からレスがあるかも?

投稿時間:2003/04/11(Fri) 16:44
投稿者名:Esc
Eメール:
URL :
タイトル:
Re^2: 続・コモンダイアログの表示(WinXPでは)
Pataさん何度もレス頂きありがとうございました。

> 確認し忘れたんですが、この時のhwndは、hDlgですか?それとも、hwndDefですか?

一応両方試して見ました。


> とりあえず、現状のテスト可能なフルコードを載せてみて下さい。
> そうすれば、ここの常連さんや他の方々からレスがあるかも?

投稿頂いた No.3456 のサンプルをそのまま使用しております。
Windows98では下記のようにしてどちらでも問題なく詳細表示できております。

If (hwndLV <> 0) Then
    hwndTB = FindWindowEx(hDlg, 0, "ToolBarWindow32", vbNullString)
    
    'Win98 では下記のどちらでも詳細表示で開きます。
    'Call SendMessage(hDlg, WM_COMMAND, &HA004&, ByVal hwndTB)
    Call SendMessage(hwndDef, WM_COMMAND, &H702C, ByVal 0&)
    
    Call SetLVColumnWidth(hwndLV, 0, 10)
    fReadyLV = True
End If

WindowsXP御使用の方で詳細表示する方法をご存知の方おられましたら
ご教授の程お願い致します。

投稿時間:2003/04/11(Fri) 23:46
投稿者名:Starfish
Eメール:
URL :
タイトル:
Re^3: 続・コモンダイアログの表示(WinXPでは)
とりあえず、うちのXPで試したところ

>試しに、Call SendMessage(hDlg, WM_COMMAND, &HA004, ByVal hwndTB)
>の代わりに、Call SendMessage(hwndDef, WM_COMMAND, &H702C, ByVal 0&)

 だめでした。

>例えば、WM_NOTIFYではウィンドウハンドル取得のみにして、
>変更は、WM_WINDOWPOSCHANGEDで処理するとか?

 これもだめでした。

>Call SendMessage(hDlg, WM_COMMAND, &HA004, ByVal hwndTB)
>の代わりに、Call PostMessage(hwndDef, WM_COMMAND, &H702C, ByVal 0&)

 これは詳細表示にはなりますが、表示されるときに変更しているのがわかります。
また、列幅の変更と順序が逆転していると思うので、列の幅が変更されません。
他のメッセージで対応できないか検討が必要ですね。