找回密码
 注册
搜索
查看: 3754|回复: 0

[收藏]从系统中取得指定资源图像

[复制链接]
发表于 2004-2-15 13:27:43 | 显示全部楼层 |阅读模式
作者: ccrun ,如转载请保证本文档的完整性,并注明出处。
5 X/ P% W0 m) u欢迎光临 C++ Builder 研究,http://www.ccrun.com/doc/go.asp?id=5864 R! U: V" _5 I* w
在Winuser.h中定义了一些系统常用的资源,比如对话框的图标,某些按钮上的图像等。2 P% v4 P" j: I) T/ Z
以下是部分OEM资源序号和一些标准ICON的ID:
/ ]/ h* y4 I# O( z! {//---------------------------------------------------------------------------
, T5 F% Z. s4 {1 v: R0 b* E5 |" C" ~+ j; o
// OEM Resource Ordinal Numbers7 }! z7 o+ }: [7 d" N! i4 s0 a
#define OBM_OLD_CLOSE       32767
( a4 K% ?" |2 Z4 }+ g#define OBM_SIZE            32766* h" a5 [; i3 x2 u7 ~3 c
#define OBM_OLD_UPARROW     32765$ s  X7 q- }% O6 T/ a4 j. S
#define OBM_OLD_DNARROW     32764
: [) }" ^' P  x4 z#define OBM_OLD_RGARROW     32763. f% v4 }+ s% O) W
#define OBM_OLD_LFARROW     32762  q% S. p8 H' W5 o+ ]
#define OBM_BTSIZE          32761
, z) {% Z7 Y# A" I* X( n#define OBM_CHECK           32760
+ ^6 z0 w0 G" ]- b#define OBM_CHECKBOXES      32759
; P6 K$ Z/ a6 Y/ @$ f; g#define OBM_BTNCORNERS      32758* v7 F" O) {' W
#define OBM_OLD_REDUCE      32757
6 c& D- g5 ^7 _5 ~#define OBM_OLD_ZOOM        32756$ _; O3 }( y9 b7 q
#define OBM_OLD_RESTORE     32755- v4 z7 f4 ]) r* j, C3 u$ Z; L( N! B
#define OBM_CLOSE           32754/ N) i$ r! H: B2 y3 f. O; _# h. V# G
#define OBM_UPARROW         32753
' X7 u& p9 D' {* m#define OBM_DNARROW         327526 K, }" {- c, V; b% u# {5 V. o8 R
#define OBM_RGARROW         32751
6 e% y2 k& ?: M# N- `8 g6 @#define OBM_LFARROW         32750
! [& G  c1 l$ d) g#define OBM_REDUCE          32749, k3 q" G: E0 G0 ?/ _0 q' a
#define OBM_ZOOM            32748
* R1 y) u$ X" R* U# `# K& m0 ~1 ~. ?#define OBM_RESTORE         32747
. D0 q" t/ u( f#define OBM_REDUCED         32746
6 S8 m3 H+ v+ k" O! X#define OBM_ZOOMD           32745
% _9 g/ o" m8 ~% T1 a6 d/ w2 i  K/ m#define OBM_RESTORED        32744
- k6 n8 ?  t7 i7 z! o& m1 b#define OBM_UPARROWD        32743
4 v/ K0 i) L% U- L7 h7 q0 z( H% m#define OBM_DNARROWD        32742- r6 L5 \- }8 k3 s3 J4 P5 ~7 O
#define OBM_RGARROWD        32741
4 ~0 p/ A! p& Y  P2 V9 f#define OBM_LFARROWD        327404 q$ G! I+ D3 i' ?4 d  Q7 n
#define OBM_MNARROW         32739
) \  b# p; \) N#define OBM_COMBO           32738
3 [9 k/ H3 f9 A. ]#define OBM_UPARROWI        32737
5 o0 v+ `# d! d5 s. B#define OBM_DNARROWI        32736% Y$ n/ v2 r/ M7 f" g+ V9 |4 k
#define OBM_RGARROWI        32735$ J3 ]. V! l, U( L/ P
#define OBM_LFARROWI        32734# k5 v7 y/ m1 n& u# [" K, O8 r

  S0 k' d4 j/ G- B3 a
* o& H8 |0 A& @5 r9 l9 ?/ X# i// Standard Icon IDs! A9 _/ d* t9 {
#define IDI_APPLICATION     MAKEINTRESOURCE(32512)/ j. s* V8 a8 n; k  n9 u: e
#define IDI_HAND            MAKEINTRESOURCE(32513)
* X' Y& h/ J  p+ j4 F& `#define IDI_QUESTION        MAKEINTRESOURCE(32514)+ s' |/ t5 P& ]2 b0 V7 i. Z2 y
#define IDI_EXCLAMATION     MAKEINTRESOURCE(32515)" N0 F( y: r: `, N1 H7 F
#define IDI_ASTERISK        MAKEINTRESOURCE(32516)
0 ?2 F  ^. ]3 M& v* y# _# a#define IDI_WINLOGO         MAKEINTRESOURCE(32517)8 m7 y: c' ~* p% N5 P

& d6 N! s0 ]) F) k- m2 d8 C" W2 S! Q  Y, a' `
我们可以通过LoadBitmap从系统中取得指定资源图像:, ]( h/ r" v) L1 ?4 i3 R

9 o% }& }" u" s3 N! E, @void __fastcall TMainForm::Button1Click(TObject *Sender)+ Z! `$ h8 C# S, s
{! e& ~9 R  W4 _+ g
    for(int i=0; i<30; i++)7 ~% U6 @) f/ d
    {
* j& ^- M2 z! \+ ~* `* k4 [        HBITMAP hBitmap = :oadBitmap(NULL, MAKEINTRESOURCE(32734 + i));  u% h$ k; {0 u. D/ `8 A) k
        TImage *img = new TImage(this);$ J2 T6 B6 {; k0 b' _
        img->icture->Bitmap->Handle = hBitmap;; j! J1 R. i6 {' y) @# r) X' F% C" _
        Canvas->Draw(9 + i *16, 9, img->icture->Bitmap);  X1 A* S) k1 w2 |9 P1 A: o; a: l6 P
        delete img;
) {: M0 y9 Y6 a( Z0 N        DeleteObject(hBitmap);
8 r, W; ^/ j4 [5 t    }8 }8 s9 j5 I5 s+ X+ y, a
    for(int i=0; i<5; i++)' L" U: H' _6 C0 B7 N; k
    {9 S- b' _/ L' {  g& c8 h+ L
        HICON hIcon = :oadIcon(NULL, MAKEINTRESOURCE(32512 + i));
! l. D4 v1 n. ~/ c% M0 L% g3 t8 l& u0 G+ h        TImage *img = new TImage(this);
% Y5 o' _% _$ P2 b* g2 y) U- V        img->icture->Icon->Handle = hIcon;2 ]% H1 Y& @% B8 e5 e/ d1 g
        Canvas->Draw(10 + i *32, 50, img->Picture->Icon);5 N* s2 ?2 q) \7 ^
        delete img;
2 O6 }9 i; Q  q& i. m$ C        DeleteObject(hIcon);5 ~; f! x+ C5 K: ]7 E; ~& ^
    }
( l* o8 {' L  e# K}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|宁德市腾云网络科技有限公司 ( 闽ICP备2022007940号-5|闽公网安备 35092202000206号 )

GMT+8, 2026-5-4 17:35 , Processed in 0.021442 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表