为什么改变静态文本框的内容会出现非法操作
编号:QA004645
建立日期: 2002年11月26日 最后修改日期:2002年11月26日
所属类别:
digita:
我用MFC在一个基于对话框的程序中有一个静态文本框(Static Text)控件,我想在程序中改变它的Caption属性。
CWnd *p;
p=GetDlgItem(IDC_STATIC);
p->SetWindowText("hello");
我是在一个按钮中触发这段代码的,可是按完后就会出现非法操作???怎么会这样?请问该怎样改变态文本框的内容?
回答:
如果GetDlgItem找不到指定的控件,它会返回空指针。如果p为空指针,则p-SetWindowText必出现非法操作。你可能会奇怪为什么GetDlgItem找不到IDC_STATIC控件呢?IDC_STATIC是VC++定义的标准常数,所有静态文本默认都是这个值。如果你希望修改某个静态文本,需要先在Resource View中修改静态文本的ID为其他内容,如IDC_MYTEXT,然后在程序中使用下面的语句就可以了:
CWnd *p;
p=GetDlgItem(IDC_MYTEXT);
p->SetWindowText("hello");
此问题由李海回答。
| |
|
|
| |
|
|