2013-10-26 73 views
-1

這是如何使用Visual C++ 2008 Express完成的?顯示無邊界圖片並退出純圖片c

圖片必須可執行。

我發現我可以用這些行修改邊界的窗口的背景:

WNDCLASSEX wcx; 
/*fill up other wcx members*/ 
wcx.hbrBackground=CreatePatternBrush((HBITMAP) LoadImage(0,_T("background.bmp"), 
           IMAGE_BITMAP,0,0, 
           LR_CREATEDIBSECTION|LR_LOADFROMFILE)); 

WNDCLASSEX wcx; 
/*fill up other wcx members*/ 
wcx.hbrBackground=CreatePatternBrush((HBITMAP) LoadImage(GetModuleHandle(0), 
            MAKEINTRESOURCE(ID_BACK_BMP), 
           IMAGE_BITMAP,0,0, 
           LR_CREATEDIBSECTION); 

,但我有一個問題:

第一個例子是用於從獲得的圖片現有文件。 第二個使用resorces。但我找不到如何添加資源的選項(我認爲對於本機項目來說這是不可能的)! 有什麼解決方法嗎?

請幫忙!

PS。對不起英文不好!

回答

0

你並不需要一個資源編輯器來編譯資源轉化爲可執行映像。資源編輯器僅僅是資源腳本文件(.rc)的圖形編輯器。資源腳本文件可以在任何文本編輯器中創作。文件格式記錄在MSDN(About Resource Files)中。

要增加你的BITMAP resource定義語句添加到您的資源腳本,並創建一個頭文件中的獨特資源ID(位圖資源ID必須是range from 0 to 32767)的位圖圖像資源:

資源。 H:

#define IDB_BACK_BMP 1 

MyApp.rc:

#include "resource.h" 
IDB_BACK_BMP BITMAP "background.bmp" 

假設您的項目已正確設置調用Resource Compiler資源腳本文件,您可以使用可執行映像加載位圖圖像:

HBITMAP hBM = (HBITMAP)LoadImage(GetModuleHandle(NULL), 
           MAKEINTRESOURCE(IDB_BACK_BMP), 
           IMAGE_BITMAP, 
           0, 0, 
           LR_DEFAULTCOLOR); 

注意你,除非你想將圖像發送到打印機不需要指定LR_CREATEDIBSECTION標誌。爲了渲染到顯示設備上下文,設備相關位圖就足夠了。