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:
Proszę o pomoc.
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:
Proszę o pomoc.
Poszukaj, czy nie ma opcji BorderStyle, a jeżeli jest, to na bsNone, czy coś takiego ;)
OK dzięki, a jak zrobić aby można było to całe okno przesuwać?
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.
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
.
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
Pomorze ktoś?
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.
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.
Ż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:
stdafx.h
linijkę#include <windows.h>
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"
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);
}
}
Dzięki Azarien temat do zamknięcia.