Операционная система Windows 95 для программиста



    d8ef8794     

Исходные тексты приложения Smart Application - часть 5


return FORWARD_WM_SIZE(hwnd, state, cx, cy, DefWindowProc); }

// ----------------------------------------------------- // Функция WndProc_OnDrawItem // ----------------------------------------------------- #pragma warning(disable: 4098) void WndProc_OnDrawItem(HWND hwnd, const DRAWITEMSTRUCT * lpDrawItem) { // Необходимо выполнить перерисовку области Statusbar, // которая была определена как SBT_OWNERDRAW if(lpDrawItem->CtlID == IDS_STATUSBAR) { LPDRAWITEMSTRUCT lpDis; HDC hdcMem; HBITMAP hbmOld; BITMAP bm;

// Рисуем битовое изображение внутри области lpDis = (LPDRAWITEMSTRUCT)lpDrawItem; hdcMem = CreateCompatibleDC(lpDis->hDC);

hbmOld = SelectObject(hdcMem, hSbLogoBmp); GetObject(hSbLogoBmp, sizeof(bm), &bm);

BitBlt(lpDis->hDC, lpDis->rcItem.left, lpDis->rcItem.top, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);

SelectObject(hdcMem, hbmOld); DeleteDC(hdcMem); }

return FORWARD_WM_DRAWITEM(hwnd, lpDrawItem, DefWindowProc); }

// ----------------------------------------------------- // Функция WndProc_OnMenuSelect // ----------------------------------------------------- #pragma warning(disable: 4098) void WndProc_OnMenuSelect(HWND hwnd, HMENU hmenu, int item, HMENU hmenuPopup, UINT flags) { static char szBuf[128]; UINT nStrID = 0; szBuf[0] = 0;

// Пользователь закрыл меню if(flags == 0xffffffff && hmenu == NULL) nStrID = IDS_DESCRIPTION;

// Пользователь выделил в меню строку разделителя else if(flags & MFT_SEPARATOR) nStrID = 0;

// Выбрано временное меню else if(flags & MF_POPUP) { // Выбрано системное меню if(flags & MF_SYSMENU) nStrID = IDS_SYSMENU;

// Вычисляем идентификатор строки, описывающей // временное меню else nStrID = ((item < sizeof(nIdPopup)/sizeof(nIdPopup[0]))? nIdPopup[item] : 0); }

// Используем идентификатор строки, соответствующий // выделенной строке меню else nStrID = item;

// Загружаем строку из ресурсов приложения if(nStrID != 0) LoadString(hInst, nStrID, szBuf, sizeof(szBuf));

// Отображаем строку в первой области Toolbar SendMessage(hwndSb, SB_SETTEXT, 0, (LPARAM)szBuf);




Содержание  Назад  Вперед