Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| |
[Win32] RegisterClass - да не вопрос! Вот он... 12.05.01 01:40 Число просмотров: 765
Автор: BXS Статус: Незарегистрированный пользователь
|
Global - глобальная структура с разной дрянью типа hInstance итд.
Class.style=CS_HREDRAW | CS_VREDRAW;
Class.lpfnWndProc = Scroll_Proc;
Class.cbClsExtra=0;
Class.cbWndExtra=0;
Class.hInstance=Global->hInstance;
Class.hIcon=0;
Class.hCursor=LoadCursor(Global->hInstance, MAKEINTRESOURCE(SCROLL_CURSOR));
Class.hbrBackground=(HBRUSH)GetStockObject(NULL_BRUSH);
Class.lpszMenuName="";
Class.lpszClassName=SCROLL_CLASS_NAME; (="SCROLL2")
if(!RegisterClass(&Class))
return FALSE;
Затем я колю один раз вот это:
CreateWindow(SCROLL_CLASS_NAME, 0, CS_OWNDC|WS_CLIPCHILDREN|WS_CHILD|WS_VISIBLE, X,Y, Width, Height ,Global->hwndMain,(HMENU)Id_1,Global->hInstance,0))==0) - это олкно создается и пашет отлично.
Но затем я вызываю ее еще раз:
CreateWindow(SCROLL_CLASS_NAME, 0, CS_OWNDC|WS_CHILD|WS_VISIBLE, X, Y, Width, Height, Global->hwndMain,(HMENU)Id_2,Global->hInstance,0))==0) и окно не раскрывается, хотя создается и начинает получать все сообщения!!!
Хоть убейте - не понимаю.
Почему одно окно работает, а другое - нет. Я пробовал не открывать первое окно - не помогло.
Я в панике...
|
<programming>
|
[Win32] Невероятно! Окна как и не было! Взгляните на это! 11.05.01 07:30
Автор: BXS Статус: Незарегистрированный пользователь
|
Вот такого еще не видел: создаю child window на родителе, который тоже child по отношению к главному окну программы. Окно создается, НО ЕГО НИКАКИМИ СРЕДСТВАМИ невозможно отобразить. Окно для данного класса создается точно (проверял через winsight). Оно получает все сообщения. Но даже несмотря на присутствие WS_VISIBLE, посылку ShowWindow(.... NORMAL) и отсутствие окон поверх него - ОНО НЕ ОТОБРАЖАЕТСЯ! Такие братцы дела... Что делать - ума не приложу. Честно говорю, такое встречаю впервые... Может что-то забыл... Хрен знает! Короче, если не лень, чирканите, в чем тут проблема. А то придется в штаты лететь г-на Гейтса трясти. Заранее спасибо!
|
|
Привел бы хоть код RegisterClass - CreateWindow, а то хз о чем спик... 11.05.01 08:33
Автор: Клюква Статус: Незарегистрированный пользователь
|
|
| |
[Win32] RegisterClass - да не вопрос! Вот он... 12.05.01 01:40
Автор: BXS Статус: Незарегистрированный пользователь
|
Global - глобальная структура с разной дрянью типа hInstance итд.
Class.style=CS_HREDRAW | CS_VREDRAW;
Class.lpfnWndProc = Scroll_Proc;
Class.cbClsExtra=0;
Class.cbWndExtra=0;
Class.hInstance=Global->hInstance;
Class.hIcon=0;
Class.hCursor=LoadCursor(Global->hInstance, MAKEINTRESOURCE(SCROLL_CURSOR));
Class.hbrBackground=(HBRUSH)GetStockObject(NULL_BRUSH);
Class.lpszMenuName="";
Class.lpszClassName=SCROLL_CLASS_NAME; (="SCROLL2")
if(!RegisterClass(&Class))
return FALSE;
Затем я колю один раз вот это:
CreateWindow(SCROLL_CLASS_NAME, 0, CS_OWNDC|WS_CLIPCHILDREN|WS_CHILD|WS_VISIBLE, X,Y, Width, Height ,Global->hwndMain,(HMENU)Id_1,Global->hInstance,0))==0) - это олкно создается и пашет отлично.
Но затем я вызываю ее еще раз:
CreateWindow(SCROLL_CLASS_NAME, 0, CS_OWNDC|WS_CHILD|WS_VISIBLE, X, Y, Width, Height, Global->hwndMain,(HMENU)Id_2,Global->hInstance,0))==0) и окно не раскрывается, хотя создается и начинает получать все сообщения!!!
Хоть убейте - не понимаю.
Почему одно окно работает, а другое - нет. Я пробовал не открывать первое окно - не помогло.
Я в панике...
|
| | |
[Win32] RegisterClass - да не вопрос! Вот он... 13.05.01 16:14
Автор: kabanchik Статус: Незарегистрированный пользователь
|
что за CS_OWNDC ты используешь в WindowStyles? его надо ипользовать в WindowClass переделай так :
> Class.style=CS_HREDRAW | CS_VREDRAW | CS_OWNDC; > Class.lpfnWndProc = Scroll_Proc; > Class.cbClsExtra=0; > Class.cbWndExtra=0; > Class.hInstance=Global->hInstance; > Class.hIcon=0; > Class.hCursor=LoadCursor(Global->hInstance, > MAKEINTRESOURCE(SCROLL_CURSOR)); > это же константа. и наверняка конфликтует с одним из стилей окошка.
и еще - WS_CLIPCHILDREN используй если окно у тебя будет Parent.
не думаю, что окно снова будет в прятки играть.
|
|
|