[WinApi] "Sztywne okno"

0

Jaki atrybut i gdzie nalezy przypisac w strukturze WNDCLASS aby utworzonego okna nie mozna bylo zmniejszac / zwiekszac?

0

Jaki atrybut i gdzie nalezy przypisac w strukturze WNDCLASS aby utworzonego okna nie mozna bylo zmniejszac / zwiekszac?

w WNDCLASS.style daj CS_OWNDC
a w CreateWindow WS_CAPTION or WS_SYSMENU

0

Ja bym proponował uzyc &(~WS_SIZEBOX) przy CreateWindow() / CcreateWindowEx(). Lub przejąc WM_NCHITTEST i wszedzie zamiast HTTOPLEFT/HTTOP/HTTOPRIGHT/HTRIGHT/HTLEFT/HTBOTTOM... zwracać samo HTBORDER. Albo też przejąć WM_WINDOWPOSCHANGING i zablokować wszelkie zmiany rozmiaru. Można również pobrać menu systemowe okienka i usunąć pozycja 'rozmiar'.

Myślę, że pierwsza metoda będzie najlepsza, chociaz sam uzywam ingerencji w messydże (Przy czym również WM_SYSCOMMAND - zeby nie zmaksymalizować, lub dodatkowo WM_NCLBUTTONDBLCLK, zeby nie dopuscic do obslugi dblclicka na captionie). Można zastosować wszystkie metody :] wtedy nawet SetWindowPos/MoveWindow nic nie zdziała.

// sprostowanie (z helpa):

CS_OWNDC Allocates a unique device context for each window in the class. (kula w płot)

WS_CAPTION Creates a window that has a title bar (includes the WS_BORDER style).

WS_SYSMENU Creates a window that has a window-menu on its title bar. The WS_CAPTION style must also be specified.

0

A jak zrobic takie okno zeby nie mialo przycisku maksymalizacji ani na pasku ani w tym malym menu w lewym gornym rogu?
Jak mozna z gory ustalic rozmiar okna - w funkcji CreateWindow czy gdzies indziej?
Jeszcze jedno: ,a, w oknie glownym 4 buttony. Jak w funkcji obslugujacej to okno dowiedziec sie ktory z nich wcisnalem?(WPARAM / LPARAM??)

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