Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++: WinAPI
Войти
Регистрация
Восстановить пароль
 
AlexTorrin
3 / 3 / 0
Регистрация: 07.05.2012
Сообщений: 27
1

Передача функции классу

14.10.2012, 17:35. Просмотров 410. Ответов 1
Метки нет (Все метки)

Main.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
#include <windows.h>
#include "wincls.h"
LRESULT CALLBACK WindowProcedure(HWND, UINT, WPARAM, LPARAM);
char szClassName[ ] = "CodeBlocksWindowsApp";
int WINAPI WinMain (HINSTANCE hThisInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszArgument,
                     int nCmdShow)
{
    MSG messages;   
    WndCls wc(hThisInstance,
              szClassName,
              WindowProcedure);  // undefined reference to `WndCls::WndCls(HINSTANCE__*, char const*, long (*)(HWND__*, unsigned int, unsigned int, long), unsigned int, char const*)
 
 
    while (GetMessage (&messages, NULL, 0, 0))
    {
        TranslateMessage(&messages);
        DispatchMessage(&messages);
    }
    return messages.wParam;
}
 
 
 
 
LRESULT CALLBACK WindowProcedure (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    HDC hDC;
    PAINTSTRUCT ps;
    RECT rc;
    switch (message)                  
    {
        case WM_PAINT:
            hDC = BeginPaint(hwnd, &ps);
            GetClientRect(hwnd, &rc);
            DrawText(hDC, (LPSTR)"String", -1, &rc, DT_SINGLELINE|DT_CENTER|DT_VCENTER);
            EndPaint(hwnd, &ps);
            break;
        case WM_DESTROY:
            PostQuitMessage (0);       
            break;
        default:                     
            return DefWindowProc (hwnd, message, wParam, lParam);
    }
 
    return 0;
}
wincls.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#ifndef WINCLS_H_INCLUDED
#define WINCLS_H_INCLUDED
 
#include <windows.h>
 
class WndCls
{
    private:
        HWND hwnd;
        WNDCLASSEX wc;
    public:
        WndCls(HINSTANCE hInst,
               LPCTSTR szClassName,
               LRESULT (WINAPI *WndProc)(HWND, UINT, WPARAM, LPARAM),
               UINT style = CS_HREDRAW|CS_VREDRAW,
               LPCTSTR szMenuName = NULL);
        HWND GetHwnd(){ return hwnd; }
 
};
 
#endif // WINCLS_H_INCLUDED
wincls.cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "wincls.h"
 
WndCls::WndCls(HINSTANCE hInst,
               LPCTSTR szClassName,
               LRESULT (WINAPI *WndProc)(HWND, UINT, WPARAM, LPARAM),
               UINT style,
               LPCTSTR szMenuName)
{
    wc.hInstance = hInst;
    wc.lpszClassName = szClassName;
    wc.style = style;
    wc.cbSize = sizeof (WNDCLASSEX);
    wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    wc.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
    wc.hCursor = LoadCursor (NULL, IDC_ARROW);
    wc.lpfnWndProc = WndProc;
    wc.lpszMenuName = szMenuName;
    wc.cbClsExtra = 0;
    wc.cbWndExtra = 0;
    wc.hbrBackground = (HBRUSH) GetStockObject(WHITE_BRUSH);
 
 
}
Проблема в
C++
1
2
3
    WndCls wc(hThisInstance,
              szClassName,
              WindowProcedure);  // undefined reference to `WndCls::WndCls(HINSTANCE__*, char const*, long (*)(HWND__*, unsigned int, unsigned int, long), unsigned int, char const*)
Ошибка компиляции в коментариях.

Я в курсе, что не написал "RegisterClass и CreateWindow" допишу, позже, когда разберусь как от этой проблемы избавиться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 17:35
Ответы с готовыми решениями:

Передача функции-члена в качестве аргумента (не через указатель)
Привет! Озадачился такой проблемой - вот пример того, что нужно typedef...

Проверка принадлежности к классу
В Java есть ф-я instanceof. Есть ли подобная в С++?

Найти хендл второго (а не первого) окна по заданному классу
Помогите пожалуйста обшарил весь интернет и не нашел ответа как мне вписать ...

передача строк функции или классу
Возник вопрос, как правильно передавать строки классу. Допустим, имеется...

Передача свойств классу
Добрый день, помню что где-то читал про передачу значений свойствам нового...

1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26149 / 17526 / 6950
Регистрация: 22.10.2011
Сообщений: 30,862
Записей в блоге: 6
14.10.2012, 20:35 2
Вот ты будешь смеяться, но ничего подобного твоей ошибке мне C::B не выдает:
0
Миниатюры
Передача функции классу  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2012, 20:35

Передача List другому классу
using System; using System.Collections.Generic; using System.Drawing; using...

Передача строк другому классу
В общем вкратце обрисую ситуацию, на первом снимке имеется кнопка, где я ввожу...

Передача переменной из цикла другому классу
Есть цикл, каждое новое значение переменной нужно передавать в метод др....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru