Botones con temas xp

11/02/2004 - 04:31 por Oscar Joel Lira lira | Informe spam
hola

Trabajo en lenguaje c y estoy tratando de implementar los
botones con los temas xp, lei por ahi que esto dibuja un
boton

rtButton.top = 100;
rtButton.left = 10;
rtButton.bottom = 130;
rtButton.right = 200;
hTheme = OpenThemeData(hWnd, L"Button");
DrawThemeBackground(hTheme, hdc, BP_PUSHBUTTON,
PBS_NORMAL, &rtButton, NULL);
DrawThemeText(hTheme, hdc, BP_PUSHBUTTON, PBS_NORMAL,
wzTMB, wcslen(wzTMB),
DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS |
DT_SINGLELINE, 0, &rtButton);

pero tambien decia que tenia que llamar una libreria y no
se como hacerlo, espero me puedan ayudar con un ejemplo
de como dibujar un boton


Gracias

Oscar Lira

Preguntas similare

Leer las respuestas

#1 Gabriel Gibaut
12/02/2004 - 01:37 | Informe spam
Oscar,

Solo puedes usar esas funciones en XP y 2003, si quieres dibujar botones al
estilo XP en otro SO vas a tener que hacer todo el codigo de dibujado por tu
cuenta. Aca tal vez está lo que buscas (aunque en MFC)
http://www.codeproject.com/buttonct...button.asp

Lo de llamar a una librería es porque sólo en los sistemas que soportan
temas XP, uxtheme.dll (la que tiene las funciones de temas) está presente.
Si utilizaras las funciones como lo haces con las demas dlls de windows
(poniendo el .lib en la lista de libs para el linker) cuando tu aplicacion
se ejecutase en un windows que no soporte temas XP, el loader no podría
cargar la dll y abortaría la aplicación. (si sólo piensas usarla en XP
entonces no tendrás este problema). Lo que se hace es cargarla dinamicamente
con LoadLibrary y obtener con GetProcAddress punteros a las funciones que
necesitas.
Aca tenes un ejemplo de usar temas para dibujar un boton en XP con Win32
http://www.codeproject.com/buttonct...themes.asp

Tendrías que explicar un poco mas lo que deseas hacer, asi te podremos
ayudar mejor.

Saludos

Gabriel


"Oscar Joel Lira lira" escribió en el
mensaje news:e22d01c3f04f$90d3ad20$
hola

Trabajo en lenguaje c y estoy tratando de implementar los
botones con los temas xp, lei por ahi que esto dibuja un
boton

rtButton.top = 100;
rtButton.left = 10;
rtButton.bottom = 130;
rtButton.right = 200;
hTheme = OpenThemeData(hWnd, L"Button");
DrawThemeBackground(hTheme, hdc, BP_PUSHBUTTON,
PBS_NORMAL, &rtButton, NULL);
DrawThemeText(hTheme, hdc, BP_PUSHBUTTON, PBS_NORMAL,
wzTMB, wcslen(wzTMB),
DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS |
DT_SINGLELINE, 0, &rtButton);

pero tambien decia que tenia que llamar una libreria y no
se como hacerlo, espero me puedan ayudar con un ejemplo
de como dibujar un boton


Gracias

Oscar Lira
Respuesta Responder a este mensaje
#2 oscar lira
12/02/2004 - 04:02 | Informe spam
Gabriel

Mira yo trabajo actualmente con un proyecto que se llama
xHarbour www.xHarbour.net y trato de implementar una
clases que verifique con que SO estoy trabajando y si es
XP llame la libreria y muestre los botones estilo XP, hoy
en platicas con un amigo parece que solo se requiere
hacer el archivo manifest y adjuntarlo a la aplicacion,
lo provare y te comento el resultado

Gracias

Oscar Lira


Oscar,

Solo puedes usar esas funciones en XP y 2003, si quieres


dibujar botones al
estilo XP en otro SO vas a tener que hacer todo el


codigo de dibujado por tu
cuenta. Aca tal vez está lo que buscas (aunque en MFC)
http://www.codeproject.com/buttonct...button.asp

Lo de llamar a una librería es porque sólo en los


sistemas que soportan
temas XP, uxtheme.dll (la que tiene las funciones de


temas) está presente.
Si utilizaras las funciones como lo haces con las demas


dlls de windows
(poniendo el .lib en la lista de libs para el linker)


cuando tu aplicacion
se ejecutase en un windows que no soporte temas XP, el


loader no podría
cargar la dll y abortaría la aplicación. (si sólo


piensas usarla en XP
entonces no tendrás este problema). Lo que se hace es


cargarla dinamicamente
con LoadLibrary y obtener con GetProcAddress punteros a


las funciones que
necesitas.
Aca tenes un ejemplo de usar temas para dibujar un boton


en XP con Win32
http://www.codeproject.com/buttonct...32xpthemes


.asp

Tendrías que explicar un poco mas lo que deseas hacer,


asi te podremos
ayudar mejor.

Saludos

Gabriel


"Oscar Joel Lira lira"


escribió en el
mensaje news:e22d01c3f04f$90d3ad20$
hola

Trabajo en lenguaje c y estoy tratando de implementar




los
botones con los temas xp, lei por ahi que esto dibuja




un
boton

rtButton.top = 100;
rtButton.left = 10;
rtButton.bottom = 130;
rtButton.right = 200;
hTheme = OpenThemeData(hWnd, L"Button");
DrawThemeBackground(hTheme, hdc, BP_PUSHBUTTON,
PBS_NORMAL, &rtButton, NULL);
DrawThemeText(hTheme, hdc, BP_PUSHBUTTON, PBS_NORMAL,
wzTMB, wcslen(wzTMB),
DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS |
DT_SINGLELINE, 0, &rtButton);

pero tambien decia que tenia que llamar una libreria y




no
se como hacerlo, espero me puedan ayudar con un ejemplo
de como dibujar un boton


Gracias

Oscar Lira




.

Respuesta Responder a este mensaje
#3 oscar lira
12/02/2004 - 04:03 | Informe spam
Gabriel

Mira yo trabajo actualmente con un proyecto que se llama
xHarbour www.xHarbour.net y trato de implementar una
clases que verifique con que SO estoy trabajando y si es
XP llame la libreria y muestre los botones estilo XP, hoy
en platicas con un amigo parece que solo se requiere
hacer el archivo manifest y adjuntarlo a la aplicacion,
lo provare y te comento el resultado

Gracias

Oscar Lira


Oscar,

Solo puedes usar esas funciones en XP y 2003, si quieres


dibujar botones al
estilo XP en otro SO vas a tener que hacer todo el


codigo de dibujado por tu
cuenta. Aca tal vez está lo que buscas (aunque en MFC)
http://www.codeproject.com/buttonct...button.asp

Lo de llamar a una librería es porque sólo en los


sistemas que soportan
temas XP, uxtheme.dll (la que tiene las funciones de


temas) está presente.
Si utilizaras las funciones como lo haces con las demas


dlls de windows
(poniendo el .lib en la lista de libs para el linker)


cuando tu aplicacion
se ejecutase en un windows que no soporte temas XP, el


loader no podría
cargar la dll y abortaría la aplicación. (si sólo


piensas usarla en XP
entonces no tendrás este problema). Lo que se hace es


cargarla dinamicamente
con LoadLibrary y obtener con GetProcAddress punteros a


las funciones que
necesitas.
Aca tenes un ejemplo de usar temas para dibujar un boton


en XP con Win32
http://www.codeproject.com/buttonct...32xpthemes


.asp

Tendrías que explicar un poco mas lo que deseas hacer,


asi te podremos
ayudar mejor.

Saludos

Gabriel


"Oscar Joel Lira lira"


escribió en el
mensaje news:e22d01c3f04f$90d3ad20$
hola

Trabajo en lenguaje c y estoy tratando de implementar




los
botones con los temas xp, lei por ahi que esto dibuja




un
boton

rtButton.top = 100;
rtButton.left = 10;
rtButton.bottom = 130;
rtButton.right = 200;
hTheme = OpenThemeData(hWnd, L"Button");
DrawThemeBackground(hTheme, hdc, BP_PUSHBUTTON,
PBS_NORMAL, &rtButton, NULL);
DrawThemeText(hTheme, hdc, BP_PUSHBUTTON, PBS_NORMAL,
wzTMB, wcslen(wzTMB),
DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS |
DT_SINGLELINE, 0, &rtButton);

pero tambien decia que tenia que llamar una libreria y




no
se como hacerlo, espero me puedan ayudar con un ejemplo
de como dibujar un boton


Gracias

Oscar Lira




.

Respuesta Responder a este mensaje
#4 Gabriel Gibaut
13/02/2004 - 02:18 | Informe spam
Oscar,

Si sólo quieres que si la aplicacion use los temas de XP tienes que hacer lo
que te dijo Renato en su post sobre usar el manifest

Lo del contenido de este archivo está explicado en:

http://msdn.microsoft.com/library/d...hellcc/pla
tform/commctls/userex/cookbook.asp

Saludos

Gabriel


"oscar lira" escribió en el mensaje
news:f20701c3f114$b9781340$
Gabriel

Mira yo trabajo actualmente con un proyecto que se llama
xHarbour www.xHarbour.net y trato de implementar una
clases que verifique con que SO estoy trabajando y si es
XP llame la libreria y muestre los botones estilo XP, hoy
en platicas con un amigo parece que solo se requiere
hacer el archivo manifest y adjuntarlo a la aplicacion,
lo provare y te comento el resultado

Gracias

Oscar Lira


Oscar,

Solo puedes usar esas funciones en XP y 2003, si quieres


dibujar botones al
estilo XP en otro SO vas a tener que hacer todo el


codigo de dibujado por tu
cuenta. Aca tal vez está lo que buscas (aunque en MFC)
http://www.codeproject.com/buttonct...button.asp

Lo de llamar a una librería es porque sólo en los


sistemas que soportan
temas XP, uxtheme.dll (la que tiene las funciones de


temas) está presente.
Si utilizaras las funciones como lo haces con las demas


dlls de windows
(poniendo el .lib en la lista de libs para el linker)


cuando tu aplicacion
se ejecutase en un windows que no soporte temas XP, el


loader no podría
cargar la dll y abortaría la aplicación. (si sólo


piensas usarla en XP
entonces no tendrás este problema). Lo que se hace es


cargarla dinamicamente
con LoadLibrary y obtener con GetProcAddress punteros a


las funciones que
necesitas.
Aca tenes un ejemplo de usar temas para dibujar un boton


en XP con Win32
http://www.codeproject.com/buttonct...32xpthemes


.asp

Tendrías que explicar un poco mas lo que deseas hacer,


asi te podremos
ayudar mejor.

Saludos

Gabriel


"Oscar Joel Lira lira"


escribió en el
mensaje news:e22d01c3f04f$90d3ad20$
hola

Trabajo en lenguaje c y estoy tratando de implementar




los
botones con los temas xp, lei por ahi que esto dibuja




un
boton

rtButton.top = 100;
rtButton.left = 10;
rtButton.bottom = 130;
rtButton.right = 200;
hTheme = OpenThemeData(hWnd, L"Button");
DrawThemeBackground(hTheme, hdc, BP_PUSHBUTTON,
PBS_NORMAL, &rtButton, NULL);
DrawThemeText(hTheme, hdc, BP_PUSHBUTTON, PBS_NORMAL,
wzTMB, wcslen(wzTMB),
DT_CENTER | DT_VCENTER | DT_WORD_ELLIPSIS |
DT_SINGLELINE, 0, &rtButton);

pero tambien decia que tenia que llamar una libreria y




no
se como hacerlo, espero me puedan ayudar con un ejemplo
de como dibujar un boton


Gracias

Oscar Lira




.

Respuesta Responder a este mensaje
#5 ViKT0RY
15/02/2004 - 05:27 | Informe spam
En respuesta a:
"Renato Amaya" news:

Muy buena! he conseguido implementar eso en MASM32, osea, para un programita
mio en asm.
Podeis modificar a pelo el archivo de recursos (*.rc) y resource.h, la idea
es poner algo como esto:

En el resource.h añadís:

#define IDS_STYLE 1

y en el archivo de recursos (*.rc):

IDS_STYLE 24 "XMLXPSTYLE.txt"

Luego en el programa llamar a InitCommonControls del módulo comctl32.dll y
ya está, magia! xD

Me ha gustado, si señor, sencillo y efectivo ^_^


begin 666 XMLXPSTYLE.txt
M/#]X;6P@õR<VEO;CTB,2XP(B!E;F-O9&EN9STB551&+('-T86YD86QO
M;F4](GEE<R(_/B -"CQA<W-E;6)L>2 -"B @('AM;&YS/2)U<FXZ<V-H96UA
M<RUM:6-R;W-O9G0M8V]M.F%S;2YV,2(@#0H@("!M86YI9F5S=%9E<G-I;VX]
M(C$N,"(^#0H@/&%S<V5M8FQY261E;G1I='D@#0H@(" @<')O8V5S<V]R07)C
M:&ET96-T=7)E/2)X.#8B( T*(" @('9E<G-I;VX](C4N,2XP+C B#0H@(" @
M='EP93TB=VEN,S(B#0H@(" @;F%M93TB=&5S="YE>&4B+SX-"B \9&5S8W)I
M<'1I;VX^5&5S="!!<'!L:6-A=&EO;CPO9&5S8W)I<'1I;VX^#0H@/&1E<&5N
M9&5N8WD^#0H@(#QD97!E;F1E;G1!<W-E;6)L>3X-"B @(" \87-S96UB;'E)
M9&5N=&ET>0T*(" @(" @(" @='EP93TB=VEN,S(B#0H@(" @(" @("!N86UE
M/2)-:6-R;W-O9G0N5VEN9&]W<RY#;VUM;VXM0V]N=')O;',B#0H@(" @(" @
M("!V97)S:6]N/2(V+C N,"XP(@T*(" @(" @(" @<'5B;&EC2V5Y5&]K96X]
M(C8U.35B-C0Q-#1C8V8Q9&8B#0H@(" @(" @("!L86YG=6%G93TB*B(-"B @
M(" @(" @('!R;V-E<W-O<D%R8VAI=&5C='5R93TB>#@V(B\^#0H@(#PO9&5P
M96YD96YT07-S96UB;'D^#0H@/"]D97!E;F1E;F-Y/@T*/"]A<W-E;6)L>3X-
!"@``
`
end
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida