我有一个带有4个面板的tstatusbar,其中一个设置为所有者draw样式。
在onDrawPanel()
事件处理程序中,我希望TStatusbar
在我在其顶部添加一些自定义绘图之前使用默认的油漆方法。
有没有办法从我的OnDrawPanel处理程序中调用默认处理程序?
编辑好吧,我确实找到了一个修复程序,但是我不确定如果系统字体更改,则有多可靠。由于默认处理程序仅绘制面板文本,因此对TexTrect的简单调用将执行相同的技巧。
StatusBar->Canvas->TextRect(Rect,Rect.Left,Rect.Top,Panel->Text);
但是,如果系统字体,语言等不是默认值,我不确定这将有多好。
我仍然想回答原始问题。
tstatusbar是标准Winapi窗口类的包装器,因此默认情况下,绘画是由OS完成的。您应该查看Winapi功能,或者SB_SETTEXXT之类的消息
在MSDN上检查此信息:SB_SETTEXT消息
编辑:
似乎drawstatustext是正确的winapi函数。如果不需要边界,则应指定sbt_noborders标志。