コモンダイアログ(オープンダイアログ)の使い方

[戻る]
マグダラ 2006/06/24(土) 01:29:06
はじめまして、こんばんは。
環境:VC++ 6.0 XP及び2k
全くの初心者でほんの一週間くらい前に始めた初心者です。
その為、言い回しが誤っていたりするかもしれませんが、大目に見て下さいませ。

現在、WinAPIを使ってオープンダイアログを表示し、
バイナリファイルを読込み、Window内にデータを出力させようとしています。
この辺の動きは問題なさそうなのですが、表示行数が900行位あります。
この為、スクロールバーを付けてスクロールし下の方にあるデータを表示しています。
(正確にはスクロールした分だけ配列の位置を調整して表示しています。)
この辺の動きも問題なさそうなのですが、
早めにスクロールした後に、メニューからオープンダイアログを呼び出すと
呼び出しに失敗したり、呼び出したダイアログが一部表示されなくなってしまいます。
(特にタイトルバーやXボタン、ファイルの場所や左側のアイコン等)
ファイルリストは表示されます。
スクロールバーを遅めにスクロールさせた場合は問題なく動くのですが
何が悪いのかさっぱりわかりません。宜しければご教授願います。

BOOL OpenF(HWND hWnd,char *FileName)
{
    OPENFILENAME ofn;
    HANDLE hFile = NULL;

    lstrcpy(FileName,"*.*");

    ZeroMemory(&ofn,sizeof(ofn));
    ofn.lStructSize = sizeof(OPENFILENAME);

    ofn.hwndOwner = hWnd;
    ofn.lpstrFile = FileName;
    ofn.nMaxFile = sizeof(FileName);
    ofn.lpstrFilter = "all(*.*)\0*.*\0";
    ofn.lpstrFileTitle = NULL;
    ofn.nFilterIndex = 1;
    ofn.nMaxFileTitle = 0;
    ofn.lpstrInitialDir = NULL;
    ofn.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;

    return(GetOpenFileName(&ofn));
}

επιστημη 2006/06/24(土) 18:22:38
問題はファイルオープン・ダイアログの"後"のデータ表示にあるんでしょ?
なぜにそんな(原因とは思えない)コードを呈示したのですか?

マグダラ 2006/06/24(土) 22:32:31
[[解決]]
えーとすいません。
オープンダイアログはGetOpenFileNameで表示されるんですよね?
このオープンダイアログ自体の表示がオカシクなるんですけど、

データ表示系統に問題があるんですかね?
もう少し追ってみます有難う御座いました。

古いスレッドには追加発言できません。