Вопрос
Прочитал в умной книжке, что минимальная программа для Windows — это Winmain()+функция окна. А может ли быть программа для Windows совсем без окна? Мне нужно, к примеру просто выполнить какую-то операцию, для которой окна совсем не нужно (если точнее — открыть файл, перекодировать его содержимое из Windows в Dos кодировку и снова записать). Если использовать Main() — лезет консоль.
Ответ
Один Winmain() (без окон) тоже работает. Но лучше создать окно и завести в нем хотя бы ProgressBar. Иначе пользователь потратит слишком много времени на размышления, чем это у него компьютер так долго занимается. Особенно, если файл большой.
Если же необходимый интерфейс уже имеется, например, создан в VB, 1С и т.п., лучше создавать функцию в dll или сделать ActiveX.
Андрей Шуклин
Делаешь проект SDI-aplications, применяешь стандартные настройки APP-Wizard. А в методе OnDraw() класса CххххView просто скрываешь окно при помощи, вроде, HideWindow() (тут могу и ошибиться), потом можешь восстановить окно (ShowWindow()), а можешь просто закончить программу.
Есть еще один способ, как я думаю. Только что попробовал. Делаешь проект DialogBased, все настройки — по умолчанию. Потом открываешь редактор ресурсов и изменяешь настройки диалогового окна так: Все флажки сбрасываешь, Stile = Child, Border = None. А теперь в методе InitInstance() класса CxxxApp после TODO: пишешь свой код… ;-)))) У меня так получилось!
Vadik
Вопрос был — БЕЗ окна. БЕЗ окна можно — пиши сервис (как — вопрос отдельный). Мэйн без окна НЕЛЬЗЯ (привет от Windows — в переводе — окна).
Сергей
Можно без окна и БЕЗ сервиса. Для VC++ создаешь проект Win32 Application, добавляешь свой код внутрь WinMain() и он прекрасно работает без всяких окон. Вот тебе и минимальная программа.
Mbr>Юрий
При переопределении функции InitInstanse используется вызов функции ShowWindow, которая принимает один параметр — режим отображения окна. Если этот параметр 0 или константа SW_HIDE, то окно не отображается. Правда потом его тоже не отобразишь. Теперь Ваша программа будет видна только в процессах.
sergyenko
Copyright 2000-2004 Сообщество Чайников
Контактная информация