» Главная
eXcode.ru » Статьи » WinAPI
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 2





Каркас WinAPI приложения.




Разработка программ зачастую напоминает священный ритуал, построенный на произнесении ряда обязательных магических заклинаний. Особенно это касается Windows приложений. Windows-заклинания позволяют вывести графическое окно, обработать поступающие сообщения. Порядок их следования предопределен священными руководствами. Часто эти руководства заменяются шпаргалкой, кратко фиксирующей основной каркас:

<table class=code cellpadding=5 align=center width=98% border=1 bordercolor=#3B3B3B><tr><td>

// Каркасное приложение Windows 95

#include <windows.h>
LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM);
char szWinName[] = "SimpleWin";
int WINAPI WinMain (HINSTANCE hThisInst,HINSTANCE hPrevInst,
LPSTR lpszArgs,int nWinMode)
{
HWND hwnd;
MSG msg;
WNDCLASS wcl;

wcl.hInstance = hThisInst;
wcl.lpszClassName = szWinName;
wcl.lpfnWndProc = WindowFunc;
wcl.style = 0;
wcl.hIcon = LoadIcon (NULL,IDI_APPLICATION);
wcl.hCursor = LoadCursor (NULL, IDC_ARROW);
wcl.lpszMenuName = NULL;
wcl.cbClsExtra = 0;
wcl.cbWndExtra = 0;
wcl.hbrBackground= (HBRUSH)GetStockObject (WHITE_BRUSH);

if ( !RegisterClass (&wcl) )
return 0;

hwnd = CreateWindow (szWinName,
"Kаркас программы для Windows 95",
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
HWND_DESKTOP,
NULL,
hThisInst,
NULL);

ShowWindow (hwnd,nWinMode);
UpdateWindow (hwnd);

while ( GetMessage (&msg, NULL,0,0) )
{
TranslateMessage (&msg);
DispatchMessage (&msg);
}

return msg.wParam;

}

// Оконная процедура
LRESULT CALLBACK WindowFunc(HWND hwnd,UINT message,
WPARAM wParam,LPARAM lParam)
{
switch (message)
{
case WM_DESTROY:
PostQuitMessage (0);
break;
default:
return DefWindowProc (hwnd,message,wParam,lParam);
}
return 0;
}

</td></tr></table>
Зачастую начинающие шаманы обходятся и без шпаргалок. Обратившись к волшебникам и мастерам, они получают нужный каркас и целую кучу дополнительных наворотов. Каждый из этих подходов имеет свои положительные и отрицательные стороны. И каждый из них постоянно совершенствется впитывая в себя последние достижения технологии программирования. Ряд этих подходов, как мне кажется являются достаточно интересными как для изучения, так и для практического использования.
К началу статьи





Добавил: MadvEXДата публикации: 2005-06-03 19:15:09
Рейтинг статьи:3.33 [Голосов 6]Кол-во просмотров: 19053

Комментарии читателей

Всего комментариев: 2

2010-12-28 14:03:08
Archelo
Дай что нибудь по существенее

2009-05-07 12:52:12
Archelo
Такие объяснения присутствуют в любой детской книжке, неужели нет чего нибудь по взрослее
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Каким способом вы подключены к интернету
Dial-Up
26% (59)
ISDN
1% (2)
Выделенная линия
27% (61)
ADSL
32% (71)
Спутниковый интернет
2% (5)
GPRS-интернет
8% (17)
Другое
4% (9)

Проголосовало: 224
Однажды врач, инженер-строитель и программист поспорили о том, чья профессия древнее. Врач заметил:
- В Библии сказано, что Бог сотворил Еву из ребра Адама. Такая операция может быть проведена только хирургом, поэтому я по праву могу утверждать, что моя профессия самая древняя в мире.
Тут вмешался инженер-строитель и сказал:
- Но еще раньше Бог сотворил небо и землю из хаоса. Это первое, и, несомненно, наиболее выдающееся применение строительной инженерии. Поэтому, дорогой доктор, вы не правы. Моя профессия самая древняя в мире.
Программист при этих словах откинулся в кресле, загадочно улыбнулся и веско произнес:
- Да, но кто, как вы думаете, сотворил хаос?
Рейтинг: 8.2/10 (5)
Посмотреть все анекдоты