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

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

[复制链接]
发表于 2004-2-15 13:27:43 | 显示全部楼层 |阅读模式
作者: ccrun ,如转载请保证本文档的完整性,并注明出处。
5 p. `7 \- R* F6 [( s' n欢迎光临 C++ Builder 研究,http://www.ccrun.com/doc/go.asp?id=586# b& c' c4 i0 p6 X; Q) X: Z
在Winuser.h中定义了一些系统常用的资源,比如对话框的图标,某些按钮上的图像等。8 e. v3 p0 Q( n- y
以下是部分OEM资源序号和一些标准ICON的ID:
- }: y4 W; l: K  ?9 O//---------------------------------------------------------------------------; S  }. B5 h- _
% U' p9 S  c6 k; m9 D2 [( G  c
// OEM Resource Ordinal Numbers
9 y) L" x# X* O. Y) K2 a#define OBM_OLD_CLOSE       32767
' d- p2 ]$ U2 i4 _3 N" @7 b; ^#define OBM_SIZE            32766
+ h7 k0 k  k6 g7 v+ y5 L7 C#define OBM_OLD_UPARROW     327650 p- d1 s5 c# f! S6 J
#define OBM_OLD_DNARROW     32764
7 e- \8 J% O: H1 p" j7 T#define OBM_OLD_RGARROW     32763/ x& S6 P( Y" Z0 |' K* T
#define OBM_OLD_LFARROW     327625 z6 ]; a% |4 I- {
#define OBM_BTSIZE          32761
5 G' A9 _, S) R9 H, B. J  ], r#define OBM_CHECK           32760% R& r9 o% p1 \! X; H2 r
#define OBM_CHECKBOXES      32759
* _; @! X3 q+ D: ^+ }0 q#define OBM_BTNCORNERS      32758
/ k) X/ |0 K: L+ l#define OBM_OLD_REDUCE      327579 ?4 C* t" j8 |/ T
#define OBM_OLD_ZOOM        327569 T; K9 a5 l6 C% g/ Z$ t
#define OBM_OLD_RESTORE     32755
0 o* m) f% B4 c6 b8 O4 d) z2 s& v* B* i#define OBM_CLOSE           327548 k, t* a" L9 D5 f# p; p2 N
#define OBM_UPARROW         32753
/ I3 R$ g, `' m8 L7 q! C, X#define OBM_DNARROW         32752
9 A9 V# I, x- m5 @* G#define OBM_RGARROW         32751# p9 J6 r/ |# C8 G0 u# q, ]" E. [
#define OBM_LFARROW         32750
4 q; r& D% ^5 I  R#define OBM_REDUCE          32749
" q# d0 J' N9 L3 d; |9 p#define OBM_ZOOM            327482 d) R/ b3 f5 H$ n1 m- Q9 W
#define OBM_RESTORE         32747- B* F+ k; b$ w! i- k' P' n0 }
#define OBM_REDUCED         32746* Q' H/ a6 Z* e0 Y0 O2 l- t; T
#define OBM_ZOOMD           327455 v3 |) @+ ^: ?; K1 P' Z
#define OBM_RESTORED        32744  L) N" D1 p# b) }! B  M
#define OBM_UPARROWD        32743& Q' y4 T) k: S! {; g
#define OBM_DNARROWD        32742
$ ]+ ~* D( O/ f+ j( T- C#define OBM_RGARROWD        32741$ m; b$ i* c% C7 u
#define OBM_LFARROWD        32740
' @9 n% H' c, X) v$ y) n#define OBM_MNARROW         32739+ G# S+ A1 T+ @% P/ [$ D
#define OBM_COMBO           32738
/ U& R* J6 J2 p#define OBM_UPARROWI        32737
4 M. H3 R: E% e#define OBM_DNARROWI        32736
+ J. ^0 h8 V* a#define OBM_RGARROWI        32735% W) X1 m0 j$ i4 N' M2 Y
#define OBM_LFARROWI        327347 T1 D+ G, `$ @; {. Q+ d
) [  M0 [& H/ d, }1 j9 W! c% B4 F
7 d2 ~+ l5 B3 i# d0 \7 e! l' O
// Standard Icon IDs: b4 U. \. q% M0 w  B0 B
#define IDI_APPLICATION     MAKEINTRESOURCE(32512)
* Y* M9 K7 u0 `9 T3 V" T0 z#define IDI_HAND            MAKEINTRESOURCE(32513)
9 u, w: K% ~6 C  g% q5 y#define IDI_QUESTION        MAKEINTRESOURCE(32514)2 s- |4 O4 e; k( ]9 D: b% H
#define IDI_EXCLAMATION     MAKEINTRESOURCE(32515)) u; K3 y3 I3 u0 g3 n( Q) _
#define IDI_ASTERISK        MAKEINTRESOURCE(32516)5 u7 `( \4 q$ t- L' R0 g
#define IDI_WINLOGO         MAKEINTRESOURCE(32517)
9 {- [! n$ d( d; o) R& G( d0 p) s; m5 N0 _+ [9 q0 Q

5 |2 I( z3 H* v+ H2 r7 ^我们可以通过LoadBitmap从系统中取得指定资源图像:- B' }; [6 [/ v* W  h. w2 p
$ X  h* j  t% q+ J! J
void __fastcall TMainForm::Button1Click(TObject *Sender)
1 Z4 X4 o; o. E{% l! G( g7 q/ o' Q7 V
    for(int i=0; i<30; i++)
2 b. L% ~9 g1 H    {( j7 R7 C2 z+ Y
        HBITMAP hBitmap = :oadBitmap(NULL, MAKEINTRESOURCE(32734 + i));
" z0 |  N; k6 Q, j, K9 Z% K        TImage *img = new TImage(this);
0 G/ A4 D! ]3 w; v        img->icture->Bitmap->Handle = hBitmap;
7 W3 t  G4 g* Z; _+ [        Canvas->Draw(9 + i *16, 9, img->icture->Bitmap);5 e2 D; h0 ]% \! _6 o
        delete img;
0 M) {$ B, N  f+ f+ Y/ u- @        DeleteObject(hBitmap);
: B4 k+ W% z: y9 L. M$ u    }
$ z. [6 H9 B7 P& {% ^6 A    for(int i=0; i<5; i++)7 V( i" g* D& B$ ]" B# h! x( _2 r- v% W
    {. u, C$ n- {$ P* f, R, ?5 y
        HICON hIcon = :oadIcon(NULL, MAKEINTRESOURCE(32512 + i));6 t+ j5 S8 R; Q8 x
        TImage *img = new TImage(this);3 K4 L. T1 Z+ X2 G+ Z
        img->icture->Icon->Handle = hIcon;
+ Y$ \# c  P, ?8 M        Canvas->Draw(10 + i *32, 50, img->Picture->Icon);
# N3 s6 i& s3 p4 S7 A# ]4 H8 c* c- w        delete img;
% `* I* j/ d* F        DeleteObject(hIcon);+ M# S6 `" ^, k
    }
  B4 Q2 x/ Q5 v9 u: ]% Q  o) {}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-8-15 11:52 , Processed in 0.019284 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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