我開發了一個win32應用程序並使用this example創建顏色選擇器。我更新如果像this這樣的語句更改我的應用程序的背景,當用戶單擊顏色對話框中的「確定」時,但沒有任何更改。我的錯誤在哪裏?無法更改窗口的背景
if (ChooseColor(&cc) == TRUE) {
HBRUSH hbrush = CreateSolidBrush(cc.rgbResult);
rgbCurrent = cc.rgbResult;
SetClassLongPtr(hWnd, GCLP_HBRBACKGROUND, (LONG)hbrush);
}
您需要使用靜態畫筆。每次創建一個新表示資源泄漏。 – DimChtz
您需要WM_ERASEBKGND,請參閱您發佈的SO鏈接中接受的安裝程序。 – Joel
不要將'hbrush'強制轉換爲'LONG','SetClassLongPtr'的全部內容是參數是'LONG_PTR'。 –