楼上分析的很对……TextOut函数需要设备描述表句柄,在OnCreate函数中(窗口创建的消息中),设备描述表还没加载完成,所以TextOut还不能使用,你可以放到OnCreate的末尾试试看.。至于CreateSolidCaret()创建一个插入符,这个函数的使用不需要创建一个设备描述表句柄,所以在OnCreate的使用没有出错,CreateSolidCaret()创建一个插入符,也相当于窗口的一部分,在ShowWindow的时候会连同窗口的其余子窗口控件一同显示在窗口中。所以CreateSolidCaret应该在CreateWindow的时候就初始化和创建,这就是为啥你说CreateSolidCaret()调用没有出错的原因
TEXTOUT中有一个参数是HDC,这个是个设备句柄,在OnCreate是,窗口才创建,这是还没有设备(这里是屏幕设备)与窗口关联,所以textout是不能用的。textout一个典型的用到的地方是ONPAINT是,绘图是使用。