首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> VC >> VC 教學

從系統資源取得標準圖示/位圖:LoadIcon/LoadBitmap + OEM 資源 ID 完整對照表

     編輯:VC 教學

常用 OEM 資源序號 (部分)


#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_MENUARROW   32739   // 選單箭頭
#define OBM_COMBO       32738   // 下拉框按鈕
// ... 更多見 winuser.h

標準圖示 ID


#define IDI_APPLICATION  32512  // 預設應用程式
#define IDI_HAND         32513  // 停止/錯誤 (手掌)
#define IDI_QUESTION     32514  // 問號
#define IDI_EXCLAMATION  32515  // 驚嘆號
#define IDI_ASTERISK     32516  // 資訊 (星號)
#define IDI_WINLOGO      32517  // Windows Logo

取得並繪製範例


void __fastcall TMainForm::Button1Click(TObject *Sender)
{
    // 繪製 OEM 位圖 (32734~32763)
    for (int i=0; i<30; i++) {
        HBITMAP hBmp = LoadBitmap(NULL, MAKEINTRESOURCE(32734+i));
        TImage *img = new TImage(this);
        img->Picture->Bitmap->Handle = hBmp;
        Canvas->Draw(9 + i*16, 9, img->Picture->Bitmap);
        delete img;
        DeleteObject(hBmp);
    }
    // 繪製標準圖示
    for (int i=0; i<5; i++) {
        HICON hIco = LoadIcon(NULL, MAKEINTRESOURCE(32512+i));
        TImage *img = new TImage(this);
        img->Picture->Icon->Handle = hIco;
        Canvas->Draw(10 + i*32, 50, img->Picture->Icon);
        delete img;
        DestroyIcon(hIco); // 圖示用 DestroyIcon
    }
}

注意

  • `LoadBitmap`/`LoadIcon` 第一參數 `NULL` 表示系統模組 (`GetModuleHandle(NULL)` 同義)。
  • 位圖用 `DeleteObject`,圖示用 `DestroyIcon` 釋放。
  • 繪製後立即釋放,避免 GDI 物件洩漏。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved