はじめまして、こんばんは。
環境: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));
}
問題はファイルオープン・ダイアログの後のデータ表示にあるんでしょ?
なぜにそんな(原因とは思えない)コードを呈示したのですか?
えーとすいません。
オープンダイアログはGetOpenFileNameで表示されるんですよね?
このオープンダイアログ自体の表示がオカシクなるんですけど、
データ表示系統に問題があるんですかね?
もう少し追ってみます有難う御座いました。