ab.com コミュニティ

ActiveBasicを通したコミュニケーション
現在時刻 - 2024年3月28日(木) 22:36

全ての表示時間は UTC+09:00 です




返信する
ユーザー名:
件名:
メッセージ本文:
メッセージを入力してください。60000 字まで入力できます。 

フォントサイズ:
フォントカラー
オプション:
BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF
BBCode を無効にする
URL を自動的にパースしない
クイズ
お手数ですがカタカナで「エービー」と4文字を入力してください。:
答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。
   

トピックのレビュー - フォルダーの選択ダイアログ
作成者 メッセージ
  記事の件名:  フォルダーの選択ダイアログ  引用付きで返信する
引用:
DialogNameはBytePtrなので、
文字列と直接ひかくするのは良くない。
ぬ・・・そうなのですか・・・
やはりまだまだ自分は分かってない事が多いですね・・・
引用:
コード:
If DialogName[0]=0 Then
        lstrcpy(DialogName,"フォルダーの選択")
    End If 
こちらに書き換えてご使用ください~
投稿記事 Posted: 2011年3月05日(土) 14:20
  記事の件名:   引用付きで返信する
DialogNameはBytePtrなので、
文字列と直接ひかくするのは良くない。
コード:
   If DialogName[0]=0 Then
        lstrcpy(DialogName,"フォルダーの選択")
    End If
引数をDialogName As Stringにして
.lpszTitle=StrPtr(DialogName)
とでもすべき。
投稿記事 Posted: 2011年3月04日(金) 02:06
  記事の件名:  フォルダーの選択ダイアログ  引用付きで返信する
引用:
確認ですが
With bor
.hwndOwner=hMainWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With



With bor
.hwndOwner=hWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With
が正解ですね。

せっかくhWndを指定するので生かしたほうがよいと思います。
いかがでしょうか?
おぶしっ。
はい、思いっきりミスです。

もともとは、まず自分で使う用に参考にしながら組んで、それから適当に関数にしてここに書きましたので、
そのときのミスですね・・・

↓修正版です
しなくても分かるかな?w

ちなみに何で関数の形にしてここに置くかと言うと、
自分がまだプログラミングのぷの字も知らない頃、とにかく慣れようと手当たり次第ここのコードをコピペしてました。
そのときに関数の形で置いてくれている方の物はものすごく助かったので、
自分も(多少ですが)公開できるようになった今、そんな人に向けて関数の形で書いてます。

はい、どーでもいいですね 笑

また修正点などありましたら、遠慮なく突っ込んであげてください~
投稿記事 Posted: 2011年3月04日(金) 00:55
  記事の件名:  確認ですが  引用付きで返信する
ウインドー系のプログラムでないのでhMainWndを使用していなくて、そのためコンパイルエラーが出て気が付きました。

確認ですが
With bor
.hwndOwner=hMainWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With

With bor
.hwndOwner=hWnd
.lpszTitle=DialogName
.ulFlags=Flags
.pidlRoot=Root
End With
が正解ですね。

せっかくhWndを指定するので生かしたほうがよいと思います。
いかがでしょうか?
投稿記事 Posted: 2011年3月03日(木) 15:46
  記事の件名:  フォルダーの選択ダイアログ  引用付きで返信する
最近必要になったので、調べまわって書いてみました。

BytePtr型がいまいち理解できていないので、とりあえず戻り値はString型でやってます。
BytePtrってmalloc関数使わないと文字入れられないのか思ってたけど、そうでもないのね。

一応動きますが、直せる方がいらっしゃいましたら直してください。
とりあえず、これだけあれば使えるかなぁ・・・って感じです。
後は適当に調べてください~

蛇足ですが、
SHBrowseForFolder関数で返って来る数値でファイルパスが決まるとは思ってもいなかった。
SHGetPathFromIDList関数はどうやって識別しているのか謎。
まあ、今の自分には理解できない事でしょうが・・・

良かったら使ってみてください~
重複あったらすいません。
投稿記事 Posted: 2011年3月02日(水) 14:13

全ての表示時間は UTC+09:00 です


ページ移動:  
cron
Powered by phpBB® Forum Software © phpBB Limited
Japanese translation principally by ocean