D
Dock1100
Есть код на С++(неправильно переведена только та функция что ниже)(переводится
результатом её выполнения должно быть вот это:
Пытаюсь уже второй день правильно перевести его на паскаль:
а в результате получается вот это(окно налазит, перекрывает елементы, и если открыть что либо(программу, папку...), то оно исщезает):
Ссылка скрыта от гостей
):
C++:
...
HWND APIENTRY InitializeCustomItem(TODAYLISTITEM *ptli,
HWND hwndParent)
{
WNDCLASS wc;
HWND hWnd = NULL;
if (ptli->fEnabled==0) return NULL;
hInstance = ptli->hinstDLL;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = (WNDPROC) WndProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = 0;
wc.hCursor = 0;
wc.hbrBackground = (HBRUSH) GetStockObject(LTGRAY_BRUSH);
wc.lpszMenuName = 0;
wc.lpszClassName = TEXT("MyToday");
RegisterClass(&wc);
hWnd = CreateWindow(TEXT("MyToday"), TEXT("MyTodayScreen"),
WS_VISIBLE|WS_CHILD,CW_USEDEFAULT,CW_USEDEFAULT,
240, 25, hwndParent, NULL, hInstance, NULL);
return hWnd;
}
...
результатом её выполнения должно быть вот это:
Пытаюсь уже второй день правильно перевести его на паскаль:
Код:
...
type PTODAYLISTITEM=^TODAYLISTITEM;
function InitializeCustomItem(ptli: PTODAYLISTITEM; hwndParent: HWND):HWND; export;
var wc:WNDCLASSW;
hWnd_:HWND=0;
begin
if (ptli^.fEnabled=false) then result := 0;
hInstance := ptli^.hinstDLL;
wc.style := CS_HREDRAW or CS_VREDRAW;
wc.lpfnWndProc := @WndProc;//WndProc - процедура обработки сообщений окна
wc.cbClsExtra := 0;
wc.cbWndExtra := 0;
wc.hInstance := hInstance;
wc.hIcon := 0;
wc.hCursor := 0;
wc.hbrBackground := HBRUSH(GetStockObject(LTGRAY_BRUSH));
wc.lpszMenuName := nil;
wc.lpszClassName := 'MyToday';
Windows.RegisterClass(wc);
hWnd_ := CreateWindow('MyToday','MyTodayScreen',WS_CHILD or WS_VISIBLE,
CW_USEDEFAULT,CW_USEDEFAULT,240,25, hwndParent, 0, hInstance, nil);
result := hWnd_;
end;
...