| 
| 
 | Вопрос # 5 676/ вопрос решён / | 
 |  Здравствуйте, эксперты!
 Прошу помощи, что то у меня чисто техничекая часть не получается. Всё такий не подружился я с WinApi.
 
 В примере представленном ниже должно получится окно которое находится поверх остальных окон не закрываймое с кнопкой "ПАТЧ", и картинкой вытащенной из "imageres.dll". На как то не срослось, подскажите мне мои ошибки.
 Приложение:Переключить в обычный режим program dll_pic;   uses  Windows,  Messages;   ConstMutexName='dll_pic';AppName='dll_pic';        Btn1:cardinal;      Edit1:cardinal;  Wnd		: HWND;  Msg		: TMsg;  WndClass	: TWndClassEx;  dc,dcMem:HDC;  hBmp,hOldBmp:HBITMAP;  Bmp:Pointer;  ps:TPaintStruct;  h: THandle;  B : TBitmap;function WindowProc(Handle,Msg,wParam,lParam:cardinal):integer;stdcall;var P:TPoint;    Drive:string;    pas: string;    trupas: string;    ptemp: array[0..MAX_PATH] of Char; begin  case Msg of    WM_CREATE:begin      Result:=0;      Mutex:=CreateMutex(nil,false,MutexName);      if Mutex=0 then MessageBox(Handle,'0',nil,0);      if Mutex=ERROR_ALREADY_EXISTS then Result:=-1;      Btn1:=CreateWindow('BUTTON', 'Pach',WS_CHILD or WS_VISIBLE or BS_DEFPUSHBUTTON,700, 400, 200,
25, Handle, 0, hInstance, nil);           begin                begin                  h := LoadLibrary('C:\Windows\system32\imageres.dll');                  b := TBitmap.Create;                  b.LoadFromResourceName(h, '5031');                  dc:=getDC(wnd);dcMem:=CreateCompatibleDC(dc);                  hBmp:= LoadBitmap(hInstance,b);                  GetObject(hBmp,sizeof(BITMAP),bmp);                  hOldBmp:=SelectObject(dcMem,hBmp);                  ReleaseDC(wnd,dc);           end;      end;    WM_PAINT :    begin      dc:=BeginPaint(Wnd, ps);      BitBlt(dc,0,0,130,200,dcMem,0,0,SRCCOPY);      EndPaint(Wnd, ps);    end;    WM_DESTROY:begin        PostQuitMessage(0);      Result:=0;    end;    else Result:=DefWindowProc(Handle,Msg,wParam,lParam);  end;end; //---------------------------------------------------------------------------------------var Handle:cardinal;    WindowClass:TWndClass;   ZeroMemory(@WindowClass,sizeof(TWndClass));     Style:=cs_HRedraw or cs_VRedraw;    lpfnWndProc:=@WindowProc;    hCursor:=LoadCursor(0, idc_Arrow);    hbrBackground:=GetStockObject(LtGray_Brush);    lpszClassName:=AppName;  end;  if RegisterClass(WindowClass)=0 then Halt(255);  Handle:=CreateWindow(AppName, 'dll_pic', WS_POPUP,    cw_UseDefault, cw_UseDefault, cw_UseDefault, cw_UseDefault,    0, 0, HInstance, nil);  ShowWindow(Handle, SW_MAXIMIZE);  UpdateWindow(Handle);    while GetMessage(Msg, 0, 0, 0) do begin    TranslateMessage(Msg);    DispatchMessage(Msg);  end;  UnregisterClass(AppName,hInstance);  Halt(Msg.wParam);end.   
|  |   Вопрос задал: winner13 (статус: 1-ый класс)Вопрос отправлен: 13 октября 2011, 18:17
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 0. 29 октября 2011, 21:00: Статус вопроса изменён на решённый (изменил автор вопроса — winner13) Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |