|
|
Windows XP megjelenítési stílusok felhasználása
|
|
Példaprogram letöltése
13056 bájt
|
A Windows XP-vel létrehozásra került néhány olyan új funkció, melyet felhasználva látványos grafikai objektumokat rajzolhatunk ki saját alkalmazásainkban is, teljesen egyedi módon felhasználva a számtalan lehetőséget.
Ezen függvények felhasználásához szükséges, hogy azokat elérhessük. Ezért létrehoztunk a Win32.cs forráskódot, melyben megadjuk a szükséges függvényeket és hozzájuk tartozó konstansokat. Ezeket a függvényeket az UxTheme.dll-ben találjuk, így erre kell hivatkoznunk.
Számos különféle a Windows-ból már jól ismert objektum, grafikai elem rajzolható ki a függvények felhasználásával, természetesen most nem csak eredeti funkciójuknak megfelelően, hanem saját céljainkra is. Így például rajzolhatunk Form fejléc hátteret tetszőleges méretben, melyet egyedi módon használunk fel. Hogy mit is szeretnénk rajzoltatni, az különféle osztályokra van bontva:
- BUTTON
- CLOCK
- COMBOBOX
- EDIT
- EXPLORERBAR
- GLOBALS
- HEADER
- LISTVIEW
- MENU
- MENUBAND
- PAGE
- PROGRESS
- REBAR
- SCROLLBAR
- SPIN
- STARTPANEL
- STATUS
- TAB
- TASKBAND
- TASKBAR
- TOOLBAR
- TOOLTIP
- TRACKBAR
- TRAYNOTIFY
- TREEVIEW
- WINDOW
Minden osztálynak lehet még számos tulajdonsága, mely befolyásolhatja a megjelenő eredményt. Például egy ablak fejléc hátterének rajzolásakor rajzoltathatunk aktív, vagy inaktív fejlécet.
Nézzük a gyakorlatban miként is használhatjuk ezt ki:
private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
Rajzoljunk ki egy téglalapot a Form fejlécének háttér stílusával.
IntPtr hdc = e.Graphics.GetHdc();
Rectangle rect = new Rectangle(20, 20, 300, 55);
Az IsThemeActive függvény használatával ellenőrizhetjük, hogy alkalmazásunk képes-e ezen lehetőségek kihasználásra. Ha igen és még nem nyitottunk meg valamely osztályú rajzeszközt, akkor ezt az OpenThemeData függvény hívásával megtehetjük. Első paraméterként annak az ablaknak az azonosítóját kell megadnunk, melyen a rajzolást szeretnénk elvégezni, másodikként a fenti felsorolásban látható osztályok megnevezése közül azt, melyet használni szeretnénk.
if ((Win32.IsThemeActive() == 1) && (handleTheme == IntPtr.Zero))
{
handleTheme = Win32.OpenThemeData(Handle, "Window");
}
Ezt követően a DrawThemeBackground függvény hívásával elvégezhetjük egy objektum hátterének kifestését. Első paraméterként az OpenThemeData által visszaadott azonosítót kell megadnunk. Ezt követi a rajzeszközünk azonosítója, melyet a Graphics osztályunk GetHdc függvénye szolgáltatott. A harmadik paraméterben arról rendelkezhetünk, hogy a választott objektum mely osztályát szeretnénk használni, míg a negyedik paraméter az osztályhoz tartozó egyéb attribútumot adja meg. A kirajzolás területét az ezt követő paraméterben adhatjuk meg.
Win32.RECT r = new Win32.RECT(rect);
Win32.DrawThemeBackground(handleTheme, hdc, Win32.WP_CAPTION, Win32.CS_ACTIVE, ref r, ref r);
...
Mint látható a Form fejléc hátterének kirajzolásához a WP_CAPTION konstanst használtuk, melynél a CS_ACTIVE attribútum megadásával értük el, hogy egy aktív ablak fejléce legyen kirajzolva.
Hogy milyen egyéb lehetőségeink vannak, azt az alábbi táblázat foglalja össze. Az első oszlopban a felhasználható osztályok láthatóak, a másodikban a DrawThemeBackground függvény harmadik paraméterében (Part) használható konstansok, míg a táblázat harmadik oszlopában a DrawThemeBackground függvény negyedik paraméterének (States) konstansai láthatók.
| Osztály |
Part paraméter |
States paraméter |
| BUTTON |
BP_CHECKBOX |
CBS_CHECKEDDISABLED, CBS_CHECKEDHOT, CBS_CHECKEDNORMAL, CBS_CHECKEDPRESSED, CBS_MIXEDDISABLED, CBS_MIXEDHOT, CBS_MIXEDNORMAL, CBS_MIXEDPRESSED, CBS_UNCHECKEDDISABLED, CBS_UNCHECKEDHOT, CBS_UNCHECKEDNORMAL, CBS_UNCHECKEDPRESSED |
| --> |
BP_GROUPBOX |
GBS_DISABLED, GBS_NORMAL |
| --> |
BP_PUSHBUTTON |
PBS_DEFAULTED, PBS_DISABLED, PBS_HOT, PBS_NORMAL, PBS_PRESSED |
| --> |
BP_RADIOBUTTON |
RBS_CHECKEDDISABLED, RBS_CHECKEDHOT, RBS_CHECKEDNORMAL, RBS_CHECKEDPRESSED, RBS_UNCHECKEDDISABLED, RBS_UNCHECKEDHOT, RBS_UNCHECKEDNORMAL, RBS_UNCHECKEDPRESSED |
| --> |
BP_USERBUTTON |
- |
| CLOCK |
CLP_TIME |
CLS_NORMAL |
| COMBOBOX |
CP_DROPDOWNBUTTON |
CBXS_DISABLED, CBXS_HOT, CBXS_NORMAL, CBXS_PRESSED |
| EDIT |
EP_CARET |
- |
| --> |
EP_EDITTEXT |
ETS_ASSIST, ETS_DISABLED, ETS_FOCUSED, ETS_HOT, ETS_NORMAL, ETS_READONLY, ETS_SELECTED |
| EXPLORERBAR |
EBP_HEADERBACKGROUND |
- |
| --> |
EBP_HEADERCLOSE |
EBHC_HOT, EBHC_NORMAL, EBHC_PRESSED |
| --> |
EBP_HEADERPIN |
EBHP_HOT, EBHP_NORMAL, EBHP_PRESSED, EBHP_SELECTEDHOT, EBHP_SELECTEDNORMAL, EBHP_SELECTEDPRESSED |
| --> |
EBP_IEBARMENU |
EBM_HOT, EBM_NORMAL, EBM_PRESSED |
| --> |
EBP_NORMALGROUPBACKGROUND |
- |
| --> |
EBP_NORMALGROUPCOLLAPSE |
EBNGC_HOT, EBNGC_NORMAL, EBNGC_PRESSED |
| --> |
EBP_NORMALGROUPEXPAND |
EBNGE_HOT, EBNGE_NORMAL, EBNGE_PRESSED |
| --> |
EBP_NORMALGROUPHEAD |
- |
| --> |
EBP_SPECIALGROUPBACKGROUND |
- |
| --> |
EBP_SPECIALGROUPCOLLAPSE |
EBSGC_HOT, EBSGC_NORMAL, EBSGC_PRESSED |
| --> |
EBP_SPECIALGROUPEXPAND |
EBSGE_HOT, EBSGE_NORMAL, EBSGE_PRESSED |
| --> |
EBP_SPECIALGROUPHEAD |
- |
| GLOBALS |
GP_BORDER |
BSS_FLAT, BSS_RAISED, BSS_SUNKEN |
| --> |
GP_LINEHORZ |
LHS_FLAT, LHS_RAISED, LHS_SUNKEN |
| --> |
GP_LINEVERT |
LVS_FLAT, LVS_RAISED, LVS_SUNKEN |
| HEADER |
HP_HEADERITEM |
HIS_HOT, HIS_NORMAL, HIS_PRESSED |
| --> |
HP_HEADERITEMLEFT |
HILS_HOT, HILS_NORMAL, HILS_PRESSED |
| --> |
HP_HEADERITEMRIGHT |
HIRS_HOT, HIRS_NORMAL, HIRS_PRESSED |
| --> |
HP_HEADERSORTARROW |
HSAS_SORTEDDOWN, HSAS_SORTEDUP |
| LISTVIEW |
LVP_EMPTYTEXT |
- |
| --> |
LVP_LISTDETAIL |
- |
| --> |
LVP_LISTGROUP |
- |
| --> |
LVP_LISTITEM |
LIS_DISABLED, LIS_HOT, LIS_NORMAL, LIS_SELECTED, LIS_SELECTEDNOTFOCUS |
| --> |
LVP_LISTSORTEDDETAIL |
- |
| MENU |
MP_MENUBARDROPDOWN |
MS_DEMOTED, MS_NORMAL, MS_SELECTED |
| --> |
MP_MENUBARITEM |
MS_DEMOTED, MS_NORMAL, MS_SELECTED |
|
MP_CHEVRON |
MS_DEMOTED, MS_NORMAL, MS_SELECTED |
| --> |
MP_MENUDROPDOWN |
MS_DEMOTED, MS_NORMAL, MS_SELECTED |
| --> |
MP_MENUITEM |
MS_DEMOTED, MS_NORMAL, MS_SELECTED |
| --> |
MP_SEPARATOR |
MS_DEMOTED, MS_NORMAL, MS_SELECTED |
| MENUBAND |
MDP_NEWAPPBUTTON |
MDS_CHECKED, MDS_DISABLED, MDS_HOT, MDS_HOTCHECKED, MDS_NORMAL, MDS_PRESSED |
| --> |
MDP_SEPARATOR |
- |
| PAGE |
PGRP_DOWN |
DNS_DISABLED, DNS_HOT, DNS_NORMAL, DNS_PRESSED |
| --> |
PGRP_DOWNHORZ |
DNHZS_DISABLED, DNHZS_HOT, DNHZS_NORMAL, DNHZS_PRESSED |
| --> |
PGRP_UP |
UPS_DISABLED, UPS_HOT, UPS_NORMAL, UPS_PRESSED |
| --> |
PGRP_UPHORZ |
UPHZS_DISABLED, UPHZS_HOT, UPHZS_NORMAL, UPHZS_PRESSED |
| PROGRESS |
PP_BAR |
- |
| --> |
PP_BARVERT |
- |
| --> |
PP_CHUNK |
- |
| --> |
PP_CHUNKVERT |
- |
| REBAR |
RP_BAND |
- |
| --> |
RP_CHEVRON |
CHEVS_HOT, CHEVS_NORMAL, CHEVS_PRESSED |
| --> |
RP_CHEVRONVERT |
- |
| --> |
RP_GRIPPER |
- |
| --> |
RP_GRIPPERVERT |
- |
| SCROLLBAR |
SBP_ARROWBTN |
ABS_DOWNDISABLED, ABS_DOWNHOT, ABS_DOWNNORMAL, ABS_DOWNPRESSED, ABS_UPDISABLED, ABS_UPHOT, ABS_UPNORMAL, ABS_UPPRESSED, ABS_LEFTDISABLED, ABS_LEFTHOT, ABS_LEFTNORMAL, ABS_LEFTPRESSED, ABS_RIGHTDISABLED, ABS_RIGHTHOT, ABS_RIGHTNORMAL, ABS_RIGHTPRESSED |
| --> |
SBP_GRIPPERHORZ |
- |
| --> |
SBP_GRIPPERVERT |
- |
| --> |
SBP_LOWERTRACKHORZ |
SCRBS_DISABLED, SCRBS_HOT, SCRBS_NORMAL, SCRBS_PRESSED |
| --> |
SBP_LOWERTRACKVERT |
SCRBS_DISABLED, SCRBS_HOT, SCRBS_NORMAL, SCRBS_PRESSED |
| --> |
SBP_THUMBBTNHORZ |
SCRBS_DISABLED, SCRBS_HOT, SCRBS_NORMAL, SCRBS_PRESSED |
| --> |
SBP_THUMBBTNVERT |
SCRBS_DISABLED, SCRBS_HOT, SCRBS_NORMAL, SCRBS_PRESSED |
| --> |
SBP_UPPERTRACKHORZ |
SCRBS_DISABLED, SCRBS_HOT, SCRBS_NORMAL, SCRBS_PRESSED |
| --> |
SBP_UPPERTRACKVERT |
SCRBS_DISABLED, SCRBS_HOT, SCRBS_NORMAL, SCRBS_PRESSED |
| --> |
SBP_SIZEBOX |
SZB_LEFTALIGN, SZB_RIGHTALIGN |
| SPIN |
SPNP_DOWN |
DNS_DISABLED, DNS_HOT, DNS_NORMAL, DNS_PRESSED |
| --> |
SPNP_DOWNHORZ |
DNHZS_DISABLED, DNHZS_HOT, DNHZS_NORMAL, DNHZS_PRESSED |
| --> |
SPNP_UP |
UPS_DISABLED, UPS_HOT, UPS_NORMAL, UPS_PRESSED |
| --> |
SPNP_UPHORZ |
UPHZS_DISABLED, UPHZS_HOT, UPHZS_NORMAL, UPHZS_PRESSED |
| STARTPANEL |
SPP_LOGOFF |
- |
| --> |
SPP_LOGOFFBUTTONS |
SPLS_HOT, SPLS_NORMAL, SPLS_PRESSED |
| --> |
SPP_MOREPROGRAMS |
- |
| --> |
SPP_MOREPROGRAMSARROW |
SPS_HOT, SPS_NORMAL, SPS_PRESSED |
| --> |
SPP_PLACESLIST |
- |
| --> |
SPP_PLACESLISTSEPARATOR |
- |
| --> |
SPP_PREVIEW |
- |
| --> |
SPP_PROGLIST |
- |
| --> |
SPP_PROGLISTSEPARATOR |
- |
| --> |
SPP_USERPANE |
- |
| --> |
SPP_USERPICTURE |
- |
| STATUS |
SP_GRIPPER |
- |
| --> |
SP_PANE |
- |
| --> |
SP_GRIPPERPANE |
- |
| TAB |
TABP_BODY |
- |
| --> |
TABP_PANE |
- |
| --> |
TABP_TABITEM |
TIS_DISABLED, TIS_FOCUSED, TIS_HOT, TIS_NORMAL, TIS_SELECTED |
| --> |
TABP_TABITEMBOTHEDGE |
TIBES_DISABLED, TIBES_FOCUSED, TIBES_HOT, TIBES_NORMAL, TIBES_SELECTED |
| --> |
TABP_TABITEMLEFTEDGE |
TILES_DISABLED, TILES_FOCUSED, TILES_HOT, TILES_NORMAL, TILES_SELECTED |
| --> |
TABP_TABITEMRIGHTEDGE |
TIRES_DISABLED, TIRES_FOCUSED, TIRES_HOT, TIRES_NORMAL, TIRES_SELECTED |
| --> |
TABP_TOPTABITEM |
TTIS_DISABLED, TTIS_FOCUSED, TTIS_HOT, TTIS_NORMAL, TTIS_SELECTED |
| --> |
TABP_TOPTABITEMBOTHEDGE |
TTIBES_DISABLED, TTIBES_FOCUSED, TTIBES_HOT, TTIBES_NORMAL, TTIBES_SELECTED |
| --> |
TABP_TOPTABITEMLEFTEDGE |
TTILES_DISABLED, TTILES_FOCUSED, TTILES_HOT, TTILES_NORMAL, TTILES_SELECTED |
| --> |
TABP_TOPTABITEMRIGHTEDGE |
TTIRES_DISABLED, TTIRES_FOCUSED, TTIRES_HOT, TTIRES_NORMAL, TTIRES_SELECTED |
| TASKBAND |
TDP_GROUPCOUNT |
- |
| --> |
TDP_FLASHBUTTON |
- |
| --> |
TDP_FLASHBUTTONGROUPMENU |
- |
| TASKBAR |
TBP_BACKGROUNDBOTTOM |
- |
| --> |
TBP_BACKGROUNDLEFT |
- |
| --> |
TBP_BACKGROUNDRIGHT |
- |
| --> |
TBP_BACKGROUNDTOP |
- |
| --> |
TBP_SIZINGBARBOTTOM |
- |
| --> |
TBP_SIZINGBARBOTTOMLEFT |
- |
| --> |
TBP_SIZINGBARRIGHT |
- |
| --> |
TBP_SIZINGBARTOP |
- |
| TOOLBAR |
TP_BUTTON |
TS_CHECKED, TS_DISABLED, TS_HOT, TS_HOTCHECKED, TS_NORMAL, TS_PRESSED |
| --> |
TP_DROPDOWNBUTTON |
TS_CHECKED, TS_DISABLED, TS_HOT, TS_HOTCHECKED, TS_NORMAL, TS_PRESSED |
| --> |
TP_SPLITBUTTON |
TS_CHECKED, TS_DISABLED, TS_HOT, TS_HOTCHECKED, TS_NORMAL, TS_PRESSED |
| --> |
TP_SPLITBUTTONDROPDOWN |
TS_CHECKED, TS_DISABLED, TS_HOT, TS_HOTCHECKED, TS_NORMAL, TS_PRESSED |
| --> |
TP_SEPARATOR |
TS_CHECKED, TS_DISABLED, TS_HOT, TS_HOTCHECKED, TS_NORMAL, TS_PRESSED |
| --> |
TP_SEPARATORVERT |
TS_CHECKED, TS_DISABLED, TS_HOT, TS_HOTCHECKED, TS_NORMAL, TS_PRESSED |
| TOOLTIP |
TTP_BALLOON |
TTBS_LINK, TTBS_NORMAL |
| --> |
TTP_BALLOONTITLE |
TTBS_LINK, TTBS_NORMAL |
| --> |
TTP_CLOSE |
TTCS_HOT, TTCS_NORMAL, TTCS_PRESSED |
| --> |
TTP_STANDARD |
TTSS_LINK, TTSS_NORMAL |
| --> |
TTP_STANDARDTITLE |
TTSS_LINK, TTSS_NORMAL |
| TRACKBAR |
TKP_THUMB |
TUS_DISABLED, TUS_FOCUSED, TUS_HOT, TUS_NORMAL, TUS_PRESSED |
| --> |
TKP_THUMBBOTTOM |
TUBS_DISABLED, TUBS_FOCUSED, TUBS_HOT, TUBS_NORMAL, TUBS_PRESSED |
| --> |
TKP_THUMBLEFT |
TUVLS_DISABLED, TUVLS_FOCUSED, TUVLS_HOT, TUVLS_NORMAL, TUVLS_PRESSED |
| --> |
TKP_THUMBRIGHT |
TUVRS_DISABLED, TUVRS_FOCUSED, TUVRS_HOT, TUVRS_NORMAL, TUVRS_PRESSED |
| --> |
TKP_THUMBTOP |
TUTS_DISABLED, TUTS_FOCUSED, TUTS_HOT, TUTS_NORMAL, TUTS_PRESSED |
| --> |
TKP_THUMBVERT |
TUVS_DISABLED, TUVS_FOCUSED, TUVS_HOT, TUVS_NORMAL, TUVS_PRESSED |
| --> |
TKP_TICS |
TSS_NORMAL |
| --> |
TKP_TICSVERT |
TSVS_NORMAL |
| --> |
TKP_TRACK |
TRS_NORMAL |
| --> |
TKP_TRACKVERT |
TRVS_NORMAL |
| TRAYNOTIFY |
TNP_ANIMBACKGROUND |
- |
| --> |
TNP_BACKGROUND |
- |
| TREEVIEW |
TVP_BRANCH |
- |
| --> |
TVP_GLYPH |
GLPS_CLOSED, GLPS_OPENED |
| --> |
TVP_TREEITEM |
TREIS_DISABLED, TREIS_HOT, TREIS_NORMAL, TREIS_SELECTED, TREIS_SELECTEDNOTFOCUS |
| WINDOW |
WP_CAPTION |
CS_ACTIVE, CS_DISABLED, CS_INACTIVE |
| --> |
WP_CAPTIONSIZINGTEMPLATE |
- |
| --> |
WP_CLOSEBUTTON |
CBS_DISABLED, CBS_HOT, CBS_NORMAL, CBS_PUSHED |
| --> |
WP_DIALOG |
- |
| --> |
WP_FRAMEBOTTOM |
FS_ACTIVE, FS_INACTIVE |
| --> |
WP_FRAMEBOTTOMSIZINGTEMPLATE |
- |
| --> |
WP_FRAMELEFT |
FS_ACTIVE, FS_INACTIVE |
| --> |
WP_FRAMELEFTSIZINGTEMPLATE |
- |
| --> |
WP_FRAMERIGHT |
FS_ACTIVE, FS_INACTIVE |
| --> |
WP_FRAMERIGHTSIZINGTEMPLATE |
- |
| --> |
WP_HELPBUTTON |
HBS_DISABLED, HBS_HOT, HBS_NORMAL, HBS_PUSHED |
| --> |
WP_HORZSCROLL |
HSS_DISABLED, HSS_HOT, HSS_NORMAL, HSS_PUSHED |
| --> |
WP_HORZTHUMB |
HTS_DISABLED, HTS_HOT, HTS_NORMAL, HTS_PUSHED |
| --> |
WP_MAX_BUTTON |
MAXBS_DISABLED, MAXBS_HOT, MAXBS_NORMAL, MAXBS_PUSHED |
| --> |
WP_MAXCAPTION |
MXCS_ACTIVE, MXCS_DISABLED, MXCS_INACTIVE |
| --> |
WP_MDICLOSEBUTTON |
CBS_DISABLED, CBS_HOT, CBS_NORMAL, CBS_PUSHED |
| --> |
WP_MDIHELPBUTTON |
HBS_DISABLED, HBS_HOT, HBS_NORMAL, HBS_PUSHED |
| --> |
WP_MDIMINBUTTON |
MINBS_DISABLED, MINBS_HOT, MINBS_NORMAL, MINBS_PUSHED |
| --> |
WP_MDIRESTOREBUTTON |
RBS_DISABLED, RBS_HOT, RBS_NORMAL, RBS_PUSHED |
| --> |
WP_MDISYSBUTTON |
SBS_DISABLED, SBS_HOT, SBS_NORMAL, SBS_PUSHED |
| --> |
WP_MINBUTTON |
MINBS_DISABLED, MINBS_HOT, MINBS_NORMAL, MINBS_PUSHED |
| --> |
WP_MINCAPTION |
MNCS_ACTIVE, MNCS_DISABLED, MNCS_INACTIVE |
| --> |
WP_RESTOREBUTTON |
RBS_DISABLED, RBS_HOT, RBS_NORMAL, RBS_PUSHED |
| --> |
WP_SMALLCAPTION |
CS_ACTIVE, CS_DISABLED, CS_INACTIVE |
| --> |
WP_SMALLCAPTIONSIZINGTEMPLATE |
| --> |
WP_SMALLCLOSEBUTTON |
CBS_DISABLED, CBS_HOT, CBS_NORMAL, CBS_PUSHED |
| --> |
WP_SMALLFRAMEBOTTOM |
FS_ACTIVE, FS_INACTIVE |
| --> |
WP_SMALLFRAMEBOTTOMSIZINGTEMPLATE |
- |
| --> |
WP_SMALLFRAMELEFT |
FS_ACTIVE, FS_INACTIVE |
| --> |
WP_SMALLFRAMELEFTSIZINGTEMPLATE |
- |
| --> |
WP_SMALLFRAMERIGHT |
FS_ACTIVE, FS_INACTIVE |
| --> |
WP_SMALLFRAMERIGHTSIZINGTEMPLATE |
- |
| --> |
WP_SMALLHELPBUTTON |
HBS_DISABLED, HBS_HOT, HBS_NORMAL, HBS_PUSHED |
| --> |
WP_SMALLMAXBUTTON |
MAXBS_DISABLED, MAXBS_HOT, MAXBS_NORMAL, MAXBS_PUSHED |
| --> |
WP_SMALLMAXCAPTION |
MXCS_ACTIVE, MXCS_DISABLED, MXCS_INACTIVE |
| --> |
WP_SMALLMINBUTTON |
MINBS_DISABLED, MINBS_HOT, MINBS_NORMAL, MINBS_PUSHED |
| --> |
WP_SMALLMINCAPTION |
MNCS_ACTIVE, MNCS_DISABLED, MNCS_INACTIVE |
| --> |
WP_SMALLRESTOREBUTTON |
RBS_DISABLED, RBS_HOT, RBS_NORMAL, RBS_PUSHED |
| --> |
WP_SMALLSYSBUTTON |
SBS_DISABLED, SBS_HOT, SBS_NORMAL, SBS_PUSHED |
| --> |
WP_SYSBUTTON |
SBS_DISABLED, SBS_HOT, SBS_NORMAL, SBS_PUSHED |
| --> |
WP_VERTSCROLL |
VSS_DISABLED, VSS_HOT, VSS_NORMAL, VSS_PUSHED |
| --> |
WP_VERTTHUMB |
VTS_DISABLED, VTS_HOT, VTS_NORMAL, VTS_PUSHED |
|
Könyv
Ez a cikk megtalálható ebben a könyvben:
C# Software Offline 2002 évkönyv 382. oldal
Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!
|