|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
13.01.2011, 23:01 | #1 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
на тему Win API в C++ - не могу понять
Задание. Для приведенных ниже вариантов заданий составить Windows-программу в среде Visual С++, в которой производится создание главного окна приложения и двух других окон различных стилей (временное, дочернее) с одинаковым цветом фона. В центре рабочей области каждого окна выводится заданный объект (текст, графическая фигура). При нажатии в рабочей области любого окна левой (правой) кнопки мыши или клавиш перемещения (влево, вправо, вверх, вниз, Home, End, Page Up, Page Down) в программе должны выполняться действия по изменению цвета, размеров, положения выводимого объекта согласно варианту задания.
Главное окно: 1.Выводимый объект - Заголовок лабораторной работы из 2 строк. 2.Клавиша "вверх" - Текст смещается вверх на 5 пикселей Клавиша "вниз" - Текст смещается вниз на 5 пикселей Дочернее окно: Прямоугольник. Клавиша "Home" - Фигура смещается в левый верхний угол окна. Клавиша "End" - Фигура смещается в правый нижний угол окна Временное окно - Текстовая строка. Клавиша "Page Up" - Текст смещается к верхнему краю окна. Клавиша "Page Down" - Текст смещается к нижнему краю окна. Я вроде программу написал - с трудом, но написал - и она запускается без ошибок - но работает не до конца - в дочернем окне прямоугольник на кнопки не реагирует - посмотрите на код, и подскажите в чем соль? или напишите правильный... |
13.01.2011, 23:05 | #2 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
вот сам код
#include "stdafx.h"
#include <stdlib.h> LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK PopUpWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam); --------------------------- Последний раз редактировалось --=DroN=--; 14.01.2011 в 14:40. |
13.01.2011, 23:08 | #3 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
RegisterClass(&wc3);
---------------------------- Последний раз редактировалось --=DroN=--; 14.01.2011 в 14:40. |
13.01.2011, 23:11 | #4 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
LRESULT CALLBACK MainWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ ------------------ Последний раз редактировалось --=DroN=--; 14.01.2011 в 14:39. |
13.01.2011, 23:13 | #5 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
LRESULT CALLBACK PopUpWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ ----------------------- Последний раз редактировалось --=DroN=--; 14.01.2011 в 14:39. |
13.01.2011, 23:15 | #6 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{ static RECT childRect; static RECT rc2; GetClientRect(hWnd,&rc2); static int xv,xn,yv,yn; switch(msg) { case WM_CREATE: { xv=70; xn=180; yv=50; yn=120; } break; case WM_PAINT: { PAINTSTRUCT ps; HDC hdc; hdc=BeginPaint(hWnd,&ps); HPEN hPen=(HPEN)CreatePen(PS_SOLID,2,RGB (255,0,0)); HPEN hOldPen=(HPEN)SelectObject(hdc,hPen ); HBRUSH rnd=CreateSolidBrush(RGB(255,0,0)); HBRUSH old=(HBRUSH)SelectObject(hdc,rnd); Rectangle (hdc, xv, yv, xn, yn); SelectObject(hdc,hOldPen); DeleteObject(hOldPen); SelectObject(hdc,old); DeleteObject(old); EndPaint(hWnd,&ps); };break; case WM_KEYDOWN: { int nVKey=(int)wParam; switch(nVKey) { case VK_HOME: { xv=rc2.left; xn=rc2.left+110; yv=rc2.top; yn=rc2.top+70; InvalidateRect(hWnd,&rc2,TRUE); };break; case VK_END: { xv=rc2.right-110; xn=rc2.right ; yv=rc2.bottom-70; yn=rc2.bottom; InvalidateRect(hWnd,&rc2,TRUE); };break; } }; break; default: return DefWindowProc(hWnd, msg, wParam, lParam); } return 0l; } |
13.01.2011, 23:16 | #7 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
ВОТ В ПРИНЦИПЕ И ОН
|
14.01.2011, 00:33 | #8 |
Не
Участник клуба
Регистрация: 29.10.2009
Сообщений: 1,456
|
неужели Вы так думаете, что форумчане будут смотреть весь ваш код?
|
14.01.2011, 14:41 | #9 |
Пользователь
Регистрация: 13.01.2011
Сообщений: 10
|
ну да.. я не подумал... оставил код дочернего окна.. где не работает
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Win API ( CИ) | ПроГрам | Помощь студентам | 0 | 29.04.2010 21:43 |
Win API рисование | Granus | Win Api | 11 | 29.06.2009 13:20 |
Win Api | alexov | Общие вопросы C/C++ | 4 | 29.01.2009 13:33 |
Win API | aleks_n | Общие вопросы Delphi | 0 | 15.09.2008 11:07 |