2010-03-22 62 views
0

可以或不可以你:: OnInitDialog中() Visual Studio 2008的C++做什麼你可以:: OnInitDialog中做些什麼()Visual Studio 2008的C++

我想在寫出來的對話框上的一些文字對話框啓動。如果我將相同的代碼放在PUSH-BUTTON OnBnClicked中,它就可以工作。如果我把它放在OnInit中,它不會給我屏幕上的文字。我假設在OnInit上,我的對話框沒有完全打開,所以我不能在上面寫上它?

CRect drawRect;  
drawRect.left = 00;  // Shifts text to right 
drawRect.right = 300; 
drawRect.top = 00;  // How Far Down 
drawRect.bottom = 300; 

// Clear out any previous name 
CString strBlank = "Book Name"; 
SSTextOut(this->GetDC(), strBlank, &drawRect, DT_LEFT); 

我寫的功能,在 http://www.codeproject.com/KB/GDI/SSTextOut.aspx

回答

1

描述您不能在OnInitDialog()使用功能SSTextOut()OnInitDialog()在之前被稱爲,因此顯示對話框,因此您無法在其中獲得有效的CDC(因爲對話框尚未繪製)。

從外觀上看,SSTextOut()意味着從OnPaint()覆蓋中調用。

+0

是否有另一種功能,我可以用它來放置文字在OnInit我可以控制字體大小等? 感謝您的回覆,我已經在這裏出了好幾個小時! – user299391 2010-03-22 23:27:06

+0

@flirishman您可以在OnInitDialog()中設置大多數控件的字體大小,但最好通過資源編輯器來完成。你不能在OnInitDialog()中繪製任何東西,這是SSTextOut()試圖做的事情。 – adam 2010-03-23 00:24:54

相關問題