C++ GetDlgItem(IDC_静态)>;SetFont(&;m_font)引发异常

C++ GetDlgItem(IDC_静态)>;SetFont(&;m_font)引发异常,c++,fonts,mfc,C++,Fonts,Mfc,我想更改MFC对话框中静态文本的字体,它会引发异常 我在声明中: cfontm\u字体; 在初始化对话框中: m_font.create(…); GetDlgItem(IDC\u STATIC)->SetFont(&m\u font); 和CDialog::InitDialog()引发异常。的返回值文档包含以下内容: 指向给定控件或子窗口的指针如果不存在具有nID参数给定的整数ID的控件,则该值为NULL 取消对NULL指针的引用会导致访问冲突异常,这可能是您所观察到的。确保对话框中确实包含

我想更改MFC对话框中静态文本的字体,它会引发异常

我在声明中:

cfontm\u字体;
在初始化对话框中:

m_font.create(…);
GetDlgItem(IDC\u STATIC)->SetFont(&m\u font);
CDialog::InitDialog()引发异常。

的返回值文档包含以下内容:

指向给定控件或子窗口的指针如果不存在具有
nID
参数给定的整数ID的控件,则该值为
NULL

取消对
NULL
指针的引用会导致访问冲突异常,这可能是您所观察到的。确保对话框中确实包含ID为
IDC\u STATIC
的控件


请注意,
IDC\u STATIC
是一个值为
-1
的变量。它的主要目的是,当您从未打算按ID访问控件(静态控件是主要用例)时,不必发明ID。如果您需要通过ID访问控件,则应该为其分配一个唯一的ID,您可能已经这样做了。如果从对话框模板构造控件,您将在定义对话框资源的.rc文件中找到ID。

检查
GetDlgItem(IDC\u STATIC)
调用的返回值。如果这是一个空指针,那么您的对话框中很可能没有具有该ID的控件。不是静态的。这对于您不需要访问的任何控件都是好的。这是否回答了您的问题?