С Новым годом! Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/37: Рейтинг темы: голосов - 37, средняя оценка - 4.76
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112

Развернутое окно WinApi

25.06.2012, 16:57. Показов 7757. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте уважаемые программисты! Подскажите как создать окно с кнопкой "закрыть", без кнопок "свернуть" и "развернуть". При появлении окно должно быть развернуто во весь экран и нужно сделать так, чтоб нельзя было изменить размер окна и нельзя перемещать окно.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.06.2012, 16:57
Ответы с готовыми решениями:

WinApi и окно
Всем доброго времени суток. У меня такой вопрос я создал окно с помощью WinApi и вопрос в следующем как мне записывать и читать настройки...

[C] Окно средствами WinAPI
Доброго времени суток! Как сделать окошко, которое на скрине, только средствами WinAPI и C? На месте синего квадрата должна быть картинка...

Как перекрыть развёрнутое окно?
Доброго времени суток! Суть проблемы следующая: - Главное окно программы развёрнуто на весь экран и располагается по верх всех...

6
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.06.2012, 17:12
Цитата Сообщение от The special one Посмотреть сообщение
Подскажите как создать окно с кнопкой "закрыть", без кнопок "свернуть" и "развернуть".
Цитата Сообщение от The special one Посмотреть сообщение
чтоб нельзя было изменить размер окна и нельзя перемещать окно
стили окна

Цитата Сообщение от The special one Посмотреть сообщение
окно должно быть развернуто во весь экран
ShowWindow с параметром SW_SHOWMAXIMIZED
1
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
25.06.2012, 18:00  [ТС]
Спасибо, развернуть окно на весь экран удалось, а вот как убрать кнопку "свернуть" и "развернуть" чего-то найти не могу или смотрю не туда, короче не знаю.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
25.06.2012, 19:26
Цитата Сообщение от The special one Посмотреть сообщение
Спасибо, развернуть окно на весь экран удалось, а вот как убрать кнопку "свернуть" и "развернуть" чего-то найти не могу или смотрю не туда, короче не знаю.
я вам дал ссылку на стили окна которые задаються при создании, ваше дело было прочитать(найти доп. информацию если требуется) и разобраться
C++
1
hWnd = CreateWindow(szWindowClass, szTitle, WS_SYSMENU, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
1
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
25.06.2012, 19:47  [ТС]
Цитата Сообщение от Jupiter Посмотреть сообщение
я вам дал ссылку на стили окна которые задаються при создании, ваше дело было прочитать(найти доп. информацию если требуется) и разобраться
C++
1
hWnd = CreateWindow(szWindowClass, szTitle, WS_SYSMENU, CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, NULL, NULL, hInstance, NULL);
Спасибо, если написать WS_SYSMENU, то останется только кнопка "закрыть", но вся беда в том, что я по прежнему могу мышкой двигать окно. Думаю, кнопка "развернуть" должна быть, но она должна быть неактивна (я где-то видел такие окна или мне показалось). В этом случае развернутое окно нельзя будет перемещать и нельзя будет минимизировать. Как мне сделать кнопку неактивной? Или, возможно, есть другие решения.
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
26.06.2012, 12:04
Цитата Сообщение от The special one Посмотреть сообщение
Здравствуйте уважаемые программисты! Подскажите как создать окно с кнопкой "закрыть", без кнопок "свернуть" и "развернуть". При появлении окно должно быть развернуто во весь экран и нужно сделать так, чтоб нельзя было изменить размер окна и нельзя перемещать окно.
- Делается всё очень просто
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// staticAPIWnd.cpp : Defines the entry point for the application.
//
 
#include "stdafx.h"
#include "resource.h"
 
 
// Global Variables:
HINSTANCE hInst;            // current instance
 
LRESULT CALLBACK    DlgProc(HWND, UINT, WPARAM, LPARAM);
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
    // TODO: Place code here.
    return DialogBox
        (
            (hInst = hInstance), 
            (LPCTSTR)IDD_DIALOG, 
            NULL, 
            (DLGPROC)DlgProc
        );
}
 
 
//
//  FUNCTION: DlgProc(HWND, unsigned, WORD, LONG)
//
//  PURPOSE:  Processes messages for the main window.
//
//  WM_COMMAND  - process the application menu
//  WM_PAINT    - Paint the main window
//  WM_DESTROY  - post a quit message and return
//
//
RECT pRECT = {0};
int Width  = 0;
int Height = 0;
BOOL bInit = FALSE;
LRESULT CALLBACK DlgProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    BOOL bRet = FALSE;
    switch (message) 
    {
        case WM_INITDIALOG:
            ShowWindow(hWnd,SW_MAXIMIZE);//Разворачиваем окно
            GetWindowRect(hWnd,&pRECT);
            Width = pRECT.right - pRECT.left;
            Height= pRECT.bottom - pRECT.top;
            bInit= TRUE;
            bRet = TRUE;
            break;
        case WM_MOVE:
        case WM_MOVING:
        case WM_SIZE:
        case WM_SIZING:
            //Исключаем обработку
            //возможна замена на свою уникальную обработку
            if(bInit)
                MoveWindow(hWnd,pRECT.left,pRECT.top,Width,Height,TRUE);;
            break;
        case WM_COMMAND:
            bRet = TRUE;
            // Parse the menu and buttons selections:
            switch (LOWORD(wParam))
            {
                case IDCANCEL:
                   PostMessage(hWnd,WM_CLOSE,wParam,lParam);
                   break;
            }
            break;
        case WM_CLOSE:
        case WM_DESTROY:
            EndDialog(hWnd, LOWORD(wParam));
            break;
   }
   return bRet;
}
Как видим мой код построен на создании окна из ресурсов и его запуск посредством DialogBox. В принципе в свойствах окна можно вообще убрать пункт SystemMenu и тогда кнопки Закрыть даже в строке заголовка окна. Для пущей функциональности ввёл в окно кнопку закрыть, её тоже можно просто удалить в редакторе ресурсов. Вобщем всё по желанию и всё очен просто
Вложения
Тип файла: rar staticAPIWnd.exe.rar (8.5 Кб, 28 просмотров)
Тип файла: rar staticAPIWnd_project.rar (12.8 Кб, 23 просмотров)
1
13 / 13 / 0
Регистрация: 09.03.2012
Сообщений: 112
26.06.2012, 17:03  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Делается всё очень просто
Спасибо, буду разбираться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.06.2012, 17:03
Помогаю со студенческими работами здесь

Прозрачное окно C++ WinAPI
Доброго времени суток... Пытаюсь окно сделать прозрачным do { hwnd = FindWindow("Notepad", NULL); SetWindowText(hwnd,...

Winapi окно и кнопки
Результат задачи это пятнашки но моя задача просто создать кнопки.По этапам: 1.Создание окна 2.Фиксация размера окна чтобы не...

Создать окно WinAPI
выдает ошибку с2059: синтаксическая ошибка:, ругается на эту строчку hwnd = CreateWindow(szAppName, ... про данную ошибку читал но...

Круглое окно WinAPI C++
:wall: Как на c++ WinAPI сделать круглое окно??? IDE у меня Codeblocks!

WinApi Не создается окно
Не знаю что произошло, но через пару запусков программы перестало создаваться окно. #include <Windows.h> const char...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru