2017-06-08 72 views
1

我正在嘗試將一個位圖加載到CStatic控件中。在我的對話框中,我有一個CStatic控件,我在_myStatic中提到。在我的對話框的OnInitDialog方法中,我將控件連接到該變量,並且我正在通過_myStatic.ModifyStyle(0,SS_BITMAP);將樣式修改爲SS_BITMAP。後面的行我有_myStatic.SetBitmap(::LoadBitmap(NULL, MAKEINTRESOURCE(IDB_BITMAP1)));,但位圖沒有顯示在CStatic中。我錯過了這個過程中的一個步驟嗎?位圖在我的資源中定義。將位圖加載到CStatic控件中?

+0

你調用了'UpdateWindow()'嗎?窗口的某些屬性被緩存,改變它們可能需要調用'UpdateWindows()'來更新緩存的值。 –

+0

您確認LoadBitmap()沒有返回NULL句柄嗎? 'LoadImage()'有同樣的問題嗎?無論如何,你應該使用'LoadBitmap()'已棄用。 –

回答

1

您應該爲LoadBitmap調用提供一個非NULL第一個參數。通過調用,確保有效的SetBitmap參數也是非空的。

_myStatic.SetBitmap(::LoadBitmap(
    _AtlBaseModule.GetResourceInstance(), MAKEINTRESOURCE(IDB_BITMAP1)));