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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2015, 23:11   #1
Sterben
Форумчанин
 
Аватар для Sterben
 
Регистрация: 01.03.2015
Сообщений: 118
По умолчанию Кнопки,скрыть и показать (WinApi c++)

Здравствуйте,у меня есть 6 кнопок,одна из них Выход, остальные пять должны выполнять действие : если нажали на любую из кнопок то она скрывается (ShowWindow)- вроде как позволяет это делать , и если есть скрытые (не считая на ту что нажали ) оно должно отобразить одну из них или несколько.
1.Подскажите пожалуйста как можно отобразить любую скрытую кнопку,и 2.как сделать проверку : если все кнопки скрыты то выводит любое окно.
Мой Код :
Код:
#include <Windows.h>
#define Button_0 100
#define Button_1 101
#define Button_2 102
#define Button_3 103
#define Button_4 104
#define Button_EXIT 105



LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HWND hMainWnd;
HWND hButton[7];
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevIntance, LPSTR lpCmdline, int nCmdShow) {
	TCHAR Messege[] = L"AnyThing";
	WNDCLASSEX wc;
	MSG msg;
	wc.cbSize = sizeof(wc);
	wc.style = CS_HREDRAW | CS_VREDRAW;
	wc.lpfnWndProc = WndProc;
	wc.lpszMenuName = NULL;
	wc.lpszClassName = Messege;
	wc.cbWndExtra = NULL;
	wc.cbClsExtra = NULL;
	wc.hIcon = LoadIcon(NULL, IDI_WINLOGO);
	wc.hIconSm = LoadIcon(NULL, IDI_WINLOGO);
	wc.hCursor = LoadCursor(NULL, IDC_ARROW);
	wc.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
	wc.hInstance = hInstance;
	if (!RegisterClassEx(&wc)) {
		MessageBox(NULL, L"Error", L"Class not Registed class", MB_OK);
		return NULL;
	}
	hMainWnd = CreateWindow(Messege, L"Window", WS_OVERLAPPEDWINDOW | WS_VSCROLL, CW_USEDEFAULT, CW_USEDEFAULT,
		420, 385, HWND_DESKTOP, NULL, HINSTANCE(hInstance), NULL);
	if (!hMainWnd) {
		MessageBox(NULL, L"Error", L"Window not Create", MB_OK);
		return NULL;
	}
	hButton[0] = CreateWindow(L"button", L"Exit", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 150, 300, 80, 30, hMainWnd, (HMENU)Button_EXIT, hInstance, NULL);
	hButton[1] = CreateWindow(L"button", L"", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 10, 10, 120, 50, hMainWnd, (HMENU)Button_0, hInstance, NULL);
	hButton[2] = CreateWindow(L"button", L"", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 135,65, 120, 50, hMainWnd, (HMENU)Button_1, hInstance, NULL);
	hButton[3] = CreateWindow(L"button", L"", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 10, 120, 120, 50, hMainWnd, (HMENU)Button_2, hInstance, NULL);
	hButton[4] = CreateWindow(L"button", L"", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 260, 10, 120, 50, hMainWnd, (HMENU)Button_3, hInstance, NULL);
	hButton[5] = CreateWindow(L"button", L"", WS_VISIBLE | WS_CHILD | BS_PUSHBUTTON, 260, 120, 120, 50, hMainWnd, (HMENU)Button_4, hInstance, NULL);
	ShowWindow(hMainWnd, nCmdShow);
	UpdateWindow(hMainWnd);
	while (GetMessage(&msg, NULL, NULL, NULL)) {
		TranslateMessage(&msg);
		DispatchMessage(&msg);
	}
	return msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) {
	HDC hDC;
	PAINTSTRUCT ps;
	RECT rect;
	COLORREF colorText = RGB(0, 255, 0);
	switch (uMsg) {
	case WM_COMMAND:
		if (LOWORD(wParam) == Button_0) {
			ShowWindow((HWND)lParam, SW_HIDE);
			return 0;
		}
		if (LOWORD(wParam) == Button_1) {
			ShowWindow((HWND)Button_0, SW_SHOW);
			return TRUE;
		}
		if (LOWORD(wParam) == Button_EXIT) {
			DestroyWindow(hMainWnd);
			return 0;
		}
		break;
	case WM_DESTROY:
		PostQuitMessage(NULL);
		break;
	default:
		return DefWindowProc(hWnd, uMsg, wParam, lParam);
	}
	return NULL;
}
Sterben вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрыть/Показать панель UKRtortik Общие вопросы Delphi 10 01.06.2014 22:20
Скрыть/показать выбранный лист Dimka Wumok Microsoft Office Excel 6 05.10.2012 10:29
Показать/скрыть edit`ы Rapala Общие вопросы Delphi 3 11.05.2010 09:20
как скрыть/показать TMainMenu blackstersl Общие вопросы Delphi 3 13.06.2009 18:12
Показать и скрыть фигуры Иванов_ДМ Microsoft Office Excel 5 28.04.2009 16:49