// Имя класса окна char const szClassName[] = "StaticAppClass";
// Заголовок окна char const szWindowTitle[] = "Static Control Demo";
// ===================================== // Функция WinMain // ===================================== #pragma argsused
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow) { MSG msg; // структура для работы с сообщениями HWND hwnd; // идентификатор главного окна приложения
// Идентификаторы органов управления HWND hSt1, hSt2, hSt3, hSt4;
// Выводим текст в окно, имеющее стиль SS_LEFT. // Этот текст будет выведен в режиме свертки слов SetWindowText(hSt3, (LPSTR) "Этот текст будет выведен" " внутри окна в две строки");
// Выводим текст в окно, имеющее стиль SS_SIMPLE. // Этот текст будет выведен на одной строке, // причем часть строки, которая выходит за границы // окна, будет обрезана SetWindowText(hSt4, (LPSTR) "Этот текст будет выведен" " внутри окна в одну строку и обрезан");
// Запускаем цикл обработки сообщений while(GetMessage(&msg, 0, 0, 0)) { DispatchMessage(&msg); } return msg.wParam; }
// ===================================== // Функция InitApp // Выполняет регистрацию класса окна // =====================================
BOOL InitApp(HINSTANCE hInstance) { ATOM aWndClass; // атом для кода возврата WNDCLASS wc; // структура для регистрации // класса окна
После создания и отображения главного окна приложения функция WinMain создает четыре статических органа управления, вызывая функцию CreateWindow. Если создается прямоугольник или рамка, адрес строки текста заголовка окна указывается как NULL:
Идентификатор органа управления не используется, так как орган не посылает сообщений родительскому окну. В качестве идентификатора мы выбрали число 1, хотя можно использовать и другие значения.
Если создается окно с текстом, этот текст можно задать как заголовок окна:
После создания статических органов управления функция WinMain изменяет текст в третьем и четвертом органе, вызывая функцию SetWindowText:
SetWindowText(hSt3, (LPSTR) "Этот текст будет выведен" " внутри окна в две строки"); SetWindowText(hSt4, (LPSTR) "Этот текст будет выведен" " внутри окна в одну строку и обрезан");
Для последнего органа управления мы намеренно выбрали текст такой длины, чтобы он не поместился в одной строке. Как и следовал ожидать, при выводе этот текст был обрезан (2.6).
Файл определения модуля для приложения STATIC представлен в листинге 2.14.