Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с GetClientRect 
V
    Опции темы
andrewak
Дата 11.7.2009, 19:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Стою на асфальте я в лыжи обутый....

Чё-то столкнулся я с проблемой:
Код

void CExecutorDlg::DeviceDraw(){

    CRect rect;
    GetClientRect(&rect);


}

void CExecutorDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // device context for painting

        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);

        // Center icon in client rectangle
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);

        CRect rect;
        GetClientRect(&rect);

        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;



Вторая функция - стандартный обработчик, сгенерённый визардом. Тут всё правильно. Первая функция - моя. При попытке компиляции VC++ 2005 получаю плевок в лицо в виде error C2660: 'GetClientRect' : function does not take 1 arguments

Смотрю я в 2 идентичные строки и пытаюсь найти 10 отличий....

Помогите плиз кто чем может :(
PM MAIL   Вверх
Cheloveck
Дата 11.7.2009, 20:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Ты какие-то чудеса рассказываешь))) По всей видимости первый вариант видит API'шную функцию. По какой такой причине, судить сложно, ибо всего кода не видною Но проблема явно вне того, что ты показал.


--------------------
user posted image
PM Jabber   Вверх
andrewak
Дата 11.7.2009, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Ну я даже не знаю как это показать. Это стандартный визардовский проект mfc dialog. Убираю все галки, ничего не использую.... в файле диалога делаю новую функцию и копирую туда две строки из OnPaint. всё. 
PM MAIL   Вверх
Cheloveck
Дата 11.7.2009, 21:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1578
Регистрация: 26.7.2008
Где: Тула

Репутация: нет
Всего: 32



Но у меня-то всё работает. =)
Код

void MainWindow::ButtonClick()
{
    CRect rect;
    GetClientRect( &rect );
}

а тут Error    1    error C2660: 'GetClientRect' : function does not take 1 arguments
Код

void MainWindow::ButtonClick()
{
    CRect rect;
    ::GetClientRect( &rect );
}



--------------------
user posted image
PM Jabber   Вверх
voov
Дата 12.7.2009, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Патамушта мы пилоты
**


Профиль
Группа: Участник
Сообщений: 460
Регистрация: 29.11.2007

Репутация: 8
Всего: 8



andrewak, попробуй так и раскажи, что изменилось
Код

void CExecutorDlg::DeviceDraw(){
    CRect rect;
    this->GetClientRect(&rect);
}

PM MAIL   Вверх
Earnest
Дата 13.7.2009, 07:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5962
Регистрация: 17.6.2005
Где: Рязань

Репутация: 87
Всего: 183



А функция DeviceDraw случаем на статическая?


--------------------
...
PM   Вверх
andrewak
Дата 14.7.2009, 05:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 22.8.2008

Репутация: нет
Всего: нет



Спасибо всем! Проблема заключалась в моей бездарности, необразованности и глупости smile
Я забыл прописать функцию в классе (в заголовочнике). Cтрочкa: void DeviceDraw();

Код

#pragma once

class CExecutorDlg : public CDialog
{
// Construction
public:
    CExecutorDlg(CWnd* pParent = NULL);    // standard constructor

// Dialog Data
    enum { IDD = IDD_EXECUTOR_DIALOG };

    protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support

// Implementation
protected:
    HICON m_hIcon;

    // Generated message map functions
    virtual BOOL OnInitDialog();
    afx_msg void OnPaint();
    void DeviceDraw();
    afx_msg HCURSOR OnQueryDragIcon();
    DECLARE_MESSAGE_MAP()
};


Всё откомпилилось без ахтунгов.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0520 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.