Ir ao conteúdo
  • Cadastre-se

problemas com a window e esconder a barra de deslocamento vertical


Cambalinho

Posts recomendados

eu consigo alterar o tamanho da window. mas algo nao bate certo, porque nao posso aumentar o comprimento da janela. parece que existe 1 limite de comprimento. como posso resolver este problema?

//resize the window
HWND hwndScreen;
RECT rectScreen;
int ConsolePosX;
int ConsolePosY;
hwndScreen=GetDesktopWindow ();
GetWindowRect(hwndScreen,&rectScreen);
ConsolePosX = (rectScreen.right/2 - 2000/2);
ConsolePosY = (rectScreen.bottom/2 - 700/2) ;
SetWindowPos(Console.WindowHandle,HWND_NOTOPMOST,ConsolePosX,ConsolePosY,2000,700,SWP_NOOWNERZORDER);

os calculos para meter no centro do ecran parecem correctos, mas porque a janela nao fica com 2000(este numero é para o teste... mas ja testei com outros mais baixos e é igual) de comprimento?

Link para o comentário
Compartilhar em outros sites

ja sei(mai ou menos) retirar a barra de deslocamento:

ShowScrollBar(Console.WindowHandle,SB_BOTH, FALSE);

eu nao sei como fazer 1 redraw ou algo identico á janela(alem de lhe dar 1 imagem) para fazer desaparecer a barra deslocamento. mas no meu caso funciona;)

porque é que nao posso usar valores superiores a 500 (ou menos) para o comprimento da janela(usando SetWindowPos())?

Link para o comentário
Compartilhar em outros sites

consegui resolver o problema de nao conseguir alterar o tamanho da janela:

int SetWindow(HWND hwnwindow,int PosX, int PosY, int Width, int Height)
{

char *command="";
SetWindowPos( hwnwindow,HWND_NOTOPMOST,PosX,PosY,Width,Height,SWP_NOZORDER);
sprintf(command, "mode CON: COLS=%d",Width);
system(command);
return 0;
}

este codigo funciona. mas ao sair da aplicaçao, o windows da-me 1 erro:(

alguem me pode explicar o porque?

Link para o comentário
Compartilhar em outros sites

ok.. após refazer 1 novo projecto e depois actualizar o Visual C++ 6 para o SP6, os erros desapareceram.

system("mode CON: cols=100 lines=1000");

esta linha nao me dá problemas. mas se fizer isto:

int SetWindow(HWND hwnwindow,int PosX, int PosY, int Width, int Height, BOOL Center)
{
//P = 7 * C + 5
if (Center==FALSE)
{
SetWindowPos(hwnwindow,HWND_NOTOPMOST,PosX,PosY,0,0,SWP_NOOWNERZORDER);
}
else
{
//resize the window
HWND hwndScreen;
RECT rectScreen;
int ConsolePosX;
int ConsolePosY;

hwndScreen=GetDesktopWindow ();
GetWindowRect(hwndScreen,&rectScreen);
ConsolePosX = (rectScreen.right/2 - Width/2);
ConsolePosY = (rectScreen.bottom/2 - Height/2);
SetWindowPos(hwnwindow,HWND_NOTOPMOST,ConsolePosX,ConsolePosY,0,0,SWP_NOOWNERZORDER);
}
Width=(Width-5)/7;
Height=(Height-5)/7;
char command[255];
sprintf(command,"mode CON: cols=%d lines=%d",Width,Height);
system(command);
return 0;
}

após a actualizaçao, já nao tenho erros;)

o calculo para meter mo centro do ecra, esta correcto?

ConsolePosX = (rectScreen.right/2 - Width/2);
ConsolePosY = (rectScreen.bottom/2 - Height/2);

outra coisa que faz parte da system(): como se converte de Pixels para Characters?

sera assim?

Width=(Width-5)/7;
Height=(Height-5)/7;

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!