CStatic静态文本框显示时间的问题

meapex 2003-10-16 07:02:39
请帮忙看看这段程序,我想将系统时间显示在静态文本框中。
void CmyDlg::OnCreate()
{
char str[50];
……
SYSTEMTIME systime;
GetSystemTime(systime);
wfPrint(str,"u%/u%/u%",systime.wHour,systime.wMinte,systime.wSecond);

CStatic* pLable=(CStatic*)GetDlgItem(IDC_myStatic);
pLable->SetWindowText(str);
……

}
该段程序编译通过(上面程序如果有语法错误,应该是我的手误),但执行时总是出错,跟踪发现是pLable->SetWindowText(str)这一句的问题,请问这是为什么?请高手指教。
...全文
119 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
meapex 2003-10-16
  • 打赏
  • 举报
回复
to 8412230(阿朋)
对啊.我怎么没想到.谢谢
马上结帖.
8412230 2003-10-16
  • 打赏
  • 举报
回复
你把这段代码写到OnInitDialog里面,再OnCreate的时候静态文本框还没有创建出来.
meapex 2003-10-16
  • 打赏
  • 举报
回复
to 8412230(阿朋)
我跟踪过,好象确实是pLable得不到正确的句柄,这是怎么回事?如何改正?
8412230 2003-10-16
  • 打赏
  • 举报
回复
char str[50];
SYSTEMTIME systime;
GetSystemTime(&systime);
sprintf(str,"u%/u%/u%",systime.wHour,systime.wMinute,systime.wSecond);

CStatic* pLable=(CStatic*)GetDlgItem(IDC_MyStatic);
pLable->SetWindowText(str);

这样应该是对的,如果还是不行,就可能你的CStatic* pLable得到的指针不对,你跟踪一下看看
meapex 2003-10-16
  • 打赏
  • 举报
回复
应该不是wfprint的问题,因为我将这句去掉后,换成pLable->SetWindowText("hello")还是一样出错.
gjd111686 2003-10-16
  • 打赏
  • 举报
回复
再:如果u为0就有可能"/0"变成结束了
gjd111686 2003-10-16
  • 打赏
  • 举报
回复
wsprintf()
SeainBlue 2003-10-16
  • 打赏
  • 举报
回复
wfPrint(str,"u%//u%//u%",systime.wHour,systime.wMinte,systime.wSecond);

'/'是反义字符,要用就必须用'//'

16,466

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧