2014-01-22 131 views
0

我有一個TStatusbar,有4個面板,其中一個設置爲OwnerDraw樣式。如何從事件處理程序中調用默認處理程序

onDrawPanel()事件處理程序中,我希望TStatusbar使用默認的繪圖方法,然後在其上添加一些自定義繪圖。

有沒有辦法從我的onDrawPanel處理程序調用默認處理程序?

編輯 嗯,我確實發現了一個修復,但我不知道如果系統字體改變是多麼可靠。 由於默認處理程序僅繪製面板文本,因此對TextRect的簡單調用將執行相同的技巧。

StatusBar->Canvas->TextRect(Rect,Rect.Left,Rect.Top,Panel->Text); 

但是,我不知道如果系統字體,語言等不是默認的,這將工作得如何。

我仍然想回答原始問題。

回答

1

TStatusBar是標準WinApi窗口類的包裝,所以默認情況下,繪製是由OS完成的。你應該看看WINAPI功能,或者像SB_SETTEXT

消息

檢查這個MSDN上:SB_SETTEXT message

編輯:

看來DrawStatusText是正確的WINAPI功能。如果不需要邊界,則應指定SBT_NOBORDERS標誌。

相關問題