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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WM_CREATE и WM_PAINT в диалоговом окне, Где писать код инициализации контрола? 
V
    Опции темы
Edik
Дата 12.12.2006, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



вот у меня есть такой код с ним непонятка:
Код

case WM_CREATE :

              SetDlgItemText(hwnd,IDC_COMBOBOXEX1,"Сделайте выбор");
              hComboBox=GetDlgItem(hwnd,IDC_COMBOBOXEX1);

              lstrcpy(szText,pszItems[0]);
                         cbei.mask = CBEIF_TEXT;
              cbei.iItem          = 0;
                                                 cbei.pszText        = szText;        
                                                 cbei.cchTextMax     = sizeof(szText);
                                                 SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);
              
              lstrcpy(szText,pszItems[1]);
              cbei.iItem          = 1;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);

              lstrcpy(szText,pszItems[2]);
              cbei.iItem          = 2;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);

              lstrcpy(szText,pszItems[3]);
              cbei.iItem          = 3;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);

            return TRUE;
        break;

        case WM_PAINT:

          return TRUE;
                          
        break;



так вот, когда я в WM_CREATE поместил этот код заполнения листа комбобокса как в коде, то его у меня не выводит во время работы программы- комбобокс пуст. но когда я в WM_PAINT размещаю этот код инициализации комбобокса- то  лист комбобокса во время работы этим WM_PAINT  удваиваеться,(когда скажем свернешь и развернешь диалоговое окно - появляеться еще тот же лист ниже этого в дроп дауне) и так при каждом сворачивании и разворачивании окна. помогите разобраться раз и навсегда я уже давно эту мульку понять не могу.
PM MAIL   Вверх
neosapient
Дата 12.12.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Если я правильно понял, вместо WM_CREATE используй WM_INITDIALOG
PM MAIL   Вверх
Edik
Дата 12.12.2006, 18:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



не в том то и дело, что у меня диалоговое окно порождено от класса обычного не диалогового окна, то есть там WM_INITDIALOG не катит.
PM MAIL   Вверх
neosapient
Дата 12.12.2006, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

у меня диалоговое окно порождено от класса обычного не диалогового окна

MFC что ли?
PM MAIL   Вверх
Edik
Дата 12.12.2006, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



да не посмотри сам, это не я нафантазировал- это с примера. 
Код

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include "resource.h"


LRESULT CALLBACK MyWndProc (HWND, UINT, WPARAM, LPARAM) ;

HINSTANCE hInst;
int iEdit;
char cItems[15];

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char  szAppName[] = "My" ;
     HWND         hwnd ;
     MSG          msg ;
     WNDCLASSEX   wndclass ;

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW;
     wndclass.lpfnWndProc   = (WNDPROC)MyWndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = DLGWINDOWEXTRA ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) (COLOR_WINDOW) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;

     RegisterClassEx (&wndclass) ;

     hwnd=CreateDialog(hInstance, "My", 0, NULL);
     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow(hwnd);     
        
     InitCommonControls();
     hInst=hInstance;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }



LRESULT CALLBACK MyWndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
LPSTR pszItems[4]={"Hello #0", "Hello #1", "Hello #2","Hello #3"};
static HWND hComboBox;
COMBOBOXEXITEM cbei;
char szText[20];
int iEdit;
char cItems[15];

    switch (iMsg)
          {
    case WM_INITDIALOG:

                    break;


        case WM_CREATE :

            return TRUE;
        break;


        case WM_PAINT:


                          SetDlgItemText(hwnd,IDC_COMBOBOXEX1, "Âûáåðèòå îïöèþ");
              hComboBox=GetDlgItem(hwnd,IDC_COMBOBOXEX1);

              lstrcpy(szText,pszItems[0]);
              cbei.mask = CBEIF_TEXT;
              cbei.iItem          = 0;
              cbei.pszText        = szText;        
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);
              
              lstrcpy(szText,pszItems[1]);
              cbei.iItem          = 1;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);

              lstrcpy(szText,pszItems[2]);
              cbei.iItem          = 2;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);

              lstrcpy(szText,pszItems[3]);
              cbei.iItem          = 3;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);
          
        break;

        

        case WM_DESTROY :
    
        PostQuitMessage (0) ;
        return 0 ;
        
        case WM_NOTIFY :
        {
        LPNMHDR pnmh = (LPNMHDR) lParam ;
        if (pnmh->code == CBEN_GETDISPINFO)
            {
            hComboBox=GetDlgItem(hwnd,IDC_COMBOBOXEX1);
            if (pnmh->hwndFrom!=hComboBox) break;
            {
                iEdit=SendMessage(hComboBox, CB_GETCURSEL,0 ,0);
                itoa(iEdit,cItems,10)    ;          
                SetDlgItemText(hwnd, 15, cItems);
            }


        }
        }



        case WM_COMMAND:


            if (LOWORD (wParam) == IDC_BUTTON1) 
            { 
            
                SetDlgItemText(hwnd,IDC_COMBOBOXEX1,"Hello!");
                break;
            }

/*
            if (LOWORD (wParam) == IDC_COMBOBOXEX1)

            {
                if(HIWORD(wParam)==CBEN_GETDISPINFO)
                {
                hComboBox=GetDlgItem(hwnd,IDC_COMBOBOXEX1);
                iEdit=SendMessage(hComboBox, CB_GETCURSEL,0 ,0);
                }
                itoa(iEdit,cItems,10)    ;          
                SetDlgItemText(hwnd, 15, cItems);
                
                
                break;
            }
*/
            }
    return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
    
     }


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


Эксперт
****


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

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



В момент WM_CREATE контролов еще не существует, поэтому и не работает.
Тебе уже написали, это надо делать на WM_INITDIALOG. Раз создаешь окно через CreateDialog, значит, это сообщение приходит.


--------------------
...
PM   Вверх
Edik
Дата 13.12.2006, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



господа, пробовал через WM_INITDIALOG В ЭТОЙ ЖЕ ПРОГРАММЕ и причем тоже лист дроп дауна не заполняеться как и раньше. Где выход?
PM MAIL   Вверх
Aleksandor
Дата 13.12.2006, 21:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Практик
**


Профиль
Группа: Участник
Сообщений: 272
Регистрация: 22.11.2005
Где: россия, зеленогра д

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



Попробуй hwnd селать static


--------------------
Call out Gouranga be happy!!!
Gouranga Gouranga Gouranga ....
That which brings the highest happiness!!
PM MAIL   Вверх
Earnest
Дата 14.12.2006, 08:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



1) Убедись, что попадаешь в обработчик WM_INITDIALOG (т.е. что сообщение приходит)
2) Пройди по шагам и убедись, что контрол существует.
3) Дальше в зависимости от результатов


--------------------
...
PM   Вверх
Edik
Дата 14.12.2006, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



русская- не ламайся, ты же можешь объяснить популярно. я до WM_INITDIALOG запускал программу, она выполнялась полностью, значит я так понял что WM_INITDIALOG игнорируеться. вот программа.
что дальше?
Код

#include <windows.h>
#include <windowsx.h>
#include <commctrl.h>
#include "resource.h"


LRESULT CALLBACK MyWndProc (HWND, UINT, WPARAM, LPARAM) ;

HINSTANCE hInst;
int iEdit;
char cItems[15];

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
                    PSTR szCmdLine, int iCmdShow)
     {
     static char  szAppName[] = "My" ;
     HWND         hwnd ;
     MSG          msg ;
     WNDCLASSEX   wndclass ;

     wndclass.cbSize        = sizeof (wndclass) ;
     wndclass.style         = CS_HREDRAW | CS_VREDRAW;
     wndclass.lpfnWndProc   = (WNDPROC)MyWndProc ;
     wndclass.cbClsExtra    = 0 ;
     wndclass.cbWndExtra    = DLGWINDOWEXTRA ;
     wndclass.hInstance     = hInstance ;
     wndclass.hIcon         = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;
     wndclass.hCursor       = LoadCursor (NULL, IDC_ARROW) ;
     wndclass.hbrBackground = (HBRUSH) (COLOR_WINDOW) ;
     wndclass.lpszMenuName  = NULL ;
     wndclass.lpszClassName = szAppName ;
     wndclass.hIconSm       = LoadIcon (hInstance, MAKEINTRESOURCE(IDI_ICON1)) ;

     RegisterClassEx (&wndclass) ;

     hwnd=CreateDialog(hInstance, "My", 0, NULL);
     ShowWindow (hwnd, iCmdShow) ;
     UpdateWindow(hwnd);     
        
     InitCommonControls();
     hInst=hInstance;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          TranslateMessage (&msg) ;
          DispatchMessage (&msg) ;
          }
     return msg.wParam ;
     }



LRESULT CALLBACK MyWndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
     {
LPSTR pszItems[4]={"Hello #0", "Hello #1", "Hello #2","Hello #3"};
static HWND hComboBox;
COMBOBOXEXITEM cbei;
char szText[20];
int iEdit;
char cItems[15];

    switch (iMsg)
          {
    case WM_INITDIALOG:

    SetDlgItemText(hwnd,IDC_COMBOBOXEX1, "Âûáåðèòå îïöèþ");
              hComboBox=GetDlgItem(hwnd,IDC_COMBOBOXEX1);

              lstrcpy(szText,pszItems[0]);
              cbei.mask = CBEIF_TEXT;
              cbei.iItem          = 0;
              cbei.pszText        = szText;        
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);
              
              lstrcpy(szText,pszItems[1]);
              cbei.iItem          = 1;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);

              lstrcpy(szText,pszItems[2]);
              cbei.iItem          = 2;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);

              lstrcpy(szText,pszItems[3]);
              cbei.iItem          = 3;
              cbei.pszText          = szText;
              cbei.cchTextMax     = sizeof(szText);
              SendMessage(hComboBox, CBEM_INSERTITEM, 0, (LPARAM)&cbei);
          
          
                    break;

/*
        case WM_CREATE :
    
              
        break;


        case WM_PAINT:

            break;
*/
        

        case WM_DESTROY :
    
        PostQuitMessage (0) ;
        return 0 ;
        break;

        case WM_NOTIFY :
        {
        LPNMHDR pnmh = (LPNMHDR) lParam ;
        if (pnmh->code == CBEN_GETDISPINFO)
            {
            hComboBox=GetDlgItem(hwnd,IDC_COMBOBOXEX1);
            if (pnmh->hwndFrom!=hComboBox) break;
            {
                iEdit=SendMessage(hComboBox, CB_GETCURSEL,0 ,0);
                itoa(iEdit,cItems,10)    ;          
                SetDlgItemText(hwnd, 15, cItems);
            }


        }
        }



        case WM_COMMAND:


            if (LOWORD (wParam) == IDC_BUTTON1) 
            { 
            
                SetDlgItemText(hwnd,IDC_COMBOBOXEX1,"Hello!");
                break;
            }


            }
    return DefWindowProc (hwnd, iMsg, wParam, lParam) ;
    
     }


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


Эксперт
****


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

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



Edik,  нестандартные способы создания окон - для тех, кто понимает, что делает. И способен сам разобраться в возникающих проблемах.
А ты что делаешь?
 hwnd=CreateDialog(hInstance, "My", 0, NULL);
В CreateDialog второй параметр - должен быть имя шаблона в ресурсах, а последний - диалоговая функция. А у тебя каша какая-то непонятная. Я думаю, у тебя оконная функция либо вовсе не вызывается, либо вызывается как-то криво.
Ну чего тебе приспичило так выпендриваться, если ты в простых вещах еще не разобрался? Создай нормальный диалог, как все люди - по шаблону, с нормальной диалоговой функцией - из любой книги спиши пример. Что тебя в стандартном подходе не устраивает?
А уж когда пройдешь ликбез - тогда добро пожаловать, извращайся. 


--------------------
...
PM   Вверх
Edik
Дата 15.12.2006, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



о прекрасный и великий русский жещина, величие которого воспевают в своих поэмах поэты! мне просто такое диалоговое окно надо, что бы подключить к нему меню в строке wndclass.lpszMenuName  = NULL ;. так ты поможешь, или мне сразу кончать на этом жизнь самоубийством?
PM MAIL   Вверх
Edik
Дата 15.12.2006, 15:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



О прекрасный и великий русский женщина! Как много жгучего русского темперамента в твоих мудрых словах! Я в 8-м классе средней школы брался учить высшую математику- папуля как и ты сейчас выражал свою критику в том же духе. Но я как всегда отвлекаюсь от темы... У меня вышло- я исправил hwnd=CreateDialog(hInstance, "My", 0, (DLGPROC)MyWndProc);, то есть вместо NULL прописал  (DLGPROC)MyWndProc и на мое неподдельное удовольствие программа заработала! Только если тебе не покажеться в облом, объясни мне один момент: почему в строке где мы описываем класс wndclass.lpfnWndProc   = (WNDPROC)MyWndProc ; надо писать (WNDPROC), а в функции диалога (DLGPROC). я понимаю что параметры такими должны быть именно. но почему? Всмысле почему программа выдает ошибку, когда я делаю wndclass.lpfnWndProc   = (DLGPROC)MyWndProc ; и не выдает wndclass.lpfnWndProc   = (WNDPROC)MyWndProc ; смысле от классов окон могут порождаться в основном только обычные окна типа MDI и SDI со стандартными типами процедур этих окон? почему нельзя написать сразу wndclass.lpfnWndProc   = (DLGPROC)MyWndProc ; -компилятор выдает ошибку о несоответствии типов. Объясни русская- ты ж вумнючая, но тебе иногда бывает лень ко мне в тему заглядывать. Поможешь?
PM MAIL   Вверх
Earnest
Дата 15.12.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Если дело только в подключении меню, ты прекрасно мог обойтись ресурсами. Да будет тебе извесно, что в редакторе ресурсорв можно указать меню, которое будет в диалоге.
У тебя есть диалоговый ресурс с именем "My" ? Если нет, то я не понимаю, откуда в твоем диалоге контролы. А если есть - выкини весь код, который регистрирует класс - ничего не изменится.

А по поводу твоего вопроса - диалоговая функция и оконная функция - это две РАЗНЫЕ ВЕЩИ. 
Компилятор выдает ошибку по очевидной причине: ты один тип приравниваешь другому.

При регистрации класса указывается ОКОННАЯ функция, а при создании диалога - диалоговая. Тебе не надо регистрировать класс диалога, потому что такой класс в системе уже есть. 

Кстати, главный цикл тоже не обязательно писать. Вместо него можно использовать встроенный модальный цикл, т.е. просто вызвать DialogBox вместо CreateDialog + цикл обработки сообщений.

Таким образом твое супер-приложение сводится к следующему:
1) ресурс-меню
2) диалоговый ресурс
3) диалоговая процедура (вот она может быть длинной)
4) функция WinMain, содержащая ровно одну строку: DialogBox (hInst, "My", 0, DlgProc);
Ах да, InitCommonControls, конечно, тоже надо.


--------------------
...
PM   Вверх
Edik
Дата 15.12.2006, 19:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Awaiting Authorisation
Сообщений: 207
Регистрация: 13.9.2006

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



Да русская ты права- это правда получаеться супер-приложение.
Но вот я добавил в программу ресурс меню в режиме дизайна. Дальше- как мне его подключить к диалоговому окну "My"? Есть у меня такое "My" название диалогового окна в ресурсе. Всмысле подключить меню без использования описания класса в программе. Да, я знаю этот способ создания приложения с одной строкой DialogBox (hInst, "My", 0, DlgProc); но не знал как подключить к нему меню без описания класса. Примерчик это весь я содрал с книжонки. И не понимаю зачем в приложениях используеться типа wndclass.lpszClassName = szAppName ;. У меня в ресурсе указано имя диалогового ресурса "My" и имя класса в этом диалоговом ресурсе тоже "My". Зачем еще пишеться какой-то класс? Почему я знаю примеры где описание класса такого типа этого "My" нет? Просто описываться класс в программе и создаеться MDI или SDI приложение. И самое главное хочу знать как подключить твоим способом меню в диалоговый ресурс. И пожалуйста без колкостей- снисходительнее нужно быть красная, снисходительнее.
П.С.Приятно провести выходыне!

Добавлено @ 19:14 
...и кстати этот примерчик я содрал с программы в которой специально таким образом заменялось WM_ININTDIALOG на WM_CREATE и WM_PAINT- это дает возможность рисовать в диалоговом окне, говорилось в книге. Так как диалоговые окна не обрабатывают WM_PAINT. Вот как получилось это супер-приложение. Чао!
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.0751 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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