热情软件屋

 

为什么改变静态文本框的内容会出现非法操作


编号: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");

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio