Manipular barra de titulo

23/09/2006 - 19:50 por Ivan | Informe spam
Hola a todos

tengo varias dudas respecto a la barra de titulo de xcel, por un lado,
y de los formularios por otro.

1.- con excel

a) -> estoy cambiando (intentando cambiar) el titulo de la ventana de
determinado libro, De momento he probado con:

ThisWorkbook.Windows.Application.Caption = "Titulo que quiero"

y consigo quitar el "Excel" de la barra, pero me pone: "Titulo que
quiero - Nombre libro" en vez de "Titulo que quiero" a secas. He
probado con:

ThisWorkbook.Windows.Application.Caption = ""

Para poner solo el nombre del libro, pero me vuelve a poner el "Excel".
La verdad es que esto no es demasiado problema, pues supongo que podria
poner:

ThisWorkbook.Windows.Application.Caption = "Titulo que" y llamar
al libro: "quiero", e imagino que apareceria: "Titulo que ¿-? quiero"
que me valdria, pero me imagino que debe haber alguna forma de hacerlo
sin esta 'trampa'

b) -> ¿es posible quitar el icono de excel?, no he conseguido
encontrar la propiedad que lo permita.

2.- con formularios:

-> ¿se pueden colocar en la barra de titulo de un formulario los
botones de maximizar/minimizar?, y si es asi, ¿donde puedo empezar a
buscar?

Si poodeis ayudarme os lo agradezco

Un saludo y hasta pronto
Ivan

Preguntas similare

Leer las respuestas

#1 moon
23/09/2006 - 22:01 | Informe spam
"Ivan" schreef in bericht
news:
Hola a todos

tengo varias dudas respecto a la barra de titulo de xcel, por un lado,
y de los formularios por otro.

1.- con excel

a) -> estoy cambiando (intentando cambiar) el titulo de la ventana de
determinado libro, De momento he probado con:

ThisWorkbook.Windows.Application.Caption = "Titulo que quiero"

y consigo quitar el "Excel" de la barra, pero me pone: "Titulo que
quiero - Nombre libro" en vez de "Titulo que quiero" a secas. He
probado con:

ThisWorkbook.Windows.Application.Caption = ""

Para poner solo el nombre del libro, pero me vuelve a poner el "Excel".
La verdad es que esto no es demasiado problema, pues supongo que podria
poner:

ThisWorkbook.Windows.Application.Caption = "Titulo que" y llamar
al libro: "quiero", e imagino que apareceria: "Titulo que ¿-? quiero"
que me valdria, pero me imagino que debe haber alguna forma de hacerlo
sin esta 'trampa'

b) -> ¿es posible quitar el icono de excel?, no he conseguido
encontrar la propiedad que lo permita.

2.- con formularios:

-> ¿se pueden colocar en la barra de titulo de un formulario los
botones de maximizar/minimizar?, y si es asi, ¿donde puedo empezar a
buscar?

Si poodeis ayudarme os lo agradezco

Un saludo y hasta pronto
Ivan





Option Explicit

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal
lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA"
(ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As
Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA"
(ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal
lParam As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA"
(ByVal hWnd As Long, ByVal nIndex As Long) As Long
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA"
(ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function SetWindowText Lib "user32" Alias "SetWindowTextA"
(ByVal hWnd As Long, ByVal lpString As String) As Long


Private Sub UserForm_Initialize()

Dim hWnd, eWnd As Long
Dim hIcon As Long
Dim f_style As Long

'Form window
hWnd = FindWindow("ThunderDFrame", Me.Caption)

'Application window
eWnd = FindWindow("XLMAIN", Application.Caption)

'Grab the icon from shell32.dll...
hIcon = ExtractIcon(0, "SHELL32.DLL", 130)

'draw the icon
SendMessage hWnd, &H80, True, hIcon
SendMessage hWnd, &H80, False, hIcon

'Form caption
Me.Caption = "Excel form with Icon"

f_style = GetWindowLong(hWnd, -16)
f_style = f_style Or &H30000 'system toolbox
f_style = f_style Or &H20000 'minimize
f_style = f_style Or &H10000 'maximize

SetWindowLong hWnd, -16, f_style

'Application caption
SetWindowText eWnd, "test123"


End Sub
Respuesta Responder a este mensaje
#2 Ivan
23/09/2006 - 23:24 | Informe spam
Hola Moon

lo primero, muchas gracias.

Mi nivel en VBA es bastante bajo, asi que me temo que voy a tardar un
poco en descifrar tu codigo, pero me voy a poner en cuanto pueda a
ello, lo cual me vendra bien, pues supongo que la 'pila de
declaraciones' inicial son llamadas a la api, de lo cual practicamente
no tengo ni idea y quizas ya sea hora de empezar a echarlas un vistazo
en serio.

en cuanto vaya sacando algo en claro, lo comento.

Gracias de nuevo

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#3 Héctor Miguel
24/09/2006 - 00:32 | Informe spam
hola, Ivan !

1) la mayoria de tus preguntas quedan comprendidas en la respuesta de 'moon' [?]
[te queda la tarea de la investigacion] :))

2) acerca del 'comportamiento' que describes con la instruccion: -> Application.Caption
a) se debe a que [como bien supones] una parte del titulo es el 'Caption' de la aplicacion
y la otra parte del titulo es el 'Caption' de la ventana del libro 'activo'
[esto ultimo, cuando la ventana del libro esta 'maximizada'... es decir, ocupa toda el area disponible de la aplicacion] :))
b) con el 'truco' que describes [combinar una parte de lo que quieres entre ambos 'Caption' de ventanas]...
cuando tu libro NO tenga maximizada 'su' ventana... 'perderias' la parte del 'Caption' de su ventana :-((
c) alternativas ?... prueba modificando el 'Caption' de ambas ventanas [p.e. 'vacio' en la parte del libro] +/- como sigue:

ThisWorkbook.Windows(1).Caption = ""
Application.Caption = "Este es el titulo que quiero !!!"

d) [probablemente] se presentara 'otro' tipo de 'detalles' para hacer referencia a la ventana de 'tu' libro -?-
[ya veremos que reportas despues] :D

saludos,
hector.

p.d. nota: el 'Caption' modificado por las API's... se pierde al abrir libros nuevos -?-

__ la consulta original __
... varias dudas respecto a la barra de titulo de xcel, por un lado, y de los formularios por otro.
1.- con excel
a) -> estoy cambiando (intentando cambiar) el titulo de la ventana de determinado libro, De momento he probado con:
ThisWorkbook.Windows.Application.Caption = "Titulo que quiero"
y consigo quitar el "Excel" de la barra, pero me pone: "Titulo que quiero - Nombre libro" en vez de "Titulo que quiero" a secas.
He probado con:
ThisWorkbook.Windows.Application.Caption = ""
Para poner solo el nombre del libro, pero me vuelve a poner el "Excel".
La verdad es que esto no es demasiado problema, pues supongo que podria poner:
ThisWorkbook.Windows.Application.Caption = "Titulo que" y llamar al libro: "quiero"
e imagino que apareceria: "Titulo que ¿-? quiero" que me valdria, pero me imagino que debe haber alguna forma de hacerlo sin esta 'trampa'

b) -> es posible quitar el icono de excel?, no he conseguido encontrar la propiedad que lo permita.

2.- con formularios:
-> se pueden colocar en la barra de titulo de un formulario los botones de maximizar/minimizar?... donde puedo empezar a buscar?
Respuesta Responder a este mensaje
#4 moon
24/09/2006 - 04:28 | Informe spam
"Ivan" schreef in bericht
news:
Hola Moon

lo primero, muchas gracias.

Mi nivel en VBA es bastante bajo, asi que me temo que voy a tardar un
poco en descifrar tu codigo, pero me voy a poner en cuanto pueda a
ello, lo cual me vendra bien, pues supongo que la 'pila de
declaraciones' inicial son llamadas a la api, de lo cual practicamente
no tengo ni idea y quizas ya sea hora de empezar a echarlas un vistazo
en serio.

en cuanto vaya sacando algo en claro, lo comento.

Gracias de nuevo

un saludo y hasta pronto
Ivan




Ouch...
I wish I could speak Espagnol.
I think I understand your question, but forgive me.

Sorry.
Respuesta Responder a este mensaje
#5 Ivan
24/09/2006 - 19:54 | Informe spam
Hello Moon

Thank for your answers

excuse me, my english is very poor and primitive.

I'm sure that you're understand my question, and your help has been
very good for me, but i'm very inesperienced and unskilful with windows
APIs (and with VBA)

In this moment I'm afraid I can't understand your code, but I'm go
studing it for learn about APIs functions

I'm very grateful with you

goodby
Ivan
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida