|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.10.2009, 19:23 | #1 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
переход с билдера на визуал
Добрый вечер! Перехожу с билдера на Визуал с++. тяжко, всё подругому.
Создал приложение MFC (работаю по книге)Татьяны Сидориной. Вот только непонятно, зачем надо в MainForm.cpp и ChildView писать одно и то же: cs.lpszClass=AfxRegisterWndClass(NU LL, LoadCursor(NULL, IDC_WAIT),reinterpret_cast<HBRUSH>( COLOR_ACTIVEBOR DER+1),LoadIcon(NULL, IDI_ERROR)); также: NULL - это нуль, но что он делает в функциях? когда мы его используем, параметр принимает стандартное значение или как? что делает reinterpret_cast<HBRUSH>(COLOR_ACTI VEBORDER+1)? и что зав оператор в cs.dwExStyle &= ~WS_EX_CLIENTEDGE; кое-какие недостатки в программе, которые немного не так работают как надо. 1. у меня иконка стандартная и не меняется на IDI_ERROR. Уже не знаю что делать. И так в MainForm делал в BOOL CMainFrame::PreCreateWindow(CREATES TRUCT& cs) cs.lpszClass=AfxRegisterWndClass(NU LL, LoadCursor(NULL, IDC_WAIT),reinterpret_cast<HBRUSH>( COLOR_ACTIVEBOR DER+1),LoadIcon(NULL, IDI_ERROR)); и так: AfxGetApp()->LoadStandardIcon(IDI_ERROR); а результат один и тот же. стоит иконка по умолчанию. это первое. 2. когда создаётся приложение, в области Frame появляются песочные часы, как это и положено. я ведь написал cs.lpszClass=AfxRegisterWndClass(NU LL, LoadCursor(NULL, IDC_WAIT),reinterpret_cast<HBRUSH>( COLOR_ACTIVEBOR DER+1),LoadIcon(NULL, IDI_ERROR)); но как только я мышку смещу в какую-то другую область, например выведу за границы приложения (а она там принимает стандартный указатель), вернув её в Frame я уже не получаю снова тех самых песочных часов. но с View происходит всё так как надо. завёл мышь в эту область, она стала IDC_HAND, убрал в другое место и вернул в View - она всё IDC_HAND. непонятно. в одном месте работает нормально, а в другом некорректно P.S.при создании окна View , как написано в книжке, в функции Сreate() вместо AFX_IDW_PANE_FIRST я ввёл несуществующий индефикатор, чтобы размеры окна не задавались по умолчанию. в результате этого у меня это окошко "как бы не видимым стало". то есть при его создании на него накладывался тот фон, который находился за ним. но! если мы будем перемещать это окошко, то фон не изменится. Пожалуйста, разъясните мне мои вопросы, очень прошу. theApp.LoadStandardCursor(MAKEINTRE SOURCE(IDC_WAIT )); даже6 так я сделал в CildView.cpp ничё не помогает исправить косяк с указателем мыши |
05.10.2009, 20:41 | #2 | |
Участник клуба
Регистрация: 18.10.2008
Сообщений: 1,409
|
вот так иконку можно задать
Код:
Цитата:
что ты там остальное написал совсем непонятно |
|
05.10.2009, 21:47 | #3 | ||
Старожил
Регистрация: 22.05.2007
Сообщений: 9,065
|
Цитата:
Особенности WinAPI и продолжение традиций в MFC MainForm - это окно с заголовком, а View - это тоже окно, которое лежит на MainForm, но оно уже соответственно без заголовка. От MainForm в Single Document кроме заголовка и рамочки, больше ничего и не видно. Ну еще менюшка с панельками, если имеются. В общем окна разные, а потому надо их всех регистрировать. Цитата:
LoadCursor(NULL, IDC_WAIT) и LoadIcon(NULL, IDI_ERROR). Первый параметр указывает из какого модуля загружаются курсор и иконка. NULL показывает, что загружаются стандартные "картинки". Опять же особенности GDI. Стандартную кисть тут просто используем. reinterpret_cast тупо приводит один тип к другому без каких-либо проверок корректности этого предположения. Скажешь ему, что "парам пам пам" - это int, он и будет свято в это верить Этот оператор, кажись, побитовое отрицание, т.е. обращает все биты на противоположные. Стиль так исключается, т.е. в данном случае рамочки не будет, на сколько я помню MFC С остальным я не сталкивался, а потому помочь нечем |
||
06.10.2009, 09:12 | #4 |
Форумчанин
Регистрация: 18.04.2009
Сообщений: 688
|
http://slil.ru/28047455
вот это я пытаюсь сделать |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
переход с Билдера на MS VISUAL | Dimarik | Visual C++ | 1 | 22.12.2009 01:37 |
Помогите пажалста!!Визуал бэсик | Тёмный_Тэ | Фриланс | 1 | 09.06.2007 08:28 |