从系统中取得指定资源图像(转载)

类别:编程语言 点击:0 评论:0 推荐:
从系统中取得指定资源图像(转载) 在Winuser.h中定义了一些系统常用的资源,比如对话框的图标,某些按钮上的图像等。
以下是部分OEM资源序号和一些标准ICON的ID:
//---------------------------------------------------------------------------

// OEM Resource Ordinal Numbers
#define OBM_OLD_CLOSE       32767
#define OBM_SIZE            32766
#define OBM_OLD_UPARROW     32765
#define OBM_OLD_DNARROW     32764
#define OBM_OLD_RGARROW     32763
#define OBM_OLD_LFARROW     32762
#define OBM_BTSIZE          32761
#define OBM_CHECK           32760
#define OBM_CHECKBOXES      32759
#define OBM_BTNCORNERS      32758
#define OBM_OLD_REDUCE      32757
#define OBM_OLD_ZOOM        32756
#define OBM_OLD_RESTORE     32755
#define OBM_CLOSE           32754
#define OBM_UPARROW         32753
#define OBM_DNARROW         32752
#define OBM_RGARROW         32751
#define OBM_LFARROW         32750
#define OBM_REDUCE          32749
#define OBM_ZOOM            32748
#define OBM_RESTORE         32747
#define OBM_REDUCED         32746
#define OBM_ZOOMD           32745
#define OBM_RESTORED        32744
#define OBM_UPARROWD        32743
#define OBM_DNARROWD        32742
#define OBM_RGARROWD        32741
#define OBM_LFARROWD        32740
#define OBM_MNARROW         32739
#define OBM_COMBO           32738
#define OBM_UPARROWI        32737
#define OBM_DNARROWI        32736
#define OBM_RGARROWI        32735
#define OBM_LFARROWI        32734


// Standard Icon IDs
#define IDI_APPLICATION     MAKEINTRESOURCE(32512)
#define IDI_HAND            MAKEINTRESOURCE(32513)
#define IDI_QUESTION        MAKEINTRESOURCE(32514)
#define IDI_EXCLAMATION     MAKEINTRESOURCE(32515)
#define IDI_ASTERISK        MAKEINTRESOURCE(32516)
#define IDI_WINLOGO         MAKEINTRESOURCE(32517)


我们可以通过LoadBitmap从系统中取得指定资源图像:

void __fastcall TMainForm::Button1Click(TObject *Sender)
{
    for(int i=0; i<30; i++)
    {
        HBITMAP hBitmap = ::LoadBitmap(NULL, MAKEINTRESOURCE(32734 + i));
        TImage *img = new TImage(this);
        img->Picture->Bitmap->Handle = hBitmap;
        Canvas->Draw(9 + i *16, 9, img->Picture->Bitmap);
        delete img;
        DeleteObject(hBitmap);
    }
    for(int i=0; i<5; i++)
    {
        HICON hIcon = ::LoadIcon(NULL, MAKEINTRESOURCE(32512 + i));
        TImage *img = new TImage(this);
        img->Picture->Icon->Handle = hIcon;
        Canvas->Draw(10 + i *32, 50, img->Picture->Icon);
        delete img;
        DeleteObject(hIcon);
    }
}

本文地址:http://com.8s8s.com/it/it24750.htm