0

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

0 回答 0