CFileDialog
次のメソッドでコンストラクターを呼び出します。
CFileDialog FileDlg(TRUE, ".txt", NULL, 0, strFilter);
CFileDialog
コンストラクターのパラメーターによると、最初のパラメーターは である必要がありますBOOL
が、コンパイラーはint
ではなく であると考えていBOOL
ます。なぜか教えてくれますか?
また、コードでは、 を使用するfopen(str,"r")
と、エラーは からの変換関数ではありませんCSring to const char*
。あなたの議論に感謝します。
コードは次のとおりです。
void OnFileOpen()
{
CClientDC dc(this);
CString str;
CRect rc;
FILE *ifp;
char strFilter[] = { "TXT Files (*.txt)|*.txt|All Files(*.*)|*.*||" };
CFileDialog FileDlg(TRUE, ".txt", NULL, 0, strFilter);
if (FileDlg.DoModal() == IDOK)
{
str = FileDlg.GetFileName();
ifp = fopen(str,"r");
dc.TextOutW(350, 50, "File Opened: " + str);
for (int i = 1; i < n; i++)
{
fscanf(ifp, "%d %d", &pt[i].x, &pt[i].y);
rc = CRect(pt[i].x - 30, pt[i].y - 30, pt[i].x + 30, pt[i].y + 30);
dc.Ellipse(rc);
rc = CRect(pt[i].x - 1, pt[i].y - 1, pt[i].x + 1, pt[i].y + 1);
dc.Rectangle(rc);
}
fclose(ifp);
}
}