Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пересовка окна 
:(
    Опции темы
Scatman
Дата 14.4.2006, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Вот код
Код

LRESULT CALLBACK MAIN_PROC(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
    int wmId, wmEvent;
    char str[20];
    int col;
    int  cxClient, cyClient ;
    HDC         hdc ;
    int x,y;
    char s[20];
    char si[10];
    char sx[10],sy[10];
    PAINTSTRUCT ps ;
    bool b = false;
    
    switch (message)
    {
    case WM_INITDIALOG:
        return TRUE;

    case WM_PAINT:
    if(b == true)
        {
               cxClient = LOWORD (wParam) ;
               cyClient = HIWORD (wParam) ;
               hdc = BeginPaint (hDlg, &ps) ;
               
        for(int i=0;i<10;i++)
               {
                    x = rand()%200;
                    y = rand()%200;
                    itoa(i,si,10);
                    point.Create(30);
                    point.array[i].X = x;
                    point.array[i].Y = y;
                    TextOut(hdc, x, y, (LPCTSTR)si, 1); 
                    Ellipse   (hdc,x-2,y-2,x+2,y+2) ;
                    //-------------------//
                    itoa(point.array[i].X,sx,10);
                    itoa(point.array[i].Y,sy,10);
                    strcpy(s, si);
                    strcat(s, "   ->");
                    strcat(s, "(");
                    strcat(s, sx);
                    strcat(s, ";");
                    strcat(s, sy);
                    strcat(s, ")");
                    str[strlen(s+1)] = '\0';
                    SendDlgItemMessage(hDlg,IDC_LIST2,LB_ADDSTRING, 0, (LPARAM)s);
                    //-------------------//
               }
        }
               EndPaint (hDlg, &ps) ;

               return 0 ;

    case WM_COMMAND:
        wmId    = LOWORD(wParam); 
        wmEvent = HIWORD(wParam); 
        if (LOWORD(wParam) == IDCANCEL) //если нажата кнопка Exit
        {
            EndDialog(hDlg, LOWORD(wParam));
            return TRUE;
        }
    // Parse the menu selections:
        switch (wmId)
        {
        case IDM_ABOUT:
                       break;

        case IDM_EXIT:
            DestroyWindow(hDlg);
            break;

        case IDOK2:
            GetDlgItemText(hDlg, IDC_EDIT1, str, 20);
            col = atoi(str);
            b = true;
            return 1;
        
        default:
            return DefWindowProc(hDlg, message, wParam, lParam);
        }
        break;
    }
    return FALSE;
}


проблема в следущем мне надо в обраобтке кнопки IDOK2 вызвать Paint для рисования элипсов!!! так вот как это сделать???

PM MAIL   Вверх
Fixin
Дата 14.4.2006, 15:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



InvalidateRect
Добавлено @ 15:31
Код

                    strcpy(s, si);    
                    strcat(s, "   ->");    
                    strcat(s, "(");    
                    strcat(s, sx);    
                    strcat(s, ";");    
                    strcat(s, sy);    
                    strcat(s, ")");    
                    str[strlen(s+1)] = '\0';
Лучше использовать sprintf или lsprintf
PM MAIL ICQ   Вверх
Scatman
Дата 14.4.2006, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



InvalidateRect(Wnd: HWnd; Rect: LPRect; Erase: Bool); но что испоьзовать в качестве параметров LPRect и Bool.
PM MAIL   Вверх
Fixin
Дата 14.4.2006, 22:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ёжик
***


Профиль
Группа: Комодератор
Сообщений: 1357
Регистрация: 6.1.2004

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



Делаешь так:
либо InvalidateRect(hwnd, NULL, TRUE); - перересовываешь все окно с предварительным стиранием содержимого (медленно но эффективно)
либо InvalidateRect(hwnd, NULL, FALSE); - перересовываешь все окно без предварительного стираниея содержимого (быстро но не эффективно)

Кроме того есть справочники и MSDN
PM MAIL ICQ   Вверх
Scatman
Дата 14.4.2006, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо я посмотрел в мсдн просто там была проверка обработана кнопка и она не сработала а убрал и все стала нормально. Спасибо!!!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




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


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

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