Autor Wątek: Okno konsoli  (Przeczytany 1693 razy)

Offline kapec94

  • Użytkownik

# Maj 10, 2010, 16:14:52
Witam.
Szybkie pytanie: w jaki sposób zniszczyć lub schować okno konsoli?
Podczas pisania programów okienkowych ona po prostu przeszkadza.
O, i czy po takiej "akcji" można ją później z powrotem wyświetlić?

Z góry dzięki.

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline nilphilus

  • Użytkownik
    • wordpress

# Maj 10, 2010, 17:25:14
Hmm... tworzysz projekt WinForms (przypuszczam), i otwiera Ci się okno konsoli? ;->

coś popsułeś. ;p

Offline kapec94

  • Użytkownik

# Maj 10, 2010, 18:38:09
Tworzę Empty Project, wszystko piszę sam ;>

Offline vashpan

  • Użytkownik
    • Strona

# Maj 10, 2010, 20:00:13
Jezeli tak... uzyj funkcji z WinApi do obslugi konsoli - AllocConsole() i FreeConsole(), odwolasz sie do nich przez P/invoke ( np tak: )

Dodaj do swojej klasy np. takie definicje ( wziete z: http://pinvoke.net/index.aspx ):

Kod: (cs) [Zaznacz]
[DllImport("kernel32", SetLastError = true)]
static extern bool AllocConsole();

[DllImport("kernel32.dll", SetLastError = true, ExactSpelling = true)]
static extern bool FreeConsole();


Offline ShadowDancer

  • Redaktor

# Maj 10, 2010, 20:33:36
W czystym winapi FreeConsole niszczy aplikację. Spróbuj utworzyć projekt win forms i usuń wszystkie formsy.

Offline nilphilus

  • Użytkownik
    • wordpress

# Maj 10, 2010, 21:17:54
trochę nie nadążam, to jak robisz te okienka? [da się co prawda, ale jaki ku temu jest powód?]

pokaż kawałek z static Main, czy cuś ;->

Offline kapec94

  • Użytkownik

# Maj 10, 2010, 21:59:58
No, po ludzku robię :D
Mam plik *.cs, w nim
class Program
{
     private static Form MyForm;
     public static void Main()
     {
          Application.EnableVisualStyles();
          Application.SetCompatibleTextRenderingDefault(false);

          ShowForm();
     }
     private static void ShowForm()
     {
          MyForm = new Form();
          MyForm.Text = "Okno";
          MyForm.Width = 800;
          MyForm.Height = 600;

          Application.Run(MyForm);
     }
}
Coś takiego w każdym razie.
Piszę w Empty Project, bo w sumie drugi dzień jadę w C# i chciałem się "zaaklimatyzować".
O, właśnie, w trakcie pisania nasuwa mi się parę pytań. Ale to już miejsce na inny temat ;)

@vashpan, działa. Dzięki wielkie!

Offline Dab

  • Redaktor
    • blog

# Maj 10, 2010, 23:31:07
OMG. pInvoke do tego? Armata (zardzewiała) na muchę...

Wchodzisz w opcje projektu -> Application -> Output type -> Windows application (zamiast Console application). I tyle.

Offline vashpan

  • Użytkownik
    • Strona

# Maj 11, 2010, 07:20:39
OMG. pInvoke do tego? Armata (zardzewiała) na muchę...

Wchodzisz w opcje projektu -> Application -> Output type -> Windows application (zamiast Console application). I tyle.

No oczywiście ze tak, Pisałem zaznaczając że jeżeli się upiera, ja tam rozumiem ze chłopak ma zamiłowanie do szczegółów i chce dokładnie wiedzieć jak co działa :) poza tym akurat dodanie konsoli do aplikacji winforms można zrobić AFAIK tylko przez winapi, czy coś w tym złego ?