Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Win Api
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2011, 14:28   #1
Unmanner
Пользователь
 
Регистрация: 18.03.2011
Сообщений: 47
По умолчанию Как кастомизовать окно

Здравствуйте!

Я 3 дня уже изучаю сей продукт, и теперь мне захотелось создать окно, на котором будут мои элементы.

Прежде всего мне хочется сделать так, чтобы в окне была область для отображения в ней текста(просто отображения).

Собственно вопрос, как создать такую область, и как проинициализировать её текстом?

Спасибо!
Unmanner вне форума Ответить с цитированием
Старый 04.11.2011, 17:20   #2
An1ka
C++,DirectX/OpenGL
Форумчанин
 
Регистрация: 09.01.2011
Сообщений: 422
Радость

Можно создать элемент класса "STATIC".
Вот для примера создание окна и элементов в нем.
Код:
#include <windows.h>
#define IDC_STATIC -1
#define IDC_EDIT0 0
#define IDC_BUTTON1 1

static HWND hWndWindow, hWndLabel, hWndButton, hWndEdit;
static LPCWSTR szAppName = L"MyWindow";

LRESULT CALLBACK WndProc( HWND, UINT, WPARAM, LPARAM);

 int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow)
{
	WNDCLASSEX wndclass;
	wndclass.cbSize = sizeof( wndclass);
	wndclass.style = CS_OWNDC;
	wndclass.lpfnWndProc = WndProc;
	wndclass.cbClsExtra = 0;
	wndclass.cbWndExtra = 0;
	wndclass.hInstance = hInstance;
	wndclass.hIcon = LoadIcon( NULL, IDI_APPLICATION);
	wndclass.hCursor = LoadCursor( NULL, IDC_ARROW);
	wndclass.hbrBackground =( HBRUSH) GetStockObject( WHITE_BRUSH);
	wndclass.lpszMenuName = NULL;
	wndclass.lpszClassName = szAppName;
	wndclass.hIconSm = LoadIcon( NULL, IDI_APPLICATION);
	RegisterClassEx( &wndclass);
	hWndWindow = CreateWindow( szAppName, L"Окно",
		WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT,
		CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, hInstance, NULL);
	ShowWindow( hWndWindow, iCmdShow);
	UpdateWindow( hWndWindow);
	hWndEdit = CreateWindowEx( WS_EX_CLIENTEDGE, L"EDIT", L"область для редактирования текста", WS_HSCROLL |WS_VSCROLL |WS_CHILD |ES_MULTILINE |WS_VISIBLE, 100, 50, 250, 80, hWndWindow, (HMENU) IDC_EDIT0, hInstance, NULL);
	hWndLabel = CreateWindowEx( WS_EX_CLIENTEDGE, L"STATIC", L"область для отображения текста", SS_LEFT |WS_CHILD |WS_BORDER |WS_VISIBLE, 100,150,150,50, hWndWindow, (HMENU) IDC_STATIC, hInstance, NULL);
	hWndButton = CreateWindowEx( 0, L"BUTTON", L"кнопка", BS_PUSHBUTTON |WS_CHILD |WS_VISIBLE, 150,250,80,25, hWndWindow, (HMENU) IDC_BUTTON1, hInstance, NULL);

	MSG msg = {0};
	while( GetMessage( &msg, NULL, 0, 0))
	{
		TranslateMessage( &msg);
		DispatchMessage( &msg);
	}
	return msg.wParam;
}

 LRESULT CALLBACK WndProc( HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
{
	 switch( iMsg)
	{
		case WM_CLOSE:
			DestroyWindow ( hWndWindow);
			return 0;

		case WM_DESTROY:
			PostQuitMessage( 0);
			return 0;
	}
	return DefWindowProc( hwnd, iMsg, wParam, lParam);
}
An1ka вне форума Ответить с цитированием
Старый 06.11.2011, 22:50   #3
Unmanner
Пользователь
 
Регистрация: 18.03.2011
Сообщений: 47
По умолчанию

Ай-яй ОГРОМНОЕ спасибо, всё получилось!
Unmanner вне форума Ответить с цитированием
Старый 06.11.2011, 22:58   #4
Unmanner
Пользователь
 
Регистрация: 18.03.2011
Сообщений: 47
По умолчанию

А может подскажите заодно какой функцией отправить сообщение окну чтобы поменять нём текст?
Unmanner вне форума Ответить с цитированием
Старый 06.11.2011, 23:10   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

SetWindowText
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 06.11.2011, 23:13   #6
Unmanner
Пользователь
 
Регистрация: 18.03.2011
Сообщений: 47
По умолчанию

оо что надо) Блин как просто всё! Спасибо большое) Этих инструментов Вполне должно мне хватить!!
Unmanner вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Треугольное окно со сторонами A, B, C. Проверить, пройдёт ли в окно коробка цилиндрической формы (D и H) (паскаль) ihimaru Помощь студентам 5 02.10.2011 22:11
[?] Послать клавишу в чужое окно, не выводя окно на передний план. Moriarty Win Api 4 21.02.2011 05:11
Открывать окно печати, окно просмотра и изменять масштаб. segail Microsoft Office Excel 1 08.08.2010 19:31
как обновить окно??? nimf Общие вопросы Delphi 4 22.01.2008 18:46
«Окно+символ». Создать класс, представляющий окно в текстовом режиме. RustreX Паскаль, Turbo Pascal, PascalABC.NET 1 11.11.2007 19:28