Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
주화면의 바탕에 그림입히기 ??
메인화면이 회색으로 되어 있어 밋밋하네요
그림을 입히는 방법을 알고십습니다.
웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도
반복적으로 전화면에 표시되어 화면이 확대되어도
문제없는 방법을 아시는 분은 도움을 부탁드립니다
참고서적이라도 추천부탁....
2
COMMENTS
redhead
•
1999.05.20 01:38
초보자 wrote:
>
> 메인화면이 회색으로 되어 있어 밋밋하네요
> 그림을 입히는 방법을 알고십습니다.
>
> 웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도
> 반복적으로 전화면에 표시되어 화면이 확대되어도
> 문제없는 방법을 아시는 분은 도움을 부탁드립니다
>
> 참고서적이라도 추천부탁....
unit untMain;
interface
uses
....
type
TfrmMain = class(TForm)
..중간생략...
private
{ Private declarations }
FClientInstance:TFarProc; <- 추가
FPrevClientProc:TFarProc; <- 추가
procedure ClientWndProc(Var Message:TMessage); <- 추가
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
{ 아래 procedure 추가 }
procedure TfrmMain.ClientWndProc(Var Message:TMessage);
var
Mydc : hDC;
ro,co:Word;
begin
with Message do
case Msg of
WM_ERASEBKGND :
begin
MyDC := TWMEraseBKGND(Message).DC;
BitBlt(MyDC, 0, 0, frmMain.ClientWidth, frmMain.ClientHeight,
Image1.Picture.BitMap.Canvas.Handle, 0, 0, SRC
COPY);
Result := 1;
end;
else
Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam
, lParam);
end;
end;
{ 아래 FormCreate이벤트에 추가 }
procedure TfrmMain.FormCreate(Sender: TObject);
begin
FClientInstance := MakeObjectInstance(ClientWndProc);
FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
end;
end.
0
0
삭제
수정
댓글
초보자
•
1999.05.20 02:47
답장을 주셔서 감사드립니다.
헌데 아래의 코딩을 복사하여 실행을 시켰는데
에라는 나지않고 컴파일이 되었는데
그리고 그다음에는 아무런 변화가 없습니다.(T_T)
물론 아래의 코딩과 더불어 메임폼에 이미지는 하나가져다 두고
bmp그림을 올린 상태에서 테스트 런을 했습니다.
디버깅창에 procedure TfrmMain.ClientWndProc 에서
정의한 ro,co: Word; 변수가 사용이 안되었다고
나와 있느데 혹시 이때문인지 ....
한번더 부탁드립니다 /////
redhead wrote:
> 초보자 wrote:
> >
> > 메인화면이 회색으로 되어 있어 밋밋하네요
> > 그림을 입히는 방법을 알고십습니다.
> >
> > 웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도
> > 반복적으로 전화면에 표시되어 화면이 확대되어도
> > 문제없는 방법을 아시는 분은 도움을 부탁드립니다
> >
> > 참고서적이라도 추천부탁....
>
> unit untMain;
>
> interface
>
> uses
> ....
>
> type
> TfrmMain = class(TForm)
> ..중간생략...
>
> private
> { Private declarations }
> FClientInstance:TFarProc; <- 추가
> FPrevClientProc:TFarProc; <- 추가
> procedure ClientWndProc(Var Message:TMessage); <- 추가
> public
> { Public declarations }
> end;
>
> var
> frmMain: TfrmMain;
>
> implementation
>
> {$R *.DFM}
>
> { 아래 procedure 추가 }
> procedure TfrmMain.ClientWndProc(Var Message:TMessage);
> var
> Mydc : hDC;
> ro,co:Word;
> begin
> with Message do
> case Msg of
> WM_ERASEBKGND :
> begin
> MyDC := TWMEraseBKGND(Message).DC;
> BitBlt(MyDC, 0, 0, frmMain.ClientWidth, frmMain.ClientHeight,
> Image1.Picture.BitMap.Canvas.Handle, 0, 0, SRC
> COPY);
> Result := 1;
> end;
> else
> Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam
> , lParam);
> end;
> end;
>
> { 아래 FormCreate이벤트에 추가 }
> procedure TfrmMain.FormCreate(Sender: TObject);
> begin
> FClientInstance := MakeObjectInstance(ClientWndProc);
> FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
> SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
> end;
>
> end.
>
>
>
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
초보자
•
1999.05.19 02:15
2
COMMENTS
/
0
LIKES
주화면의 바탕에 그림입히기 ??
메인화면이 회색으로 되어 있어 밋밋하네요 그림을 입히는 방법을 알고십습니다. 웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도 반복적으로 전화면에 표시되어 화면이 확대되어도 문제없는 방법을 아시는 분은 도움을 부탁드립니다 ...
redhead
•
1999.05.20 01:38
초보자 wrote: > > 메인화면이 회색으로 되어 있어 밋밋하네요 > 그림을 입히는 방법을 알고십습니다. ...
초보자
•
1999.05.20 02:47
답장을 주셔서 감사드립니다. 헌데 아래의 코딩을 복사하여 실행을 시켰는데 에라는 나지않고 컴파일이 ...
마성수
•
1999.05.19 00:45
1
COMMENTS
/
0
LIKES
MDI Child 폼에서 일반 폼을 CREAT....
redhead
•
1999.05.19 01:01
마성수 wrote: > 정말 이상한 일입니다. > MDI Child 폼에서 일반 폼을 CREAT할려고 했는데.. > 버튼을 ...
이현신
1999.05.19 00:37
0
COMMENTS
/
0
LIKES
컴파일시 환경정보 변수는??__DATA__ 같은.
윤상필
1999.05.19 00:35
0
COMMENTS
/
0
LIKES
SendMail
왕초보
•
1999.05.19 00:00
1
COMMENTS
/
0
LIKES
MDI Child window 찾는 방법?
redhead
•
1999.05.19 01:04
왕초보 wrote: > 주 프로그램에서 DLL안에 있는 윈도우를 MDI Child로 설정하여 > 윈도우를 뛰운다음......
안종필
•
1999.05.18 23:05
1
COMMENTS
/
0
LIKES
선그리기에 대해..(급함)
이정욱
•
1999.05.19 03:58
폰트를 굴림체로 맞추고 해보세요. 넓이가 일정한 폰트를 사용해야 합니다. Fixed Pitch 폰트라고 합니다...
신현숙
•
1999.05.18 22:30
1
COMMENTS
/
0
LIKES
View/Project manager가 작동?안되네요..
이정욱
•
1999.05.19 03:56
어디 윈도우에 가린거 아닌지 모르겠네요. ALT+CTLR+F11 을 눌러보세요. 신현숙 wrote: > 안녕하세요....
안미선
•
1999.05.18 20:53
3
COMMENTS
/
0
LIKES
QuickReport에서 프린터 바꾸어서 출력할려고 하는데.
안치봉
•
1999.05.18 22:27
안미선 wrote: > 저 좀 도와주세요....(많이 도와주시면 더 좋구요...) > 프린터 설정 Dialog로 선택한 ...
안미선
•
1999.05.19 00:45
안치봉 wrote: > 안미선 wrote: > > 저 좀 도와주세요....(많이 도와주시면 더 좋구요...) > > 프린터 ...
powerman
•
1999.05.21 10:13
안미선 wrote: > 안치봉 wrote: > > 안미선 wrote: > > > 저 좀 도와주세요....(많이 도와주시면 더 좋...
김영주
1999.05.18 20:53
0
COMMENTS
/
0
LIKES
.scr IE 자동실행에 대해
김명희
1999.05.18 20:26
0
COMMENTS
/
0
LIKES
QuickRep 디테일 간격 고수님 부탁^^(급)
박천문
•
1999.05.18 19:17
2
COMMENTS
/
0
LIKES
dbgrid를 이용한 질문
하윤철
•
1999.05.19 02:04
TField의 OnValidate event에서 TField.value를 검사하세요. 이 이벤트는 값이 입력되고 포커스가 이동하...
redhead
•
1999.05.19 01:24
박천문 wrote: > oracle 8 > delphi c/s 사용합니다 > > 시간표table, 수강신청table 이 있습니다 ...
김하정
•
1999.05.18 19:14
2
COMMENTS
/
0
LIKES
MDI에서 일반폼을 Show하여 항상 띄우고 작업할려면
안치봉
•
1999.05.18 20:29
김하정 wrote: > 안녕하세요... > MDI에서 팝업으로 Formstyle을 fsStayOnTop이나 fsNomal로 Show하여 >...
안치봉
•
1999.05.18 19:28
김하정 wrote: > 안녕하세요... > MDI에서 팝업으로 Formstyle을 fsStayOnTop이나 fsNomal로 Show하여 >...
김봉재
•
1999.05.18 19:06
4
COMMENTS
/
0
LIKES
정밀한 시간측정법좀... 알려주세요...
정성일
•
1999.06.18 21:05
GetTickCount라는 API가 있습니다. 1/1000초 단위까지 미세하게 측정가능하죠 시간측정하려는 시점에 Get...
이정욱
•
1999.05.18 20:23
MMSystem안에 있는 타이머를 사용해보세요. 0.001초의 정확도를 가지고 있습니다. timeSetEvent의 도움말...
김봉재
•
1999.05.18 20:55
MMSystem은 어디에 있죠?!? 델파이의 도움말을 뒤져도 없네요.. timeSetEvent라는 것도 찾을수가 없네요....
이정욱
•
1999.05.18 22:15
http://www.nilex.net 를 방문해 보세요. 파워러브 델파이를 구하실 수 있을것입니다. 김봉재 wrote: ...
조창범
•
1999.05.18 18:40
2
COMMENTS
/
0
LIKES
DBGrid상에서 END키를 누른효과....
조창범
•
1999.05.19 00:06
하윤철 wrote: > 조창범 wrote: > > DBGrid상에서 검색을 한후에 포인터가 맨 밑으로 가게 하려면 End키...
하윤철
•
1999.05.19 00:27
Procedure Tform1.btnSearchClick(sender : TObject); begin Query1.close; // dbgrid와 연결된 data...
북해
1999.05.18 18:31
0
COMMENTS
/
0
LIKES
(왕초보)레코드를 삭제하려 하는데...
북해
•
1999.05.18 18:24
1
COMMENTS
/
0
LIKES
(왕초보)인스돌쉬드를 써서 프로그램을...
이정욱
•
1999.05.18 20:18
이것은 다른컴퓨터에 문제가 있는것이 아닌가... 하는 생각이 드네요. 적어도 디스켓을 4장 다 설치를 해...
Heaven
•
1999.05.18 11:44
1
COMMENTS
/
0
LIKES
스트링그리드에서 고정열 조절하기
안치봉
•
1999.05.18 19:49
Heaven wrote: > 안녕하세요. > 도움을 많이 받는 Heaven입니다. > > 스트링그리드를 사용하다가 궁금...
김진무
•
1999.05.18 10:20
1
COMMENTS
/
0
LIKES
C/S 버전에서 다른 컴퓨터를 제어하려면 어떻게 해야 합니까?
이정욱
•
1999.05.18 20:16
먼저 어떤식으로 제어할지를 결정해야겠죠? C/S버전이라고 해서 다른 컴퓨터를 제어하는 것이 내장되어 있...
조창범
1999.05.18 05:20
0
COMMENTS
/
0
LIKES
[다시질문]쿼리를 이용하여...
이현철
1999.05.18 04:44
0
COMMENTS
/
0
LIKES
익스플로러 컨트롤에서 스크롤을 하려면..?
초보자
1999/05/19 02:15
Views
331
Likes
0
Comments
2
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
>
> 메인화면이 회색으로 되어 있어 밋밋하네요
> 그림을 입히는 방법을 알고십습니다.
>
> 웹브라우즈의 배경화면 처럼 조그마한 그림을 붙여도
> 반복적으로 전화면에 표시되어 화면이 확대되어도
> 문제없는 방법을 아시는 분은 도움을 부탁드립니다
>
> 참고서적이라도 추천부탁....
unit untMain;
interface
uses
....
type
TfrmMain = class(TForm)
..중간생략...
private
{ Private declarations }
FClientInstance:TFarProc; <- 추가
FPrevClientProc:TFarProc; <- 추가
procedure ClientWndProc(Var Message:TMessage); <- 추가
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.DFM}
{ 아래 procedure 추가 }
procedure TfrmMain.ClientWndProc(Var Message:TMessage);
var
Mydc : hDC;
ro,co:Word;
begin
with Message do
case Msg of
WM_ERASEBKGND :
begin
MyDC := TWMEraseBKGND(Message).DC;
BitBlt(MyDC, 0, 0, frmMain.ClientWidth, frmMain.ClientHeight,
Image1.Picture.BitMap.Canvas.Handle, 0, 0, SRC
COPY);
Result := 1;
end;
else
Result := CallWindowProc(FPrevClientProc, ClientHandle, Msg, wParam
, lParam);
end;
end;
{ 아래 FormCreate이벤트에 추가 }
procedure TfrmMain.FormCreate(Sender: TObject);
begin
FClientInstance := MakeObjectInstance(ClientWndProc);
FPrevClientProc := Pointer(GetWindowLong(ClientHandle, GWL_WNDPROC));
SetWindowLong(ClientHandle, GWL_WNDPROC, LongInt(FClientInstance));
end;
end.