Jak wyłączyć ramkę WinAPI?

0

Witam, piszę programy w Visual C++ już dość długo ale nadal nie wiem jak wyłaczyć ramkę WinAPI.
Chodzi mi oto aby pozbyc sie tej ramki:
user image

user image

Proszę o pomoc.

0

Poszukaj, czy nie ma opcji BorderStyle, a jeżeli jest, to na bsNone, czy coś takiego ;)

0

OK dzięki, a jak zrobić aby można było to całe okno przesuwać?

0

Spróbuj wysłać message do swojego okna :P . Tu jest jakiś spis wiadomości/ funkcji:
http://msdn.microsoft.com/en-us/library/ff468922(v=VS.85).aspx
http://msdn.microsoft.com/en-us/library/ff468919(v=VS.85).aspx

Na pierwszy ogień wrzuciłbym WM_ENTERSIZEMOVE czy jakoś tak. Ale dawno (kilka lat) się WinAPI nie bawiłem, więc nie pamiętam.

1

A ja się obawiam, że to kolejna osoba, która pisze w C++/CLI z użyciem Windows Forms, nawet o tym nie wiedząc. Jeżeli mam rację to wystarczy ustawić właściwość FormBorderStyle formy na FormBorderStyle::None.

0

Ten problem jest już rozwiązany ale pojawił się następny, Znikła ramka WinAPI wiec nie da się przesuwać aplikacji.
Co zrobić aby można było przesuwać aplikacją "łapiąc" za tło

0

Pomorze ktoś?

1

Słuchaj, ja jestem pewien, że jest tutaj masa osób, która pomaga ludziom i czuje się spełniona, gdy pomoże komuś w jakimś ciekawym problemie. Nawet jeżeli czasem wymaga to posiedzenia nad tym problemem troszkę dłużej - wtedy i ja nauczę się czegoś nowego.

Ale tak czy inaczej, wchodzę do takiego tematu.. problemu opisać nie potrafisz, mylisz naprawdę podstawowe pojęcia, co więcej - nie wiesz nawet w jakim języku programowania, przy użyciu jakich technologii piszesz. Jedyna odpowiedź jaka cię interesuje to gotowy kod, który możesz znaleźć w Google po skleceniu zapytania składającego się z trzech, czterech słów. Ty nie potrzebujesz rozwiązania tego problemu, bo za chwilę będziesz miał kolejny, identycznie głupi. Kup książkę o programowaniu, ogarnij sobie angielski na tyle, żeby móc czytać stackoverflow, msdn i takich problemów mieć nie będziesz.

0

Nie chcesz pomóc to się nie wypowiadaj. Forum jest po to aby zadawać pytania nawet te banalne :)
Swoja drogą to mogę się założyć, ze nie potrafisz rozwiązać i tego problemu : D

Wydaje się banalne ale tego w Google nie znajdziesz szybko, od razu po wpisaniu kilku fraz.

2

Żeby wyłączyć ramkę, odpowiedź już dostałeś: ustaw właściwość formy FormBorderStyle na None.

Teraz jak zrobić przesuwanie formy na całej jej powierzchni:

  1. dodaj do pliku stdafx.h linijkę
#include <windows.h>
  1. we właściwościach projektu Project|Properties|Linker|Input
    przy pozycji Additional Dependencies kliknij na [...] i włącz "inherit from parent or project defaults"

  2. teraz pisz zdarzenie MouseDown dla formy:

private: System::Void Form1_MouseDown(System::Object^  sender, System::Windows::Forms::MouseEventArgs^  e)
          {
              if (e->Button == System::Windows::Forms::MouseButtons::Left)
               {
                  ReleaseCapture();
                  ::SendMessage((HWND)Handle.ToPointer(), WM_NCLBUTTONDOWN, HTCAPTION, 0);
              }
          }
0

Dzięki Azarien temat do zamknięcia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1