|
Вопрос # 5 676/ вопрос решён / |
|
Здравствуйте, эксперты!
Прошу помощи, что то у меня чисто техничекая часть не получается. Всё такий не подружился я с WinApi.
В примере представленном ниже должно получится окно которое находится поверх остальных окон не закрываймое с кнопкой "ПАТЧ", и картинкой вытащенной из "imageres.dll". На как то не срослось, подскажите мне мои ошибки.
Приложение: Переключить в обычный режим- program dll_pic;
-
- uses
- Windows,
- Messages;
-
- Const
- MutexName='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)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|