Maks150988
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Цитата: P.S. Найди книжку по D. Иначе тебя поставят в игнор. | Да какую именно? Большинство книг имеют напрвленность как создать окошко, а аспекты интерфейса и прочих оконных приблуд не описывают. Вот допустим мне надо через WM_DRAWITEM перерисовать листбокс, чтобы на нем мирно существовали фоновый рисунок и строки. Поисковики лезут на китайские сайты. На русских одна шняга. Код: Код: var hBMP : hBitmap; function DlgProc(hWin: HWND; uMsg: UINT; wp: WPARAM; lp: LPARAM): bool; stdcall; var ps: TPaintStruct; dc: HDC; hMemDC: HDC; rect: TRect; begin Result := False; case uMsg of WM_INITDIALOG : begin hBMP := LoadBitmap(hInstance, 'IMAGE'); SendMessage(GetDlgItem(hWin, 113), LB_ADDSTRING, 0, Integer(PChar(''))); SendMessage(GetDlgItem(hWin, 113), LB_ADDSTRING, 0, Integer(PChar(''))); end; WM_PAINT: begin dc := BeginPaint(getdlgitem(hWin, 113), ps); hMemDC := CreateCompatibleDC(dc); SelectObject(hMemDC, hBMP); GetClientRect(getdlgitem(hWin, 113), rect); BitBlt(dc, 0, 0, rect.right, rect.bottom, hMemDC, 0, 0, SRCCOPY); DeleteDC(hMemDC); EndPaint(getdlgitem(hWin, 113), ps); InvalidateRect(getdlgitem(hWin, 113), 0, False); UpdateWindow(hwin); end; WM_DESTROY, WM_CLOSE: begin DeleteObject(hBMP); PostQuitMessage(0); end; end; end; | Что надо именно перерисовывать? П.С. Раздобыл диск, установил справку. Но там всего-то написано мол пошли сообщение контролу с информацией о прорисовке. Блин я без понятия. П.П.С. не надо меня игнорить. я все-таки не всякую чушь спрашиваю как создать чекбокс или как его чекнуть. тут же код посерьезнее |