如圖

圖片是通過呼叫API加載實作的
uj5u.com熱心網友回復:
根據GetModuleFileName 獲得的檔案名, 構造出絕對路徑
uj5u.com熱心網友回復:
根據網上的MFC發步可獨立執行的release版本操作。已經將專案屬性MFC的使用改為了 在靜態庫中使用MFC
運行庫也改為了 多執行緒(/MT)
uj5u.com熱心網友回復:
通過VS2015編譯運行后,是可以顯示,沒問題的
但單獨運行release里生成的exe檔案 就變黑了
uj5u.com熱心網友回復:
#include <shlwapi.h>
#pragma comment(lib, "shlwapi.lib")
{
TCHAR szOut[MAX_PATH + 1];
GetModuleFileName(NULL, szOut, MAX_PATH);
PathRemoveFileSpec(szOut);
PathAppend(szOut, _T("myPathA\\myPathB\\a.bmp"));
TRACE(_T("full path = %s\n"), szOut);
}
uj5u.com熱心網友回復:
bmp加載 失敗, 不在同一個目錄
uj5u.com熱心網友回復:
另外 LoadImage 的資源 需要 DeleteObject 釋放,如果不是動態圖片的話, 可以把位圖句柄放在類中, 這樣只需要加載一次就好, 效率比較高
uj5u.com熱心網友回復:
InitBackGround在哪呼叫? 這個呼叫必須在OnPaint'或者在OnEarseBKGround里呼叫,另外,hBmpBG一直LoadImage不是一個好的主意,最好是作為視窗類的成員函式,加載一次就可以uj5u.com熱心網友回復:
我的呼叫本地xml檔案,也是不可以,應該是檔案沒有匯入吧?為什么呢?uj5u.com熱心網友回復:
代碼功能歸根結底不是別人幫自己看或講解或注釋出來的;而是被自己靜下心來花足夠長的時間和精力親自動手單步或設斷點或對執行到某步獲得的中間結果顯示或寫到日志檔案中一步一步分析出來的。提醒:再牛×的老師也無法代替學生自己領悟和上廁所!
單步除錯和設斷點除錯(VS IDE中編譯連接通過以后,按F10或F11鍵單步執行,按Shift+F11退出當前函式;在某行按F9設斷點后按F5執行停在該斷點處。)是程式員必須掌握的技能之一。
uj5u.com熱心網友回復:
請判斷每個函式呼叫的回傳值。uj5u.com熱心網友回復:
把資源都放在RES檔案吧,使用的時候用LoadResource,這樣release以后方便點,而且資源都在EXE中,一個exe檔案搞定uj5u.com熱心網友回復:
LoadImage后回傳的hBmpBG應該判斷下如果為NULL就是圖片加載失敗了,路徑不正確
你用的相對路徑,應該用絕對路徑
CString strExePath;
CString strFileName;
GetModuleFileName(NULL,strFileName.GetBufferSetLength(MAX_PATH+1),MAX_PATH+1);
int nPos = strFileName.ReverseFind(_T('\\'));
strExePath = strFileName.Left(nPos+1);
strExePath 是你程式的路徑,再加上你圖片的路徑就好了
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/88198.html
標籤:界面
上一篇:200分求一個瀏覽器的代碼
下一篇:OLEDB模板使用問題
