Название функции обработки сообщений в карта сообщений
От: Holy_coder  
Дата: 02.07.04 11:14
Оценка:
Привет, может кто знает как решить вопрос. Создаю через визард класс производный от CWnd.. содаю в нем руками функцию CreateWnd в которой пытаюсь создать окно(именно окно) функцией CWnd::Create. Регистрирую класс окна (WNDCLASS) и тут проблема мне надо указать имя функции обработки сообщения, хочу связать с картой сообщений. Прочитал статью "Блуждания по лабиринту маршрутизации сообщений и команд в MFC" http://www.rsdn.ru/article/mfc/maze.xml Вроде как есть функция в катре сообщений AfxWndProc указываю ее... класс регистрируется окно не создается.... вроде есть еше CWnd::WindowProc но она чисто виртуальная, а реализовывать ее не надо, так как есть карта сообщений которую нужно юзать.
Поискал по поиску запросами типа "Карта сообшений", "функция обработки сообщений" и от них производные. Ничего, что могло бы помочь на RSDN совсем мало и не то, в Яндексе ссылки на книжки либо которые купить либо совсем для ламеро что есть мол карта сообшений... Помогите решить проблему заранее благодарен....
Re: Название функции обработки сообщений в карта сообщений
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 02.07.04 11:16
Оценка:
Здравствуйте, Holy_coder, Вы писали:

H_> Привет, может кто знает как решить вопрос. Создаю через визард класс производный от CWnd.. содаю в нем руками функцию CreateWnd в которой пытаюсь создать окно(именно окно) функцией CWnd::Create. Регистрирую класс окна (WNDCLASS) и тут проблема мне надо указать имя функции обработки сообщения, хочу связать с картой сообщений. Прочитал статью "Блуждания по лабиринту маршрутизации сообщений и команд в MFC" http://www.rsdn.ru/article/mfc/maze.xml Вроде как есть функция в катре сообщений AfxWndProc указываю ее... класс регистрируется окно не создается.... вроде есть еше CWnd::WindowProc но она чисто виртуальная, а реализовывать ее не надо, так как есть карта сообщений которую нужно юзать.

H_> Поискал по поиску запросами типа "Карта сообшений", "функция обработки сообщений" и от них производные. Ничего, что могло бы помочь на RSDN совсем мало и не то, в Яндексе ссылки на книжки либо которые купить либо совсем для ламеро что есть мол карта сообшений... Помогите решить проблему заранее благодарен....

AfxGetAfxWndProc()
- Искренне ваш, Поросенок Пафнутий
Re: Название функции обработки сообщений в карта сообщений
От: rus blood Россия  
Дата: 02.07.04 11:26
Оценка:
Здравствуйте, Holy_coder, Вы писали:

H_> Привет, может кто знает как решить вопрос. Создаю через визард класс производный от CWnd.. содаю в нем руками функцию CreateWnd в которой пытаюсь создать окно(именно окно) функцией CWnd::Create. Регистрирую класс окна (WNDCLASS) и тут проблема мне надо указать имя функции обработки сообщения, хочу связать с картой сообщений. Прочитал статью "Блуждания по лабиринту маршрутизации сообщений и команд в MFC" http://www.rsdn.ru/article/mfc/maze.xml Вроде как есть функция в катре сообщений AfxWndProc указываю ее... класс регистрируется окно не создается.... вроде есть еше CWnd::WindowProc но она чисто виртуальная, а реализовывать ее не надо, так как есть карта сообщений которую нужно юзать.

H_> Поискал по поиску запросами типа "Карта сообшений", "функция обработки сообщений" и от них производные. Ничего, что могло бы помочь на RSDN совсем мало и не то, в Яндексе ссылки на книжки либо которые купить либо совсем для ламеро что есть мол карта сообшений... Помогите решить проблему заранее благодарен....

Возможностей AfxRegisterWndClass не хватает?
Имею скафандр — готов путешествовать!
Re: Название функции обработки сообщений в карта сообщений
От: Holy_coder  
Дата: 02.07.04 12:55
Оценка:

//h...........
class CFunctionWindow : public CWnd
{
    DECLARE_DYNAMIC(CFunctionWindow)

public:
    bool CreateWnd(LPCSTR lpszCaption);
        ...............
protected:
    DECLARE_MESSAGE_MAP()

        ................
};



//cpp...................
bool CFunctionWindow::CreateWnd(LPCSTR lpszCaption)
{
    
        LPCTSTR strMyClass;

    strMyClass = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW,
                                         ::LoadCursor(NULL, IDC_ARROW),
                                         (HBRUSH)::GetStockObject(WHITE_BRUSH),
                                         ::LoadIcon(NULL, IDI_APPLICATION));


        Create(strMyClass, 
           lpszCaption,
           WS_OVERLAPPEDWINDOW,
           CRect(5, 5, 600, 600), 
           NULL, 
           0);
}


Или так или непосредственно с WNDCLASS и AfxWndProc.
А с AfxGetAfxWndProc и CWnd::WindowProc не компилится.
В чем ошибка в чем может быть затор???!!!!
Заранее благодарен!!!
Re[2]: Название функции обработки сообщений в карта сообщени
От: SchweinDeBurg Россия https://zarezky.spb.ru/
Дата: 02.07.04 12:59
Оценка:
Здравствуйте, Holy_coder, Вы писали:

H_>Или так или непосредственно с WNDCLASS и AfxWndProc.

H_>А с AfxGetAfxWndProc и CWnd::WindowProc не компилится.
H_>В чем ошибка в чем может быть затор???!!!!
H_>Заранее благодарен!!!

Вот кусок одного моего InitInstance():

H_>
WNDCLASS wc;
...
// try to register custom window class
memset(&wc, 0, sizeof(wc));
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = AfxGetAfxWndProc();
wc.hInstance = m_hInstance;
wc.hIcon = LoadIcon(IDR_APPICON);
wc.hCursor = LoadStandardCursor(IDC_ARROW);
wc.hbrBackground = (HBRUSH)(COLOR_WINDOW + 1);
wc.lpszClassName = _T("WC_MAIN_FRAME");
if (!::RegisterClass(&wc)) {
    return (FALSE);
}
H_>
- Искренне ваш, Поросенок Пафнутий
Re[2]: Название функции обработки сообщений в карта сообщени
От: rus blood Россия  
Дата: 02.07.04 13:00
Оценка:
Здравствуйте, Holy_coder, Вы писали:

H_>
H_>//cpp...................
H_>bool CFunctionWindow::CreateWnd(LPCSTR lpszCaption)
H_>{
H_>        LPCTSTR strMyClass;
H_>    strMyClass = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW,
H_>                                         ::LoadCursor(NULL, IDC_ARROW),
H_>                                         (HBRUSH)::GetStockObject(WHITE_BRUSH),
H_>                                         ::LoadIcon(NULL, IDI_APPLICATION));
H_>        Create(strMyClass, 
H_>           lpszCaption,
H_>           WS_OVERLAPPEDWINDOW,
H_>           CRect(5, 5, 600, 600), 
H_>           NULL, 
H_>           0);
H_>}
H_>


А что, так не работает?
Имею скафандр — готов путешествовать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.