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);
}
}