Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Программирование на WinApi, C++Builder, Visual C++


Информационный Канал Subscribe.Ru


Выпуск № 54-2003 BCBDEV.RU

Здравствуйте уважаемые подписчики!

Перед вами очередной выпуск рассылки "Программирование на WinApi"
Переводы многих функций Win32API, которые часто используются в данной рассылке, вы можете получать, подписавшись на дружественную рассылку "WinAPI на русском".
Справочник по функциям Win32API вы можете посмотреть на сайте BcbDev.ru в разделе MSDN по-русски.

Как можно использовать функцию Set(Get)WindowLong для личных нужд?
При помощи этой функции есть возможность хранить личные данные в памяти окна. Эта информация может быть абсолютно любого характера. Пример использования этих функций приведён ниже. Здесь мы используем флажок GWL_USERDATA, для хранения некоторой текстовой информации в памяти окна.
....
HWND hWndBtn1, hWndBtn2;
void OnCreate(HWND hWnd);
....
    switch (message) 
    {
    ...
    case WM_CREATE:
        OnCreate(hWnd);
        return TRUE;
    break;
    ...
//-----------------------------------------------------------------------
void OnCreate(HWND hWnd)
{
   hWndBtn1 = CreateWindow("BUTTON", "BUTTON", WS_CHILD|WS_VISIBLE,
      10, 10, 70, 25, hWnd, NULL, hInst, NULL);

   hWndBtn2 = CreateWindow("BUTTON", "BUTTON", WS_CHILD|WS_VISIBLE,
      10, 40, 70, 25, hWnd, NULL, hInst, NULL);
    char* Data1="12345";
    char* Data2="54321";

   SetWindowLong(hWndBtn1, GWL_USERDATA,(long)Data1);
   SetWindowLong(hWndBtn2, GWL_USERDATA,(long)Data2);

   MessageBox(NULL, (char*)GetWindowLong(hWndBtn1,GWL_USERDATA),"", MB_OK);
   MessageBox(NULL, (char*)GetWindowLong(hWndBtn2,GWL_USERDATA),"", MB_OK);

}

Удачи Вам в Ваших делах Куковинец Андрей aka Juggernaut

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное